コピペ開発の終焉
ネットを検索すればあらゆる情報が見つかる。その中にはソースコードの断片も含まれるわけで、そのコードをコピー&ペーストしてくれば、それなりに動くソフトウェアがたちまち出来上がってしまう。規模が小さいソフトウェア開発ならそれでも通用するのだけど、規模が拡大するにつれてその問題点が露呈してくる。例えばこんなもの。
- 設計思想の欠如
そもそも、なぜそのような設計にしたのか説明できない。なし崩し的にコードを継ぎ足しているので、根本的なアーキテクチャやデザインパターンが存在せず、場当たり的対応の連続となり、まさに「崩れゆくアーキテクチャ」構成となる。 - 障害件数の増大
規模の増大に伴うクラス構成の見直しや設計の改善、継続的なリファクタリングが実施されないため、追加されたコード量に比例して複雑度も上がってしまう。その結果として、テスト時に明らかになる障害件数もコード量にそのまま比例する。 - 技術力の低下
ツギハギだらけのコードを見た新人君は「そんなコードを書けばよい」のだと理解し、同じようなコードを量産するようになる。かくして開発者のスキルは向上せず、開発チームの生産性も上がらず、競争力に劣るガラパゴス開発者の集団となる。
そんな設計破綻を引き起こさないためにも、システム全体としてソースコードに目を光らせる設計者*1が必要だろう。開発を上手く進めているチームでは、そのような役目のベテラン技術者がいることが多いようだ。ソースコードの質を維持管理するだけはなく、若手への指導も兼ねているのでチームとしての開発サイクルも円滑に回るのだろう。
新人君や協力会社の人、他部門から応援に来た人などから構成される混成部隊において、開発を迂闊に丸投げすればコードが荒れてくるのは当然の帰結だ。情報を他から取り込むこと自体は悪いことではない。必要なのは、そんな情報を取捨選択して上手く取り込みながらも、自分たちのコードの質を守っていく高いスキルだろう。コピペに頼る開発に未来は無いと思う。