【エンジニアブログ】アジャイル開発について

こんにちは。
プロアクシアコンサルティングでオープンソリューション第二事業部に所属しています A.E です。

普段の業務では、.NET や Microsoft 365 などを利用したアプリケーション開発のマネージメント及びプログラミングと、アジャイルでの開発支援やコンサルティングを担当しております。

本日はアジャイル開発についてご紹介したいと思います。

アジャイルとの関わりは、どのような切っ掛けですか

プログラミングはかなり昔から関わっており、オブジェクト指向や .NET などは草創期のころから利用してきました。

1990年代後半に、ケント ベック が XP (Extreme Programming) を考案し、テストファーストや自動テストなどの考えを提唱していたことに興味を持ったことがアジャイルとの最初の接点です。

プロアクシアコンサルティングの中でアジャイルの取り組みやソリューションについて教えてください

弊社では、ビジネスのために素早くシステムを構築するための手段として、アジャイルを活用しています。
また、開発手法だけでなくプロジェクト内でのリスク管理の手段としても利用しています。

弊社で提供しているソリューションとしましては、お客様よりアジャイルでの開発プロジェクトを要望いただいた際に、開発手法のレクチャーやコーチングなどを実施しております。

どのようなお客様向けのサービスですか

アジャイルは、ビジネス IT と呼ばれるような、新しいビジネスを立ち上げるためのプログラム開発に適しています。

ビジネス IT の場合、既存の社内業務のシステム化などとは異なり、新しいサービスを創出していくための開発を行うため、開発開始段階ではどういったサービスが正解か明確になっていません。
このため、スモールスタートで開発したものをリリースし、運用を行いながらユーザーからのニーズを抽出してサービスの方向性を決定していきます。

アジャイルの開発手法では、イテレーションと呼ばれる小さな開発サイクルと繰り返し行いながら、イテレーション毎に機能をリリースしていく方法をとります。ビジネス IT の開発で、継続して機能改善や機能拡張を行っていくのと考え方が一致するため、最適な開発手法だといえます。

イテレーション毎に、開発しているサービスおよび開発手法の理解を深めていくことで、新しい技術を用いながら新しいサービスを効率的に開発を進めてい行くことができます。

また、アジャイルでは一定期間開発を進めたのちに開発内容の振り返りを実施し、開発の方向性や位置を確認しながら進めます。このため、ビジネス IT の開発でもリスクを最小化しながら進めることができます。

どのような実例、実績がありますか

アジャイルの教育としましては、アジャイルでの開発にこれから取り組んでいこうとしているお客様向けに、レゴのブロックを利用してスクラムによる開発の進め方を体験いただくワークショップを実施しております。

実際の開発プロジェクトへの支援といたしましては、アジャイルコーチとして参画し、お客様へアジャイルでの開発の進め方をレクチャーしながら、プロジェクトを円滑に進めれるようにご支援をしております。アジャイルにはいくつものプラクティスが準備されているので、日々のリズムやプロジェクトの大きなフェーズごとのタイミングにあわせて、適切なプラクティスを実施できるようにレクチャーさせていただきます。

また、アジャイルで開発を実施するために利用できる様々なサービスやツールなどもございますので、プロジェクトに合わせてツールの選定などもご支援しております。

従来の開発方法との違いや特徴、気を付けなければいけないことは何でしょうか

コーポレート IT と呼ばれる社内業務などのシステムを開発するには、従来のウォーターフォールでの開発が適しています。ビジネス IT や新しい技術を利用した不確実性があるような開発については、トライ & エラーが必要になってきますので、アジャイルでの繰り返し開発が適しています。
このように、どういった内容の開発を実施するのかを理解したうえで、適切な開発手法を選定することが重要です。

アジャイルでは、お客様と一緒に良いプロダクトを作るというマインドが重要になってきます。自分の担当範囲はここまでと線を引くのではなく、積極的にプロダクトを改善する気持ちをもって取り組むことが重要です。

たまに、アジャイルでは文書を書かないとか設計をしないなどの間違った情報を聞くことがあります。
アジャイルでも設計を行いますが、従来の手法とは異なるやり方で実施します。開発時のコミュニケーションの仕方についても、詳細な設計書を作成して開発内容を伝えるのではなく、みんなでディスカッションをして開発内容の検討と理解をしたのちに、その時に決まった内容を誰でもアクセスできる場所に共有していくなどの手法をとります。

このような適切な運用をせずに、楽をするためだけに間違った認識でアジャイルでの開発を実施すると、プロジェクトを上手く進めれなくなりますので注意が必要です。
プロジェクト管理の面では、繰り返し開発を行うため、ニーズや外部要因によって目標とするゴールが揺らぐことがあります。このため、計画を適切に管理していくことが難しい面がありますので注意が必要になります。

お客様のニーズを満たすためにどのようなアプローチを行いますか 

アジャイルを用いた開発では、アジャイルソフトウェア開発宣言にあるように、「個人と対話」、「動くソフトウェア」、「顧客との協調」、「変化への対応」 が重視されます。
このため、開発工程を機能単位の小さいサイクルで繰り返し行い、顧客のニーズを確認しながら優先度の高い要件から開発を進めることで、開発途中に発生するニーズの変化にも柔軟に対応できるようになります。

これにより、仕様変更に強く、プロダクトの価値を最大化することができるため、お客様にご満足いただけるようになります。

お客様にはどのようなメリットがありますか。

最近の開発では機能面だけでなく、ユーザーインターフェースの見た目や操作性も重視されます。

小さいサイクルで開発することで、早い段階から実際に動作するプロダクトを確認できるようになるため、実物を操作しながら議論や改善ができるようになります。

プロアクシアと共同で実施することのメリットは何でしょうか

弊社には、アジャイルマインドとプラクティスを理解した技術者が多く在籍しております。

アジャイルのプラクティスを理解した開発者だけでなく、アジャイルコーチができる技術者もいますので、自社だけでなく他のベンダーと協業する場合でも、プロジェクトを円滑に管理・運用することができます。

他にどのようなことに取り組んでいますか

ビジネス IT を担当する場合に、さらに上流の段階から対応できるように取り組んでおります。

このためには、適切な開発を行うための 「アジャイル」 だけでなく、問題を探求する段階ので 「デザイン思考」 や、適切に成果につなげる方法を検討する 「リーン」 も含め、プロジェクト全体を通してご支援できるように学習を継続しております。

今後どのようなソリューションを提供していきますか。

まずは、アジャイルコーチの要員の拡充を進め、開発段階の体制を強化していきます。
そのうえで、デザイン思考やリーンのに関するコンサルティングやコーチングのソリューションを提供していきたいと考えています。