サイバーエージェントを支える技術者たち

第40回 プロジェクト管理の課題をアジャイルで解決

この記事を読むのに必要な時間:およそ 3 分

要件の修正に寛容なアジャイル開発

アジャイルソフトウェア開発,あるいはアジャイルな開発手法の1つであるスクラム開発にはさまざまな特長がありますが,その中でも特に大きいのが「適応型」と呼ばれる開発スタイルです。ウォーターフォール型のソフトウェア開発では,ソフトウェアが備えるべき機能や必要となる性能をプロジェクト開始時に事前に定義し(要件定義⁠⁠,その内容に従って設計や実装へと進んでいきます。こうしたプロジェクト管理手法の問題は,プロジェクトがある程度進んだ時点で要件が変更されると,大きな手戻りが発生する可能性がある点です。特に長期間のプロジェクトとなった場合,環境の変化によって要件も変わるということは十分に考えられるでしょう。ウォーターフォール型のソフトウェア開発では,こうした変更に対応するのは容易ではありません。

これに対してアジャイルソフトウェア開発は「要件の正確な予測は不可能」という前提に立ち,そのときどきの状況変化に適切に対応するという考え方でプロジェクトを進めます。ウォーターフォールでの要件変更は,スムースなプロジェクト進行を阻害する要因ととらえられますが,アジャイルソフトウェア開発であればソフトウェアの完成度を高めるために必要なことだと変更を受け入れます。こうした特徴は,サイバーエージェントが提供しているようなサービスの開発にも向いていると寺本氏は説明します。

寺本隆彦氏

寺本隆彦氏

「これまで,開発の終盤に仕様が変わるというのはけっして珍しくありませんでした。たとえば,開発したサービスを実機で触ってみたら,いまいちおもしろくなかったといったケースです。また開発終盤で,テストのためにそれぞれが開発したモジュールを組み合わせてみたら,エンジニア同士の認識に齟齬(そご)があり,うまく動かないといったこともあります。こういったことが開発の終盤で起こると,当然ながら大きな手戻りが発生し,その結果プロジェクトが遅延する原因になってしまうわけです。しかし,アジャイルなスクラム開発では最も重要な部分,具体的にはおもしろさの肝となる機能や技術的にリスクの高いモジュールなど優先順位の高いところから開発します。このため,開発の終盤になって仕様が大きく変わったり,あるいは根幹的なバグが露呈するといったリスクを極力抑えられます。このメリットは非常に大きいですね」⁠寺本氏)

なお,渡辺氏と寺本氏は自身のチーム内ですでにスクラム開発を取り入れていると言い,これによってエンジニアとして気持ちよく働けるようになったと言います。開発手法を変えることで,なぜ気持ち良く働けるのでしょうか。

「今までと違うのは,毎日小さな達成感があるんですよね。3ヵ月間開発してリリースして始めて『やった!』ということではなく,スクラム開発のスプリントなら2週間に1度といった割合で達成感が得られるわけです。また,スクラム開発ではタスクが細分化されるので,具体的な進捗を可視化できる。こういった達成感が得られるところも,アジャイルのメリットではないでしょうか」⁠渡辺氏)

「長いプロジェクトでも,スプリントという単位で区切って働けるので,メリハリを付けて働けるのがスクラム開発のよいところだと思います。安心感も違いますね。一所懸命開発しているけれど,最後のテストで動かないんじゃないかっていう不安ってあると思うんですよ。多分大丈夫だと思いつつ,従来の開発手法ではその不安を完全に払拭できない。スクラム開発なら,実際に動いているソフトウェアが手元にあるわけです。その違いは大きいですよね」⁠寺本氏)

アジャイル開発を成功させるためのポイント

このようにメリットの多いアジャイル開発ですが,一方で実際にチャレンジしてみたが失敗したという話を聞くことも少なくありません。そこで,アジャイルでの開発を成功させるためのポイントを2人に聞いたところ,次のような答えが返ってきました。

「私が大切だと思うのは,やり続けるということですね。アジャイルも専門スキルなので,1回や2回やっただけでは身につかないと思うんです。たとえ失敗してもやり続けて,これは違うのか,あれは違うのかと経験を積み,工夫を重ねてやっと身につくものだと思います。まずは何度も繰り返しチャレンジすることが重要ではないでしょうか」⁠渡辺氏)

「まず1つはエンジニア以外の人たちの理解も必要だということです。チーム内外を含め,プロジェクトに関連する人たちに理解してもらわなければ,アジャイルのメリットを活かすことは難しいと思います。2つ目はチーム作りですね。アジャイルでうまく開発を進めていくためには,相互に助け合えるチームを作ることが重要ではないかと考えています。個人の生産性ではなく,チームの生産性が大切なんだという認識で,お互いに助け合って開発を進める。たとえば自分のところが終わっていて,別のエンジニアのタスクが終わっていないのであれば助けてあげる。そういった姿勢で臨むべきだと考えています。反対に絶対にやってはいけないのは,個人の生産性を競わせることですね。これをやると,チーム内で助け合うのではなく,自分のポイントを稼ぐことが目的になってしまうためです。自分たちのチームの中でも,その点はすごく気をつけています」⁠寺本氏)

スクラム開発の伝道師として壇上に立つ渡辺氏

スクラム開発の伝道師として壇上に立つ渡辺氏

なおサイバーエージェントでは,スクラム開発の導入が全社的な取り組みになりつつあるとのこと。同社におけるスクラム開発の伝道師として,渡辺氏と寺本氏が担う役割は大きくなりそうです。

サイバーエージェント公式エンジニアブログ
URL:http://ameblo.jp/principia-ca
エンジニアの生の声を週替わりでお届け中!

著者プロフィール

川添貴生(かわぞえたかお)

株式会社インサイトイメージ代表取締役。企業サイトの構築及び運用支援のほか、エンタープライズ領域を中心に執筆活動を展開している。

メール:mail@insightimage.jp