1.レガシー化の問題はシステムだけに留まらない
新規構築されてから長い期間保守され、アーキテクチャが老朽化し、度重なる機能追加によって肥大化することで、ブラックボックス化してしまったレガシーシステムが社会問題となっています。
2018年に経済産業省が発表した「DXレポート(※1)」によると、約8割の企業がいわゆるレガシーシステムを抱えており、約7割の企業がレガシーシステムをDXの足かせに感じているとされています。ただでさえ不足しているIT人財が、属人化しているレガシーシステムの運用・保守に浪費され、DXなどの新たな投資領域にIT人財を割り振ることが難しくなるからです。こうしたことから、レガシーシステムへの対応は日本企業における喫緊の課題だということができますが、実はレガシー化するのはシステムだけではありません。ここではシステムの開発手法や開発に用いる技術に着目してみましょう。
経済産業省による2020年の「DXレポート2(※2)」では、ユーザ企業もベンダ企業も、DX推進に向けてウォーターフォール型の大規模開発から、アジャイル型の小規模反復型の開発へと移行する必要性が示唆されています。アジャイル型の開発はウォーターフォール型の開発に比べ、小さな開発を繰り返し行うことから、ビルドやデプロイ、リリース作業を行う回数が飛躍的に増加します。また、繰り返す開発の中でも安定した品質を保つため、テストを自動化し、ビルドやデプロイの流れ(パイプライン)に組み込む必要があります。すなわち、アジャイル型の開発を成功させるには継続的インテグレーション/デリバリー(CI/CD)や、自動テストは必須の技術であると言えます。アジャイル型の開発を行う組織は、こうした技術や手法を、繰り返し活用をする中で洗練させていき、より素早く確実で高度な開発を行っていきます。一方、旧来からのウォーターフォール型の開発をしている組織の中には、こうした開発に用いる技術や手法のトレンドを取り入れることができず、もう何年も同じやり方で固定化されてしまっていることがあります。これは開発手法や開発技術に関するレガシー化といっても差し支えないでしょう。
2.開発技術/手法のレガシー化による弊害
開発に用いる技術や手法がレガシー化することで、開発に関する1つ1つのタスクの無駄や労力が積み重なり、レガシー化していない組織と比較して相対的に生産性が低下します。また、ただでさえ技術者が不足しているといわれる中で、レガシーな開発をしている組織は、技術者の採用に苦労するでしょう。例えば、10年前であれば、まだ手動でビルドやデプロイを行っている組織は多かったと思いますが、現在ではCIツールを活用して自動ビルド・デプロイを実現している組織のほうが多いと思います。実際、PractiTest社による調査(State of Testing Survey 2021)によれば、約80%の技術者がCI/CDを採用していると回答しています(※3)。採用される側、すなわち技術者から見れば、前者のように手動でビルドやデプロイを行っている組織で開発に携わりたいとは思わないでしょう。技術者にとっては、自動化可能な作業を手動で実施させられるのはモチベーションが低下しますし、自動化されている職場のほうが魅力的に映ります。新たな技術を積極的に取り入れている職場のほうが、自らのスキルアップにもつながると感じます。結果として、前者のような組織では優秀な技術者を獲得するのが難しくなります。他にも、開発技術/手法がレガシー化することで、以下のような弊害があると考えられます。
- 前例のない取り組みや、新たな技術への挑戦、改善活動に対して消極的な組織と見られ、組織や企業のブランドが毀損する。
- レガシー化を免れている他組織と比較して、相対的に生産性が低下することにより、コスト競争力を失ってしまう。
- レガシーな開発手法/技術についての知見を持つ人材が限定的となり、保守・運用が困難になる。
- 既存の人材のリスキルを進めることができず、DXなど新たな取り組みを推進できない。
- 現在デファクトスタンダートとなっている技術を前提とした、今後生まれてくる新たな技術への追従が難しくなってしまい、更なるレガシー化を招いてしまう。など
実際、パーソル総合研究所が調査したITエンジニアのキャリア不安ランキング(※4)では、「技術やスキルの陳腐化」に関する不安が1位、「新しい技術やスキルの習得」に関する不安が3位となっています。同調査におけるITエンジニアの入社理由ランキングにおいても、「成長できる環境」が2位、「技術を伸ばせる環境」が3位と、レガシーな開発環境を捨てて、成長できる環境を求めるエンジニアの動向を読み解くことができます。レガシーな開発手法を改め、モダナイズしていくことでITエンジニアに望まれる環境を整備していくことは、積極的なIT戦略やDXを推進する企業にとって重要な課題だと言えるでしょう。
3.開発技術/手法のレガシー化を防ぐために
では、こうしたレガシー化を防ぐためにはどうすればよいでしょうか?単に「新たな技術の導入をすればよい」と考えるのは危険です。技術の進化は早いので、一時的な取り組みによって開発手法・技術をモダナイズしても、数年後にはまたレガシー化してしまいます。。重要なのは一度に多くのことを改善することよりも、持続的に開発に用いる手法・技術を改善することです。一度に多くのことを改善するためには、短期間で多大なコストがかかるだけでなく、大きなリスクも背負うことになります。しかし、少しずつであっても絶えず新たな技術を獲得し、学び、導入に挑戦することが継続できれば、徐々に開発手法・技術がモダンなものに置き換わっていき、2度とレガシー化することはなくなります。こうした持続的な取り組みを行うためには、組織文化が重要です。新たな知識の習得や学習が奨励され、既存のやり方に固執せず、時には少々のリスクを背負うことを厭わず、失敗が許容され、挑戦すること自体が賞賛される組織でなければいけません。例えば、業務繁忙を理由に社員に学習の時間を与えない、前例を踏襲したやり方以外を認めない、新たな技術の導入に失敗した責任を追及し、成功以外は許さない、という組織では改善活動は持続的なものではなくなってしまいます。
4.NTTデータにおける取り組み
NTTデータでは、トップ技術者の育成に向けた「技統本塾」等の社員の学習につながる施策(※5)を複数展開しており、筆者も塾長を務めています。また、開発に用いる技術や手法が硬直してしまわないように、社員による新たな知識の獲得や、プロセス改善の営みに対して、専門家が伴走することで支援する取り組みを開始しています。専門家が伴走することで、「自ら手を動かし改善取り組みを先導すること」や「小さな改善を繰り返して大きな成果を生み出すこと」といったプロセス改善のコツを伝えることができ、多くの組織が成果を上げています。このように社員の持続的な学習や技術習得を支援する活動と、学習した内容を使った開発プロセス改善を支援する取り組みを継続することで、私たちは開発手法・技術のレガシー化を防ぐための組織文化の構築を目指しています。
なお、こうした取り組みはソフトウェアテストシンポジウム 2022 東京(JaSST’22 Tokyo)(※6)において論文特別賞を獲得するなど、社外での評価も獲得しています。NTTデータは開発手法・技術のレガシー化にも着目し、社会に対してより高い価値が発揮できるよう、取り組みを続けていきます。