コピペ開発の終焉

ネットを検索すればあらゆる情報が見つかる。その中にはソースコードの断片も含まれるわけで、そのコードをコピー&ペーストしてくれば、それなりに動くソフトウェアがたちまち出来上がってしまう。規模が小さいソフトウェア開発ならそれでも通用するのだけど、規模が拡大するにつれてその問題点が露呈してくる。例えばこんなもの。

  • 設計思想の欠如
    そもそも、なぜそのような設計にしたのか説明できない。なし崩し的にコードを継ぎ足しているので、根本的なアーキテクチャデザインパターンが存在せず、場当たり的対応の連続となり、まさに「崩れゆくアーキテクチャ」構成となる。
  • 障害件数の増大
    規模の増大に伴うクラス構成の見直しや設計の改善、継続的なリファクタリングが実施されないため、追加されたコード量に比例して複雑度も上がってしまう。その結果として、テスト時に明らかになる障害件数もコード量にそのまま比例する。
  • 技術力の低下
    ツギハギだらけのコードを見た新人君は「そんなコードを書けばよい」のだと理解し、同じようなコードを量産するようになる。かくして開発者のスキルは向上せず、開発チームの生産性も上がらず、競争力に劣るガラパゴス開発者の集団となる。

そんな設計破綻を引き起こさないためにも、システム全体としてソースコードに目を光らせる設計者*1が必要だろう。開発を上手く進めているチームでは、そのような役目のベテラン技術者がいることが多いようだ。ソースコードの質を維持管理するだけはなく、若手への指導も兼ねているのでチームとしての開発サイクルも円滑に回るのだろう。

新人君や協力会社の人、他部門から応援に来た人などから構成される混成部隊において、開発を迂闊に丸投げすればコードが荒れてくるのは当然の帰結だ。情報を他から取り込むこと自体は悪いことではない。必要なのは、そんな情報を取捨選択して上手く取り込みながらも、自分たちのコードの質を守っていく高いスキルだろう。コピペに頼る開発に未来は無いと思う。

*1:どんな名称が適切なのだろう?アーキテクト?ライブラリアン?ソースコードキーパー?