3 失敗から学ぶ(3)
「まだできてない。」 ...期日までに「できる」といったのに...どうして?という局面を何度も経験している。どうしてそういうことになったのか、我々はどうすればよいか その辺りについて書いてみよう。
「できる」の意味するところ
不可解な返事
オフショア開発プロジェクトを開始して定例、あるいは必要に応じ何度も請負先のチームリーダとミーティングをするようになった。ヴェトナムのエンジニアはミーティングを頻繁に行うのは問題なさそうだが、長くなるのは極めて苦手のように見える。進捗を確認するミーティングでは、このコンポーネントはいま達成率はどれくらいか?とか期日までに間に合うか?という質問に彼らは決まって「できる」と答える。その表情に動揺を認めないのでとりあえずは信用する。
ところが、実際にはこの「できる」には何度となく裏切られた。期日になると、あっさり「できていない」と言ってくるのだ。「どうして?『できる』といったでしょう?」というと、「『できる』と言ったができなかった。」と返ってくる。しかもこの間逼迫した状況を改善すべく残業などしたかというと、そういうこともない。毎日夕方になれば皆帰ってしまうし、それで期日を守れないという状況とは?考えるだけで私は頭がクラクラした。
2つの壁
この状況を理解する上で、2つの壁があると考える。一つは言葉の意味の問題。「できる」という言葉は物事を確約するまでの意味は込められていない。では、何が「できる」のか?「可能である」あるいは「可能性はある」ということだ。英語の「can」と「able to」の違いにも例えられようか。(「we can do that」といわれると、「やろうと思えばできるかもしれない(が、できるかどうかは別問題)」というニュアンス。「we are able to do that」なら、「大丈夫。スケジュールも守れる。」というところ。)
つまり可能か否かというレベルの認識であって、我々が通常認識する日本語の助動詞「できる」の意味する範囲の一部をカバーするに過ぎないというわけだ。
もう一つの違い。それは一種の彼等流サービス精神のようなもので、国民性にも深くコミットする点だと私は思う。彼らの口から第一声の拒否拒絶は滅多にきかれない。つまり、相手を失望させない返事をすることが彼らにとっては礼儀・美徳なのである。それはいざとなった時に大きな失望になるのではないかと私達は勘ぐりをしてしまうが、彼らは彼らでうまくやっているようではある。それを一種の嘘・ごまかしのように感じてしまうのは人に失望させるかどうかより正直にあれといわれてきた我々の美徳がそのように出来ていない、その違いによる。だからこういうことがいきなり目の前で起きたとき、我々は肩透かしをくらったような、騙されたような衝撃を味わうことになる。オフショア開発に携わった多くの方が同様の体験をお持ちだと思う。
言語の違い、国民性...、だからといってハイそうですかと毎回ビハインドに倒れてくる進捗を静観するわけにもいかない。これはビジネスなのだ。そこでなんとかしてスピードアップするように求める。しかし、労働時間は相変わらずで特に変わりはない。そしてリーダが話があるといってやって来る。そして、こう言う。「スケジュールが厳しいので、増員した。」こうして状況が厳しくなるたびにプロジェクトは肥大した。すべてのプロジェクトがそうであるというわけではないが、私が開発の現場にいたその時はそういう傾向が当たり前のようにあった。
仕事に対するスタンスの違い
日本もかつてそうだったように、ヴェトナムという国は今なお儒教の強い影響下にある。目上の人を敬い家族の絆を第一に考える。また、これは長い歴史の中で醸成されたもので、村という小さなコミュニティが彼らの社会の基本構成として機能しており、個人の存在は独立した個人というよりは家族という最小単位の一部としての意味あいが大きい。かつての対仏・対米戦争の時代、ホーチミンの軍はこの村をうまく利用してゲリラ戦をしぶとく戦い抜いた。映画「天と地」ではこうした戦乱に揺れる村社会での生き方が描写されているが、経済社会が発展し都会に住むようになった人たちにも基本的に受け継がれている。若い世代ではそういった傾向は薄くなってきているとはいえ、われわれと比較すると彼らは家族と過ごす時間を非常に大切にする。仕事はあくまで仕事、時間になれば切り上げて家族と過ごすために帰宅する、それは仕事をおろそかにしているわけではなく、彼らの生き方の一部分である。
納期が近いから、バグが解決しないから、といって日本のSEやプログラマのように家庭を投げ打ってでも長時間の残業をすることの是非を説いても基本的に通じない。もし、しぶしぶでも同意して遅くまで作業をしてくれるという場合は、それは彼らにとってよほどの譲歩であり、しかも一時的なものだと考える方が間違いない。それが常態には決してならないことを認識しよう。
スケジューリングする
中国と同じで旧正月(テト)にかかるプロジェクトはこの時期に1週間程度は不労の期間が入ることを想定しなくてはいけない。もし納期が迫っているとしても、この時期に無理に仕事させるのは非常に厳しい状況を生みやすい。先に述べた仕事に対するスタンスとも共通するが、旧正月もヴェトナム人は非常に大事にするので、ここは極力アンタッチャブルな時期とするべきだ。また旧正月は大体1月終わりから2月上旬くらいだが毎年日は異なるので、該当の年はいつか、事前に調べておく必要がある。
また、非常に初歩的な話になるが、場合によりスケジュール作成のときに互いの規模感を出し合い調整する局面があるかもしれない。このときの規模感の基準が違うということも十分にありえる。わたしが経験した最初のプロジェクトではプログラムの行数=ステップ数とはカウントしなかった。ステップ数とはおそらく実行行数だけを数えるとか空の実行行はどうなるのかという問題だったと思うが、実は詳細は今でもよくわからないままだ。ともかく実行行数によるLOC(Lines of Code)で規模の基準を統一した。実に単純な話ではあるが、こうしたことも相互理解を邪魔する要因になるので、早期に確認するにこしたことはない。
プロジェクトのスケジュールを検討する時には、このような状況に留意する。残業時間や旧正月の間の出勤を考慮に入れた工数の割り当てなどは基本的にし てはいけないことは改めていうまでもない。プロジェクトによってはざっくりとした工程・工期のみをまず決めて走り出すことも多いと思う。しかしアバウトに引かれた長い工期の線表ではいつの間にか予定が現実と乖離してしまいリカバリ策を打つ契機を見逃しやすい。なるべく短期間のタスクに分けるなど目標と達成度 をこまめに確認できて本人たちがスケジュールを身近に意識できるような工夫が必要だ。