こんにちは。オリエンタルインフォーメイションサービス、グループリーダーの森です。
主に通信関係のシステムに関する仕事をしています。
といっても、一般的にイメージされる、いわゆる「アプリケーションソフトウェア」や「スマートフォンアプリ」といったソフトウェアではありません。
私が主として開発しているのは通信インフラに用いられるソフトウェアです。
例えば「漏洩同軸ケーブル」という言葉をご存知でしょうか。
電子機器の設置しにくい場所でのWifi通信を可能にするため、ケーブルにわざと「電波の漏れる穴」をつくって通信する技術です。
(出典:株式会社バッファロー 屋内用ケーブル型アンテナ http://buffalo.jp/product/wireless-lan/pro-option/wle-lcx/#feature-1)
高速道路のトンネルでのラジオ放送や新幹線の車内無線LANなど、多くの場所でこの技術が使われています。
私はその、同軸ケーブルに流されている信号を処理するソフトウェアを作っている、というわけです。
ところで、少し前に「無線LANケーブル」なるワードがTwitterで話題になりました。
メルカリに出品されている「無線LANケーブル」に沸き立つTL
メルカリは無線LANケーブル売ってるから強い pic.twitter.com/XOxVVwsb8x
— yam@o (プロ私人) (@sophizm) 2016年12月16日
出品されているケーブルが「無線LANケーブル」かどうかはわかりません。
ですが、上で紹介した漏洩同軸ケーブルこそ「無線LANケーブル」なのかもしれません(笑)。
「問題を小さいうちに潰す」プロジェクト管理
こうしたインフラ関係のプロジェクトでは「プログラムの品質」が非常に重視されます。
何しろインフラは「バグはアップデートで対応」という訳にはいきません。では「品質管理」の重要ポイントは一体何でしょう。
私が経験した中で、最も優れた品質管理をしていたプロジェクトの一つは、あるメーカーの携帯電話開発でした。
ガラケー全盛の時代には、携帯電話開発プロジェクトは多額の投資がなされ、多くの才能が集まっていました。
そのプロジェクトマネジャーの一人に当時「あの人が作っているなら大丈夫」とまで言われた方がおり、その方が訴えていたのが「再発防止の重視」です。
とにかく、些細な問題であったとしても必ず「再発防止!」「再発防止!」と、恐ろしくしつこく再発防止を迫る。
ミスや不良は必ず、その原因を突き止めて二度と同じミスを侵さないようにさせる。
製造業ではこのような文化は当たり前だったのかもしれませんが、私はこれを見て、品質管理の原理原則を認識しました。
ただ、自分でそれを試してみると、一つ問題がありました。
「再発防止」のためには、ミスや不良が早期に発見されなければなりません。
つまり「報告」が確実に行われなければ、再発防止が徹底されているかどうかもわからないのです。
難しいのは「問題」を「問題であると認識する」こと
したがってプロジェクトにおいては「報告」をメンバーに確実に上げさせることが重要です。
理想的なのは「メンバーが自ら、自分の仕事のチェックができるようにできる」ことです。
「自分の仕事のチェックくらい、誰でもできるのでは?」
と思う方がいるかもしれません。ですが、これは意外に難しい。
なぜなら「問題」を「問題であると認識する」ことは自分を客観的に見る必要があるからです。
そして、自分を客観視することは訓練が必要です。
特に「できる」とされている中堅クラスの人は要注意です。
「この人いいよ」と紹介されていた人が、実は危ない、ということはよくあります。
彼らは確かにコーディングはよくできます。しかし、設計などのより抽象的な仕事は「問題」を非常に認識しにくい。
新人であれば「すぐに質問する」ことを徹底できますが、中堅クラスはプライドもあり、問題の報告が遅れるケースが多いのです。
「問題」を「問題であると認識する」ためのしくみ
ですから、「問題」を「問題であると認識する」ためには、具体的に以下のルールを決めて運用しています。
1.メンバーは、自ら仕事の予定を作る(タスク化する)
2.チェックの頻度を決める。(例:新人は1日単位。その他の人は3日単位、信用の置ける人は1週間単位 など)
3.自らの仕事を予定通りこなせたかどうかを報告してもらう。
4.予定通りではない場合には対応⇒再発防止
報告のポイントはタスクが「終わった」「終わっていない」という判断基準でデジタルに行うことです。
「終わっていないけれども、問題はないから報告しない」といった判断を入れると、「問題の認識」が確実に行えなくなります。
遅れ=問題
という図式を確実に実行することが重要なのです。
なお、このルールを適用することで
「最後の1秒まで諦めないことが重要」とか「集中力が足りないから仕事が遅いんだ」といった、精神論を排除できます。
さらに、「悪い報告をすると怒られる」という、致命的な文化を回避することも可能です。
つまりメンバーに「適切に諦めさせる」ことが、実はプロジェクトを進める上で、とても重要なのです。
当然ながら、自分の問題を発見できない人は、プロジェクトの問題も発見できません。
プロジェクトマネジャーがメンバーに伝授すべき能力のうちもっとも重要なのは、「問題認識能力」だと、私は思います。