ソフトウェア開発活動としての情報共有とコミュニケーション
本ブログとしては珍しい若手向けの話です。ベテランの方は若手に紹介ください。
ソフトウェア開発活動の何割かは関係者の間の情報共有で構成されます。ソフトウェア開発に限定しなくてもチームで仕事をすれば情報共有は活動の何割かを占めると思いますが、下のようなことからもソフトウェア開発活動においても情報共有は大切であると感じています。
- コミュニケーションに関する経験則がある。ブルックスの法則、コンウェイの法則といった経験則が文献として報告され、参照されたり言及されたりしています。
ブルックスの法則は遅れているプロジェクトに単純に人員追加すると遅れがさらに大きくなるというものです。ブルックスの法則は書籍The Mythical Man-Monthで述べられたものであり、他にもいくつかの経験則があります。コンウェイの法則はソフトウェアの成果物は開発に携わる関係者のコミュニケーションの構造の影響を受けるというものです。コンウェイの法則の原典(M.E. Conway, How do committes invent?)のHTML版はこちらで公開されています。 - 情報共有が不十分である、コミュニケーションがスムーズでないといった課題を開発に携わる技術者からよく聞きます。ソフトウェアレビューでは、指摘が厳しすぎてギスギスしたりケンカになるといった課題があると聞いたことがあります。
- 「ソフトウェア開発はほとんどプログラミングであると考えて仕事に就くと期待はずれになる」という話を現役大学生に伝えるソフトウェア技術者の話を何度も聞いたことがあります。
- 私自身、ソフトウェア技術者だったときに情報共有やコミュニケーションに関してスムーズでないことがあり、書籍にあたってみたり、情報共有やコミュニケーションが上手な先輩や上司の様子を見て、参考になることがないかを見ていました。工夫によって効果が得られるということを実感しました。
情報共有やコミュニケーションがうまくいかないのには、様々なレベルの課題があります。共有するべき情報が揃っていない、前提知識が不足しているのに伝えようとしているといったものもあれば、伝え方に問題があり、伝えたい内容を意図通り受け取ってもらえないというものもあります。そうした課題を解決できる万能な方法があるわけではなく、関係者の知識やスキル、共有する情報の種類、共有の方法やタイミング等の状況によって適切な方法を選んでいく必要があります。
そうした状況をふまえて情報共有やコミュニケーションを設計(計画)し、効果を高め、必要に応じて調整していく必要があります。その第一歩はコミュニケーションが与える影響を知り、自身の開発活動の中でどうすべきかを知ることでしょう。なるべく低コストで確実な情報共有をしようとすると自然と親切で配慮のある情報共有になることも少なくありません。また、情報共有やコミュニケーションも無視できない存在であるという認識を持つだけでも大きく改善するでしょう。
情報共有やコミュニケーションを工夫したり可能な限り低減したりして、効率を高めていくことができれば、これまでの経験則が通用しなくなるかもしれません。そのような方法を見つけることができれば従来は難しかった短期間での開発や関係者の流動性の高い開発でもスムーズな進行につながりそうです。普段の情報共有のどこにムダがあり、どこはなくせないでしょうか。
2014/12/6, 7に神奈川県三浦海岸でWACATEというワークショップが開催されます。私は12/7のセッションに招待いただきました。タイトルは「ソフトウェア開発に必要な技術としてのコミュニケーション」、進行プログラムの詳細はこちら。