5分間で読める記事

アジャイル:優れたソフトウェアを開発する方法

アジャイル開発の実践により、企業は多様性を受け入れ、生産性を促進する明確なプロセスのもとに結集されたチーム全体の力を経験します。アジャイルをこれほど強力なものにするのは、1つのことだけではなく、協力して行われる多くの取り組みです。なぜならアジャイルでは、チームがどれくらい効果的にソフトウェアを開発したかが、市場でのビジネスの成否を左右し、部分の総和が全体を上回るからです。


アジャイルソフトウェア開発とは?

アジャイルソフトウェア開発は、顧客にすばやく頻繁に価値を提供することを可能にする一連の手法です。アジャイル開発は、高度に連携した部門間チームによる、十分に計画された短いイテレーションを推進します。アジャイル方法論は、ウォーターフォールのような従来の順次的な開発と長いリリースサイクルの代替手段を提供します。

アジャイルは、あらゆる規模の企業(新興企業からエンタープライズまで)や大小のチーム、またほとんどのプロジェクトに適応します。一方、アジャイルを採用する組織は、文化的に変化を受け入れる準備をし、コーチングやトレーニングに取り組む必要があります。


Deploy B u i l d A c c e p t P l a n Iteration 1 D e s i g n T e s t Deploy d B u i l d A c c e p t P l a n Iteration 2 D e s i g n T e s t Deploy Deploy B u i l d A c c e p t P l a n Iteration 3 D e s i g n T e s t


アジャイルが重要である理由

より優れた透明性

利害関係者から、製品の制作に関わるチーム(テスター、開発者、設計者、プロジェクトマネージャなど)までの全員が参画し、今何に取り組んでいるのか、この先何をする必要があるのかが明確になります。

より優れた予測可能性

作業は明確に優先順位付けされ、期間は1、2週間を理想とする短いイテレーションが設定されます。新機能は、継続的なデリバリサイクルの一環として、頻繁かつ、より計画的に出荷されます。

優れた柔軟性

フィードバックまたは新しいビジネスニーズにより優先順位が変更されると、バックログ内でストーリーの挿入と順序の入れ替えが即座に行われます。

ビジネス価値への集中

利害関係者が機能の構築順序を決定し、ビジネスにとって何が一番重要かをチームに明確に示します。

ユーザーへの集中

ユーザーストーリーは、実際のユーザーのニーズに合致するよう設計されています。設計および開発された各機能は、漸進的な価値を提供します。

品質への集中

全ての作業は管理可能な単位と頻繁なビルドに細分化され、テストとレビューがより焦点を絞ったものになります。欠陥をより簡単かつすばやく見つけ、修正できることにより、品質が向上します。


IDC Market Analysis Perspective: Worldwide Application Development Software, 2016.

「新しいソフトウェア開発において、アジャイルは今やデフォルトのアプローチです。」

Al Hilwa
プログラムディレクター, Application Development Software, IDC



アジャイルを検討する際の考慮事項

世の中は、従来のウォーターフォール型の手法からアジャイル型のソフトウェア開発に移行していますが、アジャイルをうまく導入するには、ワークフローに関する考え方を変え、よくある落とし穴を認識する必要があります。始める前に、下記の事柄を明らかにしておきましょう。

チームは取り組みに前向きか?

アジャイルは非常に協働的なプロセスです。上から押し付けるトップダウンのワークフローではないため、全てのレベルが取り組みに積極的に参加する必要があります。人々のやる気を引き出しましょう。取り組みが組織や人々にどのようなメリットをもたらすかを説明し、単なる一時的な流行ではないことを保証します。アジャイルへの投資は、イノベーション、柔軟性、開発サイクルの短縮を促します。

一人でやろうとしていないか?

もしそうなら、考え直しましょう。アジャイルワークフローの導入について理解があり、前向きな人を見つけるのです。アジャイルを草の根レベルで浸透させ、この変更が影響を及ぼしそうな他のチーム、管理職、およびビジネスパートナーからの抵抗に対処できるよう、十分な後援者を確保します。できれば、物事をスタートさせ、正しい方向に導くためにコンサルタントを雇うことが理想です。これによってリスクが減り、時間的余裕をもって導入できます。

トレーニングの準備や実践計画は整っているか?

ワークフローの導入に向けて、チームをトレーニングする必要があります。このプロセスを怠ると、導入の失敗につながりかねません。アジャイルは、学びと遵守が必要な一連の方法論です。しかし単にトレーニングするよりもっと重要なことは、実践から学ばせることです。チームで実際のプロジェクトに取り組み、アジャイルのメリットを具体的に知り、推進させるのです。

変化のためのプロセスとツールに対して、皆の準備が整っているか?

現在どのような製品管理ツールを使用しているでしょうか。またそれらはアジャイルに適しているでしょうか。テスト駆動開発(TDD)、継続的インテグレーション(CI)、および継続的デプロイ(CD)の導入準備はできていますか。設計チームやUXチームの参画を得ていますか。組織が大きければ大きいほど、心や考えを合わせる努力が必要です。アジャイルの導入は必ずや実現可能で、うまくいけば、変化が組織全体に浸透します。

「Do or do not, there is no try.(「試してみる」ではなく、やるかやらないかだ)」 - ヨーダ(映画『スターウォーズ/帝国の逆襲』より)

皆が変化に対して前向きですか?

