Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

SuperSonicAgile

 SuperSonicAgile

SuperSonicAgile

Avatar for shoyoshi

shoyoshi

March 13, 2013
Tweet

More Decks by shoyoshi

Other Decks in Technology

Transcript

  1. Agile is so fast, but・・・ • アゞャむル開発はプラクティスを効果的に組み合わせる こずによっお、開発チヌムの生産性を最倧限に匕き䞊げ るこずができる •

    しかし、芁件を決める偎にはこれずったプラクティスは なく、アゞャむルのスピヌドにあわせお忙しなく重芁な 芁件も決める必芁がある。耇雑なシステムになれば、ス トヌリヌや画面だけでは仕様の是非を刀断できない • ぀たり、開発は超高速で走っおいるが、芁件は目先の刀 断になっおしたい、党䜓俯瞰では芋圓違いな方向に走っ おいる可胜性があるずいうこずである COPYRIGHTS S.YOSHIHRA 2
  2. Agile+Usecase • たず、芁件分析を党䜓俯瞰で䜓系的に行うために ナヌスケヌス分析を行う。ただし、アゞャむルずは スピヌドが違うので非同期にタスクが組めるように する COPYRIGHTS S.YOSHIHRA 3 ナヌスケヌス分析

    芁件分析 アゞャむル 開発 ナヌスケヌス分析が終わったものからアゞャむル開発を行う。 ナヌスケヌス分析ずアゞャむル開発は非同期に行えるように別チヌ ムずする ナヌスケヌス分析はナヌスケヌス䞀芧の優先床が高いものから行 う。ナヌスケヌス分析が終わったものからアゞャむル開発を行う ナヌスケヌス分析ではナヌスケヌス図ではなくナヌスケヌス蚘述 を䜿う
  3. Agile+MDA+DDD=“Supersonic speed” • MDAModel Driven Architectureツヌル – 芁件分析のモデルをアゞャむル開発たで確実に䌝達 し、速やかに開発を行うためには支揎ツヌル矀が必 芁である。MDAの考え方はそれを実珟するためのも

    のである。生産性を向䞊させるためにMDAも適甚す る – ただし、ビヘむビアBehaviorはプログラミングす る方が効率が良いので扱わない • DDDDomain Driven Designのコンセプト – DDDを党面的に適甚するのではなく、モデルをそのた た実装に繋げるコンセプトを、MDAツヌルず組み合 わせお利甚する COPYRIGHTS S.YOSHIHRA 4
  4. • Tech Features – Agile – Usecase – MDA (Model

    Driven Architecture) – DDD (Domain Driven Design) • “Supersonic Agile Development” – 䞊蚘の高床な技術を最適に組み合わせにするこずで、 超高生産性なシステム開発を実珟する – この技術を䜿いこなすためには、必芁なスキルず ツヌルを備えた専門チヌムが必芁である Supersonic Agile Developement COPYRIGHTS S.YOSHIHRA 5
  5. Overview COPYRIGHTS S.YOSHIHRA 6 ナヌスケヌス䞀芧 MDAツヌル モデルず゜ヌスコヌド の差分抜出ず同期支揎 アゞャむル開発 実装+単䜓テス

    ト システムテスト リリヌス むテレヌション スプリント 芁件分析 ナヌスケヌス分析 ドメむンモデル DDD 優先床の高い ものから分析 分析枈で、優先床 の高いものから開 発 開発枈のものが、 リリヌスできる単 䜍になった堎合 セキュリティ、負 荷、障害テストな ども行う 芁件分析チヌム 開発チヌム プロダクトオヌナヌ ナヌスケヌスの分析枈、開発枈 などのステヌタスを管理する。 曎に、ナヌスケヌスに優先床を 付けるこずで蚈画、スコヌプ管 理に䜿うプロダクトバックロ グ盞圓
  6. サヌビス • ナヌスケヌス定額Pay per usecase – 生産性の責任は開発偎が負担すべきず考え、ナヌス ケヌス圓たりの䟡栌は定額ずする。蚈画よりも生産 性が䜎かった堎合でも远加料金は請求しない –

    開発総額はナヌスケヌス数に固定単䟡を掛けあわせ お算出する。開発䞭にナヌスケヌスが増えた堎合は 远加料金が発生する – 契玄圢態は請負・準委任ずもに可胜ずする。どちら もナヌスケヌス䞀芧を䜜成しお芋積りをする。請負 ではナヌスケヌス数を先に決め、開発途䞭で未開発 のナヌスケヌスは入れ替えるこずができる – ナヌスケヌス定額にすればアゞャむル開発でも請負 事前にコストを決めるずいう意味でが可胜にな る COPYRIGHTS S.YOSHIHRA 7
  7. サヌビス • 生産性2倍2x Speed – 業界暙準のメトリクスをもずに独自に調査した暙準 的な生産性を基に、2倍の生産性を基準ずする – 基準生産性に達成しなくおも、ナヌスケヌス定額な ので远加料金は発生しない。その分、期間バッファ

    は適切に蚭定する • 品質保蚌 – 䞍可胜なものを陀いお党おのモゞュヌルはテスト自 動化を行う曎にテスト芳点によっお手動によるテ ストも行う – 開発費甚に定率を䞊乗せするこずで、瑕疵担保期間 を延長するこずができる COPYRIGHTS S.YOSHIHRA 8
  8. • ナヌスケヌス数が100個のプロゞェクトを想定する – Supersonic Agile Development • 総開発工数79人月 – 埓来型りォヌタヌフォヌル

    • 総開発工数129人月 芁件定矩 : 14MM 工数を小さく、期間は短く COPYRIGHTS S.YOSHIHRA 11 ナヌスケヌス分析 : 14MM アゞャむル開発 : 50MM システムテス ト 15MM 開発 : 100MM システムテス ト 15MM 期間短瞮 ※䞀般的に、人員は同時投入する皋、生産性は萜ちるため、䞊の䟋では無理なく人員を投入した堎合を想定し おいる
  9. ナヌスケヌス䞀芧Product Backlog • 芁件分析ずアゞャむル開発を非同期に䞊行しお行う ために、ナヌスケヌス䞀芧がバックログの圹割を果 たす • 芁件分析がボトルネックにならないように生産性ず 担圓数を最適化しなければならない COPYRIGHTS

    S.YOSHIHRA 14 ナヌスケヌス分析 芁件分析 アゞャむル開 発 ナヌスケヌス䞀芧 ナヌスケヌス ナヌスケヌス 未分析なものを、ナヌ スケヌス分析する ナヌスケヌス分析が終わっ たものは分析枈にする 未分析 分析枈 優先床に応じお、ナヌス ケヌス分析やアゞャむル開 発するナヌスケヌスを遞択 する ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス ナヌスケヌス 分析枈のものをア ゞャむル開発する 開発枈
  10. ナヌスケヌス暙準FP • トランザクションファンクション – 仮に、平均的なナヌスケヌスに48のシナリオのステップ があるずすれば、その半数皋床がシステムが行うステップ である – システムが行うステップではアクタヌずの䜕らかの盞互䜜 甚が発生しおいるず考えられる。FPでいうEI/EO/EQの䜕れ

    かである • デヌタファンクション – ナヌスケヌスあたり、0.6個のILFがあるず仮定する – ナヌスケヌスあたり、0.3個のEIFがあるず仮定する • ナヌスケヌス暙準FP – 䞊蚘の前提で、NESMA抂算法を䜿っお蚈算するず14.7 22.7FPずなる – 暙準FPは、1UC=20FPずする COPYRIGHTS S.YOSHIHRA 15
  11. 開発目暙生産性 • 業界暙準FP生産性の倍を目暙ずする • 業界暙準FP生産性 – 20FP/MM基本蚭蚈 結合テスト • Supersonicの開発目暙生産性

    40FP/MM COPYRIGHTS S.YOSHIHRA 16 •15FP/MM基本蚭蚈総合テスト 出兞 SEC:゜フトりェア開発デヌタ癜曞2012-2013 䞊蚘の業界暙準FP生産性では総合テストたで含たれおいる が、Supersonicのアゞャむル開発は結合テストたでである。 よっお、業界暙準FP生産性から総合テストを陀いた生産性 を仮定する
  12. 芁件分析生産性ず担圓数比率 • 芁件分析生産性 – 7UC/MM 過去の経隓より • 開発目暙生産性 ※前述 –

    ナヌスケヌス芏暡を1UC = 20FPず仮定する – 40FP/MM = 2UC/MM • 芁件分析・開発担圓数比率 3.5 ≧ 開発担圓数芁件分析担圓数 ※぀たり、開発よりも芁件分析の生産性を高めにする こずでボトルネックを回避する COPYRIGHTS S.YOSHIHRA 17
  13. チヌム制 • Supersonicは専門チヌムのみが提䟛できるサヌビス である。専門チヌムの基本構成は次にように決める – Supersonicチヌム10名 • マネヌゞャ 1名 兹プロダクトオヌナヌ支揎

    • 芁件分析チヌム3名 ドメむンモデラヌ1名含む • 開発チヌム 5名 • アヌキテクト 1名 ※プロゞェクト特性に応じおサポヌトが远加になるこずはある 䟋えば、最近だずHadoopのようなスペシャリストが必芁 な分野 • プロゞェクトの芏暡に応じお、n個のチヌムを組み 合わせる䟋えば、20人が必芁なら、2チヌム線成 ずする COPYRIGHTS S.YOSHIHRA 18
  14. アゞャむル開発 • スクラムベヌスのアゞャむル開発を行う • スプリントは2週間を単䜍ずする。暙準線成のチヌ ムには開発者は5名なので、1スプリントあたり、 5UCが完成するこずになる • スプリント蚈画では、ナヌスケヌス䞀芧から分析枈 の5UCを優先床に埓っお遞択する倧きすぎるナヌ

    スケヌスが無いこずを開発チヌムで確認する • 他、アゞャむルプラクティスを実践する COPYRIGHTS S.YOSHIHRA 19 1週目 2週目 1 スプリント 1ナヌスケヌス 1週目 2週目 1 スプリント 1ナヌスケヌス スプリント ▌蚈画 スプリント ▌蚈画
  15. 生産性倍2x Speed • 暙準FPず開発目暙生産性から40FP/MM = 2UC/MMず なり、2週間で1ナヌスケヌスを䜜成するこずになる • 1ナヌスケヌス圓たり24画面だず仮定すれば、 MDAツヌルなどの支揎があれば実珟可胜な生産性で

    ある • 想定スケゞュヌル – 1人日=スプリント蚈画、芁件分析むンプット – 2人日=HTML䜜成3画面 – 2人日=画面開発 – 2人日=ビゞネスロゞックDB開発 – 2人日=テスト単䜓+結合 – 1人日=レトロスペクティブ ※郜床、顧客䌁業ぞのフィヌドバックを行う COPYRIGHTS S.YOSHIHRA 20
  16. MDAModel Driven Architecture • 䞀般的なMDAず同じように、芁件分析で䜜成したモデル から゜ヌスコヌドを出力し、゜ヌスコヌドに実装するた でをシヌムレスに行えるようにする • 最新のモデルが゜ヌスコヌドに反映されおは困るケヌス もあるので、スプリント毎のブランチ管理をMDAツヌル

    が行う • モデリングツヌルastahやEAのプラグむン、開発環境 eclipseのプラグむンを甚意する COPYRIGHTS S.YOSHIHRA 22 ナヌス ケヌス ビゞネス ルヌル ドメむン モデル モデリングツヌル MDA ツヌ ル ゜ヌスコヌド 開発䞭 開発環境 リポゞト リ
  17. DDDDomain Driven Design • DDDの必芁性 – Supersonicのような芁件分析ず開発が同時䞊行に行わ れる堎合には、芁件分析のモデルず゜ヌスコヌドが 察に察応付くこずは最重芁である逆に蚀えば、 TransactionScriptは採甚できない

    • EvansのDDD – Eric EvansのDDDは名著である。扱われおいる話題も広 範囲に枡る。最も重芁なのは、ドメむンに業務知識 が適切に衚珟されおいお、そのたたコヌドに定矩さ れるこずである – 業務知識であるビゞネスロゞックを゚ンティティに 定矩するこずで、ビゞネスロゞックをDRYに保おる COPYRIGHTS S.YOSHIHRA 23
  18. DDDのポむント • ビゞネスロゞックをSQLで曞いおはいけない – ビゞネスロゞックをドメむンが隠蔜しおいれば、そ のロゞックがJavaなのかSQLなのかはクラむアントに は関係ない – ドメむンレむダヌずむンフラストラクチャレむダヌ の境界が、教科曞的芋地から曖昧になるのは倧きな

    問題ではない – 躊躇せず、SQLを利甚すべきである • JOINはタブヌなのか – JOINの是非は、DDDの目的である業務知識の適切な実 装ずいうこずず無関係である – JOINのロゞックをドメむンが隠蔜し、JOINの結果をバ リュヌオブゞェクトで返せば良い䜕の遠慮がある ものか COPYRIGHTS S.YOSHIHRA 24
  19. メトリクス • 生産性 – スプリント完了時にリポゞトリにコミットした゜ヌ スコヌドから半自動的にFPを蚈枬する – 生産性は、スプリント毎、開発者毎に党お蚈枬する。 スプリントによる生産性の傟向ず予枬たで行う –

    ナヌスケヌスのシナリオ数、ビゞネスルヌル数、画 面数などず生産性ずの盞関も党お自動的に蚈枬する • 品質指暙 – 党モゞュヌルのカバレッゞを蚈枬する – 党おの自動テストの結果を集蚈する – システムテストのバグ傟向分析や、ナヌスケヌス単 䜍のバグ傟向分析を行い、レポヌトする COPYRIGHTS S.YOSHIHRA 26
  20. 成果型SIモデル • ナヌスケヌス定額は成果型SI – ナヌスケヌス数に定額単䟡を掛けお課金する – よっお、人月型SIではなく、成果型SIである。よっお、 技術革新によっお生産性を向䞊すれば、その分の原 䟡を枛らし、粗利を増やすこずができる •

    ナヌスケヌス定額単䟡は、競合他瀟に察しお競争力 のある䟡栌ずする高生産性であるから実珟でき る COPYRIGHTS S.YOSHIHRA 29 芁件定矩 開発 システムテスト 芁件分析 アゞャむル開発 システムテスト 競合他瀟 Supersonic
  21. ナヌスケヌス定額 • 競合他瀟のモデル䟡栌 – 業界暙準FP生産性20FP/MMだず、芁件定矩を含 めお1UC=200䞇円皋床になる • ナヌスケヌス定額単䟡 – 1UC

    = 180䞇円 ※競合よりも割安 – Supersonic開発目暙FP生産性40FP/MMだず、芁件 分析も含めお105䞇円皋床になるが、バッファずしお 75䞇円を乗せる COPYRIGHTS S.YOSHIHRA 30 ※ナヌスケヌスによっおは非垞に難易床が高い可胜性がある。それらの堎合、䟋倖的にナヌスケヌス定額 が適甚されないケヌスはありえる。バッチも同様にナヌスケヌス分析をするこずを想定しおいるが、バッ チによっおは぀のナヌスケヌスでも難易床が高い可胜性がある。耇雑な集蚈凊理や、ビッグ・デヌタを 扱う堎合などである。これらは、顧客ぞの説明、提案曞や契玄曞などに蚘茉する
  22. • ナヌスケヌス数が100個のプロゞェクトを想定する – Supersonic Agile Development • 総開発工数79人月 = 開発総額1.8億円

    – 埓来型りォヌタヌフォヌル • 総開発工数129人月 = 開発総額1.94億円 総額でも割安で、期間は短く COPYRIGHTS S.YOSHIHRA 31 芁件定矩 : 14MM ナヌスケヌス分析 : 14MM アゞャむル開発 : 50MM システムテス ト 15MM 開発 : 100MM システムテス ト 15MM 期間短瞮 1.8億 1.94億
  23. たずめ • Supersonic Agile Developmentずは – Agile+Usecase+MDA+DDDの超音速開発 – 成果型SIモデル •

    サヌビス䟡倀は – ナヌスケヌス定額 – 生産性2倍2x Speed – 品質保蚌 • MDAツヌルで装備 • メトリクス生産性、品質を垞に共有 • Cloudで開発環境を提䟛 COPYRIGHTS S.YOSHIHRA 33 ※具䜓的な生産性を謳うのは他にない
  24. Incentive novelty goods • “1.5x Speed”を達成したら – Supersonic Towel •

    “2.0x Speed”を達成したら – Supersonic T-shirt • 曎に、“3.0x Speed “を達成したら – Supersonic Character-Figure その前にキャラクタヌを決めなきゃ COPYRIGHTS S.YOSHIHRA 35