👌

プログラマーは、詳細設計書をそのまま実装するだけの簡単な仕事。

2022/06/04に公開

はぁ?

こんにちは、Javaおじさんのシキムです。

40才目前で、プログラム工学に興味を持ったので本や記事で読んだ難しい話を
咀嚼して簡単な言葉で語りたいと思います。


今回は、プログラムコードというものについてです。

システム開発において大体は、以下のような設計書を作ることから始まります。

  1. 要件定義書
  2. 外部設計書
  3. 内部設計書
  4. 詳細設計書(プログラム設計書)

ここまで来れば、プログラマーは詳細設計書をそのままプログラムコードをコーディングするだけなので簡単な仕事ですね。
。。。

ちょっとまて


とりあえず、設計書が何のためか考えてほしい。

  • 要件定義書とは、要望を詳細にして、外部設計書を作るため。
  • 外部設計書とは、要件定義書を詳細にして、内部設計書を作るため。
  • 内部設計書とは、外部設計書を詳細にして、詳細設計書を作るため。
  • 詳細設計書とは、内部設計書を詳細にして、プログラマーを動かすため。

これだと、プログラマーが動くために見えてくると思う。
しかし、実際に動くのはプログラマーではない。

動くのは、コンピューターだ。


それを踏まえて何のためなのかもう一度考えてみてほしい。

  • 要件定義書とは、要望を詳細にして、外部設計書を作るため。
  • 外部設計書とは、要件定義書を詳細にして、内部設計書を作るため。
  • 内部設計書とは、外部設計書を詳細にして、詳細設計書を作るため。
  • 詳細設計書とは、内部設計書を詳細にして、プログラムコードを作るため。
  • プログラムコードとは、詳細設計書を詳細にして、コンピューターを動かすため。

プログラムコードとは詳細設計書よりも詳細な、最も詳細な設計書であることがイメージつくかと思います。

詳細設計書にすべてのプログラムコードと同程度の詳細を書こうとした場合、プログラミング言語の50年以上の歴史での最適化と同じくらいの最適化を施した設計書を作る必要があり現実的ではないかと思います。

最も詳細な設計書は一番書くのが難しいと理解し、プログラムコードを作る人間を一番優秀なものにしたほうがいいのではないか?




というお話でした。



「プリンシプルオブプログラミング」を参考にしております。
以上。Javaおじさんがお送りしました。

Discussion