ソフトウェア開発力強化支援
私たちのソフトウェア開発力強化支援の基本的な考え方・進め方をご紹介します。
Contents
1.目的
CORE CONCEPT に基づいて、以下の2つを目的に掲げています。
- ソフトウェア開発チームの開発力強化
- 自律的な継続改善能力向上
なにが開発力強化となるかは、開発チームのビジネス目標によって変わってきます。チームの現在地から目標地点へ向かう道標を、御社メンバーと共有しながら進めます。
ソフトウェアは技術進歩が速く、開発チームに求められる能力も変化し続けます。チームの自律的な改善能力の向上を支援します。
2.基本的な考え方
大きく3つの考え方を支援活動の軸にしています。
- 複数品質ゴールの設定とプランニング
- プラン実行への柔軟なサポート
- 改善サイクルの運用支援
1. 複数品質ゴールの設定とプランニング
3つの品質観点を共有することで、目指す開発力強化の方向を見失わないようにします。
ソフトウェア製品の品質ゴールは2つあります。製品付加価値を高める挑戦的な品質ゴールと不具合やリスクを低減させる防衛的な品質ゴールで、そのバランスはチームの目標と情況によって異なります。
もうひとつはプロセス品質ゴールで、主要な目的のひとつはソフトウェア開発活動の再現性を確保し結果を検証可能(改善可能)にすることです。製品領域や顧客からの要請により規格やスタンダードへの準拠が必要になる場合や、開発(文書類作成など含む)工数の低減・アジャイル化などのゴールを設定する場合もあります。
2. プラン実行への柔軟なサポート
まず基本的なサポートとして、定期的なミーティングによるレビューとフィードバック、メールなどによる個別相談を行っています。
実際のプラン実行はチームのみなさん自身で行えるのが最善ですが、新規技術導入のための事前調査をする工数がない、プロセス定義を0から始めるのではなく適当な叩き台が欲しい、などチームの事情も様々です。そうした場合はチームの皆さんと役割を分担し、直接サポートを行います。→ 追加支援の例
3. 改善サイクルの運用支援
私たちの支援もそれ自体が改善サイクルのひとつになるよう組み立ててあります。支援プロジェクトを通じて、チームメンバーみなさん自身の改善サイクルの向上を支援します。
3.支援の進め方
通常以下のステップで進めます。
Step 1. 問題認識共有と仮説・方向性の合意
オンラインもしくは御社拠点でのミーティングにて、現状と問題認識を伺います。そして御社の優先すべき課題にはどんなものがありそうか、その課題へどうアプローチするのがよさそうかなどの方向性について、ざっくばらんに議論させてください。
御社にとってのソフトウェア開発力強化とはなにか、現状と課題認識(仮説)、そして方向性を共有します。
- 最初から支援活動全体を発注いただくのではなく、まずはこのステップだけをオンラインセッションとして利用いただけます。→ スポットコンサルティング
Step 2. 御社拠点でのアセスメントとプランニング
御社開発拠点にて、実際の設計成果物類、管理ツール類、サポートドキュメントなど確認させてください。簡易的なアセスメントを行うことで現状を把握し、初期仮説の検証と課題の具体化・詳細化を行います。
それらを踏まえて御社メンバーとのミーティングを行い、課題の共有・優先度付け、アプローチ方針を協議しながら、ゴールとプランをまとめます。
- チーム規模などにもよりますが、2日〜 程度のアセスメント → 一旦持ち帰り結果まとめ → 後日再度訪問してワークショップ形式で課題整理・プランニング、というのがよくあるパターンです。
Step 3. オンラインもしくは御社拠点での実行サポート
御社の計画実行を支援します。基本は定期的なミーティングによるレビューとフィードバック、補足的なメール相談ですが、必要に応じて追加支援活動を承っています。
Step 4. 活動の振返り
目標への到達度、および活動そのものの振返りを御社メンバーと共に行います。活動結果のまとめと残課題の整理、次のアクションへのアイデア出しを行います。
ご要望に応じて Step 2 へ戻り、次フェーズのプランニングを行います。
4.追加支援の例
現場のニーズに応じて、以下のような追加支援を承ります。
弊社およびパートナーにて対応な範囲には限られますが、できる限り柔軟に対応します。また場合によっては他社のご紹介も行います。
以下、これまでの実績に基づく支援例です。
プロセス定義支援
- チームメンバーとのディスカッションを通じて得られたプロセスの定義文書・雛形類の作成
- プロセス要件(規格・スタンダードなど)に基づいたプロセス案の策定、定義
サポートツールの整備
- バージョン管理ツール、イシュー管理ツールのカスタマイズ、ダッシュボード開発
- テスト自動化のためのテストツール開発
導入候補技術調査
- 御社ニーズへの適合判断のための技術調査・試作
チームメンバー向けメンターシップ
- チーム全体ではなく特定個人へのメンターシップ
ソフトウェアエンジニアリング基礎講座・トレーニング
- 基礎的な知識不足を補うための講座など