こんにちは、櫛井です。

プロジェクトマネージャーやディレクターの仕事というのは多岐に渡りますが、特にプログラマーと上手にコミュニケーションを取り一定の目的を果たすというのはわりと大変なことだったりするらしいです。私は比較的プログラマーとうまくやれているタイプのようなのであまり苦労した覚えが無いのですが、過去10数年で培ったプログラマーと上手くやる方法を紹介していきたいと思います。おまけで「プログラマーに嫌われる6つのこと」も紹介します。


※うまくやれてるイメージ図


プログラマーと上手くやる方法をざっくり言うと

  • 役割分担として求められていることをやる

  • お互いのTODOを把握し区切りをつける

  • スケジュール管理をしっかりする


といったカンジです。ではそれぞれ説明していきます。

役割分担として求められていることをやる


そもそもディレクターが求められる役割とはなんでしょうか。Web開発案件におけるディレクターがやるべき仕事は様々ですが、組織の中でディレクターが期待されていることは「案件をゴールに辿りつかせること」とここでは定義します。ゴールといっても様々ですが、一般的には
  • スケジュールを決め

  • 役割分担を決め

  • 仕様を決め

  • あらゆる調整をし

  • スケジュール管理を行い

  • サイトまたは案件を世に公開し

  • 成果を報告する

までが1セットですよね。このように、ディレクターは基本的に「何かを決めること」と「調整をすること」と「進行状況を把握すること」をやらないといけません。

案件をゴールに辿りつかせるためには様々なことが起こりますが、ディレクターが考えるべき・役割としてやるべきことは「いかに問題を早期に解決し進行に支障がない状況にするか」ということになります。一言でいうと簡単そうですが、実際やるのはかなり大変です。ディレクターがボンヤリしているだけで案件のゴールはどんどん間延びしていき、会社のリソースは無駄に減り、他の案件にも支障が出てきます。先回りして問題になりそうな芽を摘んだり、トラブルになりそうな件は最優先で対応するなど、想像力を働かせて頑張ってください。


会議ではお互いのTODOを把握し区切りをつける


いつまでに、誰が、何をするのか、誰がどのタイミングでチェックするのか、決まっていますか?
これが決まっていないと全体のスケジュールも見えてきませんので「話して満足」「なんかいいアイデアが楽しく話せて満足した」で終わらせずに「では具体的に誰が何するのか確認して終わりにしましょう」と一歩進めておきましょう。

軽い立ち話をした後でも
先ほど口頭でお話した件ですが、明後日までに○○をするという内容でお願いします。
明日の15時くらいのタイミングで再度進捗を確認させていただきますので宜しくお願いします。
くらいの内容でよいので、すぐ送っておくとお互いよいかと思いますよ。


議事録のメモの取り方については、以前書いたこちらのエントリもご参照ください。
議事録の書き方 基礎講座



スケジュール管理をしっかりする


ディレクターが提示するスケジュールをプログラマーに突っぱねられた、なんて経験は無いでしょうか。私は何度かあります。最近はもうすっかり無くなりましたが、そもそも工数の見積もりが超甘かっただけでした。時間は有限なのでしっかりやりましょう。

さて、うまくスケジュールをたてるにはいくつかのポイントがあります。スケジュール作成の順番でいうとこのような流れになります。

  1. スタートからゴールまでの全体スケジュールを設定

  2. 企画、デザイン、システム開発、マークアップ、デバッグ(QA含む)など各項目をおいてみる

  3. 上記の各項目で同時進行で進められるものを配置

  4. 素材の準備、社内・社外の確認が必要な項目を配置

  5. 全体のスケジュールを設定

  6. プログラマー、デザイナーなど関連する人に無理がないスケジュールか確認


難しいでしょうか。慣れれば簡単です。2で出てきた各項目は経験則でわかる部分も多いので、よくわからないうちは先輩や同僚など相談しやすい人に「こんなもんでいけますかね?」と相談してみるのもいいでしょう。また、状況によっては「公開日だけは決まっている」という場合も世の中にはあります。これはもうしょうがないです。そこに向けて社内のリソース調整をするため各所へ奔走し、最大限頑張りましょう。

そして、あなたが頑張って作成したスケジュールは残念ながら守られることはありません。どんなに理想的なスケジュール表にしても、作業を進めるために必要な各項目で外的・内的な様々な要因により期待していた期日には終わりません。しょうがないことです。あなたにできることは、スケジュールを作成する段階で(周囲にバレない程度に)項目ごとに余裕を持たせておくことくらいです。

ここで1つ覚えておいてほしいのは、理由が明確でゴールに納得感があればタイトなスケジュールでもプログラマーは引き受けてくれるということです。彼らは何でもかんでも嫌だといっているのではありません。合理的な理由があり、納得できて、公平性があればやってくれるんです。
ディレクターとプログラマーはあくまで同じチームの一員です。ゴールが明確で、そこに無茶をする必要性を共有できればお互い気持ちよく仕事ができるでしょう。

さあ、あとは設定したスケジュールと睨めっこしながら、進行状況の把握と遅延しているようであれば状況の確認を行いながら時の番人となりましょう。


プログラマーに嫌われる6つのこと


おまけです。これをすると、嫌われるまではいかないまでも「あの人微妙だよね」と思われてしまったりします。逆にいうと、これをしないようにすれば「あの人に任せておけば大丈夫」と言われます。

・優先順位が決まらない
 今やるべきことは何か、次のあれをするために先にしておかなければいけないのは何か。あなたが決めるんですよ。リーダーシップとまでは言いませんが、せめてチームの中だけでも仕切ってみましょう。

・理由を聞いても説明できない
 何のためにやるのか、なぜ必要なのかを聞いても自分が把握していないので答えようがないというやつですね。きっちり把握して自分なりに説明できるよう準備しておきましょう。

・何度も何度も席に行く
 「まだできてないって言ってんだろ!」と内心思われてます。いつくらいにできそうか聞き、それ以前には進捗確認しないほうがお互いよいですね。「もし予定よりも早くできそうであれば教えてください」って言っておけば集中してコード書いてくれますよ。あと口頭での指示よりも形に残るものがいいですね。口頭ばかりでやっていたらそのうち呪われますよ。

・デバッグしない
 プログラマーのことを信用しすぎるのもよくありません。バグはあって当たり前なので、見つけられなかったディレクターが悪いのです。できあがったものはちゃんとチェックしてお互いの視点でよい仕事をしていきましょう。

・押しに弱すぎる
 時には多少の強引さも必要です。あなたが折れやすいと余計な仕事も増えます。チームを余計な仕事から守るのもあなたの仕事です。押されても負けない、断るための理論武装をしておきましょう。

・なんか曖昧
 「なんか」というふんわりした雰囲気に「曖昧」というさらに曖昧さを混ぜ込んだありがちなコンボ。この言葉だけで信頼されてない感が漂ってきますね。しっかりしましょう。




というわけで、思うがままに書き殴ってみました。「全部教えます」というタイトルにした割に、他にもプログラマーのタイプごとに気をつけるポイントがあったり、自分の長所をいかに活かすか等いろいろありますが今日はこの辺で。「これを実践したのにプログラマーとうまくやれてる気がしない」というそこのアナタ。そういうところから治しましょう。自分の頭で考えるんですよ!


LINE株式会社では、自分はあらゆるプログラマーとうまくやれるというディレクターを募集しています。