20111105 LL名古屋 俺と嫁のagiLe deveLopment

29
俺と嫁の agiLe deveLopment @RKTM 2011/11/05 LL名古屋

Transcript of 20111105 LL名古屋 俺と嫁のagiLe deveLopment

俺と嫁のagiLe deveLopment

@RKTM2011/11/05 LL名古屋

自己紹介

● @RKTM● 所属コミュニティ:

● 名古屋アジャイル勉強会● 名古屋Scala勉強会

● 好きな言語:● Scala、Ruby

● 好きなLL:● クリスチャン・ベール(俳優)

(Christian CharLes PhiLip BaLe)

2011年4月に入籍しました!

さぁ初めての二人暮らしですよ。

● 家事どうしよう?● 奥さんは大概できますよ。● 自分も大体できますよ。

– 伊達に『麻婆豆腐の作り方を学ぶ会』を主催していないぜ!

– http://kokucheese.com/event/index/5523/

● じゃあ問題は・・・

お金の管理!

そうだ、家計管理ソフトを作ろう。

● 業務系システムを作る人なら一度は抱くであろう、「家計管理ソフトを作ろう」

● 自分たちが顧客● ちなみに奥さんは非IT系。でもPCは普通に

使える。

● フィーチャも奥さんと練ろう!

どうやって作ろう?

● 仕事と違うし、利用者は自分たちだ!

● 好き勝手できる!

● ならば・・・

言語!

● Scala● JavaVM上で動く、オブジェクト指向かつ関

数型の言語。● 静的型付けで安心、型推論でさくさく書け

て、高階関数と強力なパターンマッチで色々な処理もすっきり。

● Java⇔Scalaで相互呼び出し可能。● 勿論、Google App Engine/Java上で

も、Android上でも動く。

Framework!

● Lift● Scalaで書かれたWebフレームワーク。● 細かいことはきっと

こちらで話があったことでしょう。

宣伝

宣伝:名古屋Scala勉強会!

● 最近はGoFのデザパタをテーマに、● Javaで書かれたサンプルを素直にScalaに

書き換えてみたり● 「そもそもこのパターンはScalaではいらな

い!」ということでScalaの機能を活かした形で書きなおしたり

● より良い設計についてディスカッションしたり。● 毎月第3金曜日の夜に開催。

サイトをチェック!: https://groups.google.com/forum/#!forum/nagoyascala

宣伝:Scala Hackathon in 名古屋!

● Scalaを初めて触る人も、どっぷり浸かっている人も。

● Scala初心者は本の写経でも問題なし!● 自由にScalaで遊んで下さい!● 11/27(日)の10時~19時。

● 途中参加、途中退出もOK。

サイトをチェック!: http://partake.in/events/b138a365-623d-4c6b-8e29-edc4684b68dd

そしてプロセス!

● 勿論アジャイルで!● 個人的に使うものをわざわざ要件決めて

~設計書起こして~実装して~なんてやる訳ない。

● 設計書を見せても、奥さんにはどういう動きになるとかわからないし。

● フィーチャは奥さんと話ながら決めれば良い。

● わー、オンサイト顧客!

そもそもアジャイルとは!

● プロセスやツールよりも個人と対話を、● 包括的なドキュメントよりも動くソフトウェアを、● 契約交渉よりも顧客との協調を、● 計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく

『アジャイルフトウェア開発宣言』より: http://agilemanifesto.org/iso/ja/

アジャイルの原則!

● 顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。

● 要求の変更はたとえ開発の後期であっても歓迎します。

● 変化を味方につけることによって、お客様の競争力を引き上げます。

● 動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。

● ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。

『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html

アジャイルの原則!

● 意欲に満ちた人々を集めてプロジェクトを構成します。● 環境と支援を与え仕事が無事終わるまで彼らを信頼します。

● 情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。

● 動くソフトウェアこそが進捗の最も重要な尺度です。● アジャイル・プロセスは持続可能な開発を促進します。● 一定のペースを継続的に維持できるようにしなければなりません。

『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html

アジャイルの原則!

● 技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。

● シンプルさ(ムダなく作れる量を最大限にすること)が本質です。

● 最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。

● チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。

『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html

アジャイルで(個人的に)重要な要素。

● フィードバック重要。超重要。● 『動くもの』を『短期間』にリリースすることで

顧客からフィードバックを得る。→『要らないものは作らなくて済む。』

● 『変化を抱擁する』『機敏に対応する』ために『備える』。→『重いもの』は持たない。

● 『重いもの』の例:詳細すぎる設計書、ビジネスルール(の定義)を遍在させたり。

宣伝

名古屋アジャイル勉強会!

● 本会● アジャイルの色々なものをテーマにワーク

ショップ。● 毎月最終金曜日の夜

● 分科会● 今は『実践アジャイルテスト』を読んでディス

カッション!● 毎月第3水曜日の夜

サイトをチェック!: http://sites.google.com/site/nagoyaagile/

で、開発の計画(バーンダウンチャート)

11/05/01 11/05/08 11/05/15 11/05/22 11/05/29 11/06/050

2

4

6

8

10

Plan

大体1ヶ月でリリースできる計画!

進捗(5月の実績)

11/05/01 11/05/08 11/05/15 11/05/22 11/05/290

2

4

6

8

10

PlanActual

開発環境構築

進捗(5月~8月頭の実績)

11/05/01 11/05/15 11/05/29 11/06/12 11/06/26 11/07/10 11/07/24 11/08/070

2

4

6

8

10

PlanActual

鎮火する気配なし。

進捗(5月~11月頭の実績)

11/05/01 11/06/01 11/07/01 11/08/01 11/09/01 11/10/010

2

4

6

8

10

PlanActual

最新バージョンで開発環境構築し直し!

何故燃え尽きぬのか?

理由は諸説ある

● 激しく体調崩していたり。

● 映画を見なくちゃいけなかったり。

● ほら、Tumblrとかさ・・・。

● というのはおいておいて。

そもそも家計管理ソフトなんて

● (今は)要らんかったんや!● 家計は大体『運用』でわかる。● 家計の支出はクレジットカードに一本化

→請求額のサマリを見れば一目瞭然!– 費目のことはおいておく。

● 『今要らないものは作らない』超重要。● その分の時間を使って有意義な時間を過

ごすも良し。

まとめ

● 「今なにを作るか」と同じくらい「今なにを作らないか」は重要。

● リソースは有限。特に時間(≒期間)。● 運用で回せるところは運用で。

– 『ローラースケート実装』http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RollerSkateImplementation

● 価値あるもののために時間を使おう。● ソフトウェア≠ソリューション。

参考

● 写真類● http://pro.foto.ne.jp/free/product_info.

php/cPath/21_25_34/products_id/3718● http://www.morguefile.com/archive/disp

lay/3058● バーンダウンチャート

● http://banning.way-nifty.com/1/2005/07/_____7060.html