ObjectSquare [2012 年 6 月号]

[レポート]


Agile Samurai Dojo Gathering 参加レポート

株式会社 オージス総研
組み込みソリューション第二部
大西洋平

目次

1. はじめに

3月24日に、日本全国の「アジャイルサムライ」読者、原著者Jonathan Rasmussonさん、監訳者西村直人さんと角谷信太郎さんが一同に集う「Agile Samurai Dojo Gathering」というイベントが開催されました。Agile Samurai Dojo Gatheringでは、プログラムにもある通り著者陣による講演だけではなく、実践者によるLTや参加者同士がアジャイルについて熱く議論するワールドカフェが行われました。

本レポートでは筆者がワールドカフェで議論した内容や、”組み込みソフトウェアエンジニアの視点”でJonathan氏に質問した内容をレポートします。すでにイベント参加者が書いた素晴らしいレポートが公開されていますので、イベント全体について詳しく知りたい方は以下を参照してください。

ブログ

togetter

2. ワールドカフェ「アジャイルを導入する上で解決すべき課題は何か?どう解決するか?」

各種講演が終わった後、参加者全員が数名のグループに分かれ、ワールドカフェを行いました。私は、アジャイル開発の実経験はなく実際に取り組む時にどのような問題に対処していく必要があるか関心があったため、初心者向けテーブルの「アジャイルを導入する上で解決すべき課題は何か?どう解決するか?」というテーマに参加しました。

2.1 開発者が開発に集中できる環境を作る

最初のグループのディスカッションで印象に残ったのが、ECサイトの開発でプロダクトオーナとプロジェクトリーダーの役割をやっているというAさんの意見です。Aさんは、プロジェクトを進める上で大きな問題になるのが、プロジェクト外部からの干渉だと答えていました。余計な作業が割り込んでくることで、本来の開発者の仕事に集中できなくなる点で大きな問題があります。

そのような環境の中で、Aさんが特に注意して取り組んでいるのが、開発者が本来の開発に集中するための環境づくりです。Aさんはプロジェクトリーダーとして責任を取るかわりに外部からの干渉はなるべく遠ざけるように努力していると話していました。ただし、プロジェクトがうまく回らなくなると干渉を遠ざけるような権限は持てなくなるため、「絶対にプロジェクトを成功させる」という強い決意を持って仕事にのぞんでいるそうです。

私自身はこれまで技術的なプラクティスにのみ中心に強く関心があり、開発者の環境つくりにそれほどは関心を持っていませんでした。しかし、Aさんの話を聞いて、開発者が本来の役割にいかに専念できるかが、アジャイル開発を初め、新しい取り組みを成功する上で重要だと感じました。

2.2 アジャイル開発を実践するための基礎的なスキルをちゃんと身につける

次のテーブルでは、計測機器のPC側アプリの開発をしている開発者Bさんを中心に技術的なプラクティスの導入についてディスカッションしました。Bさんは、プロジェクト内ですでにTDDやCIなどの技術的なプラクティスのみを導入されているということでした。

他の方からは、Scrumを実践する上ではTDDやCIという技術的なプラクティスを実践するスキルが非常に重要だという意見が挙がりました。これはアジャイルに限らず、ソフトウェア開発全般に言えることですが、技術的な裏づけがない状態で形式的な作法だけ導入しても失敗する可能性は非常に高くなるからです。そのため、いきなりScrumを導入するのではなく、まずはソフトウェア開発の基礎的なスキルの習得、そして技術的なプラクティスを段階的に導入するべきだという意見が挙がりました。

新しい手法が注目された時に、それを実践できるスキルがない状態で形式だけ取り入れて収拾がつかなくなるという状況はよくあると思います。いろいろな失敗談を聞き、アジャイルを始める際も小さく始めることが大切だと感じました。最近では、アジャイル開発のプラクティスを学ぶ実践形式の勉強会が毎月のように開催されているため、スキルに自信がない人はまず勉強会で経験者から教えてもらうことから始めると良いのではと思いました。

2.3 関心がない人に押し付けず、本人が自分からアジャイルに取り組みたいと思えるような環境づくりをする

最後のテーブルには、マスター・センセイことJonathanさんが急遽参加することになり、私は通訳兼ホスト役という役回りをやりました。その時のテーマは、「周囲の人が自発的にアジャイルに取り組んでもらえるよう、どうモチベーションを高めるか?」です。

私自身は相手をうまく誘導するような心理的なテクニックの話が出てくるかと予想しましたが、Jonathanさんからのアドバイスは「相手を変えようとするとするな。相手が自発的に取り組みたいと思ってもらえるようにしろ。」というものでした。

Jonathanさんからのアドバイスは次の通り。

ワールドカフェの後に他の方から聞いた話では、このような考え方は組織に新しいアイディアを導入する方法について書いている「Fearless Change: Patterns for Introducing New Ideas」という書籍でも紹介されており、新しいものごとを始めていく時の重要な考え方とのことでした。

