Tips
コラム

DX推進に深く関わる「アジャイル開発」

DXについて調べていると「DX推進にはアジャイル開発が必要」のような文言出てきたりしませんか?
近年「アジャイル開発」「アジャイル型組織」「アジャイル思考」など「アジャイル」という言葉をよく耳にします。
DX推進とアジャイル開発には深い関りがあるんです!
東洋電装も新工場を「DX工場」と位置付けるにあたって「アジャイル」を浸透させる機会がありました。
今回の記事では「アジャイルとは」から、アジャイルに関係する用語や実際の事例を話していきますね!

そもそも「アジャイル」とは?

アジャイル開発の「アジャイル(Agile)」の意味は「機敏」「俊敏」「素早い」といった言葉でシステムやサービスをスピーディーにリリースするためのソフトウェア開発の手法の一つなんです!
2001年にアメリカのユタ州スノーバードに集まった専門家17人が提唱した「アジャイルソフトウェア開発宣言」によって誕生しました。

20年前に提唱された「アジャイルソフトウェア開発宣言」

専門家17人が提唱した、アジャイルソフトウェア開発宣言の内容は以下の通り

私たちは、ソフトウェア開発の実践、あるいは実践を手助けをする活動を通じて、よりよい開発方法を見つけだそうとしている。この活動を通して、私たちは以下の価値に至った。

プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

引用:アジャイルソフトウェア開発宣言

それまでの開発フローとアジャイルの特徴

それまでの開発フローは指揮統制され、プロジェクトマネージャーがタスクを開発者に引渡し、その日のうちにすべてのタスクが完了するかを確認する体制でした。
そのため開発者はビジネス全体や顧客のニーズへの理解が不十分な状態に陥ってしまいます。このようになってしまうとプロジェクト全体の方向性やビジネス上の視点に欠けることが多くなってしまい「この開発者は何も考えられない低次元の開発者なのか」とみなされることが多いのが今までの開発フローにおいて起きていた問題です。

そこで求められたのが「アジャイルソフトウェア開発宣言」によって明記された内容です。
その内容を要約すると、この4つになります。
※ 独立行政法人情報処理推進機構による要約

対面コミュニケーション
個人同士の対話を通じて相互理解を深めることで、よりよいチームが作られる。
実働検証
動くソフトウェアを使って繰り返し素早く仮説検証をし、その結果から学ぶことがよりよい成果を生み出す。
顧客とのWin-Win関係
お互いの立場を超えて協働することにより、よりよい成果と仕事のやり方を作ることができる。
変化を味方に
顧客のニーズやビジネス市場の変化は事前計画を狂わす脅威ではなく、よりよい成果を生み出す機会と捉える。

アジャイルの特徴

リリース計画
ソフトウェア開発の計画段階で厳密な仕様を決めずに、大体の仕様と要求だけを決めます。
これは「開発途中に仕様や設計の変更があることは当たり前」という前提があり、その後の実装フェーズで問題が起こる可能性はありますが、仕様が大体しか決まっていないので途中で変更があっても臨機応変に対応できます。
イテレーション(iteration)
アジャイル開発ではイテレーションと呼ばれるサイクルを繰り返して開発を進めます。
イテレーションとは「反復」という意味で小さな単位に分けられた開発を「計画」→「設計」→「実装」→「テスト」と行いながら、機能のリリースを数週間単位で繰り返します。
メリット
  • 途中で仕様変更があっても仕様を大体しか決めていないので臨機応変に対応でき顧客のニーズに最大限応えることが可能となる
  • 顧客側と開発者側が密接にコミュニケーションをとり、柔軟な対応が可能となる
  • 開発期間の短縮が図れる
  • 不具合発生の際に戻る工数が少ない
デメリット
  • 全体のスケジュールや進捗が把握しにくく、コントロールしにくい
  • 計画段階で厳密な仕様を決めていないため、開発の方向性がぶれやすい
向いている開発
仕様の変更が発生しやすいWebサービスや、近年増加しているWebアプリ、スマートフォンアプリの開発に適している

アジャイルと一緒に聞く用語

ここではアジャイルに関わる用語を説明していきます。

開発モデルのウォーターフォールとアジャイル

アジャイルと対比でよく使われるウォーターフォールモデルは知っていますか?
ウォータフォール開発とはシステムやソフトウェア開発で用いられる開発の一つで全開発作業をいくつかの工程に分けてその工程ごとに作業の管理をする開発手法の一種です。ウォーターフォールという名が示す通り、「滝(Waterfall)」のように落下するが如く開発が進む」ことから、その名が付けられています。

ウォーターフォールモデルの特徴

ウォーターフォールモデルは「開発手順が極めてシンプルで分かりやすい」という特徴があります。下表の通り、システムやソフトウェア開発には多くの工程(プロセス)が存在しますが、この工程を上から順番に行っていきます。

ウォーターフォールモデルの流れ

