「日本の技術者はどうなるべきか」について考えたこと(1)

最近、「日本の技術者はどうなるべきか」というお題について200文字で書くということを依頼されました。
200文字にまとめるのが結構大変そうなので、とりあえず文字数を気にせずに考えを書いてみようと思います。
今日から何回かに分けて、このテーマについて思った事を書きます。



IT業界は、よく製造業と比較されることが多いです。
私は製造業の人間ではないので語弊があるかも知れませんが、製造業においては同じものを大量に作る必要があり、その繰り返しの中で改善すべきところを改善していくことによって品質を高めていくということになります(もちろん、新製品開発によって品質を高めるという側面もありますが)。

よく言われるように、これがソフトウェア開発では、大量生産というのは単なるコピーで済むので、同じものを繰り返し作るということは基本的にはありません。時折、世の中にはすでに存在するものを自分で作ってみたり、自分で作ったものであってもあえて作り直したりすることはありえますが、そういったときというのは、仕様は同じであっても実装方法は大きく異なることが多いはずです(さすがに、同じ実装で同じ仕様のものを何回も作るのは無駄以外の何者でもありません)。

多くの場合は既存の製品(ソースコード)に対して機能追加・チューニング・リファクタリングを繰り返していくことが、ソフトウェア開発における品質向上になります。
ここで、日本人ならではの品質の高さ・きめの細かさを発揮するためには、ソースコードが改変に強いものである必要があります。
誰も読むことができず、ちょっとした修正を行うためにかなりの手間がかかってしまうようでは、積極的に気の利いた改変を行おうという気にはなりません。

そう考えると、日本人ならではの良さをソフトウェア開発でも発揮するためには、詳細設計(実装寄りの、デザインパターンとかの世界)についてのスキルや可読性の高いソースコードを書くスキルというのが重要になってくるのかな、と思います。
代表的なところではGoFデザインパターン本やマイクロソフトのCode Completeなどがありますが、そういったものを上っ面だけでなく、思想を含めて理解し活用できている人というのが重要になってくるのかなと思います。

最新の技術知識のキャッチアップも重要ですが、それだけでなく、こういった中長期的に通用するようなスキルも大切にして身につけていきたいです。