プログラミングにしろマネジメントにしろ経験や知識が必要とされる職業だが、既に解がある問題をまた解いている面が強い。既成の問題パターンと解が列記されているハウツー本がいっぱいあるのはそのせいだ。アメリカのプログラミング業界なんかそのものずばりでクックブックと称した本が売っている。これはこれなりに結構重宝するけど。
テクニカルでもビジネスでもあるレベルに達すると、実世界のややこしさがいっぱいつまった問題を解く事を迫られる。この際の問題はバグとかではなく、ビジネス上の問題を解くという意味だ。この手の問題は特定のシナリオで起こる複雑多様な問題なので、解が無い。 探してもコピペできるコードが載っているレシピは無いのだ。
レシピを応用する事を第一に考えている2流、3流のプログラマーはこういう場面ではたいした仕事ができない。全体が見えず、自分で解を創造する訓練をしていないからだ。世の中にごまんといる2流、3流のエンジニアが作ったちょっとしたシステムやプログラムは中身がつぎはぎだらけの事が多い。全体像が見えないから次から次へと想定しなかった(想定できなかった)問題に当たるからだ。 できてきたモノがかなりの確率で肥大してて遅くメンテしにくいのはまさにこのせいだ。
目先の解答を探して来るのは誰でもできる。 実世界の混沌として束縛が多い問題をエレガントで効果的に解くのはそれではレベルが足りない。ビジネスにしろプログラミングにしろ一流レベルとは解を創造できるという事だ。
