On Sept. 4, 2010 at XP Matsuri, Kenji Hiranabe talked about the current situation of Agile and XP. Covers history of Patterns and Agile, Lean and recent Kanban movements, and goes back to XP. Explores what was the thing called "XP" with love.
Invited keynote on Software Symposium 2010 Japan. Talk about history of software engineering and the role of agile. Corrected recent words from Tom DeMarco, Ed Yourdon, Mary Poppendiec, Tom Gilb, Ivar Jacobson, ... and my thoughts.
On Sept. 4, 2010 at XP Matsuri, Kenji Hiranabe talked about the current situation of Agile and XP. Covers history of Patterns and Agile, Lean and recent Kanban movements, and goes back to XP. Explores what was the thing called "XP" with love.
Invited keynote on Software Symposium 2010 Japan. Talk about history of software engineering and the role of agile. Corrected recent words from Tom DeMarco, Ed Yourdon, Mary Poppendiec, Tom Gilb, Ivar Jacobson, ... and my thoughts.
Joshua Kerievsky's 2016 keynote speech at Agile2016. Speech abstract follows...
----
Over the past decade, innovative companies, software industry thought leaders and lean/agile pioneers have discovered simpler, sturdier, and more streamlined ways to be agile. While there is timeless wisdom in agile, today's practitioners would do well to bypass outmoded agile practices in favor of modern approaches.
Modern agile methods are defined by four guiding principles
• Make people awesome
• Make safety a prerequisite
• Experience & learn rapidly
• Deliver value continuously
World famous organizations like Google, Amazon, Air BnB, Etsy and others are living proof of the powers of these four principles. However, you don't need to be a name brand company to leverage modern agile wisdom.
In this talk, Josh will explain what he means by modern agility, share real-world modern agile stories, show how modern agile addresses key risks while targeting results over rituals, and reveal how the 2001 agile manifesto can be updated to reflect modern agile's four guiding principles.
Math in Machine Learning / PCA and SVD with ApplicationsKenji Hiranabe
Math in Machine Learning / PCA and SVD with Applications
機会学習の数学とPCA/SVD
Colab での練習コードつきです.コードはこちら.
https://colab.research.google.com/drive/1YZgZWX5a7_MGA__HV2bybSuJsqkd4XxD?usp=sharing
Graphic Notes on Introduction to Linear AlgebraKenji Hiranabe
Graphic Notes on Introduction to Linear Algebra authored by Prof. Gilbert Strang.
This is an idea for visualization to better understand linear algebra.
If you want a PowerPoint version, feel free to let me know, I'll share it with you.
My talk at devLove X June 23.
Around 2004, we were having hard times in propagating Agile in Japan. At that time, I was thinking about how you can use Agile practices for better team work. -- I named it "Project Facilitation".
2. 平鍋健児
w ㈱永和システムマネジメント
n 福井市(本社)、神⽥東京(⽀社)、沖縄(事務所)
n 「⾦融」、「医療」、「組込みシステム」開発
n 「Ruby と Agile」を使ったシステム開発
n Idobata の開発
w 株式会社チェンジビジョン
n 福井市(開発部)、上野東京(本社)
n astah* (旧:JUDE) の開発
w 平鍋健児
n UML+マインドマップエディタ astah*の開発
n 要求開発アライアンス、理事
n 翻訳、XP関連書籍、『リーン開発の本質』
『IMPACT MAPPING』等多数。
n 著書『アジャイル開発とスクラム』、『要求開発』
『ソフトウェア開発に役⽴つマインドマップ』
7. (C)Eiwa System Management, Inc 7
発端
w 上海視察帰りの社長曰く,
n 中国のソフトウェア会社と共同開発
をせよ.
n 中国は人件費が安い点で注目され
ているが,実際に上海に行ってみ
ると技術者のエネルギーはすごい.
優秀な人材がたくさんいる.単に人
的資源の調達場所としてではなく,
優秀な技術者と友好関係を結びた
い.また,今から爆発するであろう
中国市場も視野に入れたい.
n 現在開発中のJude(UMLエディタ)
の開発を加速.
8. (C)Eiwa System Management, Inc 8
中国・上海の状況
今回ざっくり割愛
オリジナルは、こちらを参照
http://www.slideshare.net/hiranabe/distributed-agile-using-uml
9. (C)Eiwa System Management, Inc 9
中国とのジョイント開発の大方針
w 中国を労働力リソースとは見ない
w 将来の展開を見据えた信頼関係作り
w 共同開発の2つの方向の選択肢
n 設計と製造の分離 … UMLでの仕様I/F
n 密なチームの結成 … XPチーム 採用
10. (C)Eiwa System Management, Inc 10
具体方針
w XPチームを結成し,UMLエディタを開発する.
w チームを醸成する.UMLに精通する.
w オブジェクト指向開発ノウハウを伝授する.
w 将来の「設計と製造の分離」にも備える.
w 分散開発のプロセスモデルを探る.
w 両社のWin-Winを確認する宣言
書を作成.
当時こういう
言い方が流
行っていた
重視したの
は思いと共
通のゴール
作り。
16. (C)Eiwa System Management, Inc 16
4つの価値
w Communication(コミュニケーション)
w Simplicity(シンプルさ)
w Feedback(フィードバック)
w Courage(勇気)
Communication +Simplicity+Feedback = Courage
17. (C)Eiwa System Management, Inc 17
12のプラクティス
w Planning Game
n 計画ゲーム
w Small Releases
n ちいさなリリース
w Metaphor
n メタファー
w Simple Design
n シンプルデザイン
w Testing
n テスティング
w Refactoring
n リファクタリング
w Pair Programming
n ペアプログラミング
w Collective Ownership
n 共同所有権
w Continuous Integration
n 継続的インテグレーション
w 40-Hour Week
n 週40時間
w On-site Customer
n オンサイト顧客
w Coding Standard
n コーディング標準
※ 14, 13, 19 などと統廃合が起こっているが,
ここではオリジナルの12を挙げる
25. (C)Eiwa System Management, Inc 25
w 「XPをベースに短期繰り返し型で開発する」
w 課題
n どう情報共有するか
n どう品質を維持するか
n どうリスクを軽減するか
w XPの採用
n 密なコミュニケーション
n ペアプログラミング・ユニットテストによる品質維持
n 短期リリースと舵取りによるリスク軽減
w 工夫した点
n モデルテスト、コマンドテスト、ストーリテスト
n Reflection Sheet、Evaluation Sheetで改善
プロセス1
26. (C)Eiwa System Management, Inc 26
プロセス2
Release1(3 months)
Iteration2(1
weeks)
Iteration1(1
weeks)
Simple
UML
Story1
Rel.2
Meta
model
IterationEvaluation
Story2-1
Story2-N
IterationEvaluation
Iteration3(1
weeks)
Story5-1
Story5-N
IterationEvaluation
Present
ation
Model
Test
Model
Test
Model
Test
Command
Test
Command
Test
IterationN(1
weeks)
Story Test
IterationEvaluation
ReleaseEvaluation
Evaluation Sheet
Improved Process
ReleasePlanning
IterationPlanning
IterationPlanning
IterationPlanning
IterationPlanning
Reflection Sheet
Tracking Sheet
w Release:三ヶ月単位で大きな計画+機能開発+評価を行う
w Iteration:計画+機能開発+評価を一週間単位で繰り返す
イテレーション0で、
モデルを作っている。
イテレーションNは、
手動テストに専念。
ふりかえりが肝!
27. (C)Eiwa System Management, Inc 27
ツール・環境
統合開発環境 Eclipse
構成管理 CVS、WinCVS
情報共有 Swiki
会話 MSN Messenger
ユニットテスト JUnit
ビルドツール Ant
OS Windows2000、XP
コンパイラ J2SE 1.4.1
いまはもう古いの
で見ないでね。
30. (C)Eiwa System Management, Inc 30
環境準備
w 「コミュニケーションに適した環境を準備」
ホワイトボード
タスク表を貼る壁
プリンタ
ホワイトボードを持つチームの部屋
お菓子
31. (C)Eiwa System Management, Inc 31
XP体験課題
M1 M2 M3 M4 M5 M6
分析されたクラス構成 C B B A B B
依存関係の局所化 B A B A A A
理解しやすさ C B A A A B
命名センス A B A A A A
コメント充実度 B A C A C C
テスト比率 B B B A A A
コーディング標準 C B B B B B
「簡単な課題で、プロジェクトでの価値観を共有」
w 課題:「ボーリングの点数計算プログラム」
w 狙いと効果
n XP予行(ユニットテスト、タスク分割と見積もり)
n プロジェクトでの価値観共有
l 理解しやすさ重視
l 品質重視
n メンバの技量把握
n コーディング規約注意
w 期間:1日
各自のプログラム評価結果
現在でも新しくチームに入った
人や採用時に、「スキル合わ
せ」としてやっている。
32. (C)Eiwa System Management, Inc 32
アーキテクチャ1
w 「共通語のUMLでアーキテクチャを共有」
jcontrol
jm odel
jview
jsystem
jutil
<<global utility>>
jview Elem ent
resource
Jude
Startup Jude application.
m ain() m ethod is here.
C om m ands &M odes.
Edit m odel and
control view .
System .
G lobal, SecurityM anager,
System Property
View .
Fram e & D ialogs
View elem ents.
Has view m odel and
Update drawing
Jude's M odels
(Presentations)
Properties, Help,
Im ages, M essages
Utilities
JP.co.esm.caddies.jomt• パッケージの
責務と依存関
係中心に理解
説明UMLの例
33. (C)Eiwa System Management, Inc 33
Overview of Golf
(Jude Architecture)
Control
Model
View
Com m andListener
<<Interface>>
EntityStoreEvent
M odelUIView
G roupU IView
C om m andFactory
Application
Command
C om m andEvent
C om m andM anager
<<singleton>>
C om m andRunner
11
new
listen
JTree
(from swing)
JTreeUIView
G C anvas
(from draw)
G C anvasUIView
listen
M ode JM enuBar
(from swing)
UIView
** 0..10..1
G olfAction
0..*
new
new
new
Action
(from swing)
EntityClipboard
edit
EntityStore new
edit
StateEditable
(from undo)
<<Interface>>
0..*0..*
Com m unication betw een View and C ontrol
is executed within C om m andEvent. View
generates C om m andEvent.
A C hange of M ode is notified to
View w ithin EntityStoreEvent.
C om m and edits M odel.
It also operates M ode
and UI.
0..*
アーキテクチャ2
w 「Judeは、MVCのフレームワーク上に構築」
36. (C)Eiwa System Management, Inc 36
Releaseプランニング
w 「ざっくりと、一緒に計画する」
w 準備していったStoryカードとStoryリストを利用
w 合同開発中に一通りの開発を一緒に行う
見積もり
(理想日)
Storyのリスト
どれからやる
か
どんな機能を開発したいか
38. (C)Eiwa System Management, Inc 38
Iterationプランニング
w タスク内容
n ステートチャート図のモデル開発
n ステートチャート図の生成機能開発
l (一つ基本機能を先行開発)
w タスク分割とサインアップ
39. (C)Eiwa System Management, Inc 39
開発
w 「ペアプロがチーム内ナレッジ共有に効果大」
w UMLで開発対象の概略理解
n UMLメタモデル等のクラス図、オブジェクト図
w ペアプログラミング
n 新しいことに対する勇気、そして理解
l アーキテクチャ
l 開発環境
n 会話促進
n ソースコードで解りあう
w ユニットテスト
n 習慣化
40. (C)Eiwa System Management, Inc 40
トラッキングシート
w 計画したタスク全て完了
w Team Velocity = 12.2 Points
w Test = 100% (168 cases)
41. (C)Eiwa System Management, Inc 41
リフレクションシート
w 「このIterationを振り返り、改善」
Keep These Try These
w Good mood
w Make jokes
w Talk a lot
w No over work
w Communication by writing and drawing
w Avoiding to one-way communication
w Without projector
w Pair Programming
w Stand up meeting
w Dash out the completed task
w Eat some sweets
w Put list of story on the wall
w Pair up with different nationality
w Take a 15 minutes rest after lunch
w Open the window during lunch (by
Yves)
w Tracking on wiki
42. (C)Eiwa System Management, Inc 42
第二イテレーション
w 機能の開発
n Storyカードで機能理解
n ほぼ全ペアの組み合わせ実施
n 途中で新たなストーリ7つ追加
n 全タスク開発完了
46. (C)Eiwa System Management, Inc 46
分散開発
w 分散でも大きな分担割をせずXP継続
w 変化・工夫
n あらかじめStoryカードを一緒に作成、理解
n プランニングは、全員でのチャット
n トラッキング情報は、壁ではなくwikiで共有
n スタンドアップミーティングは、各社で実施
n 不明点、アイデアなどは、必要なときにその都度
チャット
n ペアプロは、継続(奇数人になり減少)
47. (C)Eiwa System Management, Inc 47
ここから簡単にWebを編集
Wikiによる情報共有
サイトマップ
w Release 1
n スケジュール(期間分割と大雑把な見通し)
n ストーリー 一覧(このリリースの開発対象)
l ストーリーカード(必要なストーリーのみ)
n Iteration1
l Reflection Sheet(前回の反省)
l Tracking Sheet
l Team Velocity
l テスト結果(テストケース数と結果)
n Iteration2
n ・・・・・
w Release 2
w Release 3
w バグ情報一覧
w 改善項目一覧
w Daily自動テスト結果集計
w 開発のヒント集(開発注意点など)
w ダウンロード数推移
Edit
49. (C)Eiwa System Management, Inc 49
トラブルと対処
w Visa取得遅れによる出張延期
n → 準備課題など
w 仕様誤解2,3度
n 慣れによる仕様確認不足が原因
n → そのイテレーション内に回復
n → 複雑なものはwiki上にイメージと詳細な記述追加
w 正月休みのずれ+1人ハネムーン
n → 他のメンバがカバーし、問題なし
w ネットワーク不安定でチャット不可
n → 他のインスタントメッセンジャで対処
50. (C)Eiwa System Management, Inc 50
Release1全体
X’masversion
w 8回のイテレーションを完了
n 平均TeamVelocity = 12.2
n テストケース数 = 404
n 完了したストーリー数 = 約100
n ステートチャート図とアクティビティ図追加
n 他いくつかの改善項目を完了
n 合同開発・分散開発共に順調に進行
w X’masバージョンを急遽リリース
n 予定外、2日で対応
n 外部へのリリースで、顧客視点の再認識
54. (C)Eiwa System Management, Inc 54
UMLの役割
高い表現力・伝達力と厳密さをもった標準言語
↓
ソフトウェアの設計をすばやく共有
↓
アライアンスとスピード時代の開発をスムーズに
w 今回の開発でのUML利用
n 開発対象Judeのアーキテクチャ共有
n モデル(UMLメタモデル含む)の設計
n 簡単な設計アイデアの交換
55. (C)Eiwa System Management, Inc 55
プロジェクトの特性
Judeプロジェクトについての、
分散アジャイル開発のプラス要因
w 自分が顧客視点を持てた(UMLツールの利用者)
w 機能追加が主で大規模な設計が不要だった
w 参考ツールが存在し、要求仕様を理解しやすかった
w 一部モデルに関する詳細な仕様書が存在した
w 日本と中国との開発だった(時差など有利)
w 自社ソフトウェアの開発だった
56. (C)Eiwa System Management, Inc 56
うまくいったことと課題
w うまくいったこと
n 導入課題での価値観共有
n XPでのナレッジ共有、モチベーション維持
n リフレクションシートでの改善・改善意識
n メールではなくチャットでのリアルタイムな対話
n Wikiでのプロジェクト情報共有
w 課題
n コマンドテストの軽量化(テスト実行時間短縮、分割など)
n 顧客巻き込み
n リファクタリングとテストの時間確保
n プランニングゲームの時間短縮
57. (C)Eiwa System Management, Inc 57
今回の事例のポイント
w JudeをXPで中国と共同開発
w あえて大きな役割分担せず、“一緒に開発”
w 同じ場所でチーム開発開始
w ナレッジ共有、モチベーション維持
w 分散開発ではコミュニケーションツール活用
w UMLは重要な共通語の一つ
w 密なチーム・信頼関係を構築
59. (C)Eiwa System Management, Inc 59
紹介
図
ユースケース図
クラス図
シーケンス図
コラボレーション図
ステートチャート図
アクティビティ図
入力 Javaソース読み込み
出力
図のプリンタ出力
Javaスケルトンコード出力
PNG、JPEG出力
Javadoc形式のHtml出力
w 機能・特徴
n UML1.4サポート
n 無限回UNDO/REDO(編集の取り消し、やり直し)
n 大きな図をすばやく移動できる全体マップビュー
n クラス図自動生成
n Microsoft Office® への図イメージ貼付け
n 右ドラッグによる斜め方向スクロール
n ステレオタイプ毎の色設定
http://ObjectClub.esm.co.jp/Jude/
にて無償公開中。
「真のカスタマからのコメントを
ぜひお寄せください」
67. (C)Eiwa System Management, Inc 67
まとめ
w 10年以上続いている、アジャイルオフショア事例です。
w ツールは進歩しても、大事な変わらないものが多い。
これらを中心にお話しました(以下)。
w 特に立ち上げ時はコミュニケーション(人を知る)が大
事。部屋を一緒にする、ペアプロ、など期間を。知ら
ない人とメールでコミュニケーションしない。
w 「ふりかえり」が超重要。分かれていても、KPTシート
を交換するなど、本音の会話を。
w 開発方針や、全体絵、会社としての思い、などを最初
に語ろう。
w (特にこの開発では)絵、UML、による仕様の「理解共
有」(Shared Understanding)が大事。