「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|solution of eXmotion

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法

近年の組込みシステム開発では、数十年前に構築した「レガシーシステム」を元に製品を構築する開発(レガシー開発)が主流となっています。しかし、長年にわたり追加と修正をし続けた結果、設計は忘れ去られ、コードは疲弊しています。そして、チームに蔓延するマイナス思考...しかし、そんなプロジェクトにも救済の糸口があります。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|悪しき習慣が組織文化となったレガシー開発をどのように救済するか?

十年以上前に構築されたシステムを元に、製品開発を続けている『レガシー開発』では、「大きな問題をかかえているものの当事者は何とも感じていない」というケースに陥りがちです。これはすなわち問題が常態化し、組織文化として根付いてしまっていることに他なりません。では、それをどのように救い出すか?ここでその概要について説明します。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|悪しき習慣が組織文化となったレガシー開発をどのように救済するか?救済が必要なレガシー開発とは?

度重なる変更・追加により、多くの人により修正が加えられた「つぎはぎ」のコードは、発生する問題が増え、それに合わせて収束するまでの時間も少しずつ長くなっていきます。また、古い開発環境は、新しい開発環境と比べると格段に生産性が低いのですが、それが普通になり、苦とは思わずに使い続けています。さらに、行き過ぎた個人主義により、問題があったとしても、なかなか表面化しません。新しく担当した人は、それを当たり前のこととして受け取るため、問題は常態化してしまいます。

そして、そのような状態が長期間放置されると、これが組織文化として定着してしまいます。

そんなレガシー開発を、我々は「救済が必要なレガシー開発」と位置付けています。その状態を改善するためには、常態化している悪しき習慣を断ち切り、良い習慣を定着させる必要があります。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|【レガシー開発の現場で起こっている問題】個人主義によるj開発⇒問題の発見が困難⇒問題が常態化/古い開発環境⇒効率の悪さ⇒生産性低下/度重なる修正・追加⇒つぎはぎコード⇒コード品質低下⇒【長期間放置】⇒【組織文化】長時間残業・スキル停滞・問題への感度低下⇒依存的体質・モチベーションダウン

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|悪しき習慣が組織文化となったレガシー開発をどのように救済するか?救済の3点セット

組織文化として定着したものを変えるのは容易なことではありません。救済するためにすべきことは、下図にある通り「チーム再生」「自働化・システム化」「コード再生」の3つですが、全てを一気に進めるのではなく、状況を見ながら、段階的に進めることが重要です。

まずは「チーム再生」でチーム内の風通しを良くします。これがすべての ベースとなります。その後、「自働化・システム化」を行います。ここまで出来てようやく「コード再生」に手を付けることができるようになります。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|救済の3点セット①チーム再生~良い習慣を定着させる
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|救済の3点セット②自働化・システム化~ムダをなくして効率化
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|救済の3点セット③コード再生~高リスクを排除する

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|コンサルタントが教える成功の秘訣

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|シニアコンサルタント・井上 一郎【専門分野】レガシー救済、リファクタリング、モデルベース開発(UML+オブジェクト指向)

多くのレガシーコードは、ハードコーディング、グローバル変数、コメントなし、複雑な依存関係、巨大な関数やコンポーネントなど、様々なアンチパターンから形成されています。このようなコードは、開発費の増大、開発速度のスローダウン、出荷後のバグ多発など、多くの問題を頻発させます。

「そういったコードは、『リファクタリング』すればいいじゃないか」という声が聞こえてきそうです。その通り、「リファクタリング」すればいいのです。ただし、何年にもわたってアンチパターンが積み重なったコードの「リファクタリング」には、非常に高度な知識、経験と粘り強さが必要です。簡単説明できる成功の秘訣などありません。それでもあえて言うとすれば、「リファクタリングのプロを探せ」です。

私と一緒に、レガシーコードを蘇らせましょう。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|関連サービス

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|実開発への適用支援
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|「レガシーシステム」開発救済診断

「レガシー開発」の良し悪しを、定量・定性の両面で、経験豊富なコンサルタントが診断し、救済への道筋を提示します。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|「レガシーシステム」開発レスキュー隊派遣サービス

「レガシー開発」を救済するためのプロジェクトを主導していく、通称『レスキュー隊』を派遣します。経験豊富なコンサルタントが、救済プロジェクトを主導していくとともに、「見える化」・「自働化」・「リファクタリング」など、ソフトウェア開発技術の知見と経験を併せ持つレスキュー隊が、実際に手を動かして、「レガシー開発」を救済いたします。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|リファクタリング 請負

低レベルから高レベルまで、お客様の状況・目的に応じて「リファクタリング」を請け負います。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|人材育成

「テスト駆動」「CI(継続的インテグレーション)」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|テスト駆動によるリファクタリング実践トレーニング

「リファクタリング」による品質改善についての理論を学び、問題発見・コードの変更・CIフレームワークを使ってのテストまでを実践する本格的トレーニングです。テスト自動化ツール「Google Test」とCIフレームワーク「Jenkins」を使用します。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|eXqutoを使った品質改善トレーニング

eXqutoを使った品質改善を実施するための、スタートアップ的な位置づけのトレーニングです。
ツールの使い方だけでなく、品質診断結果の読み解き方や、具体的な品質改善の方法など、実践するために必要なことを学びます。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|関連ツール
「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|C言語品質診断ツール eXquto

C言語で作られたソースコードの品質診断(定量化・可視化)するツールです。診断結果に基づく「リファクタリング」や、定期的診断による品質の変化の把握、客観的・定量的な診断結果による「ベンチマーキング」など、日常的な品質向上にお役立ていただけます。

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|サービスに関するお問い合わせ

「テスト駆動」「CI」「ライトなリファクタリング」等の導入で、無理なく開発プロジェクトを救済する方法|pagetop