最近、ちと火を噴きそうなプロジェクトにPMとして、途中から投入されました。Struts を使った Web 系のシステムですが、Struts は使ったことがないので、プログラムは絶対無理や!!ということで、純粋に管理に徹することになりました。実はある程度の規模のシステムで、まともに管理だけに徹するのは初めて色々と試行錯誤の日々だったりします。
2)役割分担 項目わけとも関係が深いのですが、機能仕様毎に担当者を決めて、各自の責任でその仕様を実現するってのが、今のプロジェクトです。最近だと、製造業では役割分担が行き過ぎて、生産工程に柔軟性がないから、セル生産が注目を集めていて、ソフトウェアにも取り入れようという動きもありますが、明らかに弊害もあります。要は Web 系だとブラウザ側の JavaScript による、インタラクティブな機能の実現から、サーバー側の DB アクセスの部分まで、結構レイヤできれいに分けられるので、メンバーの適性に合わせて、もう少し分担を明確にしたほうが断然効率が上がると思います。(ってか、今各担当者の日報を見ながら、ヒアリングをしながら、その辺の再配分を検討している所だったりします。) 後は再利用できる共通部分の抽出作業をもう少し考慮して、動的に項目と分担を更新していく事も前提にスケジュールを考えていますが、その場合、明らかにレイヤごとに専門家を作るような体制を敷いたほうが効率は良さそうかなと思うしだいです。
最近、RIA(Rich Internet Application) なんて略語が @IT などで、にぎわい始めていますが、 急に 画面の一割がFlash で構築することになり、画面表示用の HTML ではなく、中間データを XML をサーバーで生成して Flash へ送信しないといけなくなった場合とか。・・・
私は偶然にも W. Pree の「デザインパターン・プログラミング」から、デザインパターンを学習したのですが、個人的にはこれが非常に幸いしました。オブジェクト指向のクラス間の継承と包括関係の組み合わせで、システム全体のホットスポットと固定点に着目したソフトウェアの構造設計の方法が分析的に解説されてました。この本を読んだおかげで、「あるパターンをどのような状況で使うのが効果的で、その効果を十二分に引き出すにはどのようにすべきか」そうしたことを考えるきっかけを得たのですから。
元ネタに戻して、話をするなら、要するにデザインパターンがソフトウェア開発における、納期と品質を同時に向上させるためのモジュール設計の方法論なら、単純なアンチパターンの提示だけで終わらずに、応用に関する検証や省察を行い、どうすればより効果を出すことが出来るか、Tips や How To ではなく、もっと体系的に示す努力が必要なんじゃないかな。