開発現場を3T(楽しい、定時に帰れる、高い給料)にITアーキテクトを探して 第2章(2)(2/2 ページ)

» 2007年01月24日 12時00分 公開
[構成:唐沢正和,@IT]
前のページへ 1|2       

ソフトウェアはコミュニケーションで作られる

 ソフトウェア開発の「PF」への取り組みを進めていく中で、あらためて考えさせられたのは「ソフトウェアって何でできているんだろう」ということです。私は、オブジェクト指向がとても好きで、このオブジェクト倶楽部を作ったわけですが、当初、良いソフトウェアが何でできているのかを考えたときに、テクノロジが占める割合がすごく大きいと思っていました。その次がプロセスだろうと思っていたのですが、いまの考えとしては、ソフトウェアは人が人のために作っていて、それも壮大な伝言ゲームが行われているような気がします。つまり、ソフトウェアは、コミュニケーションによって作られているというのが、最も実情に近いのではと思っています。ソフトウェアという名前はやめて、“コミュニケーションウェア”にしたらどうかと思うくらいです。

 例えば、製造業を見ると、工場の製造ラインにモノが流れていて、作業者がいろいろな部品を付けていくことで、最後に製品が出来上がります。これは、価値がモノに付いていくという流れです。一方、ソフトウェアは、エンジニアの頭の中でさまざまな価値が付いていき、コミュニケーションでそれを伝えていくことで、最終的にプログラムとして完成する流れです。

 そのため、良いソフトウェアを開発するためには、誤解の受けにくい品質の良いコミュニケーション環境を作ることが重要だと思っています。エンジニア1人1人の頭の中が、いまどうなっていて、何をやっているかを明確にし、クリアな頭の中で情報が加工できる環境を整えることがソフトウェア開発の50%を占め、残りの50%がテクノロジやプロセスというのが私の考えです。

 では、ソフトウェア開発におけるコミュニケーションの効率を上げるためにはどうしたらよいのか。その手段こそが“見える化”ということになります。建築物の場合、もし水漏れが生じた場合、設計図などから具体的に場所を特定できます。ソフトウェアでも、自分がどの部分を担当しているのかを瞬間的に把握できるような全体設計図を作っておけば、問題が起こったときに、原因の場所を探しやすくなり、問題解決までのスピードが速くなります。それには、できるだけ人が認識しやすいように、名前を付けて言語操作対象にするとともに、これを具体的な形にして直感的に分かるようにしておくことがポイントです。さらに、達成感、協働感、自己成長感という、エンジニアのモチベーションもソフトウェア開発には欠かせない要素になります。

 次に、コミュニケーション連鎖の問題点として、1カ所でもボトルネックがあって、連鎖が切れてしまうと情報が伝わっていかないという点が考えられます。その対策として有効なのは、ソフトウェアが開発される過程における長いコミュニケーションストリームの中で連鎖の弱い部分を特定し、そのコミュニケーションを厚くするという対応です。特に連鎖が弱くなりやすい部分を分析すると、「契約をまたいでいる部分」「文化をまたいでいる部分」「場所をまたいでいる部分」の3つが挙げられます。

 中でも「契約をまたいでいる部分」は、利害関係が生じる部分でもあるため、まずはWin-Winの関係を作って、このプロジェクトがうまくいったらお互いにハッピーになることを認識することです。価値観を合わせ、しっかりした協力関係が作れれば、コミュニケーションは取りやすくなります。さらに、コミュニケーションを強化するキラーソリューションといえるのが、一緒に食事をすることです。コミュニケーションが弱いと思ったら、その担当者を含めて食事に行ってみてください。劇的にコミュニケーションが改善されることが分かるはずです。食事は生死にかかわることでもありますから、その経験を共にすることは非常に重要なポイントになります。

自分を変える勇気をコミュニティが後押し

 しかし、ソフトウェア開発の現場は、まだコミュニケーションやモチベーションを大切にする環境にはなっていません。いろいろな業界があって、すぐに環境が変わることは難しいと思いますが、与えられた仕事をこなすというとらえ方から、自ら気付いて仕事をする文化を作ることです。そして、他人を変えようと思ってもなかなか変えられないのが現実ですから、それよりも自分から進んでワークスタイルを変えていくことが大切です。変化は、あなた自身から始まるのです。自分を変えるには勇気が必要になりますが、自分が変われば、周囲も変わり、やがてそれが会社全体に伝わっていくことになるでしょう。

 その変化を推進するカギを握っているのが、コミュニティの役割だと考えています。会社とエンジニアの関係は、はっきりした雇用契約で結ばれていますが、コミュニティとの関係はもっと緩くて、あくまでもエンジニアが参加するという関係です。その中では、エンジニア同士は知り合いという関係になります。私は、エンジニアの能力の価値は、自分1人が分かっているだけでは、そこには何も生まれないと思っています。ほかの人とのかかわりの中にこそ、価値が生まれてくると考えます。

 コミュニティは、1つのテーマを基にさまざまな人と知り合う場所であり、そのテーマに共感する人たちの集まりです。ここで作った人間関係は、会社で作った人間関係よりも、非常に強い関係を生むことができ、自分自身を変えるきっかけにもできるはずです。今後、オブジェクト倶楽部では、技術を大切にしながら、プロジェクトを超えて続く人間関係が作れるような場を積極的に提供していきたいと思っています。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