Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SQiP2016 SIG8

4,945 views

Published on

"SQiPシンポジウム2016 SIG8 : モダンなチーム開発環境を追求しよう" にて使用した資料です。
https://www.juse.jp/sqip/symposium/detail/day1/#sig_8

Published in: Software
  • Be the first to comment

SQiP2016 SIG8

  1. 1. SQiPシンポジウム2016 SIG8 モダンなチーム開発環境を追求しよう 快適さと正確さを両立したワークスタイルの実現に向けて 2016年9月15日
  2. 2. ● チケット駆動開発, CI/CD, Pull Request などの チーム開発技術は登場して何年か経った。 ● 企業での取り組み事例が報告されている。 ○ デブサミ, 企業の公式技術ブログなど ● SQiPシンポジウムではあまり見ない。なぜか? ○ もう当たり前で語ることが少ない? ○ 知らない?興味が薄い? ○ 参加者層の違い?職種?業界? ○ 問題意識はあるが、議論の場が少なかったのでは? ● SIGを開いて話せばわかる。知見も広がるはず。 ● 皆さんの課題解決のヒントを提供できる場を作ろう。 本SIG開催の動機
  3. 3. SIGリーダー/サブリーダーの自己紹介 ● 金子 昌永 ○ 車載デジタルテレビのプログラマーを5年経験した後、プログラマーやテスター を支援する立場に転向し、ソフトウェア工学技術の調査・実践・教育に従事。 SQiPシンポジウム2015ではテスト設計について発表。モダンなチーム開発環 境も業務テーマの一つ。 ● 三浦 拓也 ○ ソースコードメトリクスなどの数値データを統計的に活用した、品質改善や作 業効率化のコンサルタントに従事しています。最近は、見える化と自動フォ ローの仕組みを組み合わせた新しい開発基盤の開発を推進しています。
  4. 4. タイムテーブル ● チーム開発技術の概要 (15分) ● 匿名サーベイ(5分) ● グループディスカッション(30分) ● グループ別発表(30分) ● おわりに(5分)
  5. 5. チーム開発技術 ● 組織でのソフトウェア開発におけるプロジェクト管理, バージョ ン管理, 継続的インテグレーション, 情報共有, などの技術をまとめた分野。 ● チーム開発実践入門(技術評論社, 2014) の発刊をきっかけに普及した言葉と思われる。 ● おそらく国際的には同義の用語は存在しない。 ● ISO/IEC 12207 ではサポートプロセスの位置付け。
  6. 6. 一つの例 Repos Hosting system Requirements, Issues Pull Request Assign traceable Review, then Accept CI jobs executing, monitoring Triggers Results testingbuild deployment Chat system
  7. 7. 何が嬉しいのか ● 快適 ○ 手作業でファイルをコピーしたり、メールを送ったり巨大な スプレッドシートに書く手間が無くなる。 ○ 設計などの頭を使う作業に集中できる。 ○ 機械化は技術者にとって気持ちがいい。 ● 正確 ○ Issue・コード・テストなどのトレーサビリティ ○ チームメイトが何をしているのか記録が残る ○ ヒューマンエラーの激減
  8. 8. もしこのような開発環境が無かったら? ● 他の開発者の作業内容を上書きしてしまう。 ● 何のためにコードを変更したか後でわからない。 ● どのバージョンで機能が追加されたのか、バグが直ったのか がわからない。 ● 巨大なスプレッドシートで進捗管理 ● リリースビルド時に初めてビルドできないことに気づく ● ユニットテストが行われているか把握しづらい。 ● コードレビューを行いづらい。 ● 離れたチームメイトとコミュニケーションしづらい。
  9. 9. 主なツールの種類 ● バージョン管理ツール ○ ファイルやソフトウェア構成のバージョンを管理する ○ VCS と略されることがある ● 課題管理ツール ○ 機能追加やバグなどの課題を管理する ○ プロジェクト管理機能とWikiを備えているものもある ○ ITS または BTS と略されることがある ● CIツール ○ 何らかのトリガーに対してコマンドラインジョブを実行し、 結果を表示するツール。(※CIツールだけでCIはできない) ● チャットツール / Botツール ○ 人間同士の会話はもちろん、他ツールからの通知を表示したり、 他ツールに命令することができる。
  10. 10. ツールの変遷 CVS SVN Git Mercurial Bugzilla Mantis Trac Redmine Trello Taiga waffle.io JIRA Buildbot Jenkins Travis CI Concourse Circle CI Pivotal Tracker Bamboo GitHub GitLab Bitbucket メーリングリ スト IRC ChatWork Slack VCS/ VCS Hosting ITS/BTS PJ management CI Chat, communication WebSVN Mattermost 連携, Webアプリ化, サービス化 HipChat
  11. 11. ウェブアプリケーションを運用することになる ● オンプレミス (例)GitHub Enterprise を社内サーバーに ● クラウド(IaaS)(例)GitHub Enterprise on AWS ● クラウド(SaaS) (例)GitHub.com ● セキュリティ ● パフォーマンス ● ユーザー管理 ● 輸出管理 ● バックアップ
  12. 12. モダン ● ここ5年くらい ● アーリーマジョリティ ● 上位1/3にとっての当たり前 (先端ではない) ● モダンでなくてはならないことはないが、年単位で何かが進化 するので継続的にキャッチアップするのが良い。 GitHub, JIRA Excel
  13. 13. 参考になる情報源 ● チーム開発実践入門 (技術評論社, 2014) ● チケット駆動開発 (翔泳社, 2012) ● GitHub実践入門 (技術評論社, 2014) ● Slack入門 (技術評論社, 2016) ● 雑誌:Software Design, Web+DB press など ● 企業の公式技術ブログ ○ DeNA, LINE, CyberAgent, Cookpad, Mercari, など ● SlideShare ● Qiita ● アトラシアン主催のイベント
  14. 14. もしモダンなチーム開発環境があったとしても? ● 従来のワークスタイルに固執して移行できない層がいる ● 解決したはずのIssueなのにクローズされていない ● 理由がなくIssueがクローズされることがある ● Issue の入力項目が多すぎて使いづらい ● 1つの Issue に複数の問題が報告される ● Pull Request を出してもレビューしてもらえない ● Pull Request に対するレビューがずさん ● トピックブランチ名を見て何のIssueに対するものか不明 ● 自動テストのテストケースが当てにならない ● サーバーが重くなってきたが原因がわからない
  15. 15. チーム開発技術の概要 ここまで
  16. 16. 匿名サーベイ ● みなさんの所属するソフトウェア開発組織の 現状を問うサーベイです。 ● 7問, 3択式 ● 所属組織の状況に最も近いものを選んで下さい ● 本SIG終了時に回収します ● 個人名や社名は記入しないでください。 ● 後日、回答のサマリーを一般公開します。 ○ このスライドと共に公開します ○ http://www.slideshare.net/masskaneko
  17. 17. グループディスカッション ● 4グループ ● 各自の抱える問題をポストイットに書く:3分 ○ 1問題につき1枚, 何枚使ってもOK ● 書いた問題と共に簡単な自己紹介:1人1分 ● 出た問題について他のメンバーと意見交換:10分 ○ 「私の所ではこうしている」などあればベター ● 問題を分類する:10分 ○ 問題を書いたポストイットを分類がわかるように 模造紙に貼ってください。 ○ 分類の仕方はお任せします。迷ったら↓ {VCS, ITS, CI, コミュニケーション, インフラ}
  18. 18. 発表 ● どのような意見交換をして問題の分類がどうなったか について発表してください。 ○ 1グループ5分 x 4 ● 残りの10分は各グループのポストイットの内容を じっくり見たり、参加者同士で自由に質問する 時間とします。
  19. 19. おわりに ● 皆さんのチームの進歩のきっかけとなれば幸いです ● 調査を始める, 今の環境を見直す, など 何らかのアクションに繋がればと願っております。 ● ツールは重要ですが、皆さんが直面している課題を元に プランを立てることをおすすめ致します。 ● 次回のSQiPシンポジウムで発表するのはいかがですか? ● 本資料, サーベイ結果, ディスカッション結果は 近日中に一般公開します。 ○ http://www.slideshare.net/masskaneko/
  20. 20. サーベイ結果
  21. 21. Q1: バージョン管理システム(VCS)について a.VCSを使用していない 1 b.SubversionやCVSなどの集中型VCSを使用して いる 10 c.GitやMercurialなどの分散型VCSを使用している 5
  22. 22. Q2: 課題管理システム(ITS/BTS)について a.ITS/BTSを使用していない 3 b.ITS/BTSを使用している。 ただし、VCSと連携させていない。 6 c.ITS/BTSを使用している。 VCSと連携させている。 7
  23. 23. Q3: GitHub, Bitbucket, GitLab などの リポジトリホスティングツールについて a.よく知らない 5 b.必要性を感じているが、導入検討には 至っていない。 6 c.使用している。 または使用検討のために評価している。 5
  24. 24. Q4: VCS, ITS/BTSなどの運用環境について a.そもそもVCS, ITS/BTSなどのシステムを 使用していない。 1 b.自社のサーバー上のみで運用している。 14 c.社外のクラウドサービスも含めて 運用環境を選択している。 1
  25. 25. Q5: VCS, ITS/BTSなどのユーザーアカウント 管理について a.そもそもVCS, ITS/BTSなどのシステムを 使用していない。 1 b.システムごとに個別に管理している。 7 c.組織内のアカウント管理システムと 連携している。 8
  26. 26. Q6: VCS, ITS/BTSなどの構築・運用人員について a.そもそもVCS, ITS/BTSなどのシステムを 使用していない。 1 b.ソフトウェア開発者が兼任している 11 c.専任の人員を割り当てている 4
  27. 27. Q7: 開発環境のトレンド把握について a.特に情報収集を行っていない。 社内の情報であれば得ている。 5 b.製造業・エンタープライズシステム向けのカンファ レンスや、ツールベンダーからの売り込みで情報を 得ている。 3 c.書籍、雑誌、企業の技術ブログ、Qiita, SlideShare, IT勉強会、ニュースキュレーションサー ビスなどを活用して情報を得ている。 8
  28. 28. グループディスカッション結果
  29. 29. グループディスカッション結果の概要 ● 参加者16名 → 4名x4グループ ● グループ分けの方法は席順 ● 全員が会社組織に所属 ● 業界は把握していない。偏りがあるかは不明。 ● 職種は把握していないが、問題文面や議論内容からして 開発者・品質保証・管理者が混在。 ● 活発に意見交換がなされ、計51の問題が挙げられた。 ● 解決方法に関する議論には踏み込めていない。
  30. 30. 挙げられた問題の分類:技術分野・ツール種別 (VCS)バージョン管理・リポジトリ管理・ コードレビュー 14 (ITS)課題管理・プロジェクト管理 8 (CI)継続的インテグレーション 2 (Com)コミュニケーション・情報共有 3 (TM)テスト管理 2 (Infra)インフラストラクチャー 8 (-)技術分野・ツールを問わない 14
  31. 31. 挙げられた問題の分類:導入・普及・運用 導入以前の問題 (できない, 知らない, 未着手) 18 導入したが普及しない 9 導入したが運用が上手くいかない 22 導入フェーズを問わない 2 ※普及と運用の努力の順序は場合による ・普及してから運用方法を改善する ・運用方法を策定してから普及する
  32. 32. 挙げられた問題の例 直近の開発業務を優先するため、改善の工数をなかな か確保できない。 - 導入以前 ツールがカオス:GitHub vs GitLab vs SVN, Redmine vs JIRA (ボトムアップでいろいろ) - 普及 BTSが内製で他のサービスと連携できない ITS 導入以前 テストを自動化してないのでCI導入メリットがない CI 導入以前 コードレビューする文化がない VCS 導入以前 アカウント管理がバラバラ インフラ 運用 サーバーが国内にあり海外からのアクセスが遅い インフラ 運用
  33. 33. 詳細・総括はSIGリーダーのブログで http://masskaneko.hatenablog.com/

×