並列開発について1

先日のjava-ja@Lingrで色々な方からご意見を頂いた結果、自分の中でようやく確信に至った事があります。ただ、それを一言で書けるほど、まだ自分の中でキレイにまとめられていないです。そのまとめる作業も含めて、整理しようと思います。


そのテーマとは、Webアプリケーションを開発する上で並列開発をすべきかどうか、という事です。
まず、並列開発をすべきかどうかという議論がありますが、私は「すべきである」または「できるようにしておくべきである」と考えています。(前者と後者では雲泥の差がありますが、全てが自分の思うように動く事ばかりでもありませんので逃げ道として後者を追記しました。)

並列開発をできるようにしておくべき理由は、

  • メンバーのスキルは時と場合による。
  • UIと業務ロジックに求められるスキルは異なる。
  • UIと業務ロジックを作る為のデータモデルは、同時に決まらない。
  • データモデルを作るには、UIの決定が必要不可欠だったりする。
  • ユーザの関心事はUIに集中されている場合がとても多い。

といった事から、UIと業務ロジックを分けて開発できるようにしておく事は、業務的な意味合いでUIとロジックのセット(=サブシステム)で分けて開発できるようにしておくより、時間もメンバーのスキル特性も有効に活用できる気がします。


つづく