2人でシステム開発するときのノウハウメモ

最近、二人でシステム開発をする機会が多くなってきたのですが、
効率よく二人で開発を行うために考えたり試行錯誤して、気付いたことなどのメモ。

要件定義

思いつく要素を書き出す

プロジェクトに関係する要素をひたすら書き出します。
あまり深いことは考えず、ただひたすらに。

選別と分類

明らかに開発に関係ない要素を排除します。
次に、関係がありそうなものをグループごとに分けていきます。

グループに名前をつけて、相関図を作る

グループに名前をつけて、各グループの相関を考えます。
このグループはあのグループを実現するために必要だ、とか。


この時点で、各グループ自体は大きな目標、各グループの要素は小さな目標になります。
相関図は、設計をする際に各オブジェクトの関係が分かりやすくなります。

設計

要件定義で作ったグループに沿って、オブジェクト化していく

このとき、操作データの2つを分けながらやる。
そして、次のことを定義する。


・操作する側とされる側のインタフェース
・データフォーマット


これで、次のメリットが生まれる。


・データフォーマットに沿って、操作する側・される側は好きに開発ができる
・操作する側は、予め決めておいたインタフェースに沿って、操作すればよい
・よって、操作される側のことを考える必要はなくなる
・データを媒介としたインタフェースの場合、お互いに違う言語で開発できる


特に、得意な言語が違っていたり、お互いに使える言語がバラバラの場合、
このインタフェースのおかげで、全く気にせずに開発が行える。

開発

最初に、オブジェクトを作りきってしまう。
インタフェースが確立されているので、単体テストも容易に行える。


次に結合テストを行う。その後は基本的に、アジャイル開発。
要件定義で作った小さな目標を1つ1つ実装していく。

テスト

開発しながら常にテストを行い、チケットで報告しあう。
完成したものについても、同様に。