2014年7月10日に豆ナイト(イベント)で開催された「ぐるぐるDDD/SCRUM – ドメイン駆動設計入門 ~ モデリング探求のうずまきをまわしてみよう!」に参加してきました。
http://www.mamezou.com/event/mn_20140710.html
講師は、原田騎郎さん (株式会社アトラクタ)です。
DDDは興味がありつつも、実業務でいきなり実践してみる機会もなかなか無いですが、
入門でさらに実際に体験できるワークショップということで、弊社で私を含めた数名で参加させていただきました。
当日は台風が接近しており天候を心配しながらの参加となりましたが、そんなことを気にならないほど開発者・開発未経験者を含め大勢参加されていて賑やかでした。
全体的な流れとしては、まず講師の原田さんから
DDDとはといった概要を簡単に解説していただきまして、その後、参加メンバーを5人1組くらいのグループに分けて実際に「シナリオを書く→モデルを書く→コード(テストコード)を書く」を1イテレーションとして2回やるといった内容です。
スライド
原田さんからの指示としては、
- お題は、「時間貸し駐車場のシステム」。
- 45分間でやる。
- かならずシナリオ・モデル・コードまで一通りやる事。(シナリオだけやって他やらないとかはダメ)
1回目のイテレーション
私の参加したグループでは、まずシナリオ作成で話が膨らんでしまいモデルを書き起こす際には何をモデルにするべきかが議論になりコードを書く時間がほとんどない状況でした。
慣れていないと、短時間のなかでコードまで書くのは無理だ!と思いました。
(自分のスキル不足のせいかもしれませんが。。)
イテレーション終了後に原田さんからヒントとコード例が紹介されました。
- コアドメインがちゃんと考えられていたか
- 抽出したモデルが大きすぎる
- 最初から余計なものが入りすぎ(最初は最小限まで単純化しよう)
など。
2回目のイテレーション
慣れたことと、アドバイス+コード例をいただいたことで2回目についてはなんとかコードも含めて時間内でできました。
実際に参加してみて、感じたこと。
まず1番感じたのは、慣れないと短い時間でできるようにはならない。
慣れていないと的確に単純化したモデルを導き出すのは難しかったです。
今回は、駐車場という比較的わかりやすいものをテーマにしての実践でしたが、実業務で構築するものはこんなにシンプルではありません。
何度も繰り返して経験値をつまないと実際の業務で使えるようにはならないですね。
今回はSCRUMの部分につては時間の関係で割愛されていたりで残念ではありましたがみんなで、実践してみる機会もなかなかなかったので参加できてとてもよかったです。