プロジェクトにおける冗長化の重要性


先月、二人目の子供が産まれました。

 

そのため、今お世話になっている会社に相談して、人生初めての育児休暇(一ヶ月間)をいただきました。

(業務委託であるにもかかわらず手厚いフォローをいただき大変感謝しております)

 

休暇なので、「少しくらいはゴロゴロしながらテレビ見て、、、」などと甘い生活を夢見ておりましたが、現実は厳しいです。

 

家庭内協議の結果、いつも嫁さんが行っている家事全般と第一子である2歳の子供の面倒を僕が担当し、嫁さんは生まれたばかりの新生児の世話に集中することになりました。

 

子供とは土日しか一緒にいる時間がとれなかったので、毎日遊んであげることができて父親冥利に尽きる一方で、朝は掃除・洗濯から始まり、献立を考え買い出し&ご飯の準備、二歳の子供を公園に遊びに連れていき、お風呂に入れて寝かしつけ、、、

 

正直、「仕事の方がラクかも」と感じるこの生活を、僕がいない間、ずっと一人でやっていた嫁さんには頭があがりません。。。

 

改めて、世の中のママ達にリスペクトの念を抱きました。

 

とまぁ、僕にとって楽しいやら辛いやらの日々だったわけですが、この育児休暇の間、プロジェクトメンバーの冗長化について自分なりに気がついたことがあるので、本日はそちらについて紹介したいと思います。

 

冗長化とは

冗長化とは何か、という方のために簡単に触れておきます。

 

冗長化というワードは、サーバ周りのタスクで良く使われ、簡単に言うと「サーバにトラブルが発生してもサービスを止めることがないように設備を整える」ことです。

 

これと同じ考えで、リソースの冗長化(プロジェクトメンバーの冗長化)とは、「バックアップ要員の準備」となります。

 

つまり、メインでアサインされているプロジェクトメンバーが、何らかの事情で業務を遂行できなくなった場合に、メインメンバーとすぐに交替できる人(※)のことを指します。

※誰でもというわけではなく、プロジェクトの理解・スキルセットなど、常にメインのメンバーと同等である必要があります。

 

有名な事例として、飛行機のパイロットがあります。

 

旅客機のパイロットは、飛行機の操縦する資格を有する、機長と副操縦士の2名が搭乗することが義務付けられており、機長が操縦困難になった場合は、副操縦士が機長の代わりを担うことはみなさんもご存知かと思います。

 

育児体制の冗長化

プロジェクトメンバーの冗長化について触れる前に、僕の育児における冗長化の体験について触れておきます。

 

我が家では、僕が生活に必要な賃金を稼ぎ、嫁さんは専業主婦として家事全般と子供の面倒を担当しています。

 

僕達夫婦は、諸事情により両親から金銭や物品のサポートは得られるのですが、子供の面倒や身の回りの世話をしてもらうといったフォローが難しい環境にあります。

 

そのため、嫁さんが体調不良になったときのために、家事・育児はすべて僕でも対応できるようにしています。

(唯一不可能なタスクとして、おっぱいがあります。我が家は出来る限り粉ミルクに頼らず、おっぱいで育てる方針なので、このタスクのみ粉ミルクでの対応としています)

 

つまり、家事・育児に関しては冗長化されているということになります。

 

(ちなみに、この話をすると「イクメン」などと言われることがあります。個人的には、このくらいのことは驚かれるのではなく、当たり前と思われる国になって欲しいものです)

 

とまぁ、人間として生まれたので「種族繁栄」や「遺伝子を後世に伝える」といった目的を達成するために、自分なりに最大限のフォローをしているのですが、これをプロジェクトでよく起きる「突発的に発生するメンバーの不在」というシーンにで考えてみました。

 

プロジェクトメンバーの冗長化が必要になるケース

プロジェクトにおいて、メンバー冗長化が関連するリスクとして、

 

急遽メンバーが不在になった場合の対処

 

があります。

 

わかりやすい例としては、アサインしたタスクの担当者が、締め切り日に「風邪や熱で会社を休む」といったケースです。

 

