コーディングは考えない

プロジェクトオーガナイザの吉田聖書よしだみふみです。

1か月ぶりにシステム開発の話です。
先日SNSで流れてきた記事に触発されて
私が感じたことを書きます。

プログラムを書いたことがない人には
ピンとこない話かもしれません。
ですが、部下や外部のパートナーに
プログラムを書かせているのであれば、
是非一度考えてみてもらえたらと思います。

その記事というのは、
プログラミングにおける論理的思考を
しないと言うものでした。
きっと読まれた方もおられるでしょう。

諸手を挙げて賛同はしかねますが、
多くの部分は理解できました。
理解できたし、若いプログラマにも
理解して欲しいと思います。

以前にもチラッと書きましたが、
近年のシステム開発案件は
スケジュールとコストの抑制圧力がかかって
どうしても詳細設計工程を省略しがちです。
それが詳細設計書を納品しない
という意味であるなら問題ないですが、
ドキュメントを納品しないことと
ドキュメントを作成しないことは別です。

詳細設計書をきちんと作らず、
あるいは形だけの詳細設計書を作って
コーディングの段階になって
本当の詳細設計を行うことが多いです。

だから、
本当なら詳細設計の段階で潰せたはずの
モジュール間やインタフェース間の
不整合の問題が結合テストで頻発します。

件の記事の著者が言うには
プログラミングにおける論理的思考は無用とのことです。
また、最近のプログラマの生産性は低いとも指摘しています。
著者がどこまで本気で言っているのか分かりませんが、
いくつか論点があると思います。

その1つはプログラミング言語の問題です。
プログラミング言語が違えば
行数でカウントする表面上の生産性は変わります。

例えば、Java言語だったら10行で書かなければいけない処理が
PHPやRubyでは1行で書けるという場合があります。
つまり、言語という観点を考慮せずに
単純な時間当たりの作成コード行数を比較しても
意味がないと考えます。

また、80年代、90年代の言語であれば、
覚えるべきステートメント(命令)が少なく、
その組合せで複雑な処理を書いていくので
とにかく行数を書く必要があったのですが、
最近の言語はライブラリが充実しており、
1つのステートメントで
あるまとまった処理を賄うこともあります。

その代わり、あらゆるライブラリの
あらゆる処理をすべて空で書くことは困難です。
ある程度は書けなくはないですが、
引出しを多く持っていないといけません。
そうなると自ずと
ライブラリの仕様を調べながら
コードを書くということになります。

1行当たりの処理量が多くなった代わりに、
その1行を書くための調査の時間が
必要になったとも言えます。
これはどちらが良いとか悪いという問題ではなく、
単純に比較できないという話です。

ただ、この調査という活動を
コーディングの段階で行うと効率が悪く、
詳細設計の段階で、
これなら行けるという確証を取りながら
モジュールのインタフェースを設計します。
だから、詳細設計をやり切ったのであれば
もはや論理的思考は不要だと言っても良く、
件の記事が理解できるのはそういう意味においてです。

つまり、考える仕事が設計、
コードに置き換える仕事がコーディング
ということになります。
詳細設計を曖昧にあるいは深く考えずに書き、
具体的にはコーディング時にちゃんと考えるというのは、
詳細設計の意味を理解していないですし、
それは詳細設計を省略することの
弊害なのではないかと思っています。

それにより、多くのプログラマが
コーディングという作業の料金で
事実上の詳細設計までやらされている
ということにならないでしょうか。

    ◆    ◆    ◆

近年の開発手法として、
プロトタイピングという手法があります。
しかし、プロトタイピングはあくまでも
要求事項を整理するためのものであって、
それがそのままプロダクトになるものではありません。
試しに作ってみて感触が良ければ
そのまま商用に移行するというのは
プロトタイピングとは言わないのではないかと思います。

プロトタイピングでは確かに
詳細設計なんて行わないと思います。
しかし、要求事項が整理された後、
プロダクトを構築する段階になったら
詳細設計が必要なのではないでしょうか。

また、アジャイル開発においても
ドキュメントよりコードという思想があり、
それが詳細設計を省略して
考えながらコーディングするというスタイルを
助長しているようにも思えます。



関連記事

プロマネの右腕

クロスイデアでは、新サービス・新ビジネスの 立上げや計画を中心に
プロジェクトマネジメントの支援を行っています。

新サービスの企画を任されたけど どう進めていいか悩んでいる担当者、
部下に新しい企画を任せたけど このままで大丈夫か不安な管理職の方、
以下のサイトをご参照ください。
https://www.crossidea.co.jp/services/right-hand-pmo.html

YouTubeにて動画配信中!

プロジェクトマネジメントのノウハウを
YouTubeで配信しています。
ブログと併せてご活用ください。

Comments are closed.