はじめに
ロストテクノロジーとは、過去に存在したが、何らかの理由で後世に伝えられず、現代では再現不可能となった技術です。
外部設計を行った結果を外部設計書に記録してプロジェクトを円滑に進める行為が予算の理由でロストテクノロジーとなり、結果として後世に外部設計手法が伝えられないのではないかという考察を行ってみたいと思います。
外部設計書について
外部設計書は、本来は要件定義を行う顧客と、外部設計を行う開発間で合意を取るために必須の設計書ですが、顧客が欲しいのは「開発されたプロダクト」であり「設計書」ではないというジレンマがあります。
顧客目線では、ちゃんと動くビジネスや業務課題を解決するソフトウェアがあればよいだけです。
ところが、手戻りなく無駄なく開発を行おうとすると、外部設計時点できちんと要求を満たしているかを確認する必要がありますが、書類から実際のソフトウェアの動作まで想像するのは熟練のエンジニアでもかなり難しいという問題があります。
期限があるので一旦は承認は行うものの、受入試験時に「期待値と違う」ということもよくあります。受入試験時に調整するのであれば、外部設計時の承認は不要にも思えます。
しかし、「承認を受けた外部設計書」 が存在しないと無限に受入対応が発生するリスクが出てきます。
また、運用開始後に機能追加や改修を行う場合に外部設計書が存在しない場合、仕様解析から行うことになり、リバースエンジニアリングのコストが追加されたり、そもそも改修の見積もりができないといった新たな問題も発生します。
総じて、外部設計書の重要度が増すのは「受入試験」工程より後で、初期の外部設計時に作るのが最も合理的でコストも最小になるにも関わらず、そのコストや期間が捻出されず、「後仕様」と言って申し訳程度のドキュメントを後で提出するといった傾向がある様に思えます。
あれ?設計者が減っていく・・・?
「書けるけど書かない」 のと 「書けない」 のは別の話です。
アジャイル開発と称して、外部設計を行う事ができるエンジニアが、顧客窓口と直接会話して外部設計~詳細設計~実装~単体試験まですべてを行えば外部設計書はなくても開発案件としては、一応成立します。(運用フェーズの問題は残ります)
しかし、経験値の低いエンジニアがこれだけの工程をこなすことは難しいです。
また、アウトプットとしてソースコードしか存在していない状況は、外部設計について認知する機会を減らしてしまっています。
顧客からすると開発会社の若手を育てるのにお金を払う義理はないのですが、このまま放置しておくと、外部設計を行う人間が減っていき、開発案件自体を行うことができなくなっていくことが予想されます。
上級SEと言われる設計ができる人々は定年などの理由で確実に減っていくからです。
おわりに
昭和の町工場が、技術の伝承ができなくて消えつつあるのと同様に、令和のIT工場が、外部設計手法の伝承ができずに消えていく可能性を考察してみました。
アジャイル開発をやめて昔のウォーターフォール開発にすることは現実的ではないし、それで解決する問題でもないように思えます。
ただ、アジャイル開発手法を取る限りは未経験エンジニアでも案件にアサインされると同時に、設計と開発の能力を求められるチャレンジングな状況となっていくでしょう。
ゆでガエルにならないように、生存戦略を考えないといけないかもしれません。
おまけ1(新卒エンジニア向け手紙)
おまけ2(新卒エンジニア向け記事)
おまけ3(パイセン向け記事)
おまけ4(...は難しいシリーズ)
おまけ5(営業A短編シリーズ)
おまけ6(エンジニアのためのお仕事問題集)
2030年にIT人材が最大79万人不足するとのことで、学習用の資料をgitで無料公開してます(不定期更新)。
よろしければどうぞ。