工程 詳細
1.要件定義 システムの機能や、開発に必要となる予算や人員を決める。
2.外部設計 ユーザーインターフェース(外見的な見た目のこと)を設計する。
3.内部設計 システム内部の動作や機能、物理データ部分を設計する。
4.コーディング 外部と内部設計に基づき、実際にプログラムを作成する。
5.単体テスト 作成したプログラムが、正しく機能するかテストをする。
6.結合テスト 複数のプログラムを組み合わせ、正しく機能するかテストをする。
7.運用テスト 完成したシステムが、実際の業務に使用できるかテストをする。
8.リリース テストが完了したシステムをリリースする。
ウォーターフォールモデル
メリット
  • 一工程を終えて次の工程に進むため進捗管理・工程管理や、業務の引き継ぎも円滑に行いやすい
  • 管理しやすい=予算立てや人員確保もしやすい=大規模な開発プロジェクトに向いている
  • 仕様を完全に決めてから開発を行うので完成品の品質を担保しやすい
デメリット
  • 「後戻りしない」が原則のため途中段階での仕様変更に弱い
  • 企画や要件定義をじっくりと行ってから開発を開始する分、開発期間が長期化しやすい
  • 後戻りが生じた場合、その工程が上流工程であるほど修正に時間とコストがかかる
向いている開発
ウォーターフォールモデル開発は家電や自動車に搭載する組み込みソフトウェアや、携帯キャリアの通信システムなど、障害の発生によって甚大な被害が生じる開発案件など「仕様変更を前提としないシステム」の開発に適している。

アジャイルを進めるためのスクラム開発

スクラム開発とは上記に挙げたアジャイルの亜種とも呼べる開発手法です。
スクラム開発はチーム全員で開発を進める手法のため、アジャイル開発の中でも、チーム間のコミュニケーションがより大切です。スクラムという言葉はラグビーの「スクラム」から名付けられた小さなチームからきています。
チームとして「何が必要か?」「いつまでに必要か?」「誰が何をやるべきか?」という視点からチームメンバーにタスクを振り分け、それぞれがそのタスクを達成することでプロダクトの完成を目指すのです。
それぞれの作業が、他の人の作業を支えている形になるので、チームワークやコミュニケーションが重要になってきます。

スクラム開発に必要な人材

役割 詳細
プロダクトオーナー(PO) 開発プロジェクトにおけるオーナーで意思決定を行う存在
スクラムマスター(SM)やステークホルダーとの連携によってプロジェクトを成功に導くのが役目
スクラムマスター(SM) 開発プロジェクトにおけるマネージャーのポジション
システム開発の指揮やスケジュール管理などが主な役目
トラブルが発生した際に解決役を担うことも多い
ステークホルダー 開発プロジェクトに資金提供を行うスポンサーの立場
直接的に開発に携わることは少ないが、POやSMに対する発言権を持つ存在
開発エンジニア 開発プロジェクトで実際にシステム開発を行うスタッフ
開発に必要なスキルを備えたエンジニアやデザイナーが採用される
開発エンジニアのスタッフ間の上下関係はなく平等であることがほとんど

開発の進め方

スプリント

スプリントという最長1ヶ月の開発単位の中で「計画」「日々の開発」「レビュー」を行い振り返りまでを行います。
振り返りの中で多方面の改善点を洗い出し次のスプリントに活かしていくのがスクラム開発の流れとなっています。

アジャイルの実例

変化が激しいビジネスの世界で優位に立つには、DXへの取り組みが欠かせない世の中となってきています。
それに伴い市場環境も急速に変化しているため、素早い対応が求められます。アジャイル開発は、小さな段階的な開発サイクルを繰り返す開発方法のため、顧客ニーズを優先し、開発の方向性を柔軟に変更できます。
これにより、最終的には顧客満足度の高い製品を開発でき、様々な変化に急速に対応することが可能だからです。

ここでは東洋電装が取り組んだアジャイルの実例を紹介いたします。

DX工場でのアジャイル(スクラム)

縦割りで行なっていた制御盤製造工程をアジャイルモデルを参考に再構築しました。その結果、各工程の担当者同士でのコミュニケーションを取る場が設けられ、多方面からの視点が増えたことで、様々な改善策が出されるようになりました。

縦割りの制御盤製造工程を工程ごとでスクラムのように振り返りを行った実例

デジタルサイネージでのアジャイル開発

3か月後に導入したいとお客様から要望があり、設計・開発・納品。
デジタルサイネージのため実際にお客様が設置後にエンドユーザー様からさまざまな要望が発生。
開発をアジャイル開発で進めていたことで、新機能の追加や初期仕様の変更にも対応することでお客様の要望に最大限応えることができました。

アジャイル開発で短納期での納品に対応しつつ要望に最大限に応えることを可能にした実例

まとめ

今回ご紹介した「アジャイル開発」メリットデメリットありますがDX推進には欠かせない開発技法となっています。
DXは、デジタルテクノロジーを駆使して、経営やビジネスプロセスを再構築することです。単にシステムをIT化するのではなく、企業のあり方や働く人の働き方を変化させることを目指しています。DX推進のためにまずは作業の仕組みから変えていきましょう!
実際にアジャイル開発はDX工場でも使い、機能してきている最中です!

実際の現場を見てみたい!話を聞いてみたい!
そんな企業様おられましたら、是非一度弊社の工場見学へお越しください!

【参照サイト】

ソリューション

ご依頼・ご相談など、お問い合わせは、
下記フォームからお願いいたします。