The Dragon Scroll

Be just and fear not.

バランスが重要。

 エンジニアとは"職人"であり、その最大の関心事は、仕事であり
そのプロセスと成果であると、私は考えています。


システム開発は、一人ではできない。


小規模な仕事であれば、納期どおりに一人でもできるかもしれない。
しかし、基本的には、チーム(組織)で仕事を進めることになります。


そして、組織で仕事をすることと、職人として仕事をすることの間には、
相反する部分が存在があります。


 組織的に仕事を進めるためには、厳格な組織の規律があり、
全般的な生産性向上のために、様々な施策が取られる。
その内容は時として、息苦しく感じることもあるが、
組織の活動のためには必要なこととして強制される。
当然のことながら、逸脱は許されない。
ISOに沿った、開発業務に関する全ての事柄が手順化され、
標準化される。


 職人は、違う。標準化の世界からは、距離を置いて、
自身が最善と考えるやり方でプログラムの開発に挑む。
後輩の育成は、徒弟制度と同じだと考えている。
自分のやり方を見て、学ぶべきであると。
寧ろ、職人の世界なのだ、自分以外はライバルになる。
誰が、やがてライバルになる存在に塩を送る真似を
するだろうか。
標準化とやらがベストであると誰が決めたのだろうか?
それはムダな工数を生むだけだ。


どちらが正しいのだろうか?


 この両極端の世界のどちらか一方にだけ属する必要は
ないと考えています。
標準化は必要です。
それが無ければ、組織は烏合の衆であり、常に一から問題に
取り組む必要があり、工数は浪費される。


プロセスの標準化は、未開の分野に取り組むケースでは、
エンジニアを支援するものでもあるはずだ。
複雑で、成功に導くのに難しいシステム開発の上で、
道しるべとなる存在のはずだ。
そして、標準化された成果物は、後々にそのシステムに携わる
別のエンジニアの救世主になってくれるはずだ。


勿論バランスが必要だ。
標準化とは決して、単に"時間だけがかかり"、"苦しめるだけの存在"では
ないはずです。


そう、バランスが重要。


このことは、方法論でも同じと考えています。
とにかく重厚なドキュメントを作るべきなのだろうか?
設計は身軽で、テストファーストでコーティングを行えば良いのか?


どちらかに身を置いておくだけで、プロジェクトは乗り切れる程
システム開発とは単純なのだろうか。
いくつかの方法論の中で、そのプロジェクトに適したやり方を
自分で当てはめていく。
正解がないからこそ、難しいし、面白い。


エンジニアに必要なのはバランス感覚かもしれない。