BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 分散開発を成功させるには

分散開発を成功させるには

原文(投稿日:2017/03/02)へのリンク

分散開発には効果的なコミュニケーションが重要である – 健全で多様なコミュニケーション手段を追求し、フィードバックを促進するための共感を双方向で確立し、モチベーションを注視し続けることが必要だ – Abby Bangser氏とBhagya Perera氏はこのように主張する。分散型チームでは、アイデアから製品までの完全なデリバリに対する当事者意識と責任感を共有することによって、チームメンバがより積極的で創造的になることが可能だ。

ThoughtWorksの品質アナリストであるAbby Babgser氏と、Reed Business Informationでシニアテストアナリストの職にあるBhagya Perera氏は、European Testing Conference 2017で、分散開発に関する考察をテーマに講演を行なった。同カンファレンスに関してはInfoQで今後,Q&Aや要約,記事を通じてお伝えしていく予定だ。

InfoQはAbby Bangser、Bhagya Perera両氏にインタビューして、分散開発における中心的な課題、そのような課題に企業として対処する方法、分散チームのコラボレーションとコミュニケーションの改善方法、分散作業がチームに与える影響、オンサイトとリモートのテストそれぞれのメリットを活用する方法などを聞いた。

InfoQ: 分散開発には主にどのような課題があるのでしょうか?

Bhagya Perera: 何よりもまずコミュニケーションです。議論でよく見られるような遠隔地のチームを“忘れる”あるいは“無視する”傾向が、混乱と意欲喪失につながる可能性があるのです。文化的な違いや時差、ツールの違いなどの影響も少なくありません。具体的な例では、セキュリティ上のルールの違いのために、特定のドメインへの接続が難しかったことがありました。

Abby Bangser: コミュニケーションが他のすべての問題のベースラインであるというのは、そのとおりだと思います。直接会っていない人との信頼関係の構築はとても難しく、それがコミュニケーションのしやすさに影響を与えることがあります。それと同時に、ビジネス側と同じ場所にいない人たちのモチベーションに目を向けることが重要である、という点も忘れてはなりません。“簡単な”作業(実際には簡単でないことも多いのですが)を彼らに任せる、というトラップが、チームメンバの意欲を失わせる場合があるのです。

InfoQ: このような課題に対して、企業はどのように取り組めばよいのでしょう?

Bangser: 他の問題と同じで、まずは課題を認識して、オープンなディスカッションを持つことです。メンバ全員がアイデアから製品までのデリバリ全体に対する当事者意識と責任感とを持つことで、参加意識が高まり、コミュニケーションの問題を創造的に解決することが可能になります。そのための簡単な方法のひとつは、アクティビティではなく、機能によって作業を分割することです。

Perera: 分散作業の成功は主として、より多くのコミュニケーションを持とうというチームの意識と、そのためのチームの取り組みにかかっています。毎日の業務だけでなく、通信手段やコミュニケーションの明確性、さらには要求事項や見積に関するチーム間の議論といった基本的なニーズから見直すべきです。互いに対する共感を持つことが、遠く離れたチームからのフィードバックを促し、問題を指摘した時にも積極的な取り組みを期待できるようになるのです。

InfoQ: 分散チームのコミュニケーションやコラボレーションを改善する方法として、何か提案できることはありますか?

Perera: 開始点としては、チーム間のコミュニケーションの問題を特定するのがよいでしょう。解決の意思を持って、問題に対してオープンに議論することです。どうすればチームがよくなるのか。彼らの文化やバックグラウンドは何か。フィードバックはどうすればよいのか。否定するだけではなく、肯定することも必要です。共感の確立。関心事の共有。仕事以外で関係を持つことも、信頼関係の構築には有効です。耳を傾ければ、できることはたくさんあります。

