mokky14's IT diary

IT関係の仕事メモ、勉強会の感想など書いてます。

原田さんと遊ぼう DDD×Scrum に行ってきました

ゆるいイベント名ですが、内容はガチのワークショップでしたw
プライベートでの来仙にも関わらずワークショップ開いて頂いた原田さん、とりまとめの木村さんありがとうございました。

ワークショップのテーマは2チームでそれぞれレンタルサイクルのモデルを考えるというもの。
まずは1店舗で自転車を借りて返すという単純なモデルを考えるところから始めて、最終的には、借りた店と返す店が別の店でもOKというモデルにする。

で、チームであれこれやってみましたが、
f:id:mokky14:20131102121724p:plain
結果、1スプリントも回らず、全くScrumにならなかった。

最初のモデル検討はあれこれと議論になるけど、「これで行けるかな..?」という状態になったら、そこから話が進展せずに時間浪費。とりあえず実装してみると、実は処理もテストシナリオも書けないという状態だったことが分かったりしてた。色々と考えて設計しても実装してみたら実は決まってない部分があるなんて、普段の業務でしょっちゅう経験してるのに。。
TDDBCで言っていた「対象を小さくして、一つずつ相手にする」ということが全く出来てなかったんだなと。モデルを熟考してから実装に入ってたけど、最初に実現するシナリオ決まったらあれこれ考えず、さっさと実装してみた方がよかったのかも知れない。

で、ふと思い出したのが、TDDBCのときに出てたこの図。
f:id:mokky14:20131014003130p:plain
Scrumで進めるなら青い線(設計が汚くても動くコードを優先)で作業を進めるべきだったんだろうけど、赤い線(綺麗な設計が出来てから実装する)の方になってた気がする。この意識も変えていかないといけないんだろうな。

ちなみに最後に原田さんから模範解答的に提示されたモデルはすごくシンプルなモデルだった。アナパタの一種らしい。
f:id:mokky14:20131102233719p:plain
チームで検討してたのはビジネスを表すクラスの設計だけで、「自転車の場所」がコアドメインだというところまでは全然及んでなかった。

TDDもDDDもまだ自分の身になってないことを痛感。。
もっと素振りが必要だ。

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)