機能設計を行うタイミングについて

テスト中に見つかったバグの対応で機能設計やり直ししてます。
決定表とか状態遷移図とか使ってMとかCの挙動を整理して網羅チェックしてると、検討抜け挙動の玉手箱状態でした。。
機能設計って超大事だわ。

さて、じゃあこの検討が実装前にわかったかと言えば、少なくとも今のおれにはとても無理だったなと思います。
ある程度実装して動くものができて初めて気づいたこと、実装中に実装方法調べて分かったこと無限にあったし。

・完全に事前に設計してから実装することが理想である
・スキルや環境により現実には上のは実現不可能

この二つはどちらも事実だと思うんですよね。
スキルを高めて理想に近づくべき!というのは、無理なんです。学問と現実の違い。

だから、
1) 必ず実装前には設計する
2) でも完璧は目指さずさっさと実装に入る
3) 必要性を感じたら必ず設計に戻る、
というように設計と実装を行き来するのが正解なのではなかろうか。

つまり、
・どこまで実装前に先を見通せるか、
・どのレベルで設計を切り上げて実装に入るか、
・実装で破滅の予兆をいかに早く察知できるか、
ここらへんの精度を高めることがスキルなんだと思う。

設計スキル自体を高めることも確かに大事なことなんですが(特に上流SIer)、上流から下流まで全部やるならフォーカスすべき点は上述の点なんじゃないかなぁ、と思う次第です。

ちなみにアジャイルとかスパイラルとかはスコープが違う話だと思ってるのでここでは触れない。


など。