32章完了したときが完了

神の名において、少し立ち止まり、仕事を止めて、回りを見渡しなさい。

――レフ・トルストイ

プログラムは多くのサブシステムから構成されています。個々のサブシステムは小さな部品から構成されています。コンポーネント、モジュール、クラス、関数、データ型などです。

臨時雇用のプログラマは、割り当てられた仕事を順にこなしていきます。ソフトウェアコンポーネントの構築や保守といった一連の作業を行いながら、一日が過ぎます。つまり、新たな部品を作成して部品を結び付けたり、既存のコードを拡張したり、修正したりといった作業です。

したがって、私達の仕事は、多くの小さな仕事の連続です。それは再帰的でもあります。再帰はプログラマが好きなことです。

まだ到着しないの?

仕事は完了している(とあなたは考えています)。

車の後部座席で「まだ到着しないの?」と絶えず大声で叫んでいる小さな子供のように、すぐに「まだ完了していないのか?」とマネージャが大声で叫んでいます。

これは、重要な問いです。ソフトウェア開発者が、この単純な問いに回答できることは重要です。「完了」がどのような姿なのかを知り、「完了」にどれだけ近いのかに関して現実的な考えを持つことは重要です。そして、それを伝えることも重要です。

多くのプログラマは、答えられません。仕事が完了したように思えるまで作業を続けたくなります。ほとんど完了しているのかそうでないのかをきちんと把握していません。「あぶり出すべき多くのバグがあるかもしれないし、失敗するかもしれない予想外の問題があるかもしれない。ほとんど完了したかどうかを判断できない」と考えます。 ...

Get ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.