IT新市場開拓プロジェクトにおけるアジャイル開発 part2
-
Upload
tomoaki-kambe -
Category
Documents
-
view
3.031 -
download
3
description
Transcript of IT新市場開拓プロジェクトにおけるアジャイル開発 part2
IT新市場開拓プロジェクトにおけるアジャイル開発
アプリケーション開発チーム編
2012/4/11 IPA/SEC特別セミナー
俊敏なビジネスに貢献するアジャイル型開発を知る
富士通ソフトウェアテクノロジーズ 神部知明
自己紹介
•神部知明 富士通ソフトウェアテクノロジーズ
•ソフトウェアエンジニア(入社〜19年)
• 受託開発 大企業向け社内システム
• 製品開発 パッケージ、SaaS(グループウェア、SNS)
•アジャイル開発への取り組み 9年目
現在:富士通のIT新市場開拓プロジェクトにて
システム開発を担当
@tkmbe
新市場開拓プロジェクト
ミッション
•従来富士通で取り組んで来なかった分野の開拓
•クラウドの活用
•システム開発チームの役割
• 現場で必要とされるアプリケーションの開発
• アプリケーション開発を支える基盤の整備
業界キーマンとともに
社会貢献とビジネス化の両立を目指す
8年間の取り組み
きっかけ:2003年当時
受託開発の短期・大規模化に伴うリスクの増大に対応したい
• リスクの早期発見・解決
• 自律的なチームによる管理負荷の低減
• モチベーション、スキル向上
2003年以降~
頻繁に交代…
この本は、悟りについての本で
である。
ソフトウェア開発は楽しくなければなりません。そうでなければ、そのプロセスは間違っているのです。
やってみよう |
8年間の取り組み
きっかけ:2003年当時
受託開発の短期・大規模化に伴うリスクの増大に対応するため。
• リスクの早期発見・解決
• 自律的なチームによる管理負荷の低減
• モチベーション、スキル向上
複数のプロジェクトに適用
• 最初はWFの受託開発へ適用(2重線表だった)
• XP的な受託(実質はタイムボックスで区切った単なる請負)
• 50人を3ヶ月間投入した火消し
6H×230日×8年
=11,000H
現在のスペック
規模:40名 5〜15名のチーム×4
技術:Java/Ruby/Flex/Android/HTML5
CouchDB/elasticsearch
Jersy/Rhino/Unicorn/jetty …
ツール:Redmine/Subversion
Jenkins/hudson
Findbugs/Checkstyle
JUnit/EMMA/Robotium
ZABBIX/Puppet
特徴:自作BaaS(REST API)
手法:XP改
開発サイクル イテレーション デイリービルド
知識共有
コードシェア
ペアプログラミング
自己組織化
朝会/夕会
タスクカード
支えるツール群
タスク/構成管理、自動テスト/ビルド/デプロイ
利用プラクティス
2Wイテレーション
計画ゲーム
共同所有
ペアプログラミング
コーディング標準
ユニットテスト
リファクタリング
継続的インテグレーション
オンサイト顧客
顧客価値に繋がらないことはヤメる
• 単体・結合テスト仕様書
→ユニットテスト、仕様書1行テスト
• 対面レビュー
→ ペア作業、解析ツール利用、第三者確認で代替
• 担当制 → 設計〜テスト〜運用まで自分たちで
• 進捗報告会議
→ 朝会・夕会・タスクボード、ツールで代替
• イナズマ線 → タイムボックス管理、頻繁に調整
• 自分の座席・進捗会議 → ノートPC化、ワークスペースで打合せ
…その他…
15名を超えて頻発する問題
チーム・システム分割が進む
コミュニケーション不全が発生し、様々な問題が発生
それぞれのチームで人の囲い込みが始まる
人の出入りが頻繁に発生
プロセスやルールが守られなくなる
新メンバーの立ち上げ、モチベーションの向上が課題になる
様々なバックグラウンドを持つメンバー
スキル不足の開発者が増える
文化的に合わないメンバーが出てくる
15名を超えて頻発する問題
チーム・システム分割が進む
コミュニケーション不全が発生し、様々な問題が発生
それぞれのチームで人の囲い込みが始まる
人の出入りが頻繁に発生
プロセスやルールが守られなくなる
新メンバーの立ち上げ、モチベーションの向上が課題になる
様々なバックグラウンドを持つメンバー
スキル不足の開発者が増える
文化的に合わないメンバーが出てくる
朝会・夕会
REDMINE
オンラインも活用
SNS
オンラインも活用
IRC
オンラインも活用
リリース時は細かく調整
チーム間を疎結合に
SDK / DAO
• サーバ側を汎用API化
• クライアント側はアプリ開発に集中
OData / OAuth2.0による汎用インタフェース CRUD / 検索 / 共通ロジック …
各種
クライアント
YY クラウドチーム
ZZ クラウドチーム サービス
XX クラウドチーム
・・・
http / REST / json /…
継続的インテグレーション
ビルドサーバ (Jenkins)
開発チーム(静岡・新横浜・蒲田)
Checkout
ソースコミット
結果通知(IRC)
本番 環境
STG 環境
検証 環境
1クリックで自動デプロイ
自動ビルド
JUnit / EMMA Robotium
FindBugs Checkstyle
自動デプロイ
タスク・構成管理
15名を超えて頻発する問題
チーム・システム分割が進む
コミュニケーション不全が発生し、様々な問題が発生
それぞれのチームで人の囲い込みが始まる
人の出入りが頻繁に発生
プロセスやルールが守られなくなる
新メンバーの立ち上げ、モチベーションの向上が課題になる
様々なバックグラウンドを持つメンバー
スキル不足の開発者が増える
文化的に合わないメンバーが出てくる
ローテーション
メンバーのローテーション
スキルの伝搬
製品へのフィードバック
リーダーのローテーション
チーム間のコミュニケーション不全を防止
メンバー囲い込みの防止
15名を超えて頻発する問題
チーム分割が進む
コミュニケーション不全が発生し、様々な問題が発生
それぞれのチームで人の囲い込みが始まる
人の出入りが頻繁に発生
プロセスやルールが守られなくなる
新メンバーの立ち上げ、モチベーションの向上が課題に
様々なバックグラウンドを持つメンバー
スキル不足の開発者が増える
文化的に合わないメンバーが出てくる
そもそもWFから抜けられない
イテレーション3 イテレーション2 イテレーション1 イテレーション4 イテレーション5
UI▼ PG/PT▼ ST▼ ▼リリース
「バグが全部直っていないので、
予定していたテストはまだできません。」
コミットする粒度が違う
計画を修正するタイミングが遅すぎる
リリーススケジュールを後退させようとする
アジャイルだから計画は立てられませんとか言う
教育
15名を超えて頻発する問題
チーム分割が進む
コミュニケーション不全が発生し、様々な問題が発生
それぞれのチームで人の囲い込みが始まる
人の出入りが頻繁に発生
プロセスやルールが守られなくなる
新メンバーの立ち上げ、モチベーションの向上が課題になる
様々なバックグラウンドを持つメンバー
スキル不足の開発者が増える
文化的に合わないメンバーが出てくる
ふりかえり
ふりかえりの写真
こだわり
一行テスト
タスクボード
目標
遅れ気味
判断基準
課題
標準化の難しさ
導入
品質の見極め
合わないメンバー
テンションについて来れない / 働き方が合わない
ビジネスサイドとの連携
期待に添えない場合も出てくる(見積りと実績)
ビジネスサイドからのダメ出し
「見積りの精度。
お客様に3つ機能を約束して、2つしか出せないことがある。」
「品質。
バグが残ったものがお客様に出る。」
「最近、開発メンバーが多くなったためか、
動きが遅くなり、ビジネス面でのリーチが遅くなった感覚あり。」
アンケート結果
IPA 非ウォーターフォール型開発の普及要因と適用領域の拡大に関する調査 平成24年3月28日
対象:現在のプロジェクトメンバー
ウォーターフォール経験者:32名、非ウォーターフォール:34名
心理的健康状態の比較結果
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Degreeof"Q
oL"
DegreeofStress
Waterfall NonWaterfall 線形近似 (Waterfall) 線形近似 (NonWaterfall)
0.3
0.35
0.4
0.45
0.5
0.55
0.6
NonWaterfall Waterfall
Stress
Stress
0.3
0.35
0.4
0.45
0.5
0.55
0.6
NonWaterfall Waterfall
QualityofLife
QualityofLife
WF大好き
QoL低く 高ストレス
最後に
改善は不連続への挑戦ってことなんだと気づいた。
By. yamaguchimasa