【開発哲学3_3】〜『CODE COMPLETE第2版(上巻) 第3章』の感想〜2回測って、1度で切る:上流工程の必要性
感想
前回出した上司のラーメンの話でも、
前処理(準備)も大事
ラーメン食うにしても、
<何味のラーメンか>
<茹で時間は何分か>
<どんな丼で食べるか>
<そもそも丼はあるのか>
などを確認しとかないと、失敗するもんなあ。
WISCA(またはWIMP)症候群懐かしい〜〜〜✨
詳細
見出しとしては、
準備の重要性
ソフトウェアの種類の特定
準備:課題定義
準備:要求
準備:アーキテクチャ
上流工程にかける時間
参考資料
まとめ
てな感じ。
アーキテクチャをしっかり事前にやって、
要求の範囲やそれにかかる工数など、
上流工程の見積りができるエンジニアが必要なのはごもっともなんだけど。
工数の計算や要求する機能の割り出しはおろか、そもそも
今回メインで使う言語にどんな機能があるか
やりたいことが実現できるか
を把握している管理職なんて、日本で、要求や依頼する側にいるのか、、、
ほとんどいない気がする。
ITリテラシーはおろか、最新のプログラミング言語が何かを社内で知る人が少ないから、派遣や請負に外注して参画させてるし。
しっかり準備しないと、
最終工程までに、当初の予算よりも如何に経費やリスクが跳ね上がるかにも触れているから面白い。
ソフトウェア開発マネジメントに関わる管理者や経営者は、
「自分はプログラミングとか出来ないからこそ、金を払ってるんだ」
と思っても、
経理面で、金を出す側に開発の基本的な流れがわからないと、どんなに無駄なお金を使うかを知る上でも、この章は参考になると思う。
最近やっと、
「日本は、海外と比べて、経営者や管理職に開発工程の基本やプログラミングの教育を受けていない非ITの方々しかIT部門以外にいない」
ことが新聞とかで問題視されてるけど、経費やリスク、コストに跳ね返る。
そういうと、
「今更やったところで」
とか
「うちにはそんな余裕がない。」
て声が聞こえてきそうだけど、、、。
そういった教育や研修をしないからそもそも、
余裕が生まれない。
余裕が出来てからやるものではなく、
余裕を生むためにやるもの❗️
第2章のメタファと絡めて、今やっている作業の工程を建築に例えると、
<何階建てのビルにするか>
<設計図はちゃんとあるか>
<建築許可とか法律的な部分もちゃんと降りてるか>
などの準備が出来ているから、この納期で問題ないなで工事に移れる。
「設計図もなしに建築したり、免許もなしに車の運転をするとどうなるか。」
建築するなら、設計図が大事だし。
自分で設計図が書けないなら、設計士に頼むし。
車を公道で運転するなら、まずは免許を取るしね。
他の分野ならば当たり前のことなのに、とかくソフトウェア開発になると、
いきなりコードを書かせたり、要求も固まっていないのに発注したりと当たり前がすっ飛ばされることが多い。
ヒューリスティック(発見的)な開発が大事なんだけど、それも他の当たり前がしっかり出来てのことだからね。
当たり前や基本をすっ飛ばしてやる = イノベーション
ではないし、
❌ 誰も出来ない
ではなく、
⭕️ 誰もやらない
コンストラクション = 設計も基礎工事
もせずに、建築する人はいない(はず)。
やっぱり、事前準備大事だし、
教育や社内研修をきちんとやる = 育成って大事だねえ
きちんと育成を社会的にやることが、最大の備えな気が、、、💦
「一流」とか「プロ」とか「天才」とか他人の目ばかり気にしてる人ほど、
準備をせずにいきなりコードを書き始め、結局、数倍の時間をかけて、大量のバグを生み出す。
可変性も意識してなくて動くだけだから、後から依頼内容が変わって、コードも見にくいから最初から作り直したりしてるし。
考えていない人は、いきなりコードから書く。
考えている人は、コードを最後に書く。
まとめ
備えあれば憂いなし✨