会社が大きくならないと社員もおもしろくない

とある社長さんとお話しさせてもらって、聞いた話。



この人は今社員が五人くらいで、年商一億円くらいの規模の会社を経営されています。



これくらいの規模であれば、社長も十分な収入が得られるし、社員としても、大企業にありがちな非効率的な仕事をやらなくていいから、社長も社員もお互いハッピーだよね、不必要に大きくしないで、これくらいを維持するのが幸せなんじゃないのかな、と思っていたのです。



でも、社長としては会社を大きくしたいのだそうで。



当然理由の一つとして、売り上げをさらに上げるためには社員を増やすのが手っ取り早い、というのもあります。
でも、それだけじゃない。



「社員が増えるとどんどん会社が非効率になっていきませんか?」

「それはある。でも、社員の気持ちにもなってみて。例えば5年とか会社にいるのに、ずっと社長の命令聞くばっかりでおなじ仕事だと、おもしろくないでしょ?いずれは人を使う立場になりたいとか思うじゃない?」



あー。そのためには、必然的に会社は大きくなる必要がある、と。たしかにそうなっていないと、ずっと同じことやっていた社員さんは飽きて転職してしまうかも知れないですね。



米国とかリクルートさんみたいにポンポンやめていくことを前提とする考え方もあるとは思いますが、基本的に社員がやめて蓄積が外部に流出するのは可能なら避けたいことのはずで。社員をつなぎ止めるためには会社を大きくし続けないといけない。うーん。なるほど。



会社が大きくなりたがるのは経営者が貪欲だからだと勝手に思っていたのですが、実は社員自身が無意識に、会社が大きくなることを望んでいくところもあるのですねぇ。

railsワークショップにいってきました。

CA380005.JPG
 Railsワークショップ@新橋というのに行って来ました。
Kantaさんと、Kantaさんの会社の人と、あと参加者は自分を入れて二人だけという贅沢な環境です。


テキスト:『RailsによるアジャイルWebアプリケーション開発』



 今回は、あえて講義形式ではなくて、各自勝手に本を読んで勉強する、という形にしていただきました。

参加者のレベルが異なると、講義している人は何にも得るものがなくなってしまって面白くないだろうし、なにより、自分で手を動かすほうが覚えやすいと思うので。



やってみてわかったのですが、このやり方、非常にいい (・∀・)イイ!



本を読んで勉強するだけだったら自宅でもできるじゃないか、と思われるかもしれないのですが、実際に自宅に帰ると、人がいたり鳥がいたりするし、ゲームもやりたくなるし。
強制的に場所を確保して勉強時間に当ててしまうことで、集中した時間を確保することができます。



主催して会場を押さえておやつまで用意していただいて、Kantaさん、どうもありがとうございました。ぜひぜひ今後も参加させてください!

スケジュール意識の違い

住みたいところに住める俺: 仕事は7.5時間で終わらせるというエントリが話題になっているみたいです。



自分はカナダで仕事をしたことはないですが、海外のエンジニアさんと仕事をさせていただいたことは何度もあるので、同じようなことは自分も経験しております。
スウェーデン人なんて、朝6時に出社してPM3時に帰るぞ。


素朴な疑問ですが、マイルストーン、リリースなど守らねばならないポイントが守れない場合も、あくまでも7.5時間?
そういう場合は、チームの責任者が責任とった上で(評価が下がる)リスケする、とかで根性論は入らないということでしょうか?



やはり根性論は入らないです。単発の残業はあるものの、基本的にはリソースの投入を行い、それでも無理なら、リスケを行ないます。





そもそもスケジュールに対する考え方が日本と海外で違うような気がします。海外では、リスケが当たり前に行われます。



例:一週間と見積もった作業が金曜日に終わらなかった場合:

 日本:金曜日は残業したり、土曜日に出てくるのが当たり前

 スウェーデン:余裕で月曜日に持ち越します。一日遅れたところで何があるわけじゃなし。次の作業が一日早く終わればいいことです。



例:一年の開発で3ヶ月目に設計を終わらせる、と決まっていたとして。終わっていなかったら、どうなるでしょう?

 日本:3日間かかる対策会議でリーダーがつるし上げられます(でも大した対策が打たれるわけでもなく…)

 スウェーデン:3分程度の(立ったまま)対策会議が行われて、マイルストーンが一週間とか二週間後ろにずれます。



一回スケジュールを守れなかったくらいで悪い評価をされることはなくて、それは単なる事故くらいの扱いです。もちろん、毎回どんなチームを率いても遅れてしまうリーダーさんがいたら、普通にクビになりますが。



例えば金曜日に終わらせるはずの作業が月曜日までかかったとして、その成果物を使う予定だった同僚は月曜日にどうしているかというと。

そもそもそんな小さな締め切りが守られるとは思っていないので、月曜日から次の作業をスタートさせる予定は組んでいなくて、そこから一週間もすれば出てくるでしょ、というスケジュールになっています。

