モダナイゼーションはじめよう!と思ったけれど…
昨今、さまざまな新しいシステム開発手法、便利なツールが出てきており、大規模なウォーターフォール開発現場でも生産性向上を強力に推し進める武器となっています。それらの開発手法やツールは多くの開発現場で採用され、劇的な生産性改善、効率化を実現した事例も数多くあります。
このような形でレガシーからの脱却を図る「モダナイゼーション」は、「2025年の崖(※1)」を見据えて今後さらに加速していくことでしょう。選択肢が多いことは歓迎すべき状況ではありますが、反面、どの手法やツールを選べばよいか悩むことが多くあります。
大規模なプロジェクトであれば、導入による影響は非常に大きくなることもあり、どこからどうやって手を付ければよいのか悩むケースがあります。また、特に歴史あるプロジェクトになるとモダナイゼーションそのものに対する「抵抗勢力」も大きく、導入が頓挫するかも知れません。さらに何とか導入はしてみたけれど、期待した効果を得られず、失敗扱いされてしまうリスクもあります。
では、大規模なウォーターフォール開発プロジェクトのモダナイゼーションは、どのように推進すると最大限の効果を引き出すことができるのでしょうか。
2018年に経済産業省が発表したDXレポートに登場した、国内企業のDXの遅れを指摘し、DXがこのまま進まない場合2025年以降予想される経済損失は12兆円に上ると警告した問題。多くの企業が利用するレガシーシステムの保守サポート終了と、IT人材の不足が拡大するタイミングが2025年に重なることに起因する。
どんな新しい手法やツールも利用するのは「人」である
従来、大規模なウォーターフォール開発の現場では、構成管理にSubversion、チケット管理にRedmine、ビルドリリースではシェルスクリプトなどを利用して自動化するという手法が主流でしたが、昨今では構成管理をGitベースの構成管理ツール、CI/CD(Continuous Integration/Continuous Delivery)の手法やIaC(Infrastructure as Code)を導入するケースが増えてきています。
これらの手法、ツールの導入効果を耳にして「あちらのプロジェクトで導入できたのであれば、こちらのプロジェクトでも導入効果を出せるはず」と考えることはよくある話だと思います。ここでの大きな間違いは、効果を得られた他のプロジェクトと同じ手法、ツールを導入さえすれば、自身のプロジェクトでも同じ効果を得られるというところです。
手法やツールは生産性向上、効率化を成し遂げるための「道具」でしかありません。パソコンのアプリケーションのようにインストールするだけですぐに使えて、効果を発揮できるというものではありません。プロの料理人が使う包丁や調理器具を手に入れたからといって、何も訓練していない素人がプロの料理人と同じような料理を作れるようにはならないのと同じです。モダナイゼーションの手法やツールは「魔法の杖」ではありません。
別の誤りとして手法やツールの導入を完遂すれば生産性向上、効率化が達成できるからと、視野狭窄で適用を進めてしまうケースがあります。このケースの不幸なところは、ある程度の効果は得られるでしょうけれど、期待とはかけ離れた効果しか得られず、多くの場合で導入が失敗だったと判断されてしまう事です。投資に見合わない効果だったと判断されることもあるでしょう。当初の目的は手法やツールの適用でシステム開発における生産性向上や効率化を実現することだったはずなのに、視野狭窄な適用に陥ったことで手法やツールの導入自体が目的化してしまったために起きる事です。残念ながらこのようなケースは散見されます。
どんな素晴らしい先進的な手法やツールであったとしても、開発現場でそれらを使うのが「人」である限り、使いこなせるだけのスキルが利用者に無ければ宝の持ち腐れになってしまいます。また、手法やツールは「魔法の杖」ではありませんので、導入自体が目的化してしまうと残念な結果になってしまいがちです。
焦らず一歩一歩確実なステップを踏むこと
プロジェクト管理サイドでモダナイゼーションへの期待に胸を膨らませ、一気にさまざまな手法やツールの導入を推進しようとして、却ってプロジェクトを混乱させてしまったり、プロジェクトメンバー間の衝突を引き起こしてしまったりすることもあります。まずは自身の所属するプロジェクトが現状どのレベルにあるのか、何かしらの指標を用いて客観的に診断し、ゴールまでのステップを考えることが大事です。
図1:指標の例(筆者の担当で用いているCI/CD成熟度レベル定義)
大規模で歴史あるプロジェクトでは、古くからプロジェクトに携わるメンバーが少なからず居ます。そういった人々は長い期間使われ良い意味で枯れている安定した手法、ツールを使い続けることを強く望みます。一般的に人は多くのケースで安定している現状を変える事について拒絶反応を示します。モダナイゼーションする上でリスクはありますが、安定している現状を壊してまでリスクを取る事についての理解を得るのは相当な労力を要します。
そのような状況において、トップダウンで強引にモダナイゼーションを推し進める事は賛成できません。前述したように、どんな手法やツールであってもそれを使うのは人、つまりプロジェクトのメンバーになりますが、メンバーの賛同を得られない施策を成功させるのは至難です。最初の一歩としてプロジェクトメンバー、特に各チームのキーマンの心を掴んで、一緒にモダナイゼーションを推進して貰えるような状況を作るべきです。
キーマンの心を掴む近道は、失敗の無いタスクで小さな成功体験を積むことです。維持保守案件など、プロジェクトのメインストリームに影響が小さいタスクで手法やツールを実際に適用します。これは適用にあたってのカタログスペックだけでは見えない部分を明らかにすること、さらに実際使うことで手法やツールの習熟度を上げる意味合いもあります。この営みに際してはモダナイゼーションに前向き、悪くてもニュートラルな考えのメンバーを選定して実行すべきです。これは道なきところに道を拓くタスクになりますので、後ろ向きのマインドで良い結果は得られません。自身でアイディアを出して改良していくようなマインドが必要です。
小さな成功体験を重ね、実際の適用イメージを描いた次にすべきことはプロジェクトメンバー全体に向けた教育プランの策定です。新しい手法やツールの導入に際しては、いきなり手順書を渡して「今日からこれを使え」ではプロジェクトに混乱を招く原因になります。そのため導入前にハンズオンを企画しプロジェクトメンバー全員が実際に手法やツールのトレーニングを受けることができるようにすべきです。ハンズオンは成功体験を積んだメンバーに講師を担当してもらうようにすると、プロジェクトの内情を理解した上での説明ができるという点において効果的でしょう。
最終段階として本格的にモダナイゼーションを開始する際、特にプロジェクト開始当初は想定していない問題が多く発生する期間になります。いくら入念な準備をしていても、少なからず問題が発生します。そのため適用する手法やツールに長けたメンバーのアサインや、必要な時に問い合わせできる先を一定期間確保しておくことが重要です。規模が大きなプロジェクトでは特に油断大敵です。
図2:失敗しないモダナイゼーションの心得
おわりに
大規模プロジェクトは、大規模であるが故に関係するメンバーが多く、なかなか一枚岩にならない中でモダナイゼーションを推進するのは大変な困難が伴います。特に歴史の長いプロジェクトでは、少しでも想定と違ったり、期待したほどの効果が得られなかったりすると、大きな批判に晒されることも少なくないでしょう。
しかしこれからの時代、大規模ウォーターフォール開発プロジェクトでもモダナイゼーション推進は待ったなしの状況です。古くても良いものは残しつつ、時代に追従して変えるべきところは変えていく事が、大規模ウォーターフォール開発でも今後求められるのではないでしょうか。
DX時代でも通用する大規模ウォーターフォール開発プロジェクトの実現に向けて、今後もモダナイゼーションを推進していきます。