アジャイルの導入で、仕事が一時滞ることは疑いのないところです。ミスも発生するでしょう。問題の解決はスタンドアップ会議で行われ、チームは準備と計画を越えようとし、技術的負債の累積は許され、タスクは個人個人に割り当てられます。最終的には、チームがアジャイルに向けて懸命に取り組んでいる限り、課題を克服し、前進する方法を見出すことができるでしょう(多くの後戻りを通じて)。



大きな違い:アジャイル型とウォーターフォール型
共通の状況
アジャイル型のアプローチ
ウォーターフォール型のアプローチ
開発中、プロジェクトマネージャが新しい機能を追加することを思いつく。 最新の顧客要件やビジネス要件を満たした製品にするよう、追加機能は週次スプリント会議で追加されます。 開発者はすでに開発の設計段階や構築段階を終了しているため、6か月後に予定されている次のプロジェクト計画段階まで、新規機能の追加が拒まれます。
テスト中に致命的なバグが見つかる。 バグは週次スプリント会議の終わりに発見された。今後も小さな問題が見つかることを見込んで、開発チームは次週のスプリントカレンダーに修正作業を追加する。こうしてプロジェクトはスケジュールどおりに、また予算通りに進んでいきます。 プロジェクト全体のコードの書き方に影響するようなバグが、開発の最終段階で見つかった。バグ、さらにはアップストリームコードをフィックスするために予期せぬスケジュール変更が行われるため、プロジェクトが遅延し、予算オーバーとなります。
顧客やクライアントからフィードバックが提供される。 フィードバックは、次のスプリント会議が行われる前に、協働的かつ着実に設計に組み込まれます。 フィードバックは文書として提出されるが、次のリリースまでプロジェクトに組み込まれることはありません。



アジャイルとエクストリームプログラミング

エクストリームプログラミングは、アジャイル手法の一要素に数えられるもので、開発チームのニーズに合わせてプログラムを調整していきます。エクストリームプログラミングを構成する要素は、ペアプログラミングや全てのコードの自動テストのほか、機能のプログラミングはその機能が実際に必要になるまで避けること、シンプルで明確なコードにすること、時の経過とともに顧客の要件が変化することや問題の理解が進むことを前提とすること、顧客やプログラマー間のコミュニケーションを密にすること、などが挙げられます。





Pivotalにおけるアジャイル

25年以上にわたる経験は、生産的な人々は幸せな人々であることを教えてくれました。Pivotalでは、エクストリームプログラミングという形のアジャイルがすべての部門に浸透しており、一日の始まりから終わりまでのすべての業務を導いてくれます。



Pivotalの一週間
朝食

食事、ジュースまたはコーヒーを楽しみながら、同僚とおしゃべり。

9:00 AM
全社スタンドアップ会議

最新情報や興味深いできごとなどを簡単に報告。問題への解決策を皆に尋ねる機会にもなる。

9:06 AM
チームスタンドアップ会議

昨日までの作業について、また今日の予定についてチームで共有する。

9:15 AM
設計開始

ユーザーリサーチの遂行、ワイヤーフレームの作成、ビジュアルの設計、プロトタイプのコード化、クライアントへの指導など。

9:25 AM
昼食


技術会議

ケータリングのランチをとりながら、コード、プロセス、設計、または新規プロジェクトに関する情報交換をする。

12:30 PM
休憩時間に軽く運動
3:48 PM
週次チーム反省会

毎週金曜日、ビールやワインを飲みながら、何がうまくいき、何がうまくいかなかったか、また来週はどう改善したらよいかを話し合う。

5:00 PM
帰宅

残業や休日出勤は無し。金曜の夜ということで、連れだってバーに繰り出す社員も。

6:00 PM


アジャイル方法論に則った、当社チームの作業の進め方:

スタンドアップ会議やイテレーション計画会議を実施し、製品管理ツールであるPivotal Trackerを使用してストーリーについての協議、優先順位付け、追跡を行う

コードの品質を高めるため、ペアプログラミングを行う

Concourseといった継続的インテグレーション/継続的デリバリツールを使用して、コードの記述、テスト、およびデリバリを行う

全てをPivotal Web ServicesまたはPivotal Cloud Foundry上にデプロイして、顧客から承認をもらう

当社の実績あるスケールアウトデータ管理システムを使用して、継続的に反復する

Pivotの1日を垣間見るだけでも、当社の大小さまざまなプロセスすべてが、人に対して最適化されているのにお気づきでしょう。持続可能なペースで最高のパフォーマンスを発揮し、質の高い結果を出せるよう、小規模チームで働く人々それぞれに力がもたらされます。



Pivotalがもたらす転機
ホーム・デポ社は、Pivotalの技術を展開すると同時に、重要な人的課題やプロセス上の課題を克服することで、価値をより速くデリバリするというIT目標を達成しました。
メリルリンチ社に向けて、Pivotalはイノベーションの方法論を通じ、スピードを求める同社の希望に対応したソフトウェア開発の実践講座を提供しました。
技術的負債の低減を模索しているコムキャスト社はPivotalとタッグを組み、アジリティ、柔軟性、速度、弾力性、カスタマーエクスペリエンス、および実験へのフォーカスを強化しています。



Pivotal Labs
ソフトウェアの構築方法を変革する - 一度に1つのストーリー


Pivotal Cloud Foundry
完全に自動化されたセルフサービスデプロイを可能に


Pivotal Tracker
チームの成功に向けた、実績あるプロジェクト管理


アジャイル関連の資料をお探しですか?

全ての資料を表示

Get started with Agile
On Becoming Agile

続きを読む

Try agile project management now

Free trial

Meet our Agile Advocates

詳細を見る

Read Next
デジタル変革