理想としては、先に挙げたとおり、「いつ誰が不在になっても大丈夫なように、全員分のサブメンバーをアサインしておくこと」ですが、一般的なWeb屋のプロジェクトにおいて、そんな潤沢な資金・リソース(人材)を許容してくれる会社はまずありません。

 

そのため、この手の問題はリスクヘッジとして「あらかじめスケジュールにバッファを持たせる」というもので回避策を講じることが多いです(みなさんも馴染みがあると思います)

 

また、実際に問題が発生し、バッファでも足りない場合は、別のメンバーをスポットでアサインしたり、今いるメンバーで力を合わせてタスクを消化するなどで、対処することになります。

 

とまぁ、わかりやすい例を挙げさせてもらいましたが、ディレクター・プロジェクトマネージャーを長くやっていると、もっと複雑な事態に遭遇することがあります。

 

替えのきかないメンバーの冗長化

先の例をベースに、「専門的なスキルが必要なタスクを実行するメンバーが不在になってしまった」という条件を追加したケースを想定してみましょう。

 

実は、専門的なスキルを保持するリソース(人材)は、冗長化はおろか、別メンバーのアサインするのも厳しくなりますので、以下、例を挙げて説明していきます。

 

例えば「負荷テストの実施当日に、jMeter(テストツール)の知識を持ったメンバーがインフルエンザで1週間会社を休む」という事態になったとします。(JMeterが何か興味がある方はコチラ参照)

 

この場合、理想としては「同じスキルセットのバックアップ要員をアサインしておく」なのですが、先の例と同様に現実的ではありません。そこで、同じように同じスキルセットのリソース(人材)を一時的にアサインできないかを調整するわけですが、こちらもかなり厳しいです。

 

なぜなら、JMeterを使いこなせるようなリソース(人材)は、品質管理を専門に行う部署に所属し、会社内のプロジェクトに横断的に関わるため「並行して稼働しているプロジェクト間でスケジュールの調整を行い、やっとこさアサインできる」という感じなので、「メンバーの冗長化のために、同じスキルセットの人を複数人アサインしたい」なんて要求が通ることはないからです。

 

そのため、この場合は「対応できそうなスキルセットを持っていて、かつ今すぐアサインできるリソース(人材)を社内・社外で集める」ことができたらラッキーで、多くの場合、ナレッジがあるリソース(人材)からアドバイスくらいのフォローアップの約束を取り付け、残されたメンバーと共に調べながらなんとか切り抜けたりします。

(僕もこのような体験が数回ありました。。。毎回思いますが精神的にキツイです。。。まぁ、そんな苦い思い出も時間が経てばいい経験です。汗)

 

ここでもう一つ、替えの利かないリソース(人材)として「ディレクター・プロジェクトマネージャー」そのものがありますので、こちらの冗長化について言及してみたいと思います。

 

ディレクター・プロジェクトマネージャーの冗長化

メンバーを統率し、プロジェクトのど真ん中でディレクション(指揮)する人も、替えが利かない存在です。

 

というのも、ディレクター・プロジェクトマネージャーの場合、プロジェクトを進行する上でスケジュールを把握し、いつ誰に何のタスクを実施してもらうかの指示出しを行い、作業者の成果物のチェック、などプロジェクトにおける重要な指示・判断・意思決定を担っているため、突発的に引き継ぐことが難しいです。

 

また、上流から下流までワンストップで関わるようなディレクター・プロジェクトマネージャーは、クライアントとのコミュニケーションの窓口になっており、また打ち合わせなど膝を突き合わせて話をすることが多いことから信頼関係が築かれています。

そのため、仮にメンバーをアサインできたとしても、これまでのプロジェクトの背景をなどわからない状態での打ち合わせとなるため、クライアントの期待値などわからず、プロジェクトの進行リスクを孕むことになります。

 

そんな替えの利かないディレクター・プロジェクトマネージャーですが、公開直前などのタイミングを除けば、1,2日の不在であれば、なんとか切り抜けることはできますが「インフルエンザで一週間休み」「災害に巻き込まれ、2週間連絡が取れない」なんて場合は、プロジェクトの進行に影響が出てしまいます。

 

