Appresso Engineer Blog

アプレッソのエンジニアが書く技術ブログです。

アジャイルへの挑戦と、アジャイルな挑戦 ~Agile Japan 2016 のロゴスポンサーになりました!

今流行りの男性育児休業から復帰した開発部の土岐です。社会復帰中です。

唐突ですが、今アプレッソ開発部で「アジャイル」が熱い! 頻繁に開発部の中で「アジャイルとは何か」「どうすればアジャイルにできるのか」という議論が繰り広げられています。2016年5月31日(火)に開催される「Agile Japan 2016」には開発部から十数名が参加し、気になるアレコレの話を聞こうと息巻いています。

AgileJapan2016

さらに鼻息荒く、今回「Agile Japan 2016」のロゴスポンサーとしてご支援もさせていただくことになりました。(上記ページにロゴスポンサーとしてアプレッソロゴが掲載されております)

f:id:tokita93:20160517171305j:plain

というわけで、今回はアプレッソ開発部がアジャイル開発に向かおうとした経緯を書きつつ、「Agile Japan 2016」の気になるプログラムをアプレッソ開発部の主観で紹介させていただこうと思っております。

なぜ今アジャイルなのか?

アプレッソ開発部は常々開発プロセスを改善し続けています。2001年6月にDataSpider 1.0がリリースされ、現在最新バージョンは4.0。このDataSpider開発の15年近くの間、アプレッソ開発部は数々の成功と失敗をしながら、改善を続けて成長をしようともがき続けています。例えばこのブログでも、以下のような取り組みが紹介されています。

appresso.hatenablog.com

appresso.hatenablog.com

このような改善を続けていっても、うまくいくこともあり、当然うまくいかないこともあります(ブログには中々うまくいかないことが書かれませんが!)。 そしてまさに最近、とあるプロジェクトで「うまく回らない」状態になったことがありました。それが「アジャイル開発」に向けて舵を切る直接気のきっかけとなったわけであります。 そのプロジェクトはどのようなものだったのか?

プロジェクトの「うまく回らなさ」

それは多くの開発者が関わり、開発範囲も大きいプロジェクトでありました。そのためテスト範囲も膨大。多くのテストを予定通り行うためにも、テストのスタートとなる開発期限日にすべての機能の開発が完了することが必要でした。

しかし実際には、開発期限日までには開発は終わりませんでした。当然のことながら、見積もり段階ではその開発期限日よりも前に開発が終わるはずでした。しかし実際は見積もりよりも開発時間は長く必要であり、それが分かったのが開発終盤の時期。進捗も不明瞭であったため、テストの本格的スタートがなかなかできず、結果としてプロジェクトは大きく混乱しました。プロジェクトが「うまく回っていない」状態となったのであります。

ソフトウェア開発の「不確実性」

プロジェクトの終了後、その原因について多くの検討を行いました。その中で特に大きな原因として挙げられたのは「見積もり」と「進捗管理」のやり方です。

「見積もり」については、プロジェクトの最初に個々の機能の開発担当者が見積もるというものでした。開発者は自分の知識や過去の経験から判断して、だいたいそのくらいに終わりそう、と判断して見積もっていました。しかしこの見積もり通りにプロジェクトが進みませんでした。

また「進捗管理」も基本的に個々の開発者に任せられており、定期的にプロジェクト・マネージャ-が個々の開発者に進捗確認をしていました。しかし実際に開発が進んでいくと報告された進捗と実際の進捗が異なることがあり、見積もりとの整合性が取られないままにプロジェクトは進んでしまい、結果として混乱を招いてしまいました。

では「見積もり」と「進捗管理」を正確にやりましょう、という結論を出すのは簡単です。しかしその「正確さ」を完全に達成するのは非常に困難である、というのが我々の意見でした。なぜなら、ソフトウェア開発にはその途中でさまざまな予見できないことが起こり、多くの「不確実性」が存在するからです。

実際、以下のようなことは非常によくあります。

  • 機能実装の難易度が高いところが実装終盤に見つかった
  • 修正したモジュールの影響範囲が想定以上に大きかった
  • 見積もり時に考慮漏れした要件がプロジェクトを進めていくと判明した
  • 他のプロジェクトで人員が必要になりプロジェクトチームを減らさざるをえなくなった

このような「不確実性」はすべてをコントロールすることは不可能です。ソフトウェア開発の「不確実性」を織り込んだ上で、プロジェクトをどのように回していくか。ということで開発部員から、「アジャイル」に真剣に取り組んでみるというのがいいのではないか、という意見が出ました。そこから検討した結果、「アジャイル開発」に本格的に取り組むことにしたのであります

アジャイルへの挑戦=アジャイルな挑戦

f:id:tokita93:20160520171912p:plain ▲開発部に並べられたアジャイル関連の書籍

