俺と嫁の
agiLe deveLopment
          @RKTM
   2011/11/05 LL名古屋
自己紹介
● @RKTM
● 所属コミュニティ:

     ●   名古屋アジャイル勉強会
     ●   名古屋Scala勉強会
●   好きな言語:
     ●   Scala、Ruby
●   好きなLL:
     ●
         クリスチャン・ベール(俳優)
          (Christian CharLes PhiLip BaLe)
2011年4月に入籍しました!
さぁ初めての二人暮らしですよ。
●   家事どうしよう?
     ●   奥さんは大概できますよ。
     ●   自分も大体できますよ。
          –   伊達に『麻婆豆腐の作り方を学ぶ会』を
               主催していないぜ!
          –   http://kokucheese.com/event/index/55
               23/

●   じゃあ問題は・・・
お金の管理!
そうだ、家計管理ソフトを作ろう。
●   業務系システムを作る人なら一度は抱くで
    あろう、「家計管理ソフトを作ろう」

●   自分たちが顧客
     ●
         ちなみに奥さんは非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/
で、開発の計画(バーンダウンチャート)
10




8




6


                                                                  Plan


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




0
11/05/01   11/05/08   11/05/15   11/05/22   11/05/29   11/06/05
進捗(5月の実績)
           開発環境構築
10




8




6

                                                       Plan
                                                       Actual


4




2




0
11/05/01   11/05/08   11/05/15   11/05/22   11/05/29
進捗(5月~8月頭の実績)
                                                                     鎮火する気配なし。
10




8




6

                                                                                        Plan
                                                                                        Actual


4




2




 0
11/05/01   11/05/15   11/05/29   11/06/12   11/06/26   11/07/10   11/07/24   11/08/07
進捗(5月~11月頭の実績)
10




 8


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


 4




 2




 0
11/05/01   11/06/01   11/07/01   11/08/01   11/09/01   11/10/01
何故燃え尽きぬ
  のか?
理由は諸説ある
●   激しく体調崩していたり。

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

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

●   というのはおいておいて。
そもそも家計管理ソフトなんて
●   (今は)要らんかったんや!
     ●   家計は大体『運用』でわかる。
     ●   家計の支出はクレジットカードに一本化
          →請求額のサマリを見れば一目瞭然!
          –   費目のことはおいておく。
●   『今要らないものは作らない』超重要。
     ●   その分の時間を使って有意義な時間を過
          ごすも良し。
まとめ
●   「今なにを作るか」と同じくらい
    「今なにを作らないか」は重要。
     ●   リソースは有限。特に時間(≒期間)。
     ●   運用で回せるところは運用で。
          –   『ローラースケート実装』
               http://capsctrl.que.jp/kdmsnr/wiki/blik
               i/?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