こうなると、ディレクター・プロジェクトマネージャーの上司、つまり現場にはかかわらないがプロジェクトの責任を負っている立場であれば、休みの間プロジェクトが大丈夫そうかを、各担当に確認し、問題がありそうであればテコ入れするなど調整を行います。

(実際、このような対応を行ってくれる上司が入ればかなり安心ですね。ちなみに僕は、休みの連絡をしたら「休んでもいいけど、その間プロジェクトは大丈夫?」と尋ねてくる上司しかいませんでした。。。コチラで紹介したとおり、自分で何とかするしかないという悟りを開いているので、もうなんとも思いませんでしたけどね。。。)

 

不在中にフォローが入ったとしても、ディレクター・プロジェクトマネージャーが戻ってきたときに、計画通りに進行していることはなく、遅延や、タスクの未消化が発生しているので、この遅れをり戻すべく、プロジェクトメンバーと共に残業や休日出勤などで遅れを取り戻すことになります(※)

 

※クライアントは、事情を説明すれば状況を理解はしてくれますが、納品日を延期してくれることはありません。

当たり前のことですが、プロジェクトは個人間での受発注ではなく、対会社に対しての発注になるため、「特定の個人と連絡がつかないから延期してくれ」というのは、むしろフォローできてない体制だったのかと、組織を疑われます。

 

なぜディレクター・プロジェクトマネージャーの冗長化がうまくいかないのか

ディレクター・プロジェクトマネージャーが不在だと、なぜプロジェクトの進行が大きく鈍るのでしょうか。

この要因はいくつかありますが、大きくは「冗長化がうまくできない」ことが挙げられると思います。

 

冗長化と言っても、ディレクター・プロジェクトマネージャー自身をまるごと冗長化する必要はなく、プロジェクトを進行する上で阻害要因となるタスクの指示・判断だけで問題ありません。

 

僕自身体験したことがありますが、突発的に1週間休んだ後、出勤して何がどこまで進んでいるかを状況をヒアリングしたところ、「○○という素材がないから作業止めてます」「これ以上先に進めるとクライアントの確認がないと手戻りが大きく発生するため作業を止めています」という回答がありました。

(なお、前提として上司のフォローはありませんでした。。。)

 

正直言いますと「それくらい自分で確認しておいてよ」と思うことになります。

 

こんな感じですね。

icatch_difficulty

 

素材がなければ持っているであろう人に、連絡すればいいだけですし、仮に名刺交換しかしてないクライアントだったとしても、事情を説明して確認をすることくらいできるはずです。

 

特別な専門スキルが必要なわけではないのに、一体なぜ?

 

この事象について僕なりに考え、

 

メンバーがプロジェクトの成功に対する責任を負っていない

 

ことではないかという結論に至りました。

 

与えられたタスクをこなすという意識はあるけれど、プロジェクトの成功のために自分が何をすべきか、まで考えていないのだと思います。

 

育児とプロジェクトの違い

先の意見は、ディレクター・プロジェクトマネージャーとプロジェクトメンバーとで、お互いに言い分はあるかもしれません。

 

ただ、これが育児の世界だったらどうでしょうか。

 

仮に、育児は妻に任せっきりのメンバーがいたとします。

妻が不在のときに、子供がお腹をすかせていたら、何もしないでしょうか。

 

もちろん「ミルクを与える」かと思います。

 

わかりやすくするために、「お腹が空いた」ことがわかる前提で説明していますが、仮に妻の留守中に

  • 40℃近い熱がでた
  • 30分以上泣いている

 

のような事態になった場合に、抱っこや声掛けを一切せずに妻が来るまで何もしない人はいないと思います。

また、子供の生死に関わるような問題であれば、妻の判断を仰ぐことなく、病院にいくなり救急車を呼ぶなりするかと思います。

 

