アジャイルとは「俊敏な」「素早い」という意味を持つ言葉で、大きな単位で開発を区切ることなく、その名の通り、短い開発期間単位を採用する開発手法群の総称です。そのため、開発中の仕様変更を柔軟に対応することができます。アジャイル開発は、現在の変化が早く、不確実性が高いビジネス環境において、市場価値を高めていくことに非常に有効な開発手法です。
最小限の機能を搭載したソフトウェアを早期に市場へリリースし、市場からのフィードバックを得ることで、ビジネスの成功確率を高める。
ビジネス環境の変化にソフトウェアを同期させ、ビジネス価値を高める。
初期投資を最小化し、ユーザが真に必要とするソフトウェアに成長させていく。
スクラム開発とは、従来の開発アプローチとは異なり、開発プロジェクトを1~4週間のスプリントという期間ごとに区切り、その期間内で企画からリリースまでの一連の活動を行い、部分的に機能を完成させるという作業を繰り返しながら、段階的に動作可能なシステムを作り上げる開発手法です。
お客様からスクラム開発を採用したことによる、多くの失敗事例を耳にすることもあります。
これはスクラム開発が、『軽量』で『分かりやすい』フレームワークであるがため、決められた内容だけに縛られた運用(まさに教科書通り)を行ってしまうために発生している問題です。スクラム開発には、プロジェクトの課題を顕在化させるという側面も持ち合わせたフレームワークであるため、常にそれらの課題に向き合っていくことが重要となります。
当社では、スクラム開発により顕在化した課題に対して施策・取り組みを行い、開発プロセスの中で改善活動を繰り返すことで、お客様の開発環境に合ったスクラムを『習得』するスクラムチームを立ち上げ、プロジェクトの成功を収めております。
①契約形態について
アジャイル開発を前提としているため、お客様内で詳細な要件がFIXしていない。
アジャイル開発における要件の流動性を優先させる場合、準委任型の契約にて対応する事をご提案します。
一括請負を前提として、細かな要件単位でお見積りをお出ししながら対応できます。また、お客様のニーズに合わせた契約形態にも対応可能です。
②決められたスケジュールに対する開発進行
大規模な初回開発で、サービスイン日程や搭載必須の機能が決まっている中で、
いろいろなスケジュール阻害要因が発生し、計画通りに進捗しない。
<スケジュール阻害要因>
・チーム外で進めている関連外部I/F
(サーバ、デバイス、連携アプリ)との日程調整
・機能開発順序の調整
(どうしても搭載優先度だけを考慮したものにならない)
作業タスク(ストーリー)を可能な限り最小化し、機能としてもUI部分・他連携部分などで細分化することで、スプリント単位で完結できる要件へ落とし込み影響を最小化します。また、要件の変動要素が少ないミドルウェア部などの場合、予めウォーターフォール型で要素機能の先行開発する、スクランブル方式をご提案させていただき対応した事例もあります。
③チームの自己組織化について
スクラム開発の理想形としては、開発チームが管理者から指示を与えられて作業を進めていくのではなく、自己組織化された開発チームが自ら作業を成し遂げるための最善策を考え、選択することを求められる。
開発進行の中でのメンバ成長を促すことは勿論のこと、事前にスクラム開発に合った要員人選されたチーム構成でご提案します。
また、スクラムマスターの有資格者を増やし、スクラム開発に対応できる要員育成に取り組んでいます。
④定期的なソフトウェアのリファクタリング
最終的な全体の仕様がFIXしていない状態で、細かな機能を繰返し積み上げていく開発の進め方となるため、設計や実装が複雑化してしまい、小規模な修正においても影響範囲が大きくなってしまう問題が発生する。
こうした技術的な負債を積み上げないよう、開発チーム自ら定期的なリファクタリングを改善タスクとして提案し、スプリントバックログに組み込むように取り組んでいます。
⑤試験自動化に関する取り組み
スクラム開発において、テストの自動化は重要な要素となっています。しかし、UIを持ったアプリケーションに対して効果的にテストを自動化するには、相当の工数が必要であり改善余地が存在する状態です。
単体試験のテスト自動化によるカバレッジ向上だけではなく、必要に応じてテスト駆動型開発を開発チームから提案します。
UIのテスト自動化については、Selenium、Appiumなど、案件に見合ったツール適用を提案することでテスト範囲拡大を図ります。
⑥予測しずらい未来予測
短い期間で小機能の開発を繰返し行うため、システム全体における進捗状況、品質状態が見えずリリースに向けたスケジューリングが行えない。
メトリクスを用いたデータドリブン型進捗管理と品質管理の導入を行っており、作業量の未来予測・作業の分析・施策検討を行っています。
<実際の5つの取組み事例>
・バーンダウンチャート等による
Sprint毎の進捗管理とけん制
・過去の実績よりデッドラインに向けた作業量の未来予測
・Sprint毎の生産性向上確認と対策検討
・蓄積データから不具合分析と強化試験の必要性判断
・Sprint毎に実装した規模とレビュー工数から品質確認と対策検討
当社は、アジャイル開発の「スクラム開発手法」の有資格者の人財に加え、最適なソリューションをご提案します。
プロダクトの最終決定権があるプロダクトオーナーをお客様に務めていただき、
スクラムマスターと開発チームメンバーを当社からご提案させていただく構成。
スクラムマスターが、プロダクトオーナーの業務をサポートしながら、お客様のプロダクト開発にマッチする開発チームの立上げをファシリテートします。また、プロダクトオーナーと開発チームのコミュニケーションを促進させる環境を築き、スクラム開発を成功に導きます。
プロダクトの最終決定権があるプロダクトオーナーをお客様に務めていただき、
お客様を支援する形で当社メンバーを配置、スクラムマスターと開発チームメンバーを当社からご提案させていただく構成。
スクラムマスターが、プロダクトオーナーの業務をサポートしながら、お客様のプロダクト開発にマッチする開発チームの立上げをファシリテートします。
プロダクトオーナーは、要件検討や関連部門との調整業務に大きな稼働が取られてしまいます。これらの業務を支援要員が対応することで、お客様がプロダクトオーナーとしての活動に注力できるようにします。また、支援要員がスクラムマスター、開発チームと密に連携することで、要件の整理、関連部門調整をスムーズに行い、スクラム開発を成功に導きます。
プロダクトオーナーをお客様、スクラムマスター、開発チームが他社で実施しているプロジェクトで、プロダクトオーナーを支援する形で当社メンバーをご提案させていただく構成。
プロダクトオーナーは、要件検討や関連部門との調整業務に大きな稼働が取られてしまいます。これらの業務を支援要員が対応することで、お客様がプロダクトオーナーとしての活動に注力できるようにします。
複数の開発チームで共通のプロダクトバックログから、1つのプロダクト開発を行う、大規模スクラム開発の実績もあります。
開発案件の規模に見合ったスクラム開発の体制をご提案することが可能となります。