「銀の弾丸は無い」はフレデリック・ブルックス氏の『人月の神話』で有名な言葉ですが、「アジャイル」が銀の弾丸となることは無いであろう、ということは開発部員の中でしっかりと認識しておこうと話しています。むしろ失敗することは多くあるであろうし、その失敗は恐れない。失敗から多くのことを学び、改善し続けて前に進んでいくことが一番重要であると思います。

「アジャイルに取り組む」=「失敗し続け、改善し続けよう」ということとして、全員で取り組んでいこうと考えています。

つまり、「アジャイルへの挑戦」そのものも「アジャイルな」挑戦であるということです。

具体的にどのように「アジャイル」に取り組んでいるか、というのは今回の記事では語りません。現在書籍などで勉強しながらさまざまな検討を行っており、今後このブログでアジャイルの取り組みを定期的に報告をしていく予定です。

「Agile Japan 2016 あなたとつくるアジャイル」に期待すること!

ということで、現在アプレッソ開発部でアジャイルへの取り組みを検討しています。さまざまな書籍などから知見を得る一報、具体的な適用方法や開発シチュエーションによる運用の変え方など、気になることも多くある現状です。そこで! 2016年5月31日(火)の「Agile Japan 2016 あなたとつくるアジャイル」でそのヒントとなるようなことが聴けるのでは、と期待を持って参加する予定です。

AgileJapan2016

ここでは、開発部員の期待するプログラムについてインタビューしてみたので、その中の幾つか紹介してみます。完全に主観の予想なので、実際のプログラムの内容とは異なる可能性がありますがご容赦ください。

「アジャイルなIoTプラットフォーム開発」玉川 憲 氏

http://www.agilejapan.org/program.html#keynote2

「IoTプラットフォームとしてのDataSpiderの機能強化も進む中、今IoT界隈で話題の中心となっている"SORACOM"の開発についての話が聞けるというのがまず楽しみです。新しいサービス・ビジネスを作るというときのスピード感をアジャイルによってどう実現しているのか? また「"非同期な"ソラコム開発チームの様子と、 "非同期"を実現するための組織、チーム作り」という"非同期"というキーワードがどういう意味なのか? とても気になります」

(by 開発部 開発チーム 田中)

「自社プロダクト開発現場でのアジャイルなプロジェクト運営記録」 by 大貫 浩氏、長沢 智治氏

http://www.agilejapan.org/program.html#a-2

「アプレッソと同じ自社プロダクト開発の話なので気になります。やはり自社プロダクト開発は受託開発とはさまざまな異なる面があります。特にアジャイルの言う「顧客」が自社プロダクト開発だとどのように捉えて運用していけばいいのか? など、どのようにアジャイルなプロセスの適用を行ったかの具体的な話が聞けそうで楽しみです。また長沢氏のアトラシアン社のソフトはアプレッソでも大いに活用しているので、実際どのようなプロセスで開発されているのかも気になります」

(by 開発部 開発チーム 佐々木)

「効果的な自働化を目指す! Value Stream Mapping 実践ワークショップ」 by 牛尾 剛氏、 原田 騎郎氏

http://www.agilejapan.org/program.html#d-5

「最近リーン(『リーン開発の本質』)とかカンバン(『カンバン仕事術』)とかイケてる感じがするし面白いなと思うのですが、「価値の流れにフォーカスする」というのが現実の自分の仕事にとって具体的にいったいどういうことなのか、イマイチ飲み込めないため、このワークショップを通してヒントを掴みたいと思います。」

(by 開発部 開発チーム 野口)

「まだテスト期間とかつくっているの? ~アジャイルな開発におけるテストとの付き合い方~」 by kyon_mm氏、otf 氏

http://www.agilejapan.org/program.html#d-3

「挑戦的なタイトル! しかしセッション概要にも書いている通り、確かにアジャイルな開発において"テスト"というのはすごく重要なものにも関わらずあまり大きくは語られてないので、とても興味があります。開発期間からテスト期間へ、という通常の流れではない方法のやり方を知りたいです」

(by 開発部 QAチーム 谷平)

「品質保証部門とアジャイル開発推進部門が一緒に歩んだアジャイル開発導入」 by 新井 和洋氏、石井 裕志氏

http://www.agilejapan.org/program.html#c-3

「品質保証部門に所属する自分としては、まさに今最も聴きたい内容のプログラムです。高い品質を維持しながら、どのようにスピード感のあるリリースをしていくか、というのは常に我々のチームの課題として考え続けていっているところで、アジャイルによってどこまで解決できるのか、という具体的な話を聞きたいです」

(by 開発部 QAチーム 伊藤)

終わりに

というわけで、大きな期待を寄せる「Agile Japan 2016 あなたとつくるアジャイル」は、参加者によるレポートを可能な限り即日掲載します。さらにその後座談会も開催予定。お楽しみに!

またアプレッソのアジャイルの具体的な取り組みも今後このブログで掲載していこうと思います。 我々は何を学び、何を試し、何を失敗し、そしてそこから何をまた学ぶのか・・・その一部始終をお届けしていければ、と思います(可能な限り・・・)。