20111105 LL名古屋 俺と嫁のagiLe deveLopment

  • 1.
    俺と嫁の agiLe deveLopment @RKTM 2011/11/05 LL名古屋
  • 2.
    自己紹介 ● @RKTM ● 所属コミュニティ: ● 名古屋アジャイル勉強会 ● 名古屋Scala勉強会 ● 好きな言語: ● Scala、Ruby ● 好きなLL: ● クリスチャン・ベール(俳優) (Christian CharLes PhiLip BaLe)
  • 3.
  • 4.
    さぁ初めての二人暮らしですよ。 ● 家事どうしよう? ● 奥さんは大概できますよ。 ● 自分も大体できますよ。 – 伊達に『麻婆豆腐の作り方を学ぶ会』を 主催していないぜ! – http://kokucheese.com/event/index/55 23/ ● じゃあ問題は・・・
  • 5.
  • 6.
    そうだ、家計管理ソフトを作ろう。 ● 業務系システムを作る人なら一度は抱くで あろう、「家計管理ソフトを作ろう」 ● 自分たちが顧客 ● ちなみに奥さんは非IT系。でもPCは普通に 使える。 ● フィーチャも奥さんと練ろう!
  • 7.
    どうやって作ろう? ● 仕事と違うし、利用者は自分たちだ! ● 好き勝手できる! ● ならば・・・
  • 8.
    言語! ● Scala ● JavaVM上で動く、オブジェクト指向かつ関 数型の言語。 ● 静的型付けで安心、型推論でさくさく書け て、高階関数と強力なパターンマッチで 色々な処理もすっきり。 ● Java⇔Scalaで相互呼び出し可能。 ● 勿論、Google App Engine/Java上で も、Android上でも動く。
  • 9.
    Framework! ● Lift ● Scalaで書かれたWebフレームワーク。 ● 細かいことはきっと こちらで話があったことでしょう。
  • 10.
  • 11.
    宣伝:名古屋Scala勉強会! ● 最近はGoFのデザパタをテーマに、 ● Javaで書かれたサンプルを素直にScalaに 書き換えてみたり ● 「そもそもこのパターンはScalaではいらな い!」ということでScalaの機能を活かした 形で書きなおしたり ● より良い設計についてディスカッションしたり。 ● 毎月第3金曜日の夜に開催。 サイトをチェック!: https://groups.google.com/forum/#!forum/nagoyascala
  • 12.
    宣伝:Scala Hackathon in名古屋! ● Scalaを初めて触る人も、どっぷり浸かってい る人も。 ● Scala初心者は本の写経でも問題なし! ● 自由にScalaで遊んで下さい! ● 11/27(日)の10時~19時。 ● 途中参加、途中退出もOK。 サイトをチェック!: http://partake.in/events/b138a365-623d-4c6b-8e29-edc4684b68dd
  • 13.
    そしてプロセス! ● 勿論アジャイルで! ● 個人的に使うものをわざわざ要件決めて ~設計書起こして~実装して~なんてや る訳ない。 ● 設計書を見せても、奥さんにはどういう動き になるとかわからないし。 ● フィーチャは奥さんと話ながら決めれば良 い。 ● わー、オンサイト顧客!
  • 14.
    そもそもアジャイルとは! ● プロセスやツールよりも個人と対話を、 ● 包括的なドキュメントよりも動くソフトウェアを、 ● 契約交渉よりも顧客との協調を、 ● 計画に従うことよりも変化への対応を、 価値とする。すなわち、左記のことがらに価 値があることを認めながらも、私たちは右記 のことがらにより価値をおく 『アジャイルフトウェア開発宣言』より: http://agilemanifesto.org/iso/ja/
  • 15.
    アジャイルの原則! ● 顧客満足を最優先し、価値のあるソフトウェアを早く継 続的に提供します。 ● 要求の変更はたとえ開発の後期であっても歓迎しま す。 ● 変化を味方につけることによって、お客様の競争力を 引き上げます。 ● 動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ 短い時間間隔でリリースします。 ● ビジネス側の人と開発者は、プロジェクトを通して日々 一緒に働かなければなりません。 『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html
  • 16.
    アジャイルの原則! ● 意欲に満ちた人々を集めてプロジェクトを構成します。 ● 環境と支援を与え仕事が無事終わるまで彼らを信頼 します。 ● 情報を伝えるもっとも効率的で効果的な方法はフェイ ス・トゥ・フェイスで話をすることです。 ● 動くソフトウェアこそが進捗の最も重要な尺度です。 ● アジャイル・プロセスは持続可能な開発を促進します。 ● 一定のペースを継続的に維持できるようにしなければ なりません。 『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html
  • 17.
    アジャイルの原則! ● 技術的卓越性と優れた設計に対する不断の注意が 機敏さを高めます。 ● シンプルさ(ムダなく作れる量を最大限にすること)が本 質です。 ● 最良のアーキテクチャ・要求・設計は、自己組織的な チームから生み出されます。 ● チームがもっと効率を高めることができるかを定期的に 振り返り、それに基づいて自分たちのやり方を最適に調 整します。 『アジャイル宣言の背後にある原則』より: http://agilemanifesto.org/iso/ja/principles.html
  • 18.
    アジャイルで(個人的に)重要な要素。 ● フィードバック重要。超重要。 ● 『動くもの』を『短期間』にリリースすることで 顧客からフィードバックを得る。 →『要らないものは作らなくて済む。』 ● 『変化を抱擁する』『機敏に対応する』ため に『備える』。 →『重いもの』は持たない。 ● 『重いもの』の例: 詳細すぎる設計書、ビジネスルール(の定 義)を遍在させたり。
  • 19.
  • 20.
    名古屋アジャイル勉強会! ● 本会 ● アジャイルの色々なものをテーマにワーク ショップ。 ● 毎月最終金曜日の夜 ● 分科会 ● 今は『実践アジャイルテスト』を読んでディス カッション! ● 毎月第3水曜日の夜 サイトをチェック!: http://sites.google.com/site/nagoyaagile/
  • 21.
    で、開発の計画(バーンダウンチャート) 10 8 6 Plan 4 大体1ヶ月で リリースできる計画! 2 0 11/05/01 11/05/08 11/05/15 11/05/22 11/05/29 11/06/05
  • 22.
    進捗(5月の実績) 開発環境構築 10 8 6 Plan Actual 4 2 0 11/05/01 11/05/08 11/05/15 11/05/22 11/05/29
  • 23.
    進捗(5月~8月頭の実績) 鎮火する気配なし。 10 8 6 Plan Actual 4 2 0 11/05/01 11/05/15 11/05/29 11/06/12 11/06/26 11/07/10 11/07/24 11/08/07
  • 24.
    進捗(5月~11月頭の実績) 10 8 最新バージョンで 6 開発環境構築し直し! Plan Actual 4 2 0 11/05/01 11/06/01 11/07/01 11/08/01 11/09/01 11/10/01
  • 25.
  • 26.
    理由は諸説ある ● 激しく体調崩していたり。 ● 映画を見なくちゃいけなかったり。 ● ほら、Tumblrとかさ・・・。 ● というのはおいておいて。
  • 27.
    そもそも家計管理ソフトなんて ● (今は)要らんかったんや! ● 家計は大体『運用』でわかる。 ● 家計の支出はクレジットカードに一本化 →請求額のサマリを見れば一目瞭然! – 費目のことはおいておく。 ● 『今要らないものは作らない』超重要。 ● その分の時間を使って有意義な時間を過 ごすも良し。
  • 28.
    まとめ ● 「今なにを作るか」と同じくらい 「今なにを作らないか」は重要。 ● リソースは有限。特に時間(≒期間)。 ● 運用で回せるところは運用で。 – 『ローラースケート実装』 http://capsctrl.que.jp/kdmsnr/wiki/blik i/?RollerSkateImplementation ● 価値あるもののために時間を使おう。 ● ソフトウェア≠ソリューション。
  • 29.
    参考 ● 写真類 ● 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