株式会社チェンジビジョン代表取締役社長、永和システムマネジメント副社長。 オブジェクト指向開発、UMLの勘所、アジャイルな開発手法の未来、マインドマップのソフトウェア開発での利用方法、プロジェクトファシリテーション(見える化)を語ります。現在、マインドマップとUMLの融合エディタ、astah*(アスター、旧JUDE)を開発中。
![An Agile Way](https://cdn-ak-scissors.b.st-hatena.com/image/square/940258f08a8861f663a305f5e532f8d8c90667bb/height=288;version=1;width=512/https%3A%2F%2Fblogs.itmedia.co.jp%2Fmt-static%2Fsupport%2Fassets_c%2Fuserpics%2Fuserpic-20-100x100.png)
私の立場は「コーディングは設計(の一部)だ」(by Jack Reeves)である。ここでは、コーディング以前のラフな設計(例えばUMLのクラス図やシーケンス図レベルのアイディア、それがホワイトボードに描かれていようが、紙であろうが、JUDEであろうが、日本語であろうが)を、ここでは設計と呼ぼう。 設計とコーディングの距離が増えれば増えるほど、ムダが増える。私の主張は、できるだけ、1つの関連部分の設計とコーディングは、「一人の人」が「少しずつ」行ったほうがよい、ということだ。昔見た「詳細設計書」という細かい実装の詳細を日本語である人が書き、それを見て別の人がコードを書く、ということは避けたい。ここでの距離とは、 頭脳間距離。 時間的距離。 の2つ。 頭脳的距離は、物理的に書く人の頭脳の距離だ。1人の人が設計からコーディングまでを含めて担当すれば、この距離は0だ、別の頭脳が担当するならば同じ
Agile開発はどうしても少人数での開発が多い。スタンドアップミーティングができる人数、つまり1ダースが1つの目安。また、ウォーターフォールなら大規模が成功するか、というと、ぼくはウォーターフォールの大規模開発で成功例を見たことがない。本当にソフトウェア開発はスケールさせられるのだろうか、という疑問もある。 ソフトウェア開発をスケールさせるにはどうしたらよいのだろうか。 別のドメインの似た例として、Webのサーバー側のシステムをスケールさせるには、2つの考え方がある。 ・scale up ... 1マシンのCPUやメモリ、バス性能などをアップさせて、システムのパフォーマンスを上げる。 ・scale out ... マシンの数を増やして、システムのパフォーマンスを上げる。 scale up には限界がある。その時点のテクノロジの限界があるから。逆に scale out 作戦が成功するようなア
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く