心の旅 blog

心だけでも旅に出れる

プログラムまでが設計だ!

ドキュメントレベルでの設計はできるが、プログラムが書けない人がいる。
もちろん悪いわけではないし、それでうまく仕事をまわしているのなら、なんの問題もない。

ただ、プログラマーは必ずしも必要ではなくて、いくらでも替えがきくし、勉強すれば覚えられる!と考える人も中にはいる。

それよりも、設計が正しくできる人が大切で、そして、それをプログラマーという替えが効く人たちをいかにうまく使って、期日までに仕上げられるか?というのが、プログラマーよりもスキルが必要になってくるし、替えがきかない仕事だと主張する。

それで仕事がまわるならいいが、僕はそういう人たちに対していつも思う。プログラムまでが設計だと。
プログラムが1番詳細な設計書であり、それをもとにシステムが動く。だから、いかに良いアーキテクト設計ができようが、プログラマーがショボければそのシステムはただのゴミになる。

この部分が理解できていないと、プログラマーと仲良くなれないんじゃないかな?と思っているし、1番味方につけておかないといけない人たちのはずが、そうではなくなってしまうと、いいシステムができるとは思えない。

だから、やっぱりあるプロダクトのマネージャーをやる人とか、やりたいと思ってる人は、プログラムとか技術への理解は必要だと思うし、常にアンテナを張り巡らせていてほしい。

上記で書いたような考えの人たちは、おそらくうまくプロダクトを作れていないと思うし、うまく継続できてないと思う。
なぜなら、機能要件は満たした設計はできるが、非機能要件までは考えられない人たちだからだと思う。優秀なプログラマーだと、もちろん非機能要件も十分に考える。それも踏まえて開発する。
しかし、エンジニアをないがしろにするものだから、機能要件を満たされているかしか、判断できない。
だから、非機能要件がどれだけ大切かいまいちわかっていないので、一見、開発は成功したかのように見えるが、蓋を開けてみたら、とんでもない技術的負債が出てきて、その借金を返せないまま、デスマーチに入ることが多いのではないかと思う。
また、技術的な知識に乏しいと、技術的負債も見積もれないので、どんどん膨れ上がり破産することも十分にありえる。

僕たちはこのシステムで飯を食っていかないといけないのだから、止めるわけにはいかない、だから新しく機能をどんどん追加していこう!なんか言ってる人がいると、とんでもなくやりづらい。。
このままこのシステムに対して機能を追加してもコストがかさむだけで、技術的負債も膨れ上がり、いずれ破綻しますよって説明しないといけない。
このシステムで、このプロダクトで、飯を食っていきたいのなら、尚さらこのシステムに対して見直さないと行けない時期がくる。

そこへの理解が正しくある人になるためにも、やはり技術的なこともある程度追いかけ続けなければならないと思う。