2005-04-15

職人気質と今後の方向について考える  [by miyachi]

先週の金曜日のある人と会い色々と話をしました。それは私が明確にできていなかった部分を明確にしてくれたのでした。その時に思った事を少し書きたいと思います。それは日本においてのソフトウェア開発の今後の流れに関してです。

私もこの会社で職人気質をキーワードにソフトウェア開発をやっていますが、これは日本の昔からあるソフトウェア開発とは手法が異なります。従来の日本では親受け会社がいて子受け会社がその下にいて更には孫受け・曾孫受け…と続く大手メーカー系の系列によるソフトウェア開発がメインでした。これはソフトウェア工学のアプローチです。ソフトウェア職人気質の本からソフトウェア工学の定義の部分を抜き出して見ましょう。

「ソフトウェア工学とは、ソフトウェアを開発、運用、保守するために適用される、体系的かつ規則化された定量的アプローチのこと。すなわち、ソフトウェアに対して工学を適用することである。」

言い換えれば特に大規模プロジェクトで有用なアプローチですが、個人の能力を平均化して定量的に計算をして必要な工数を計算して実行するアプローチであると考えます。この場合に必要な経費は出来た物の価値では無く「開発者のランク×人月単位」で計算が可能です。開発者のランクとは例えばコンサルタント・SE・プログラマ・オペレータと言うような階層関係で上のランク程単価が高くなるのです。バブル期にはこのアプローチに則り各種人材を大量に確保しているソフトハウスがほとんどでした。大量の人員が必要なのは人数と売上げが比例関係にある為でした。

しかしながらコンピュータのバブルが弾けて最初に苦しくなったのもこのソフトウェア工学によるアプローチを採用した会社です。理由の1つとして良く語られるのがオフショアによる開発委託先の移動でしょう。オフショア開発ではソフトウェア開発や運用の大部分を人件費が安い中国やインド等の海外に出してしまいます。先のソフトウェア工学のアプローチの費用計算を見れば判るように開発者のコストが安くなれば自動的に開発費自体が安くなるのです。これでは当然海外のソフトハウスには勝てません。

ソフトウェア工学の最大の問題点と思えるのが「個人の能力を平均化して定量的に扱う」点にあると、ソフトウェア職人気質のアプローチでは考えます。ソフトウェア開発に携わった事があれば判る事ですが能力のある開発者と無い開発者ではその差が非常に大きいのです。優れたソフトウェア開発者は、ソフトウェアを完成させるまでの時間も短いし、バグの数などの製品の質も高く、更には将来の拡張性まである場合が多いのです。将来まで見据えた生産性を考えると10倍以上の開きが出るかもしれません。ソフトウェア職人気質の本からまた一部抜粋してみましょう。

「伝統的な職人気質の場合、職人は製品を生み出す手段によって評価されるのではなく、顧客が手にする製品の品質によって評価されます。(中略)ソフトウェア職人はユーザや顧客が手にしたアプリケーションやシステムの満足度によって評価されるのです。こういった考え方は、資格によって分類された交換可能なエンジニアというコンセプトとは対極に位置しているのです。」

つまりはソフトウェア職人気質で最も重視されるのは職人の質であり成果物であると言う事です。確かに大規模なプロジェクトではソフトウェア工学のアプローチでないと対応は困難です。工学的なアプローチが無ければアポロ宇宙船は月まで到達できなかったでしょう。しかしながら昨今ではコンピュータは身近になり、1つのアプリケーションやシステムを構築するのに必要な作業量は、汎用機と呼ばれていたコンピュータが中心であった時代とは比較にならない程小さくなっています。つまりプロジェクト自体が小さくなっているともいえます。このような小さなプロジェクトにおいては優れたソフトウェア開発者を探して仕事を依頼する事こそが成功の近道といえるでしょう。これが今の日本でソフトウェア職人気質のアプローチが必要になってきた背景にあると思えます。

ここまではソフトウェア職人気質の本に書いてあることです。この本を読み終わった日本の多くのプログラマがブログや日記に書いているのは「ソフトウェア職人気質のアプローチは理想ではあるが日本では無理だ。」という事でした。アメリカでもオフシュア開発への移行は進んでいますが、昔からそれに倍する独自の優れたソフトウェアを開発するベンチャーがあったのでソフトウェア職人気質のアプローチが有効であったとする意見です。それに比べると日本では製品として誇れるだけのソフトウェア開発をおこなう為の土壌が少なかったという事情はあったと思います。

ところが近年では少しずつではありますが状況が変化しているに感じてきたのです。株式の公開を目標とした投機的なベンチャーが日本ではほとんどでしたが、最近になって技術者が中心となった、会社を大きくするよりも面白い仕事をしたい、独自技術を磨いていきたいという小さなな会社が増えつつあるように感じています。これらは数名の有限会社であったりせいぜいが10名程度の小さな会社がほとんどです。それぞれがソフトウェア開発に対して熱い気持ちと向上心を持っている点が特長でしょう。

小さな会社同士でもそれぞれが特化した得意分野を持ち寄ることで大きな仕事を効率的におこなうことが可能です。問題はこれらの会社を結びつける場や仕組みがないことだと思います。それぞれがプロのソフトウェア職人として緩やかに連携して動ける仕組みが実現できないものか…それが実現すれば日本のソフトウェア業界は、次のステージに進めるのではないかと考えています。さてあなたはどう考えますか?もしあなたの会社がこのような会社であれば次の一歩について一緒に考えてみませんか?

と言うことをつらつら考えながら今週は仕事をしていたのでした(笑)いや仕事が忙しい時ほどこういうことに頭が回るんですよね(^o^;

2005-04-15 19:13:41 - miyachi - [プログラマの生活] -

コメント一覧

コメント無し

コメントを書く

このアイテムは閲覧専用です。コメントの投稿、投票はできません。