自働化・システム化
「自働化・システム化」はCIフレームワークで「軽く」「簡単に」
テスト駆動開発の導入と並行して、ビルド以降の一連の作業を自働化し、その結果を関係者で即座に共有できるようなシステムを導入します。これは、一般的には「継続的インテグレーション(CI:Continuous Integration)」と呼ばれます。「継続的インテグレーション」を実現するシステムを導入することで、自働化・システム化し、ムダを排除して、更に品質安定化のベースを作り上げます。
何を自働化するのか?
継続的インテグレーション(CI)では、下図の左側のプロセス(青のプロセス)を自働化します。
開発者は、開発対象のプログラムとテストプログラムを作成してビルドを実行します。ビルドを実行すると、自動的に静的解析・単体テスト・回帰テストを実行し、テストカバレッジを採取します。
静的解析では、最新のメトリクスとトレンドを見ることで、保守性を中心とした品質のデグレードが起こっていないことを確認します。
単体テスト・回帰テストは、要求通りにプログラムが作られていることを確認するとともに、テストカバレッジを採取することで、機能実現の進捗状況を把握することができます。
テスト駆動開発の導入と「継続的インテグレーション(CI)」による自働化により、品質向上と生産性向上を組織文化として定着させるための土台ができました。
自働化を実現するシステムとは?
ビルドにより得られる情報は、システムを通じてプロジェクト関係者全員が即座に共有することができます。それを実現するのが、下図のようなシステムです。
今回の例では、CI(継続的インテグレーション)のフレームワークであるJenkinsに、単体テスト・回帰テスト・静的解析・カバレッジツールを組込み、ビルドからの一連の作業を実行させます。
品質と進捗を毎日確認する
下図は、Jenkinsのダッシュボードの画面例です。この例では、ビルド履歴、単体テスト・静的解析のトレンドを見ることができます。これらの情報は、ビルドをする度に自動的に更新され、常に最新の情報を得ることができます。
このようにすることで、品質のデグレードや開発の遅れを素早くキャッチし、早い段階で適切な対応を実施することができます。
ここまでくれば、救済が必要だったレガシー開発は、品質と進捗が制御可能な状態となり、これ以上悪い状態に陥ることはありません。誰もが安心してプロジェクトを進めることができます。
最後の「③コード再生」については、「レガシーリファクタリング」をご参照ください。
レガシーリファクタリング頑張ってるけど、ちっとも楽にならない…何で?
すぐに成果を出すために頑張ってるけど、自前ではもう限界
効果的だろうけど高額なコンサルには手がでない…
あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。
レガシー救済プロジェクトの関連サービス
適用支援
レガシーシステム開発救済診断
「レガシー開発」の良し悪しを、定量・定性の両面で、経験豊富なコンサルタントが診断し、救済への道筋を提示します。
適用支援
レガシーシステム開発
レスキュー隊派遣サービス
「レガシー開発」を救済するためのプロジェクトを主導していく、通称『レスキュー隊』を派遣します。経験豊富なコンサルタントが、救済プロジェクトを主導していくとともに、「見える化」・「自働化」・「リファクタリング」など、ソフトウェア開発技術の知見と経験を併せ持つレスキュー隊が、実際に手を動かして、「レガシー開発」を救済いたします。
「リファクタリング」による品質改善についての理論を学び、問題発見・コードの変更・CIフレームワークを使ってのテストまでを実践する本格的トレーニングです。テスト自動化ツール「Google Test」とCIフレームワーク「Jenkins」を使用します。
EurekaBoxは、オンラインで学べる総合学習&実践プラットフォームです。このコースでは、これからリファクタリングを学んでいきたいという人から、実践している人に向けて、コンテンツを用意しています。リファクタリングの基礎から応用までをわかりやすく解説します。
レガシー救済プロジェクトに関する記事を見る
他のソリューションを見る
モデリング プロダクトライン開発
最新コラム
CASE時代に不可欠なサイバーセキュリティ& 機能安全
自動車産業における「CASE」は、便利さや効率性を向上させる一方で、セキュリティや安全上の問題を引き...
新しい事業の未来を左右するソフトウェア人財への実践的リスキリングとは
車載分野では自動運転やEV化などの技術革新やビジネスモデルの変化に対応するために従来のハード・メカ開...
プロダクトライン開発をアップグレードさせた『新たなプロダクトライン開発』でソフトウェアファースト時代に備える!
ソフトウェアを共通化する方法として、プロダクトライン開発がありますが、OTAを考慮するとプロダクトラ...
ソフトウェアファースト時代に不可欠な新たなプロダクトライン開発とは
自動車業界を中心に「ソフトウェアファースト」という言葉がもてはやされています。それは、目指すべき方向...