また、日本人みたいに仕事を小さく切らないで担当者にどーんと任せてしまうので、そもそもそんな小さな引き継ぎが発生すること自体がレアケースです。



大行程で一週間遅れたプロジェクトがどうなるかというと。

べつに何も起きません。たいていの場合、次のフェイズでキャッチアップするので最終的な納期は守られます。守れそうになければ機能を落とすとか、人員を投入するとか、普通の対策が打たれます。



工場の生産開始とかそういう厳密なスケジュールだとどうするのでしょう?後ろにずれて困るスケジュールは、最初から後ろにバッファが用意されています。
日本のスケジュールにおけるバッファは本音と建て前だったりしますが、海外だとちゃんと本来の意味のバッファとして使われます。



まとめると

・そもそも無理な物は残業したって無理。

・ちょっとくらいの納期ずれは残業して解消しなくても、そのうち解消する。

・解消しないのなら適切な対策を打って解消する

という普通の対応でも、案外、物は作れるのだ、ということじゃないかと思います。

utf8なテキストをコマンドプロンプトで表示する

rails勉強会のときに、「windowsにrailsを入れた場合、ログをコマンドプロンプトで見ると日本語が化けるよね」というような話がありました。



railsは素人ですが、そんな話ならお役に立てます(笑)



ng.PNG
ok.PNG


右(下)のようになればよいわけですよね?



手順。

・コマンドプロンプトの左上のアイコンをクリックして、プロパティでフォントを日本語フォントにする

cmdfont.PNG


・chcp 65001 でコードページをutf8にする。



ok.PNG


出来上がり。お役に立てば幸いです。

rails勉強会に行ってきた。

rails勉強会に行ってきた。



たのしいRubyの人とかヽ( ・∀・)ノくまくまーの人が来ていました。



yuum3の人に、初心者向けセッションをしていただきました。どうもありがとうございます!



coLinuxでの環境構築


  • 資料:
  • 参考:
    • WEB+DB PRESS Vol.40 「特集2 coLinux,Emacs,GNU screen,zsh[定番]Linux開発環境」
    • ↑今回の講習はこれが元になっている。でも、このままだと結構はまった。
  • なにがうれしいのか
    • Windows上のrailsはとても遅い。coLinux上のrailsのほうが早い。
  • インストール
    • パーソナルファイアーウォールetcがあるとはまるのではずしておく
    • コア部分とFS部分のインストールがある
    • FSにはubutu/Fedora7/Debianがある。Yuumi3の人はubutuを使っている
  • 起動
    • ネットワークの設定をすませるまではcoLinuxコンソールで。英語キーボード扱いになるので注意。
    • いろいろ設定。Windowsのインターネット接続の共有機能を使ってネットワークに出られるようにする
  • インストール
    • rubyとかgemとかsqliteとか
    • sambaでファイル共有すると、Windowsのエディタで編集できる

coLinuxは、サーバで使っているのとは別のlinuxを使わないといけないので、同じマシンを動作させられるvmwareのほうがいいのでは、と思っていたのですが、お手軽さは魅力的ですね。


Scaffoldの半歩先へ


  • 参考資料
     

    • railsによるアジャイルアプリケーション開発 <いい本だけど、読みにくい
    •  

    • 舞波さんの本 <開発し出すと役に立つ
  •  

  • リファレンス
     

      

  •  


実習


  • railsコマンドで todo プロジェクトを作成。
    rails todo -d sqlite3
  • config/database.yml を変更。
  • script/generate で todos テーブルに対応する
  • Modelを作成。
    ruby script/generate  model todo due:date task:string
  • rake db:migrate でDBにテーブルを作る。
    rake db:migrate
  • script/generate scaffold でひな形を作成。
    ruby script/generate scaffold todo
  • script/server でサーバーを起動。


コードを見る


  • 重要なのはAPP
    todo\app>dir
    controllers
    helpers
    models
    views
    • いわゆるMVCモデル
  • 例えばapp/views/todos.vhtml
    • railsであつかうhtmlテンプレート。rubyのコードっぽい物が書かれている。erbとかeRubyとか。
    • <HTML>がないじゃん?:layoutsに書かれている。
  • app/controller
    • todo_controller.rb
    • URLに応じた処理が書かれている
    • 例えばlist。pagenateというのが使われている。ヘルプ見る。
      • per_pageで1ページあたりの個数とか、orderでソート順とか指定できる
    • todo_controller.rbのlistメソッドでorderを指定すると、ソート順が指定できる。
    • debugモードだと、書いたコードがそのまま動く。


名前の規約



一つのコントローラーで何でもすると大変なので、普通、いくつかのコントローラーに分ける。

実習2


実習3

このへんは、テキストにある話をザーッと流した感じ。

おまけ:ログの見方



ターミナルで見ると色つきで見える <設定すればplainTextにも出来る。ブログに記事があったはず。


感想



 動かしながらやると終わらなさそうだということでしたので、ざ~っと説明しながらやって見せていただく、という感じになりました。
