未経験技術の調査不足

今日出社したら、とある部門からPHP関連の開発で問題が発生しており、相談に乗ってほしいとの連絡がありました。うぅ、なんで今日なんだ?と思いつつ、相談に乗りました。
Mojavi2とADO-DBという、個人的に全く利用経験がないものについての相談だったため、細かい技術指導というよりは、PHP開発におけるノウハウを説明して終わりました。

で、それが終わってふと思ったのが以下のこと。「最初の準備や技術調査を怠っていると結局開発時にしわ寄せが来るんだよなぁ」という至極当たり前のことです。

  • 5名以上、実装するメンバーがいる場合、かならず標準ルールを設け、それに従うように強制させる。
  • 凡人や初心者を開発メンバに含めている場合ほど、ドキュメント無し状態で実装に入ると危険。
  • 技術は使うモノであって、「使われるモノ」になっては断じてダメ
  • ネットや雑誌等で露出度が高い技術をむやみに「これでいける!」と思い込んで、ちゃんとした

 標準化というか、コーディングルールは短期開発になればなるほどしっかり最初に決めておかないとまずいですよね。保守が発生しないシステムはないし、PHPはどうにでも書けてしまうルーズさがあるため(これが良さでもあるんですが)、しっかり決めておかないと後で大変なことになりがちです。

 ドキュメントも最低限のものは用意しておくほうが作業効率が結果的に向上するのではないかと思います。

  • 開発に必要な標準類
    • Wikiとかで簡単にまとめておく
  • 対象システム
    • 機能一覧
    • 操作マニュアル
    • ER図(さらにデータフローがあれば完璧)

(※他にもあるはずですが、ぱっと思いつかないので誰かツッコミお願いします)

 また、PHP界では昨年フレームワーク元年とか言われていたみたいですが、これってある意味すごく良いことなんですが、結局「これだ!」的なものがないという混沌とした状態を意味することでもあります(来年になるとZend Frameworkとかになるんでしょうけどね。あ、JavaならS2ファミリー!)。ここで最初の選択肢を間違えると結構後で大変な目にあったりします。僕の目からするとMojaviはちょっと重たいのですが、今回相談に来た人は「便利そうだから」「一番使われてそうだから」という理由で採用したようです。で、その人自身は結構いろいろなアーキテクチャ設計を担当してきたようなのですが、調査量が圧倒的に足りないようでした。つまり、「開発始まればなんとかなるだろう」症候群です。余程、開発メンバー内に優秀な人がたくさんいないと、なんともならないことが多いです。

何か採用したい技術があれば、興味本位で即決めするのではなく、実装に必要となる点でのチェック項目をリストアップした上でそれに基づきしっかりと調査し、問題点や対策をどれだけ事前に洗い出せるかでその後の開発の躓き具合を減らせるように思います。全てを事前に解決できれば苦労はないわけで、そういった点では日本語MLの有無とか、ネット上の情報の豊富さといった部分も考慮しなければなりませんが、まずは自分たちでしっかりと評価できるだけの基礎力は持っておかないと危険ですよねぇ。

開発に時間がさけないからと言ってやるべきことをやらないと後で大変なことになりやすいというのを肝に銘じておきたいと思います。