28-「魔法」に頼りすぎてはけない

プログラマが知るべき97のこと」の28個目のエピソードは、プログラマの知るべきスキルの範囲に関する話です。ソフトウェア開発では様々なスキルを持った人間が関わります。プログラミング、プロジェクトマネージメント、テスト・・・など多種に渡るスキルがあり、それぞれのスペシャリストが集まってソフトウェアを開発するのです。それぞれはスペシャリストとして自分のスキルに誇りを持ち、自分の持つ役割が重要で難しいものと考えるでしょう。ですが、他人の仕事については軽視する傾向があります。

自分が積極的に関わらない仕事に関しては、無意識のうちに簡単だと思ってしまうし、まるで「魔法」のように自動的にできるような錯覚に陥ってしまうのが人間の常です。

ソフトウェア開発では「銀の弾丸はない」という言葉が好んで使われます。これは、完璧な解決方法などなく、全てが自動的に上手くできるツールや手法はないという意味です。自動的に全てのバグを検出する自動テストツールも、遅れを自動的に検出し最適なリソースを配分する管理システムもありません。そこにあるのは、まるで「魔法」のように問題を片付けることの出来る経験とスキルを持ったプログラマやプロジェクトマネージャです。彼らは意図も簡単に難しい問題を片付けてしまうため、「実は簡単なのではないか?」と錯覚させます。しかし、彼らは長い時間をかけて学習し、様々な経験を積んでその「魔法」を習得してきたのでしょう。
プログラマとしてソフトウェア開発に携わり達人を目指すのであれば、ソフトウェア開発の全体を知る必要があるでしょう。上流工程からテスト・運用までプログラマとしては興味のない部分もあるかもしれません。ですが、どのようなスキルを持った人がどんな事をやっているかを知ることができれば、より自分のドメインの仕事を効率良くできるのではないでしょうか?
ソフトウェア開発はプログラマだけでは出来ません。プログラマだけであればそれは唯のプログラミングでしょう。ソフトウェア開発にはたくさんの開発者が様々なスキルを持って関わることを再確認し、自分のポジションを忘れずに周りもフォローできるようになりたいです。そんなスペシャリストの「魔法」を尊敬し、頼りすぎず、自分のものにする気持ちでいきましょう。

プログラマが知るべき97のこと

プログラマが知るべき97のこと