LAC WATCH

セキュリティとITの最新情報

RSS

ラックピープル | 

アジャイル開発に必要な3つのファクター

技術革新部 アジャイル開発センター長の大沼です。

近年、ビジネス環境の急速な変化に伴い、迅速かつ適応的にソフトウェア開発を行う、アジャイル開発を採用するケースが増えてきています。しかし、アジャイル開発は様々な要因で実践するのが難しいという声もよく聞きます。

アジャイルなソフトウェア開発手法を実践するために必要なことは何でしょうか。アジャイル開発センターとして、多くのアジャイル開発案件を支援してきた中で特に必要としている点を、お届けしたいと思います。

アジャイル開発の実践には何が必要か?

アジャイル開発未経験のエンジニアが、アジャイル開発を実践するには何が必要でしょうか。アジャイルとは変化に対応するための考え方であり、以下のようなアジャイルソフトウェア開発宣言の考え方に基づいた開発がアジャイル開発です。

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

しかし、アジャイル開発の定義や考え方を理解しただけでは、アジャイル開発を実践できるとは限りません。定義や考え方は大事ですが、実際に作業をするためには具体的な手段が分からなければ作業を開始できません。では、アジャイル開発をするために必要な手段とはなんでしょう。私たちは、アジャイルの知識と業務分析力と技術の3つが重要なファクターだと考えています。

ファクターその1:アジャイルの知識(フレームワーク)

まず1つ目は、アジャイル開発に欠かせないフレームワークです。アジャイル開発は考え方なので、実際に作業をするためにはアジャイル開発の考え方に則った作業の手順が必要です。

アジャイル開発の考え方を実現することに適したフレームワークの1つに「スクラム」があります。アジャイル開発において採用数が最も多く、実績や情報源の多さに優れています。

スクラム概要図
スクラム概要図

では、スクラムに関する十分な知識を持っていればアジャイル開発を実践できるでしょうか。実際のところスクラムの知識だけではアジャイル開発を実践するのは難しいでしょう。スクラムはフレームワークなので、具体的な作業の手順にはなっていません。

スクラムは具体的な作業手順を示さず、チームが成長する過程においてチーム自身が作業手順を確立することを想定しています。チームの成長という点においては有用ですが、初めてアジャイル開発をするエンジニアに対しては、やはりなんらかの作業手順としてのプラクティスがあった方が良いと考えます。

ファクターその2:業務分析力

2つ目は業務の分析です。これはアジャイル開発を実践するうえで、何を作ればよいかを正しく認識するために必要です。アジャイル開発ではお客様へ提供する価値を高めるために何が必要かを考えることが重要なので、そのためにも業務をしっかりと分析します。

一方で、スクラムでは業務分析した結果をプロダクトバックログで管理しますが、ここにもスクラムを実践する難しさがあります。まず、プロダクトの開発を始める前にプロダクトバックログが必要となりますが、初期のプロダクトバックログには少なくともそのプロダクトが価値を提供できる最小限の機能を満たすものが含まれていなければなりません。そのためには業務を十分に分析し、十分な量のプロダクトバックログが必要です。

しかしながらプロダクトバックログが十分であるかを完全に予測することは困難であるため、業務分析にコストをかけすぎても後々で無駄になる可能性がありますし、逆に業務分析が不足していると価値を提供できるか検証できなくなってしまいます。

最初のプロダクトバックログを作りスクラムでの開発が進むとフィードバックを受けながら業務分析も行い、その結果をプロダクトバックログで管理します。このときに、以下のような点が課題となります。

  • 粒度はどの程度にするか
  • どのような情報をどこまで詳細に含めるか
  • プロダクトバックログアイテムの優先順位をどのように決めるか

例えば、ECサイトで利用ユーザーにおすすめ商品を提案するという価値を考えた場合、初めてプロダクトバックログへ追加するときにどこまで検討するか難しさがあります。なぜならおすすめ商品を提案することが不要(一覧表示で十分、キャンペーンサイトで十分等)になるかもしれませんし、他に重要な価値(決済方法を増やす等)があるかもしれません。そのため初めてプロダクトバックログへ追加するときに詳細化しすぎるのは無駄になってしまう恐れがあります。しかしながら、詳細化されないままでは実現はできませんので、いずれは詳細化しなければなりません。

このようにプロダクトバックログは一度作れば終わりではなく常に更新し続け適切な状態を保たなければならず、スクラムを実践する難しさの1つでもあります。

ファクターその3:技術

最後は技術です。アジャイル開発では一般的なソフトウェア開発の技術に加えて「プロダクトを更新し続ける技術」が必要です。

更新し続けるための具体的な技術はこちらです。

  • バージョン管理システム
  • リファクタリング
  • 自動テスト
  • CI/CD

実際にプロダクトを更新し続けるためには、リファクタリングをして変更しやすい状態を保ち、変更の度に自動テストにより問題がないことを素早く繰り返し確認する必要があります。さらに、バージョン管理システムで変更を管理し、CI/CDにより自動的に統合、デリバリーできるようにすることも重要です。

開発風景
開発風景

さいごに

アジャイル開発をするために必要な3つのファクターについてご紹介しました。少なくとも、これらのいずれかが欠けてもアジャイル開発ができるとは言い難く、最低限必要なものと考えます。次回は、アジャイル開発に必要な3つのうち、「業務分析力」についてより具体的にお話しいたします。

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • セキュリティ診断だけでは不十分?ラックのシステム開発でのセキュリティ取り組み

  • セキュリティ診断だけでは不十分?アジャイル開発やDevOpsのセキュリティ対策

  • システム開発におけるニューノーマルとは~日本政府が指摘する「VUCA」がDX実践の鍵