2013年9月21日土曜日

昨日買ってきた本

昨日買ってきた本の紹介。まだ1ページたりとも読んでいないので、動機について。

伝わる!文章力が身につく本
ぼくはすでに数冊本を書いていて、ブログも毎日書いて、雑誌にも記事を書いて、普段からいろんな人たちと議論してるおかげで、偏らない考えで、誤解なく相手に伝える文章というのを、わりと書けるようになってきました。
しかし、長い文章を最後まで一気に読ませる力といったものは持ち合わせていないので、そろそろ文章の書き方を勉強しようかと思ったのでした。


ワールド・カフェをやろう!
結論を出さないディスカッション手法というので、「ワールド・カフェ」というものがあります。とにかくいろんな人と意見を交わし、自分の考えを成長させたり、コラボレーションを生み出したりするのが目標にあります。
以前、ベンチャー・カフェというイベントで数回このディスカッション手法を体験し、ものすごくおもしろかったので、ぼくが主催するBoost.勉強会でも、一度やってみたことがあります。結果としてすごい好評だったので今後もたまにやっていこうと思っています。なので、もうちょっと深く知ってみようかなーくらいの軽い気持ちで買ってきました。


プロジェクトマネジメントを勉強しています

最近はプロジェクトマネジメントを真面目に勉強しています。
やはり、正しい方法論を知らないと多かれ少なかれ失敗して、素人の手探り状態でプロジェクトを運営していくことになるので、これはさすがにいかんな、と思ったのです。

プロジェクトは、完了しただけでも、売れただけでも大成功にはなりません。
誰も残業せず、誰も休日出勤せず、誰も犠牲にならない、そこまでやって始めて大成功です。

最近は書籍『アジャイルサムライ』で、アジャイル開発を学んでいましたが、どういう開発手法をとるにしても大事な、普遍的な開発手法もあります。

まず、残業を禁止しましょう。遅れてきたら残業や休日出勤で取り戻すようではいけません。残業を禁止して、かつ「スケジュールは守ってね」とすることで、効率化の改善案が内側から自然に起きてきます。それでもはみ出るものだけ、プロジェクトとして対策を考えましょう。

マイルストーンも大事です。スタートとゴールだけが決まっているプロジェクトは、必ず失敗します。前半に小さな遅れや手戻りが発生し、後半に必ずしわ寄せが来るからです。
スケジュールを、小さな目標(期間)のシーケンスに分割しましょう。直近の目標があれば、全体のパフォーマンスが自然に上がります。

ほかにもいろいろありますが、一つ大事なことがあるとすれば、それは「マネージャだけがプロジェクト管理手法を知ってるだけでは失敗する」ということです。プロジェクトに関係するあらゆる人が納得した上で、皆が継続の意志と目標意識を持ってプロジェクトを進めていくことが大事です。
だから、プログラマだから、デザイナだから、一メンバに過ぎないからという理由で、プロジェクト管理を学ぶことを、どうか他人任せにしないでください。

完璧にうまく行ってるプロジェクトなんて、きっとほとんどありません。皆どこかで小さい失敗をしています。私たち一人ひとりが改善意識を持てば、きっと今日を超えてより良い明日を作り出せます。

2013年9月18日水曜日

RANLUXについて考えていた

RANLUX乱数生成法の特徴に、「異なるシードのジェネレータ間では、乱数列が重複しないことが数学的に保証されている」というのがあって、それをどうやって検証しようかと考えていた。

RANLUXは乱数の周期が2の171乗あるから、その長さの数列を1億個くらいのシードのバリエーションで作って比較すれば検証できるけど、1ヶ月くらい計算が終わりそうにない(並列化して、かつメモリ節約のために乱数列を一方向ハッシュ関数でハッシュ化すれば、ある程度改善が見込める)。
なのでこういう場合にはブルートフォース的な総当たりは向いていなくて、Coqのような定理証明系言語を使うのが適切なんだろうなーと思った。