Bangser: まず最初に、オンサイトのチームメンバとのコミュニケーションはどのように違うのかを認識することから始めてはどうかと思います。要件に関する公式なミーティング、非公式なブレインストーミング、ホワイトボードセッション、昨晩の社交的なジョーク、その他にもあるでしょう。その上で、オフィス内にいないチームメンバとのコミュニケーション方法について考えてみてください。それほど多くはない、ということが分かるかも知れません。そして、その大部分は、公式なミーティング形式(と、一部は非公式なIRCベースのチャット)に関連するものではないでしょうか。それら以外のコミュニケーションスタイルを増やすには、そういったものをサポートするツールを見つける必要があります。ホワイトボード以外を写すカメラを併用したビデオ会議、毎日のジョークやクイズ問題を交えたチャットツールの“コーヒーブレーク”チャネル、というようなものかも知れません。個人で行なうのと同じように、ロケーション間でも健全かつ多様なコミュニケーションを持つ方法を探しましょう。

InfoQ: チームが分散することによって、開発活動が最も影響を受けるのはどのような部分でしょうか?

Perera: 個人的には、分散チームに託された仕事は – テストに限らず – 何であれ、通常よりも困難になると思っています。最初の質問で述べたような課題がすべて持ち上がって、分散チームが疎外感を持つかも知れません。プロジェクト活動がひとつの場所だけで実施されていれば、そこでの情報の可用性が、積極的に情報を共有しなければならない分散チームよりもチーム機能をスムーズにしてくれます。特にチーム内の暗黙知についてはそうです。ですから分散チームが成功するためには、より多くの資料と議論、そして依存関係が必要になります。すべては効果的なコミュニケーションに掛かっているのです。

Bangser: タイムゾーンやアクセント、文化を異にするコミュニケーションはやっかいですが、その難しさが必ずしも認識されていない場合があるように思います。私がこれまで見た分散チームのいくつかは、より明確な例示、資料の定常的な使用と訂正、日常的な成功と課題に対する共有意識といったもので、コミュニケーションギャップの認識と是正において素晴らしい成果をあげていました。分散環境によって特にマイナスの影響を受ける活動のひとつに、“廊下での会話”があります。他愛のない会話から生まれる発見の瞬間(eureka moment)を分散環境で再現するのは難しいので、そういったものをサポートするより良いソリューションがあれば、と思います。

InfoQ: オンサイトとリモート両方のテストのメリットを活用するには、どうすればよいのでしょう?

Perera: 分散チームをひとつのチームとして捉えるべきだと思います。事実そうなのですから。オンサイトと分散チームを区別することが、複雑さのそもそもの原因なのです。多様性は常にさまざまなエクスペリエンスやアイデアをもたらして、プロダクトを成功に導きます。ただしタイムゾーンや言語の違いは、お互いを不満にさせて、全体的な品質にも影響する可能性があります。個人的な意見としては、遠隔地のチームがしばしば持つエクスペリエンスを活用するために、テスト作業を分散してはどうかと思います。さまざまなクライアントの間をローテーションすることで、そこから新たな問題や技術手法、プロセスを学ぶことができるでしょう。さらに現場のテスタには、異なるテストのアイデアを提供することで間接的にプロダクトに貢献できる人々と対話できる、というメリットもあるのです。

Bangser: テスト作業をプロダクトに関する新たな理解の構築として定義するならば、オンサイトと分散チーム両方からのインプットという価値のメリットは明らかです。私自身、機能全体の分析や設計、実装、検証といった作業については、コミュニケーションを取りやすい人たちに託したいと思っていますから、同じ場所にいるチームの方がずっと便利でしょう。もし(ある場所で開発、別の場所でテスト、というように)アクティビティで分割されたチームにいるのならば、重視し活用する品質をアクティビティ毎に明確化した上で、そのアクティビティに最も相応しい人を基準としてチームを分割すればよいと思います。新機能に関する決定にまったく関与していない分散チームのメンバを使って“ブラックボックス”形式のテストを活用するというのも、大きな価値があるかも知れません。

この記事を評価

関連性
スタイル

この記事に星をつける

おすすめ度
スタイル

BT