最終更新日: 2021.07.27
OECD データに基づく 2018 年の日本の時間当たり労働生産性(就業 1 時間当たり付加価値)は、46.8 ドル(4,744 円/購買力平価(PPP)換算)。米国(74.7 ドル/7,571 円)の 6 割強の水準に相当し、順位は OECD 加盟 36 カ国中 21 位だった。名目ベースでみると、前年から 1.5%上昇したものの、順位に変動はなかった。主要先進 7 カ国でみると、データが取得可能な1970 年以降、最下位の状況が続いている。
公益財団法人日本生産性本部 労働生産性の国際比較2019
この報告にある通り、日本の生産性の低さが注目され大きな問題となっています。
システムエンジニア、プログラマーをはじめ、IT業界で働くみなさんも日夜残業続きで奮闘されているのではないでしょうか。
サボっているわけでもなく、一生懸命がんばっているのに仕事は減らずむしろ増える一方…。
なぜそんな状態になってしまうのか、どうすれば改善することができるのか、考察してみたいと思います。
目次
そもそも生産性とは?
生産性とは「効率よくお金を稼ぐための指標」です。
IT業界は製造業などと違い、材料仕入れや量産、輸送といった工程がないため、原価のほとんどは人件費です。
そのため、人の労働によって生み出す価値(=お金)が生産性であると考えられます。
残業をしまくってリリースした製品やサービスは生産性が低いと言えるでしょう。
生産性を上げたいなら残業をやめよう
生産性を上げたいならまずは残業をやめさせることが重要です。
残業を減らし、まずはエンジニアの生産性を元に戻した上で、生産性の向上を図りましょう。
システムエンジニアの生産性を上げる方法
それでは、実際に生産性を上げる方法を考えてみたいと思います。
会議を減らす
「社内の7割の会議は無駄である」とも言われてます。生産性改善に会議を減らす、会議時間を短くする工夫は必須でしょう。
設計やコーディングのために、手を動かす時間をしっかり確保しましょう。
チームの定例会はSlackなどのツールに置き換えて、問題がある場合だけフォローするといった施策も効果的です。
ドキュメントをテンプレ化する
システム開発ではさまざまなドキュメントを作成します。要件定義書や設計書などの仕様書関連、議事録、パワポ資料…などなど。
書くべき要点をおさえたテンプレートを用意しておくことで、ドキュメント作成作業を効率化することができます。
ここで注意するのは、「どんなプロジェクトでも汎用的に使えるような、巨大なテンプレートでは意味がない」ということです。
あまり汎用的にしすぎると、作った人以外は項目の意味が理解できず、みんなが使いこなせない(=生産性が低い)ものになってしまいます。
プロジェクト単位できちんと話し合って必要な項目を決め、メンバー全員が合意の上で使えるようなものにすることが大事です。
再利用可能なライブラリを使う
コーディングはコードの行数を減らすことが生産性向上に直結します。
コーディングとは動くものを作る行為であると同時に、そこに不具合を埋め込む行為でもあります。
行数が少なければ、その分埋め込まれる不具合の数が減りますし、デバッグも簡単になります。
使い勝手の良いOSSを探したり、ライブラリを自作するなど、使いまわせる資産を増やすことに取り組みましょう。
生産性向上に意味がない施策
反対に、やってもあまり意味がない施策についてご紹介します。
マニュアルを作る
マニュアルは作業を繰り返し行う必要がある場合に効果を発揮します。
製造業のようにラインで量産するような仕事には必須で、効果も高いです。
しかし、システム開発の仕事はすべて「一品もの」であるため、同じものを2回以上作るということはまずありえません。
そのため、マニュアル化によって開発作業を無理やり型にはめることでむしろ生産性を落としてしまうことも考えられます。
システム開発においては、作るものに合わせて最適な開発方法をプロジェクトごとに検討していくことの方がはるかに重要です。
ペアプログラミング
ペアプログラミングとは、プログラマーが2人1組で1つのプログラムを作成していく手法です。
正確なコードが書ける、知識を補いながら作業できるといったメリットがあるとされていますが、2人分の作業時間を使いながら作成されるプログラムが1本だけですので、効率が悪いです。
2人分の工数を使うのだから生産性は2倍以上にならないと成果としては不十分なのですが、そうなるのは極めてまれです。
生産性2倍が見込めるのは、ペアとなる2人がかみ合った場合に限ります。少なくとも、ベテランと新人のような組み合わせではベテランのコードに新人が寄与することは難しく、ベテランの能力以上の成果にはなりません。
またペアプロの実施には2人の予定を合わせる必要があり、組み合わせによっては時間確保すら難しい場合もあります。
誤解しないでいただきたいのは、ペアプロはチームワーク向上や新人教育のような場面では非常に有用です。
生産性向上に役立てようとすると、条件がかなり厳しいということです。
まとめ
今回は生産性向上について、すぐに効果が出そうな以下の3つのアイデアをご紹介しました。
- 会議を減らす
- ドキュメントをテンプレ化する
- 再利用可能なライブラリを使う
反対に、あまり効果的でない施策は次の通りです。
- マニュアルを作る
- ペアプログラミング
それ以外にもシステム開発は知的労働ですから、開発メンバーのモチベーションがかなり生産性に大きな影響を与えてきます。
時間がかかるかもしれませんが、定期的にメンバーの悩みを聞く、集中できる環境を用意するなど、メンバーのモチベーションを維持向上する努力によっても生産性を大きく改善することができます。
ぜひ自分の職場にあった施策を考えてみてください。
この記事へのコメントはありません。