先日、取締役会で生産性を3年で倍増させる方針が決定され、施策の責任者に任命されました。工程や開発ツールの標準化、見積もり、品質管理の最適化は既に実施しています。生産性を2倍にするのは無理があると感じるのですが、実現させる方法はあるのでしょうか。
(大手SIベンダー/標準化部門)
質問内容を拝見するだけでも、生産性と品質の課題に対して組織的かつ継続的に取り組まれている誠実さが伝わってきます。しかし、あなたの会社の経営層は、現状の改善を続けるだけではいずれ行き詰まるのではないかと考え、あなたに困難な課題を与えたのではないかと想像します。
最初に質問させてください。あなたは開発プロジェクトで行われるメンバーの活動は「生産労働」と「知的労働」のどちらだと思いますか。
正解は、ソフトウエアは本来全てが「知的労働」に当たります。コードの書き方ひとつで、再利用性、性能、キャパシティーに何百倍もの違いが出る世界です。
生産労働とは原材料を加工し、組み合わせて製品を生産する活動です。工業製品や衣料品、食品などの工場やビルの建設現場での勤務が相当します。
一方、知的労働とは、顧客の目標達成や課題解決に必要なノウハウを提供する活動です。医師や弁護士、コンサルタントなどと言えばイメージしやすいでしょうか。
ただ、現在は無理やり「生産労働」に置き換えて管理する手法が主流です。コンピュータが企業や官公庁で活用されるようになり、大量の機能を短期間で作成するニーズが高まったためです。これがウォーターフォール型開発の考え方の根底にあります。
要件定義から基本設計の工程で、何百画面もの類似の画面を定義し、開発規約で作り方を限定して、無理やり「生産活動」として扱ってきた手法が引き継がれて現在に至ります。
余談ですが、いまだに「遅れているなら人を投入しろ」という解決策を耳にします。現場では「バカバカしい」と一笑されるアプローチですが、経済学の観点では、「生産労働は技術(ツール)や資本(要員)を投入すると労働力を向上させることが可能」なので、システム開発が本当に「生産労働」として活動しているのであれば、実は理論的には正しいアプローチです。しかし効果が上がらないということは、やはりどんなに工夫しても「知的労働」であることには違いないという証明ですよね。
P.F.ドラッカーは「知的労働」の生産性を向上させるための方法を、次の6つのステップで提示しています。
(1)必要のない作業を除去する
(2)本来の仕事に集中する
(3)(一所懸命に、ではなく)賢く働く
(4)分業ではなく、一緒に働く
(5)継続して学習する
(6)他人に教える
指示をそのまま忠実にこなすアプローチは不正解
つまり、1人ひとりがプロフェッショナルとして最適な方法を考え抜き、考え方をチームで共有して一緒に進める。要するに「チーム全員で考え、共に行動する」こと。これが知的労働の生産性を向上させるアプローチだと言っています。管理資料や手続き、会議などを減らし、誰かの指示をそのまま忠実にこなすのではありません。