災害復興についてプログラマとして考えたこと-3

「ボランティア活動にあなたは月に何日提供できますか?」

と問われたらどのように答えますか?

  これは結構きつい問いです。

少なく言えば極悪人な感じが否めなくなる。かと言って、多めに言いたくても、IT技術者だと現実問題、時間自体を取れない場合が多い。

「先月通常勤務より残業時間が多くなっちゃって困ったよ」
  なんて愚痴ると
「通常勤務より残業時間が多いなんて当たり前じゃん」

というおかしな返答 (他業種比) が普通に返ってくる世界です。
「おまえ、馬鹿なの?」と真顔で説教されること、しばしw

多くはできず、かと言って少ないのもなー、と

  どの位が適切 ? と考えると、これがなかなか難しい。

たとえば、自分が「世の為、人の為に働きたい」か、と聞かれれば「それはある」と答えるでしょう。
しかし「じゃあ100%で頑張って」と言われたら「ちょww」と、うろたえるでしょうw

10%といわれると少ないと感じるけど、負担と感じずに継続できる範囲、とかんがえると少ないと感じる位がちょうどいいんじゃないかと思うのです。

しかし、考えを進めると、30日の10%は3日なわけです。これを「一週間に一日弱」と表現を変えると不思議と多く感じますよね。これは続かない気がします。

そう考えると一ヶ月に一日がせいぜいです。しかし、プログラムを作ることを考えると、一ヶ月に一日は少ない感じです。でも自分にメリットがあったら月2日(2週間に一度)位は…

  まあこんな感じが無理なく続けられる可能性のあるバランスなのではないでしょうか?

でもプログラムを作るとしたら、月2日は短い。じゃあ人数でカバーするとして20人集まれば一年続けると考えると20人/月 +α。
とっても嫌な計算方法ですが20人/月あればちょっとしたものは出来るかもしれない。
しかし、20人をうまくXPとかScrumでマネジメントできる人間は限られている。

でももしそれらができる人たちがリーディングしてくれたら、何かしらの形にはなるかもしれない。しかも参加者はものすごく勉強になるのでメリットを感じてくれるはず。
少なくても僕は小躍りし続けられる自信はあるw

確実に月2日(2週間に一度)提供してくれるプログラマを20人集められれば計画をたてることができます。

例えば一年は52週ですから26日です。XPの週40時間を適用すれば 5週(5日/週)と1日。XPイテレーションで計算すると、2イテレーション(2週*2) と6日。

あまった6日を要求定義、モデリング、チームビルディング、プロジェクトを開始するに当たって必要な知識の習得等に当てれば、なにかうまく回りそうな気がします。

しかし、チームリーダーになりえそうな人たちは、基本的に優秀なので忙しい方達ばかりです。
月2日提供なんてえらいことです。日本経済大ダメージです。

日本経済復興という少し大きな視点でみれば、お金を生み出す何かしらの活動にその時間を割いてもらったほうがプラスになると思えます。だから、月一日、一日と言っても8時間も拘束するわけにもいきませんから、4時間位を目処にしましょう。

そうするとリーダー1人ではマネジメントが難しくなるでしょうから2人体制にして、一日づつ担当してもらう。また、一人はプロマネ系の知識、経験が豊富な人、もう一人は実装系が得意な人、みたいな感じで得意分野が少しずれる感じの人を配してバランスを取るようにするといいんじゃないかと思っています。

しかしそれでもやっぱりリーダーの負担は高そうです。なので補佐役としてリーダ一人に2人位の補佐役のサブリーダーを付けます。想定しているのは実装経験が豊富だが少人数の開発が多かった人、書籍で勉強したことがあるけど実戦投入したことがない人、プロマネ系の知識または経験が少ない人、などを想定しています。

こういった人たちは、リーダーの抽象的な話も一応理解できます。あるいは多少勉強すれば理解できるレベル。また、自分なりの解釈もできます。自分なりの案も出せます。しかし、書籍上の知識なのでそれが正しいかどうかを判断できない、そんな感じの人。
ですから、そのつっこみ役、指南、指導役をリーダー一人に月4時間を使ってやってもらう形にします。
そして、手間がかかるであろうチームの回し役はサブリーダーにやってもらう形にします。

例えば、リーダーが何かを説明する必要がある場合、リーダーは資料をつくったりせず、サブに資料作りを丸投げします。説明も丸投げします。そのかわり資料の改善点の指摘や、アドバイス、補足説明はリーダーの役割です。
基本的なリーダーの役割は、頭と口は動かすけど手は動かさないアドバイザー役、サブリーダーをプロマネやアーキテクトへと育成する指南役、です。

サブリーダーは書籍での知識を生きた知恵に変えるべく、リーダーからノウハウを引き出し、実戦投入し試行錯誤する役。全行程に関わって走りまわる役割。

その他の人はプログラマ役です。まあ実装担当ですね。基本的に経験が浅いか、経験はあるが自信がない人、あるいは未経験の人、を想定しています。未経験の人を入れているのは、現経済状況を考えた場合、不況の深刻化は避けられないだろうから、内定を取れない大学生とか結構な数でてくることが想定されます。そういう人たちの受け皿として、未経験の人も受け入れられるようにしたらよいな、と考えそのような形にしたいと思っています。

  まあ、現実のプロジェクトでもよくあることですしw
  よりリアリティを追求するならこの設定は外せませんw

こんな形にすると、受け入れ幅が大きくなるのでいろいろと面白くできそうです。

まあ、プロジェクトは人数が増えるほど混乱要因が増えるのが普通ですから人数が増えることも良し悪しですが、それもまた勉強、と考えれば悪く無いと思うのですがどうでしょうか?

長くなったので明日に続きます。