これは、「親権を行う者は、子の監護および教育をする権利を有し、義務を負う」などと堅いことを言わなくても、自分の子供を育てる、という責任があるからに他ならず、プロジェクトメンバーが「それくらい言わなくてもやっておいてよ」というタスクを実行しないのは、「プロジェクトへの影響があっても責任がないからだ」という結論づけるのは強引ではないと思います。

 

冗長化を成功させるには

この問題を理想的に解決するには、「ディレクター・プロジェクトメンバーが2人いること」なのですが、先に挙げた「専門スキルを有したリソース(人材)の複数人アサイン」が難しい理由と一緒で現実的ではありません。

 

やはり、アサインしたメンバーに頼らざるを得ないと思います。

 

そこで考えた現実的な解決イメージですが、ディレクター・プロジェクトメンバーが不在でも、残されたメンバーが自発的に

 

「この作業は明日までにFIXさせないと、後続タスクに影響がある。クライントの確認が必要なので、だから代わりにメールで確認だしをしておこう」

 

と考えて行動してくれれば、このような問題は発生しません。

 

つまりメンバーのマインドを、「プロジェクト成功のために自分は今何をするべきかのか」を常に考えて行動できる人材に育てることで解消されると考えられます。

 

ただし、それを具体的にどう実行していくのは、自身のやり方や教育対象のメンバーによって異なると思うので、自分なりに検討していく他ありません。

 

「一番大事なところなのに自分で考えろかよ!」と思われるかもしれません。。。

 

さらに言うと、僕の場合はコチラの記事で紹介しているとおり、教育については、協力はしていますが責任は放棄しています。

 

ただ、僕の結論はいくつかある答えの中の一つであり、フリーランスの立場としては取りやすい選択肢ではありますが、会社に所属するビジネスマンとしては選択しずらいと思います。

 

プログラマーのような職能であれば話は別ですが、ディレクター・プロジェクトマネージャーのように他メンバーと一緒にものづくりを指揮(ディレクション)する立場では、会社から教育に関しても期待されることになるかと思います。

 

会社うんぬんは置いておいても、「人として」言えば、手を差し伸べてあげるべきなので、自分なりのやり方で一度はトライしていただければと思います。

 

最後に

プロジェクトのメンバーに対してネガティブな記事になってしまいましたが、「プロジェクト成功のために自分は今何をするべきかのか」を考えて行動できないメンバーがいることは、僕のようなフリーランスのディレクター・プロジェクトマネージャーにとっては大きなビジネスチャンスだと思っています。

 

もし、ディレクター・プロジェクトマネージャーが休みの間「そのくらい自分でやっておいてよ」というシーンに出くわしたときに、実際に実行することで自分の評価は簡単に上がります。

 

これにより「気の利かない正社員に任せるよりはアイツに任せたほうがいい」となり、結果としてお仕事をいただきやすくなります。

 

つまり、正社員のディレクター・プロジェクトマネージャーの冗長化の対象としての役割を勝ち取ることで、他のメンバーより重要な仕事を与えられる事になり、結果プロジェクトで替えの効かない存在となることができます。

 

これは、僕の営業戦略にピッタリの考え方です。

(僕の営業戦略についてはコチラ参照)

 

もし、まだ成長途中にあるフリーランスであれば、こういったビジネスマンとして当たり前のところからバリューを発揮していくのもアリだと思います。

 

泥臭い感じもしますが、クライアントと苦労を共にし、信頼を勝ち取って行くことは誰にでもできることではないので、ベーシックなスキルセットとして身につけておくとフリーランスだけでなくビジネスマンとしての価値が高まるのではないかと思います。

 

Author:yukio iizuka
プロフィール画像
フリーランスとしてUX視点で業務支援しています。 HCD-Net認定 人間中心設計専門家 LEGO®︎ SERIOUS PLAY®︎ メソッドと教材活用トレーニング修了認定ファシリテーター Hi-Standard好きです。
http://yukioiizuka.com
mislead
MISLEADの記事に共感いただけましたら
いいねをお願いします。

コメント一覧

コメントはありません

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください



       

© yukio iizuka All Rights Reserved...