agile japan - コードなくして設計なし 設計なくしてアジャイルなし · 2018. 7....
TRANSCRIPT
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
コードなくして設計なし 設計なくしてアジャイルなし
2018年7月19日 13:00~14:30
担当実行委員:中佐藤 麻記子
【Agile Japan 2018 技術系セッション】
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 2
PCを持参されていない方は、持っている方と隣同士になってください
1. 席の確定
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 3
アジェンダの確認
タイムテーブル概要
2. 概要説明
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
セッション概要
4
"包括的なドキュメントより動くソフトウェアを“ これがアジャイルマニフェストの一節であることは、みなさん ご存知でしょう。アジャイルが世の中に喧伝され始めた頃には、この一節から 「設計しないでとにかくコードを書き始めるのが アジャイル」 という誤解がまかり通ったこともありました。 今でも特にオープン系で実装経験がない方を中心に、 アジャイルにおける設計の位置付けにモヤモヤ感をお持ちの方もいらっしゃるようです。 本セッションでは、実装を通じて、アジャイルにおける設計に ついて、皆さんと考えてみたいと思います。
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
注意点
5
本セッションのタイトルを見て「当然だろ」と思う方は、 本セッション対象外です。他のセッションをお楽しみください。
セッション中に参加者の皆さんにコードを書いていただき ます。ご自分の書ける言語の環境・ツールをPCに入れてご持参ください。
ネットワーク環境(wifi等)、電源の準備は会場にありません。事前にご了承の上、ご参加ください。
ペアもしくはグループでディスカッションを行います。差支えない範囲で名刺をご持参ください。
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
タイムテーブル
6
1. 席の確定(5分)
2. 概要説明(10分)
3. チーム内自己紹介(10分)
4. 第1イテレーション(15分)
5. 第2イテレーション(15分)
6. 第3イテレーション(15分)
7. クロージング(10分)
8. 予備(10分)
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 7
自己紹介
各チームで自己紹介と一緒に、このセッションに参加 しようと思った動機を話してください
よい設計とは
一通りの自己紹介が終わったら、「よい設計とは何か」を、チームで話してください
3. チーム内自己紹介(10分)
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 8
実装(1分)
Hello World
ディスカッション(14分)
将来の変更を見越して、どんな変更可能性があるか考えてみる
例えば: ・ 表示する文字を変える可能性はないか(Hello と World 別々に) ・ Hello の部分を時刻によって変える可能性はないか ・ 標準出力以外に表示する可能性はないか ・ 多言語対応の可能性はないか
チームで設計を考える
4. 第一イテレーション(15分)
当日参加者だけのひ・み・つ
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 9
実装(15分)
第1イテレーションで考えた設計をできるだけ実装する
5. 第二イテレーション(15分)
当日参加者だけのひ・み・つ
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 10
ディスカッション(3分)
実装(12分)
要求があった変更
6. 第三イテレーション(15分)
「入力された文字列をバラバラにして、ランダムに表示し、正しく並べ替えるゲームにしたい」 当日参加者だけのひ・み・つ
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
みなさんに質問
11
第二イテレーションの設計の痕跡は残っていますか?(コメント含む)
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 12
「もったいない」 と想う気持ちの危険
逆にコードを分かりにくくする
コードをシンプルにする勇気はあるか
顧客からのフィードバックにより、自分の設計を壊す勇気があるか
構成管理ツールの意義
つくり続ける覚悟はあるか
Design(名詞) よりも Design(動詞) が重要
Estimate(見積結果) よりも Estimating(見積行為) が重要
Plan(作成された計画) よりも Planning(計画づくり) が重要
7. クロージング
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
よい設計とは
13
“もうかる” 設計
ビジネスに即した設計とは、変更容易性の高い設計であり、それはあらゆる変更を見越した設計ではない。
XPのプラクティスである 「シンプル設計」 に立ち返ろう。
Copyright © 2018 Mamezou Co.Ltd. All rights reserved.
設計の実体はどこにある?
14
設計 ≒ コード
設計図や設計書は、コードの 「モデル」 であって、設計そのものではない。
キレイな図や文書を書かないとしても、「設計する」
ことは必要。
Copyright © 2018 Mamezou Co.Ltd. All rights reserved. 15
言葉だけでは伝わらないが、言葉なくしては伝わらない。 すべてはコミュニケーションのため。