プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

設計では、むしろプログラミングスキルがあまりない方がいいかも

「プログラミング経験のない人がソフトウェアの設計をすること」の是非について、どう考えますか?

ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か - Social Change!

結論。私も、ほぼ同じ意見です。

「仕様の設計」は、ソフトウェアを作りたいと思う人(プロダクトオーナー)には、必ずしもプログラミングのスキルは必須ではないですが、そのソフトウェアのプログラミングを行うプログラマが一緒に入って設計しなければ、良い設計は出来ないでしょう。

ソースコードの設計」は、間違いなくプログラミングのスキルは必要になります。そもそも現代のプログラミングにおいて、ソースコードの設計とコーディングは不可分であり、それがもし分かれているとしたら、相当に非効率なことが起きているはずです。

初期の設計、いわゆる基本設計では、むしろプログラミングスキルがあまりない方がいいかも。プログラミングスキルが高いと、どうしても実装を考えてしまう。それ自体は悪いことじゃないと思うけど実装はあくまで手段であって目的じゃないことを意識していないと、いい設計にはならない。もちろんそこを分かった上で設計ができる技術者なら問題ないけどね。

初期の段階ではむしろプログラミング経験がない方が発想が広がっていい。「そんなの不可能だ!」って突っぱねるんじゃなくて、実現するためにはどうしたらいいのか。トレードオフは何か。っていうのをちゃんと提示できるのが腕のいい技術者だよね :)

いずれにせよ、ユーザ寄りの人・実現する人、その他関係者など、いろいろな人が議論を戦わせることでいいモノが生まれるんじゃないかとyasuhoは思います。力関係は平等がベスト。誰かが支配的になっちゃわないように出来るといいのですけど、なかなか現実的には難しいですかねえ…