ソフトウェア開発は「これが最善の方法」というものはなく、多くの人が試行錯誤しながらソフトウェアを作り上げている発展途上の領域です。
これからも機械で自動的に生産されるのではなく、開発者自らの知識と経験によって創造され続けるでしょう。
このようなソフトウェア産業における人の重要性について、さまざまな側面から考え直すべき題材を提供しています。
日々の仕事に流されていると多くの事柄を何気なく当たり前だと思ったりしますが、この本を読むと現状の問題点が見えてくることも多いと思います。
知識集約型活動です。
したがって、ソフトウェア開発の現場で働く開発者の創造性を損なうことなく、その能力を伸ばすことが求められます。
さらに、個人プレーではなく誰か一人が失敗することでチーム全体が失敗してしまう協調的な活動でもあります。
知的で協調的な活動に対して私たちは何を考えるべきか?を問いかけた名著です。
失敗したプロジェクトを調査した結果、その圧倒的多数は単なる技術的問題として片付けられないものばかりだったそうです。
ソフトウェア開発の問題は技術的というより社会学的なものであり、管理者の責任を果たす上でもっとも大切なのは人間中心に考えることです。
にもかかわらず、仕事で人間的な側面より、技術面に注意を払う理由は重要だからではなく単に解決しやすいからです。
生産性にもっとも影響を与えるのは誰とチームを組んだかです。
プログラマーが働く企業の文化は生産性に何らかの影響を与えます。
この現象に関してハーラン・ミルズは次のように言ってます。
”企業におけるプログラマーの能力差は10倍であるといわれている。しかし、企業自体の生産性にも10倍の差がある。”
出展 : 『ソフトウェアの生産性』
プログラマーは論理的に物事を考える知的な作業者です。
同時に、脳みそを振り絞って仕事に打ち込もうとするたびに、オフィスの騒音・雑音に悩まされ、精神集中が乱される哀れな犠牲者でもあります。
騒々しく、無乾燥で、割り込みが次々と入る場所にプログラマーを押し込めているかぎり、どんな改善策も意味がありません。
プログラミングコンテスト上位と下位の作業環境を比較した結果、「上位グループのオフィスは静かで個人の空間、プライバシーが保護され、無駄な割り込みもなくその他のあらゆる点で下位グループより優れていました。」
どんな仕事でもその最終的な成果はそれをどのようにやったかということよりも誰がその仕事をやったかによって影響を受ける。
だが、近代の経営学は人材を揃えて辞めないようにすることにほとんど注意を払っていない。
管理者に必要とされる能力のひとつに外見に捕われずに「優れた人材を選ぶ能力」がある。
力のある管理者はチームのメンバーが頭を丸坊主にしていようがネクタイを締めないでいようが全くに気にしない。
チームの誇りの対象はチームメンバーが成し遂げた成果だけである。
サーカスの入団面接をイメージして下さい。
サーカスの団長が応募者に対してどんな曲芸が出来るか話を聞くだけで、実際に曲芸をさせることなく採用すると聞いたらあなたはどう思いますか?
馬鹿げていると思うのではないでしょうか?
しかし、ソフトウェア産業ではこのような採用方法が広く行われています。
業務経歴だけでなく、その人が開発したソフトウェアを持参させて説明してもらうようなことはほとんどやっていないと思います。
マネージャークラスだけでなく、チームメンバー全員で面接する。
社会学的な関係は技術よりもときにはお金よりもずっと重要な問題です。
より社会学的関係は大いに生産性を向上させ仕事への満足度を高めるはずです。