デブサミ2011( #devsumi )1日目参加メモ

デブサミ2011の一日目へ参加した際のメモです.

■日時:2011/02/17(木) - 18(金) 09:30-18:15
■場所:目黒雅叙園
■参考:http://codezine.jp/devsumi/2011/
■参加者数:のべ1000名以上

■参加したセッション
□萩原さん,福井さん -BIG DATA を扱うアーキテクチャーの原則-
□畑さん -Agility@Scale(アジャイル開発のスケールアップ)実戦編-
□小川さん,阪井さん -チケット駆動開発〜タスクマネジメントからAgile開発へ〜-
□鈴木さん,小川さん,吉羽さん,大澤さん -チケット管理システム大戦争 JIRA vs Redmine vs Trac〜ユーザが語る.なぜ私はこのツールを使うのか〜-
□西村さん -今そこにあるScrum-
□高橋さん -RIAの性能テストとアプリケーション品質向上のための管理手法-
□吉岡さん -デブサミオフィシャルコミュニティから選出のLT大会-


■資料


■感想
昨年に続き2度目の参加でしたが,技術的にはアジャイル&クラウドの実践に関する話が多いように感じました.そんな中,今回は開発プロセスセッションをメインに,所々,これからのアーキテクチャセッションに参加してきました.

開発における条件(組織の文化なども含めて)がまるっきり一緒になることはそうないので,最近では,紹介されている方法を参考にさせてもらう姿勢で聞くようにしています.特に,「どんな条件」で「どんなことをして」,「どうなった」のうちの,「どんなことをして」「どうなった」の部分の参考にしています.
#「どんな条件」の話も聞けると良いのですが,まだまだその辺の話をきちんと含めた上での話は難しいことが多いのかもしれません.各条件が起因しているのか否かもわかりにくいですので,「どんな条件」自体がわかりにくいですし.

そんな姿勢での講演への参加でしたが,色々なツール・方法論,効果が見られたのは収穫でした.改善を望む限り進歩し続けるのかなと思います.
あと個人的には,開発プロセス系のセッションの会場にいて,銀の弾丸を求める人がまだまだいるのかなと感じました.


■ログ的メモ(長文につき要注意)

  • コンテンツ委員:河村さん
    • テーマはクラウド
    • 毎年参加すると技術の流れが見れる.肌で感じて,仕事に反映してほしい.
    • ソーシャルなツールが増えてきたの皆が参加していき,皆でデブサミをつくっていけたら.

□萩原さん,福井さん -BIG DATA を扱うアーキテクチャーの原則-

  • VSUGのアーキテクトアカデミーの第3回を兼ねている
  • クラウドの先の話.クラウドでビックデータを扱う際の考え
  • ビックデータの理由.
    • 1.ビデオ発信などコンシューマデータの増加
    • 2.センサネットワークのようなセンサデータ
    • 3.コンテキストアウェアネス
      • ステータス情報だけでなく,ステータスからひっぱりだせる情報の要求が増えている.
  • ビックデータをどう扱っていくが問題
  • 通勤ラッシュが起きるかがビックデータの示唆を与える.
  • 通勤ラッシュはなぜ起きるのか?
    • 福井:処理能力が足りないのでは.
    • 会場より:負荷,整合性
  • スケーラビリティには条件がある
    • ボトルネックとなる場所は一箇所に定まらない.
    • 窓口が有限なので,その数までしかいかない.
    • ある処理が終わらないと処理のまちがある.すなわち,処理時間も条件.
    • 窓口と処理時間は分けて考えないといけない.
  • N-tierモデル
  • Universal Scalability law
    • 制約はcontention,coherency
    • contentionがフロント
    • coherencyバック.MapReduceはこっちを改善する
  • SQLは生き残る?
    • 福井:適材適所で生き残るのではないか.
  • SQLは関係代数
    • 他のデータモデルにも対応できる.SQLを抽象化したものを定義することで利用出来る.
    • ただし,データ構造によって,SQLで細かな操作が記述できないものもある.
  • データアーキテクチャの開発どうあるべきか.
    • DOA.←OOだとドメインモデルに近い
    • データモデル設計を先行させ,ボトムアップで実装を行う.
      • 大規模システムでは,1つ1つの要求に合わせるのではなく,先にあるべきものを考え,要求は後でマージする.
      • 現在は,生産性の高い開発は,データを起点としたボトムアップのアプローチ
  • 原則1
    • 論理レベルのデータ配置
      • 更新系と参照系をわける
      • 概念上の分類をし,負荷分散のために分割し,最後に配置を考える.
  • 原則2
    • 複数のデータモデル
      • 情報のリアルタイム生成
      • 情報の事前準備
        • 漸次変更処理:この中で,変更箇所のみのバッチ再投入技術などが生まれてきている
        • バッチ処理
  • リアルタイム操作のデータモデル:CQRS
    • 更新系と参照系を分ける
      • 更新系:OLTP,参照系:分析
      • 更新系:行指向,参照系:列指向
      • いかに一貫性を図るかを検討しないといけない
  • ビックデータの場合は非正規化するのは無理で,joinがいる.
    • そのひとつの実現として,ハッシュジョイン
      • 小さい方のデータテーブルを転送する.
      • 小さいデータテーブルからハッシュテーブルをメモリ上に作成する.
  • アーキテクチャの原則
    • データ分割による競合防止
    • メモリ上の効率利用
      • データ全体を載せるのではなく,インデックスをのせることや分割してのせる.
    • その次に転送効率化を目指す
    • その次に並列可能箇所の並列実行
    • 最後に,負荷分散
  • この辺の話は日経SYSTEMSに寄稿している


□畑さん -Agility@Scale(アジャイル開発のスケールアップ)実戦編-

  • プレゼン資料の配布あり
  • ラクティスの話ではなく,他に取り組まないといけないことがあるのではないか
  • 日本において,アジャイル開発は実践段階に入った
  • アジャイル開発をおこなうにあたって,規模の増大や開発チームのやる気を阻害する原因
    • カルチャーや価値観の変更
    • 既存ルールの変更,確立されているルール運用の変更
    • 過去の管理成果物などの再利用の困難
  • 中間管理職のリードやサポートが変革の源となる
  • 中間管理職の不安
    • 感覚的にやりたくない
      • 成功イメージの欠落
      • 理解の不足
      • アジャイルがどのようにプロジェクトの成功に寄与するかを理解してもらう
    • どのように管理するのか
      • テクニックの問題
      • バーンダウンチャートで進捗感出来るのか
      • 複数チームではどうするのか
      • 現在,チームがおこなっている具体的なテクニックの中からアジャイルテクニックを取り上げ,発展させる.
    • 管理上の仕組みの問題
      • 原稿の品証プロセスなどがウォーターフォール前提
      • 実績がないため,リスク査定が"High"になる
      • 実践重視でしっかり取り組むしかない.
      • 推奨はアジャイル向け品証プロセスを作ってもらうこと
      • 品証担当者にパイロットPJに参加してもらい,その中から新たなプロセスを導出することもオススメ
    • 見えすぎて困る
      • 遅れの報告の説明が煩雑
      • 見えて欲しい人を見方にして,見える方向に持って行く.
      • 正面突破で説得するのは難しい場合が多い
    • 評価のため失敗したくない
      • マネジメントは失敗すると次がない
      • さらに上位マネジメントに協力してもらい,チャレンジへの評価リスクを下げてもらう
  • べからず集
    • アジャイルが万能のように誇張しない
    • 管理職の成功体験を無視したり軽視したりしない
    • テクニックやアジャイル自体の善し悪しの議論にはまらない
    • 正面突破だけに徹しない
  • ディシプリンをもったアジャイル
    • 大規模時にはある程度のフォーマリティがいる
    • アジリティとフォーマリティのバランス
  • QA
    • アジャイル向け品証プロセスを作るとは?
      • スタートポイントは現行の品証プロセス.そこでおこなっていたことをかみくだいて,各イテレーションの中に入れていくような活動
    • アジャイルのリスクとは何か?
      • ラクティスに関するスキル不足となり,QCDが低下する.
      • 対処療法は存在するが,それでも不十分なことがある.


□小川さん,阪井さん -チケット駆動開発〜タスクマネジメントからAgile開発へ〜-

  • ソフト開発楽しいですか?
    • 本来,ものづくりだから楽しいはず
      • 不完全な人間間違いを犯さない計算機と戦わないといけない.
      • 勉強することなどやることがたくさんある
  • チケット駆動開発は作業抜けを泣くとともにプロジェクトを活性化させる
  • 注目される理由
    • 小規模かつ高機能なソフト開発
    • 環境の流動化
    • ユーザ要求の不安定化
    • 上記3点より,機敏に動くことが求められる
  • 従来の課題
    • 重い管理プロセス
      • 管理データの増加
      • 管理作業の集中
    • 文書によるコミュニケーション
    • 障害の発見に注力
      • 対応情報の不足
      • 計画変更を支援しない
    • 上記の課題をTiDDで解決できる
  • TiDD=BTS(ITS)を中心にツール連携
  • チケット無しに構成上の変更をしない,No Ticket No commit.
  • TiDDの運用方式
    • 完全チケット方式
      • すべての作業をチケットで管理
    • 補完チケット方式
      • 既存の管理は変更しない
      • WBSから新しく生まれたもののみチケット管理
  • 課題の解決
    • 情報の一元管理→管理の軽量化
    • BTSから様々なクエリで状況をリアルタイム表示→オンラインコミュニケーション
    • 修正履歴によりトレーサビリティを確保する→問題の解決を支援
    • 状況にあわせてマイルストーンごとにスコープを変更することができる.
  • チケット管理方式
    • ワークフロー型
      • 必ずチェックが入る
      • トップダウン組織
      • 仕様の一貫性を保証できる
    • オープン型
      • ネットワーク組織的
      • 機敏さ,自由がある
  • チケット駆動開発は,管理プロセスの軽量化,オンラインコミュニケーション,問題の解決支援を実現し,従来プロセスの課題を解決する.
  • これらはアジャイル開発においても有効な特徴
  • アジャイル開発の課題
    • 頻繁に変わるタスク管理
    • 継続的な修正と頻繁なリリース管理
    • 本番運用と開発中の2本のコードラインを持つ並行開発
  • チケット駆動開発Tracのチケット管理から生まれた
    • BTS/ITSをバグ管理だけでなくタスク管理に使う
  • チケット駆動開発の運用ルールは2つ
    • チケットはタスクカード
    • チケットに構成管理情報を付与する
      • No Ticket No commit
  • 運用サイクル
    • バージョン作成
    • チケット作成(変更もどんどんチケット作成する)
    • チケット解決
    • バージョンリリース
    • バージョンふりかえり
    • 改善要望・障害発生
  • 運用後
    • プロジェクトの問題や進捗を見える化できた
    • TiDDが自然にアジャイル開発になった
      • XPの小規模リリースを自然に運用できた
      • チケットの取捨選択こそがXPの計画ゲーム,本来のマネージメント
    • 開発のリズムが生まれた
  • アジャイル開発を実践する方法.下記3つ.
  • タスク管理をデジタル化
    • XPのタスクカードをデジタル化する
    • 計画に基づかない突然のタスク管理がやりやすい
      • もともとバグ管理ツールなので,突然に強い
    • 強力なチケット集計機能
    • 小規模リリース
  • 自然な変更管理
    • ワークフローで変更管理
      • バグ修正のワークフローのようにワークフローを定義できるとともに,フローを変更することができる.
      • SCM(構成管理ツール)連携でトレーサビリティ
        • No Ticket No commitなので,仕様からコードまでトレーサビリティ
      • チケットの親子関係で要件管理
        • 親チケットをストーリーカード,子チケットをタスクカードに.
        • 親チケットの属性に子チケットの情報をロールアップ
  • 並行開発
    • アジャイル開発は自然に並行開発になる
      • リリースブランチとタスクブランチ
        • 機能開発のブランチとバグ対策のブランチ,リリースブランチ
  • 4か条
    • チケットはタスクカードのように扱う
    • チケットに構成管理情報にリンクさせる
    • イテレーションをチケットのリリース予定バージョンに対応付ける
    • BTSプロジェクトはビルドプロジェクト(コンポーネント)ごとに作成する.


□鈴木さん,小川さん,吉羽さん,大澤さん -チケット管理システム大戦争 JIRA vs Redmine vs Trac〜ユーザが語る.なぜ私はこのツールを使うのか〜-

  • 大澤さん:JIRA使用歴2年
    • アトラシアン
    • 大澤推測,表65%,オリジナル25%,チケット管理システム10%
    • 「違いを詳しい人に聞いてみよう」がセッションの企画発端
  • ハッシュタグ( #itsjp )
  • 鈴木さん,JIRA使って4年位
    • アーキテクト,マネジメント
  • あきぴーさん,業務系WEBサービス
  • 吉羽さん,Trac
    • 組織の中でどう使うか.アジャイル開発でどう使うかについて話せれば
  • なぜチケット管理システムを使うのか.
    • 吉羽さん:前職で10プロジェクト平行状態→一元管理したい→チケット管理システム
    • 吉羽さん:プライオリティづけのために,チケット管理システム
    • 鈴木さん:コミュニケーションコストの削減.そこを皆で見ればOKにしている.大きなプロジェクトになればなるほど大事.
    • 小川さん:頻繁な変更への対応
    • 吉羽さん:情報の蓄積,共有
  • なぜ,そのツールを使っているのか.
    • Trac
      • Trac:インストールが簡単であること
      • Trac:プラグインによる拡張が容易であること
        • trac-hacksにある
      • Trac:レポートを自由に定義できること
        • 定義しておけば,表形式での出力が容易
      • Trac:日本におけるコミュニティ活動や情報量が充実している
    • Redmine
      • デフォルトのチケット集計表示,進捗管理機能がすぐれている
      • アジャイル開発の特徴を理解できたから
      • 構成管理パターンを理解できたから
      • チケットの属性とチケット集計機能の関連性が良く考えられている
      • 大澤さん:海外ではRedmineはあまり使われていない
      • 吉羽さん:機能をきちっときめていないことがTracの良いところ
    • JIRA
      • チケット管理しかしない.シンプルで必要十分
      • マルチプロジェクト前提
        • サブシステム,フェーズ,目的などなど
      • 優秀なコミュニケーションツール
        • 検索クエリーの共有範囲の設定やoffice製品連携,(設定面倒だが)柔軟なワークフロー設定などできる
        • 吉羽さん:一過性のコミュニケーションはどう?
        • 鈴木さん:使いながら落ち着いていく.チケットの切り方にはノウハウがいる.
      • エンタープライズ対応
        • 商用製品なので,明確なリリースやパートナー企業がサポート
      • 周辺製品との連携充実
      • オープンな文化
      • 吉羽さん&鈴木さん:GreenHopperのようなかんばんはアナログ・デジタルの使い分けは大事.
  • 効果
    • JIRA
      • コミュニケーション精度が向上
        • それJIRAっといて
        • PMから見ると,負荷分散の目安になる
      • 顧客とも円滑に
        • 問い合わせや依頼の抜け漏れがなくなる
        • ユーザ同士の会話が見えてくる
        • 定例会はEXCEL
    • Redmine
      • 開発者の評判はよかった
        • 自分のタスク・チームの状態もやりやすい
        • イテレーションのリズムのおかげで開発しやすい
      • 仕様書とwikiの使い分けがわからないという意見があった
        • 仕様書はSVN,共有情報はWikiへ使い分けている
      • Redmineを中核として,管理のためのExcelをなくす
      • 鈴木さん:ウォーターフォールでもバグ管理の際に,チケット管理システムは有効
    • trac
      • 単に導入しただけでは効果はでない
  • 課題
    • JIRA
      • プラグイン機能の活用
      • PMとしての活用
        • 顧客からサービスデリバリーまで一元管理
        • 蓄積情報の活用
      • 拡販
  • trac導入
    • 使うなら最初から.場として使う
    • 顧客にも公開して使ってもらう
    • 毎日使い続ける
    • 定期的な棚卸をする
      • ゴミ箱にしない
      • 放置チケット数=プロジェクトの健康状態
    • 自分たちで使い方を継続的に改善する
  • もっと使ってもらうようにしてもらいたい.excel作るコスト削減
  • 複数のツールに習熟している人はもっと公開してほしい.
  • 小川さん:各ツールくせがある.まとめてもらったら,面白いなぁ.
  • 鈴木さん;使いこんでいくといい.
  • 大澤さん:このセッションがきっかけになればいい.


□西村さん -今そこにあるScrum-

  • Agile Coaching by Rachel Davies and Liz Sedley
  • 今出来ることは何か.
  • イベントじゃない人たちに調査した.
  • 純粋Scrum58%,残りはXPとのハイブリッド
  • 海外の成功事例が出てきたの広まってきた.
  • 国内では調査がないので,nawotoさんの場合.
  • 海外と同じく,経営層やマネージャーから言われる.
  • 作業に集中したいという欲求に答える
    • プロジェクトのゴールに近づくことを推奨される
      • よく質問する人のそばに座る
  • 初めてのスクラムは楽しい.
  • 製品開発終わるとチーム離れる人にとっては,開発中に聞けるのは良い経験
  • このままほっておくとスクラムは枯れてしまうのではないかと思う
  • そこで,知ってほしいことがある.
  • 今の開発チームとスクラムのチームにギャップがある
    • チームに責任があることを自覚していない
  • チームの責任は要求の一覧から決めること→完了まで.
  • スクラムフレームワークのみ.
    • 大まかな流れのみ.
    • 中身は各自詰める必要がある
      • ただし,スクラムガイドにヒントは書いてある.
        • 皆が力を貸すこと
        • チームは自己組織→答えは,皆が良いと思える方法を入れれば良い.しかし,成果を出す責任はある.好き勝手やってよいわけではない.
  • だらだらしないために,スクラムではチェックポイントがある.
  • できるか不安な人に向けて,明日に備える.
  • となりの人の仕事を手伝えるか?
  • ラクティスの過程で皆の知識や考えが共有される.
  • 今はやりやすい環境が揃ってきた
    • コミュニティ
  • QA
    • スクラムコーチをしていてどんな時に成功したと思うか?
      • 開発者によかったと言ってもらえたとき
    • XPじゃなくてスクラムな理由
    • 日本人にはどっちが向いている?
      • 入れるとしてはXPかもしれないが,あまり区別していない.
    • スクラムを支援するツール
    • 既存のチームにスクラムを導入した場合,効果をどのくらいで感じるか.
      • チームとして機能しだすのは1ヶ月くらい
    • スクラムアンチパターンはないか
      • 1.スクラムマスタがリードしてしまう.2.チームで仕事をすることが分かっていない.
    • SIや受託開発での成功事例は?
      • 自分たちが出来ている.相談されているところもSIある.中小のSIで始まっている
    • チームの仲悪いと成り立たない?おとなになれない人はチームから外していいか?
      • 仕事なので.最悪外す.
    • ラクティスを部分的に入れるのがいいのか,全部入れるのがいいか
      • ケースバイケースだが,練習なら個別.仕事なら全部.相補作用するので.
  • 個人的QA@アンオフィシャルパーティ
    • スクラムコーチとはどんなことをするのか.
      • ケースバイケースだがミーティングや勉強会,アドバイスなどをおこなう
    • そもそもアジャイルな開発方法で開発することが適切なのか判断してもらうことの可能か
      • 可能.少し前にやっていた永和の無料相談会などに来てもらっても良い.


□高橋さん -RIAの性能テストとアプリケーション品質向上のための管理手法-

  • 別途資料参照


□吉岡さん -デブサミオフィシャルコミュニティから選出のLT大会-

  • 岩切さんあいさつ
    • 創発とコミュニティは実現している
      • 2005年に角谷さんsaid"ruby&agileチーム作る"→2010年チーム化
      • すでにそういう創発があるよ.
      • 仲間のつながりと意思がそれを創りだす.
    • コミュニティは創発の発生装置
  • LT(3分30秒)
  • オープンビジネスソフトウェア協会
    • WEBのお仕事には名前がのらない.野菜とかにはのっているのに.
    • それでいいのか?
      • staffroll.net:スタッフロール作成サイト
  • SESSAME
    • 渡辺のぼる氏
    • プロのIT技術者による「子供ロボット教室」
      • WRO
    • WRO:ロボコン
    • トレーナーズ教室4/9開催
  • Project Vine
    • 12名
    • vineのターゲット:個人ユーザ,教育関係者
  • 日本mysqlユーザー会
    • 略はMyNA
    • 2000年発足
    • 基本的な活動はML
    • 今後ユーザー同士のコミュニケーションを増やす
  • GoogleAppEngineユーザー会
    • appengine ja night
    • 実践的ノウハウの共有
    • twitterによる情報共有
    • appsと組み合わせるとメールサーバなしでメール遅れる.cronも動く
  • jaws user group
    • #jawsug
    • webサイトあり
    • 玉川さんによるブログあり
    • 3/4全国大会開催
  • java読書会
    • 13年目.ずっと変わらず.
    • みんなで読んだらめげないのでは
    • みんなで音読したらいいじゃない
    • 謝辞もソースも音読
      • わからなければ声に出して聴く.
    • 議事録をメモしている
    • 平均12.1人.最小2人,最多30人.月1土曜10:00-17:00
  • spring ユーザー会
    • jsug
    • vmwareとの共催するかも
    • 昨年の06,10,12月に勉強会した.
    • マイコミ投稿している
  • VSUG
    • アーキテクトアカデミー
    • 第4回は4月
    • 第5回は6月
  • flexユーザーグループ
    • 会場でflex使っている人3,4人
    • www.fxug.net
    • 3/9tokyo, 18oosaka, などなど全国で実施中
    • flashとかを簡単につくるSDK=flex
  • AgileUCDja
    • UCDの6原則
    • つまらんので4つ追加している
      • ユーザーの声を聞くべからず
        • ユーザーに弟子入りし,ユーザの経験を聞く
      • 1人のためのデザインをする
      • 手を動かしならが考える
        • スケッチング&プロトタイピング
      • 早期に失敗する
        • fast, small, often, smart
  • 要求開発アライアンス
    • 関東・関西で開催している
    • #redajp
    • いかに合意形成するかが最近の話題になっている
  • アジャイルプロセス協議会
    • www.agileprocess.jp
    • 企業中心
    • 来年度から個人参加できる体制をつくろうとしている
    • ワーキンググループ活動がメイン.本体ではその支援.
  • devlove
    • 2008/06発足
    • 3/1社内勉強会勉強会
  • 矢倉大夢
    • 中学2年生
    • セプキャンの説明
    • 若いプログラマキャンプへゴー
  • -