#結論:
- MV*なんてエンジニアのオナニーだから採用できん
- jQueryでがんばろう
#記事の内容
しばらく前からAngularJSやらが流行して、ブラウザjsでViewとModelのバインディングがクールみたいな流れがあった。わたし、複数ベンダーで分業体制のプロジェクト管理するひと。ゆえ、その視点から考察してみた。根っこはエンジニアである。
##複数ベンダーの分業体制とは?
この記事で言う複数ベンダーの分業体制というのは、ウェブサイトをつくる際、大雑把にいえば次の3つフェーズを別の人がやって、場合によっては別会社という前提
- デザイン:主にPhotoShopとか使う(担当:デザイナー)
- HTMLコーディング:主に出来上がったデザインをHTML化する(担当:HTMLコーダー)
- システム開発:動的なウェブサイトに仕上げる(担当:プログラマー)
で、経験上キャンペーン系ウェブサイトでこの体制になるかな。制作会社とシステム開発会社という組み合わせが典型的かもしれない。もちろん、全部まるごと一社がやることもある。
##プロジェクト進行上の特徴
キャンペーン系ウェブサイトの例:
- 何故かリリース日は決定済みで絶対遵守
- CMとかリアル店舗での告知とかあって日程はずらせない
- 上流工程の遅れで後半のシステム開発及びテストが力任せになりがち(デスマーチ)
- お互いに「ふざけんな死ね」ぐらい思ってる(特に別会社だと)
- 打ち合わせで「目に涙を浮かべながら」相手を批判することも(それぐらいつらい)
- 軽いデスマーチが定期的に繰り返される(ただし、役所や金融系の機関に近いシステムと比較したら軽いデスマーチで済むので参加者に求められるマッチョ度合は中の上ぐらいだ)
##仕事の流れとそれぞれの言い分
デザイナー | HTMLコーダー | プログラマー | |
---|---|---|---|
役割 | クライアントの言い分をきいて綺麗なデザインをつくる | クライアントからOKが出たデザインをHTML化する、jQuery使って簡単なエフェクト入れる | 会員登録とかポイント付与とか、SNS連携とか、動的な感じに仕上げる |
初期段階 | わがままな芸能人とか動物とかマジ勘弁して!キービジュアル決まりません でもクライアントの言うことはきかないと | 仮の画像でいいからキービジュアル決めてーー!ワイヤーフレームだけでも出してーー | はやくしろ! |
中期 | チョイ遅れが出たけど、デザインできたから後はよろしくねー | 徹夜でHTMLつくるだ | はやくしろ! |
後期 | 今日はゆっくり寝られる | HTMLもクライアントからOK出たし、エンジニアさん後はよろしく、今日から寝られるわ あはーん | リポDを箱で用意しろ!結局遅れてるからリリースまで徹夜じゃ!ふぅ |
リリース直前 | 次の仕事が入ってきた | エンジニアさん見た目がずれてるし、このエフェクト効いてないけどどうなってんの? | テストだ、実機動作検証だ、徹夜だ、ふざけんな |
##MV*フレームワークをどう使うか?
こんな感じのプロジェクトでHTMLコーダーとプログラマーが関係してくる中でうまい採用方法はあるだろうか?と考えたものの、難しいっす!ってのが結論
###HTMLコーダーの言い分
- それ、プログラマーの都合でしょ?
- 毎日忙しくて新しいフレームワーク勉強する時間無い
- 徹夜続きなんで仕事増やさないでください
- ディレクティブ?何それ?気持ち悪いし責任持てない
- javascriptはjQueryでおなか一杯です
- そもそもプログラマーじゃないし
- jQueryじゃダメなんですか?
###プログラマーの言い分
- 新しい技術だし使いたい
- 作業負荷が軽減できたらうれしい
- このディレクティブ入れておいてもらえると助かるみたいな・・・でも強制できないし・・・
##というわけで
みんな忙しいし、新しい技術の採用は見送られるわけです。みんなが一体のチームで、責任の切り分けが不明瞭でOKな体制ならうまくいきそうな感じなものの、会社が違ったり組織が違ってみんなが忙しいと、jQueryでいいじゃんとなったりします。わたしもjQueryも十分だと思ってますし、jQueryのスクリプト側からHTMLへの一方通行の参照ってのはとても綺麗だと思うのです。
$('#myid').click(funciton(){
// 何かする
});
みたいな。セレクター万歳
結局、HTMLコーディングが完成した時点で、その工程での納品物・成果物として邪魔にならないディレクティブとかバインディングなら可能性はあると思うのだが、AngularJSはそうじゃないんだよね。
##理想論
以前、github.com の開発リーダーと「デザイナーとプログラマーがうまくコラボレーションするコツは何だ?」という議論をしたことがある。そのとき、
デザイナーがコーディングを学ぶことだ
と言う理想論で決着したものの、理想論に過ぎない。
##現実的な落としどころ
「HTMLコーディングのフェーズに、プログラマーを派遣して、その後のプログラミング作業負荷を軽減できるように仕事の邪魔にならない程度にHTMLに手を入れさせてもらう」
ということで、お互いが理解しているjQueryがいいんじゃないのかな、というのが落としどころ。
ちゃんちゃん