それって仕事の範囲によるのでは?

あまりに見事に酷いお話という記事を読んでちょっと気になるのですが、彼らの仕事の範囲はどこら辺だったんでしょうか?A3フローチャートは彼らが作ったのか、それとも彼らは降ってくるA3フローチャートをプログラムに起こす仕事だったのか、どうなんでしょう?

それによって、笑い話が笑えない話にもなり得るような気がします。仮に後者だとして考えると、彼らには同情します。


もし後者の仕事を私がやるなら、A3フローチャートを再現するようにプログラムに起こしてしまうかも知れない…というか、確実にそうします。

構造化はフローチャート作成者が考えるべきことで、プログラムとして構造化は考えないです。フローチャートを崩してしまうので。テストも「A3フローチャートが再現されているか」のみのテストで、それが(誰かの)意図通り動作するかまでのテストはしない、むしろ出来ないです。

マジックナンバーだって、フローチャートの四角の中に「2」とか書いてあれば、コードとしても「2」って書きます。下手にフローチャートの意味を検討して、「この"2"は○○区分がほげほげな状態だから…」なんて考えてたら、結果的にそのフローチャートを崩すことになりかねません。

コメントが少ない件も然りです。フローチャートにラベルがあれば「フローチャートのこの部分です」っていうコメントくらいは残すかもしれませんが、意味のあるコメントを残すには日本語に起こすような意味解析をしなきゃいけないってことで、そこまでは手を出さないでしょう。時間があればその「隠れた要件」を汲み取るかも知れませんが、フローチャートのコーディングという状況なら、そこまでの予算も期間も確保できないのが普通だと思います。

というわけで、状況次第では単純に笑える話ではないのです。むしろこのように考えると、彼らがそう受け答えせざるを得ない状況が、ものすごく納得できてしまうわけです。


最後に注意して頂きたいんですが、id:minekoaさんが実際に携わった仕事記事にされた件は上で例示したような状況じゃなかったのか?!という意味で疑ったり批判してるわけではありません。もし仮にこうだとしたら笑えないよね*1ということが言いたいわけで、いずれにしても、結果的に酷いコードが残ってしまったという、誰にとっても嬉しくない事実だけは確かなわけで、こんなトラブルなんてよくある業界なわけで。笑うしかねーなぁ。

追記

もし彼らがフローチャートを実際に作ったとしても、それが元請-下請両者で承認され合意されたものだとしたら、「降ってきた」と同じ扱いになるだろうと思います。

さらに追記

ブクマでは「テストしないのは問題外」という意見もあるけど、安易にそれも言えないのでは?それが何に対するテストかわからないから。テストにも段階があるのは当然の話で、「どの段階のテストをどちらが実施するか」というのは決めてしかるべきだし、特に取り決めがない限り、仕様や設計、プログラムを作った側がその動作の試験の責任を負うのが普通です。

先の記事だけでは役割分担というか役務というか責任範囲というか、その辺の状況がまっっっったくわからない*2。だから俺には、コードが酷いに同意できても、その発注先が酷いとは決して口に出来ないわけです。

みなさん、どう思います?

*1:それでも面白い話だけど

*2:もちろん、あんまり安易に書けるものでもないだろうし。