アジャイル開発のコーチングを生業としているJonathanさんですら、他人のモチベーションを引き出すのは難しいと明言されたのを聞いて、アジャイルの実経験のない私が他人をどうこうできるものではないと理解できました。まずは、自分が楽しんで仕事すること。それが最優先だと感じました^^

3. Jonathanさんに突撃Q&A

大会の全プログラムが終了し、参加者がビアバッシュ(懇親会)で盛り上がっている頃、ビール片手にJonathanさんへ1対1で質問をしました。私は組み込みソフトウェアエンジニアなので、質問内容は組み込みに関するものになっています。

3.1 組み込みシステム開発もアジャイルになれるか?

最初の質問は「組み込みシステム開発もアジャイルになれますか?」です。組み込みシステム開発を対象としたアジャイルの話を見聞きする経験がこれまでなかったので、Agile Samurai Dojo Gatheringへの参加を決意した時からJonathanさんに質問してみようと決めていました。

当然、Jonathanさんは組み込みシステムの開発者ではないので、あくまでも組み込みシステム開発がアジャイルになりにくいと私が考えている特徴をかいつまんで話し、ディスカッションを通じて、少しでもアジャイルになるような方向性を話し合いました。

その時に、私の個人的な意見として挙げたのが、組み込みシステム開発においてハードウェア開発や品質保証のプロセスが非常に時間のかかるものだということです。例えば、以前、家電製品を反復型開発プロセスで開発するプロジェクトに在籍していた頃は、1〜2ヶ月のイテレーションでソフトウェアとハードウェアの部隊が所定の機能をそれぞれ実装し、最後に両者を結合して、1週間近くかけてシステムテストとして新規機能とリリース済み機能を網羅的に確認するという作業を製品リリースまで繰り返していました。

最近では、FPGAといったハードウェア記述言語でソフトウェアと同じように回路を設計するプロジェクトも多くありますが、そういった技術を取り入れられないプロジェクトでは、やはり相対的にハードウェア開発と品質保証の期間が長くなりがちです。

そのような話をしたところ、Jonathanさんからは「ハードウェアの話は全然分からないんだけど」と苦笑いしながら前置きをした上で、以下のようなアドバイスがありました。

Jonathanさんとのディスカッションの中では詳細まで踏み込みませんでしたが、これまで経験してきたプロトタイピングを重ねるやり方はリスクを減らす方法として妥当ではないかと感じました。また、アジャイルが先行している他業界の経験を学び、エッセンスを取り入れ、組み込みシステム特有の問題を自分たちで解決していく必要があると感じました。

3.2 ハードウェアエンジニアとソフトウェアエンジニアがうまく協力するためにはどのような姿勢が必要か?

Jonathanさんが言う「役割の違うプロジェクトメンバがお互いを尊重し合って協力していくべき」という話は非常にアジャイルらしい良い話だと理解しました。しかし、ハードウェアエンジニアとソフトウェアエンジニアは両方ともエンジニアという点で共通していても、お互いの技術領域も考え方も全く異なっています。まるで外国人と接するのと同じように話す言葉も考えも異なります。 そこで、さらに「組み込みシステム開発をする上でハードウェアとソフトウェアエンジニアがお互いを理解し、うまく協力するためにはどのような姿勢が必要ですか?」と質問しました。

Jonathanさんのアドバイスは次の通り。

Jonathanさんのアドバイスは実践が難しい印象でしたが、日本の製造業のベテランエンジニアの意見を聞いているような親近感を覚え、非常に共感し、納得することができました。私自身、ソフトウェアの周辺領域について学ぶ必要性を感じ、また一緒に開発を行う周辺領域の技術者とプロジェクトの目的について話し合う機会を積極的に持つべきだと感じました。

4. おわりに

私は、これまでアジャイル開発の技術的なプラクティスに強い関心を持っており、個人的に技術を中心に学んできました。今回、アジャイル開発を導入する上で障壁となる組織やメンタルの問題について多く議論できました。技術的な問題は問題としてありますが、組織に導入する上では技術だけではすまない、周囲の人を巻き込むにはどうしたら良いかを考えていく必要性を感じました。

そして、あらためて考えさせられたのはJonathanさんも強調していた、役割の異なるプロジェクトメンバと協力していく姿勢の大切さです。Agile Samurai Dojo Gatheringは、業界やプロジェクト内の役割が異なる人たちが参加するイベントであるため、このようなことを考えるきっかけが作れたのだと思います。今後とも、ソフトウェアエンジニア以外の人とも接する機会を積極的に持ちたいと考えました。

最後になりましたが、非常に有益なイベントを開催していただいたAgile Samurai Dojo Gatheringの運営スタッフ皆様、本当にありがとうございました!私も組み込み分野でアジャイルを盛り上げます!





© 2012 OGIS-RI Co., Ltd.
HOME HOME TOP オブジェクトの広場 TOP