当然ながらこれだけでは頭に入らないので、早速やってみないと。

パソコンレンタルを考える

 法人を作ると(もしかしたら作らなくても)PCをリースする、という手法が使えます。
ヨメのPCをみていて、もしかして個人事業主でも使えるんじゃないかと思い当たったので、計算してみる。
たとえばノートPCを考えると
パソコンレンタル・カテナレンタルシステム-Panasonicノートパソコン 主要構成/月額レンタル料金
let’s noteのCF-R6Aが\13,524円/月(一年契約)、\8,715円/月(2年契約)。
先代先々代のノートPCを二年ずつくらい使っていたはずなので、二年契約にすると、209,160円/二年
購入価格をテケトーに調べてみると
価格.com – パナソニック Let’s note R6 CF-R6AW1BJR
135,000円だそうです。まあ最安値では買えないとしても、ざっと15万円。
個人で持っているPCは、買い換えたときに古いほうをオークションで売ってしまう、という手が使えます。
2年型落ちくらいなら、2万円くらいにはなるんじゃないでしょうか。
そのぶんと、あと楽天ポイントとかそのほかセコイ方法を考え合わせると、実質13万円くらい。
買った場合
           一年後       二年後
購入 =================================>売却
150,000円                -20000円
二年間の費用 13万円
二年契約でレンタルした場合
           一年後       二年後
=========================================>交換
月額8,715円×24ヶ月=209160円
二年間の費用 20万円
うーん。さすがに価格面で有利にはならないか。
企業だと、一括の費用を月額の費用に振り替えられるとか、壊れたときのメンテナンスを任せることができるからうれしい、ということなんでしょうか。個人事業主にまでおいしいサービスにはならないですね。残念。

日付別のフォルダを作るdailyFolderスクリプト

ある程度パソコンを使いこなすようになると、作成したファイルは保存しておいて、次の機会に再利用しよう、と思うことが増えてきます。去年の年賀状を元に今年のものを作るとか。



このために、データ保存用のドライブを作って、

E:\
ppt
image
picture
doc
html
:

というような具合に機能別に整理しようとしてがんばってきたのですが、これ、やめたほうがいいと思うようになってきました。



仮に、こうやって機能別にフォルダを作ってファイルを整理する方式を、機能別フォルダ形式、と名づけておきます。



たとえば年賀状を作りましょう、と思ったとき、まず年賀状はimageなのかdocなのか、という悩みが発生します。

ドキュメントかなぁ。でも主に画像をつくるんですけど。あ、年賀状の宛先はexcelだからDBかもしれない。

「『超』整理法」でいうところの、コウモリ問題というヤツです。



保存するフォルダを決めるのに悩まないといけない上に、翌年探すときにも、「年賀状ってどこに保存したっけ」といって悩む必要が出てきます。

docの下を探して、DBの下を探して。見つからないからけっきょくEドライブ丸ごと検索かけたら、E:\tmpの下にあった、なんてことが起きます。だったら全部Eドライブ直下においた方が早い!



さらにまずいのが、ある程度以上量が増えてきたとき。3年前に作ったプレゼンなんてめったに使うことはないから、ほかのディスクに移動しよう、と思っても、機能別フォルダ形式だと、古いファイルを洗い出すのが大変。予備のハードディスクに同じフォルダ構成を再現して古いファイルだけ移動させて….やってられるかっ!





というわけで最近、違うやり方を使うことにしました。名づけて、日付別フォルダ法。



#このやり方、もしかしたら「超」整理法に載っていたもののような気もするのですが、ちょっと思い出せず。



ファイルを種類別に分けることはあきらめて、日付のフォルダを作ります。

たとえば2007-11-06のイベントに関連するファイルは

E:\daily\2007\200711\20071106イベント\

というフォルダに全部入れます。pptだろうとイラストだろうと、全部ここに入れちゃいます。

11月6日のイベントはちょっと前から準備を始めると思いますが、そういうのも全部20071106イベントフォルダに入れちゃいます。

当日取った写真なんかもここに。



あとで探すときはたいてい「11月ごろにあったあのイベントのファイル…」と思うので、この方がすんなり見つけることが出来ます。

このやり方なら、古い日付のフォルダだけ他のドライブに移動するのも簡単です。



日付別フォルダ法の難点は、日付フォルダを作るのがめんどくさいことです。

ということでこの部分はツールにお任せすることにしました。



dailyFolder01.zip


起動すると、その日の名前のフォルダを開きます。ないときは作ってくれます。これでいちいちカレンダーを見てフォルダを作らなくてもよくなります。



たいしたものじゃないので、興味のある方はご自由にお持ちくださいませ。WindowsのWSHで作られています。

エディタで開いて

rootPath = “E:\daily”

の部分を変更して使ってくださいませ。



あれ。どこかで聞いたことのある展開なので念のために書いておこう。


このツールは野口悠紀雄さんや「超」整理法とは無関係なツールです。

「超」整理法について知りたい方は、元の本や、公式サイトを読むことをおすすめします。