Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モダンな現場にするために実践したこと#2

kentana20
December 06, 2014

 モダンな現場にするために実践したこと#2

DevLOVE現場甲子園日本シリーズでの発表資料です

kentana20

December 06, 2014
Tweet

More Decks by kentana20

Other Decks in Technology

Transcript

  1. モダンな現場に
    するために
    実践したこと#2
    株式会社一休
    田中 健介
    @kentana20

    View Slide

  2. It takes two
    (Derek Sivers)
    本日の名言
    ref. 社会運動の起こしかた

    View Slide

  3. 自己紹介
    •田中 健介
    •突撃さん、と呼ばれること
    もあります
    •Twitter: @kentana20
    •GitHub: kentana20
    •はてな: kentana20
    •喋りはあまり慣れてないです

    View Slide

  4. 本日のお話
    •一休のご紹介
    •自分の業務(過去と現在)
    •現場改善のきっかけ
    •プロジェクト発足のためにやったこと
    •キックオフしてからやったこと
    •これからやろうとしていること
    •まとめ

    View Slide

  5. 今日のスライド
    ちょうど
    100枚

    View Slide

  6. 一休 is 何?

    View Slide

  7. 一休.com

    View Slide

  8. 一休.com
    •主力サービス
    •高級ホテル・旅館の予約サイト
    •2000年5月オープン(14歳)
    •http://www.ikyu.com/

    View Slide

  9. 一休.com レストラン

    View Slide

  10. •第二の柱となっているサービス
    •高級レストランの予約サイト
    •2006年5月オープン(8歳)
    •http://restaurant.ikyu.com/
    一休.com レストラン

    View Slide

  11. お隣さま

    View Slide

  12. お隣さま
    諸事情ありまして、
    こちらのお隣さまと
    お話したいです

    View Slide

  13. 社内の開発体制
    •エンジニアは開発部とインフラ部のいず
    れかに所属
    •開発部
    • 宿泊事業:20名弱
    • レストラン事業:10数名
    •インフラ部
    • 全サービス保守+社内情シス業務:若干名

    View Slide

  14. 社内の開発体制
    •エンジニアは開発部とインフラ部のいず
    れかに所属
    •開発部
    • 宿泊事業:20名弱
    • レストラン事業:10数名
    •インフラ部
    • 全サービス保守+社内情シス業務:若干名
    自分はココ

    View Slide

  15. 自分の業務
    (過去)
    https://accounts-flickr.yahoo.com/photos/36236696@N00/3363957930/?rb=1

    View Slide

  16. https://accounts-flickr.yahoo.com/photos/36236696@N00/3363957930/?rb=1
    •一休.com(宿泊)で長くサービス開発
    • 主に新規機能開発と運用・保守
    •サイト多言語化、航空会社とのサービス連携、ネイ
    ティブアプリのサーバサイドAPI開発などなど
    •ここ2~3年はエンジニアとディレクターの中間的な
    ポジション
    自分の業務(過去)

    View Slide

  17. 自分の業務
    (現在)
    https://accounts-flickr.yahoo.com/photos/go_wild/8620380857/?rb=1

    View Slide

  18. https://accounts-flickr.yahoo.com/photos/go_wild/8620380857/?rb=1
    •開発業務改善プロジェクト
    •「ユーザへの価値提供速度を最大化する」
    •開発フロー、サービス品質、運用負荷といっ
    た課題毎に解決へ向けたアプローチを実施
    •コアメンバー5名(専任は自分1人)
    自分の業務(現在)

    View Slide

  19. •一休のご紹介
    •自分の業務(過去と現在)
    •現場改善のきっかけ
    •プロジェクト発足のためにやったこと
    •キックオフしてからやったこと
    •これからやろうとしていること
    •まとめ

    View Slide

  20. 突然ですが
    質問です

    View Slide

  21. みなさんの現場は
    モダンですか?
    _人人人人人人人_
    > 突然の質問 <
     ̄Y^Y^Y^Y^Y^Y ̄

    View Slide

  22. スピードを保って
    顧客に価値を
    届け続けていますか?
    _人人人人人人人_
    > 突然の質問 <
     ̄Y^Y^Y^Y^Y^Y ̄

    View Slide

  23. 改善前の一休

    View Slide

  24. ザ・レガシー
    https://accounts-flickr.yahoo.com/photos/59393183@N03/8102172989/?rb=1

    View Slide

  25. 改善前の一休
    •ザ・レガシーな現場
    •バージョン管理はSubversion
    •コードレビューはほぼ実施してない
    •テストはほとんどない
    •デプロイは手動作業満載
    •情報共有は個々の意識に依存
    https://accounts-flickr.yahoo.com/photos/59393183@N03/8102172989/?rb=1

    View Slide

  26. 改善前の一休
    •ザ・レガシーな現場
    •バージョン管理はSubversion
    •コードレビューはほぼ実施してない
    •テストはほとんどない
    •デプロイは手動作業満載
    •情報共有は個々の意識に依存
    https://accounts-flickr.yahoo.com/photos/59393183@N03/8102172989/?rb=1
    なにか、改善に向かう手
    はないだろうか…

    View Slide

  27. •@naoya_ito さんのエントリ(2013年10月)
    • 「Webサービス開発現場から」(超良記事!)
    葛藤の中で見えた光

    View Slide

  28. コレだっ!!
    https://accounts-flickr.yahoo.com/photos/madyorke/7952266082/?rb=1

    View Slide

  29. 一休もnaoyaさんに
    技術顧問的なカタチで
    アドバイスしてもらおう!
    https://accounts-flickr.yahoo.com/photos/madyorke/7952266082/?rb=1

    View Slide

  30. イベントでnaoyaさん
    にアタック!
    • @kentana20
    • 「一休でもじげんさんのようなカタチで、、、」
    • @naoya_ito
    • 「いや、、ちょっと直近だと動ける時間少なく
    て、、、XX月頃になって、おんなじような興味を
    持ってたら、また、、」
    • @kentana20
    • 「そうですよねぇ、、」

    View Slide

  31. イベントでnaoyaさん
    にアタック!
    • @kentana20
    • 「一休でもじげんさんのようなカタチで、、、」
    • @naoya_ito
    • 「いや、、ちょっと直近だと動ける時間少なく
    て、、、XX月頃になって、おんなじような興味を
    持ってたら、また、、」
    • @kentana20
    • 「そうですよねぇ、、」
    やさしく
    お断りされる

    View Slide

  32. イベントでnaoyaさん
    にアタック!
    • @kentana20
    • 「一休でもじげんさんのようなカタチで、、、」
    • @naoya_ito
    • 「いや、、ちょっと直近だと動ける時間少なく
    て、、、XX月頃になって、おんなじような興味を
    持ってたら、また、、」
    • @kentana20
    • 「そうですよねぇ、、」
    でも、諦めない

    View Slide

  33. 「X月頃」を信じて準備
    •2013年12月
    •上司に改善プロジェクト起案を打診
    •2014年1月初旬
    •DevLove「現場」Advent Calendarに参加
    •2014年1月中旬
    •Advent Calendarがきっかけでボスとランチ
    •決まってもいないnaoyaさんの話で盛り上
    がって、上司の許可をゲット!

    View Slide

  34. Advent Calendar

    View Slide

  35. naoyaさんに再アタック!
    • @kentana20
    • 「一休の田中です。あの時、相談したxxxxxxの件
    であれこれあれこれ」
    • @naoya_ito
    • 「……自分にできることがあるか、とりあえず、
    一度話をしましょうか」
    • @kentana20
    • 「ありがとうございます!!」

    View Slide

  36. naoyaさんに再アタック!
    • @kentana20
    • 「一休の田中です。あの時、相談したxxxxxxの件
    であれこれあれこれ」
    • @naoya_ito(後から聞いた話)
    • 「……自分にできることがあるか、とりあえず、
    一度話をしましょうか(どの田中さんだったっ
    け?)」
    • @kentana20
    • 「ありがとうございます!!」

    View Slide

  37. naoyaさんに再アタック!
    • @kentana20
    • 「一休の田中です。あの時、相談したxxxxxxの件
    であれこれあれこれ」
    • @naoya_ito(後から聞いた話)
    • 「……自分にできることがあるか、とりあえず、
    一度話をしましょうか(どの田中さんだったっ
    け?)」
    • @kentana20
    • 「お待ちしております!!」
    奇跡!

    View Slide

  38. •2013年10月 naoyaさんのエントリ読む
    •2013年11月 イベントでnaoyaさんにアタック
    •2013年12月 上司に改善プロジェクト起案を打診
    •2014年1月上旬 「現場」Advent Calendarに参加
    •2014年1月下旬 naoyaさん初来社
    •2013年 3月 技術アドバイザー契約
    •2013年 4月 プロジェクトキックオフ
    時系列で見ると

    View Slide

  39. はじめに
    やったこと
    (キックオフ前)
    https://accounts-flickr.yahoo.com/photos/65830221@N06/6872338687/?rb=1

    View Slide

  40. 自分たちの
    現在地を知る
    https://accounts-flickr.yahoo.com/photos/65830221@N06/6872338687/?rb=1

    View Slide

  41. •目指すべき姿・カタチに対して、自分た
    ちは何が足りないのか、どんな課題があるの

    •コード品質、情報共有、テストといった具
    体的な課題項目を横軸としたCMMIを作成
    •CMMIを元に各課題についての改善後のアク
    ションストーリーを作成
    自分たちの現在地を知る
    https://accounts-flickr.yahoo.com/photos/65830221@N06/6872338687/?rb=1

    View Slide

  42. CMMI

    View Slide

  43. アクションストーリー

    View Slide

  44. アクションストーリー
    現在地点と
    目標を見える化

    View Slide

  45. 次のアクション
    https://accounts-flickr.yahoo.com/photos/schepers/10850885766/?rb=1

    View Slide

  46. •新しいツールの検証
    •全体展開する前に自分たちにフィットするかをコア
    メンバーで検証
    •メンバーに情報をインプット
    •壮大な目標と大量の変化で混乱させないように少し
    ずつ(少しずつが、後に仇となる…)
    次のアクション
    https://accounts-flickr.yahoo.com/photos/schepers/10850885766/?rb=1

    View Slide

  47. プロジェクト
    キックオフ!
    (2014/04/01)
    https://accounts-flickr.yahoo.com/photos/93893419@N05/8718429763/?rb=1

    View Slide

  48. •エンジニア全員を集めて実施
    •自分が話したこと
    •プロジェクトの目的
    • CMMIによって整理した現状
    • これから目指す方向
    •naoyaさんに話していただいたこと
    •イマドキのWebサービス開発現場の話
    キックオフ
    https://accounts-flickr.yahoo.com/photos/93893419@N05/8718429763/?rb=1

    View Slide

  49. キックオフしてから
    やったこと

    View Slide

  50. 体制をつくる

    View Slide

  51. プロジェクト体制

    View Slide

  52. プロジェクト体制
    •課題項目毎に推進チームを編成
    •キックオフ時に実施したアンケートを元に編成
    •チームごとに目標と具体的なアクションを設定

    View Slide

  53. プロジェクトの進め方
    •naoyaさんと隔週でミーティングを実施
    • 進捗の確認とテクニカルなレビュー etc..
    •3ヶ月ごとにふりかえりを実施
    •全員の前で目標に対する現在地と成果を共有
    •これからトライすることに沿ったお話をnaoyaさん
    がプレゼン(貴重)

    View Slide

  54. 4月からの8ヶ月間
    で実施したこと

    View Slide

  55. 主に実施したこと
    •情報共有ツール・ガイドラインの整備
    •バージョン管理システムの移行
    •タスク管理と見える化
    •E2Eテストの整備
    •デリバリーの自動化

    View Slide

  56. 情報共有

    View Slide

  57. Hipchat

    View Slide

  58. Hipchat
    •Atlassian社製のチャットサービス
    •主にエンジニア同士でやりとり
    •最近デザイナーもジョイン
    •外部ツール連携も結構ラク
    • Hubot, Jenkins, Redmine ..

    View Slide

  59. Qiita Team

    View Slide

  60. Qiita Team
    •qiita.comの社内向けサービス
    •カジュアルに情報を共有できる
    •Markdownで記述可能(超重要)
    •Hipchatとも連携可能
    •まずは日報を書くことからスタート
    •慣れてきたら徐々に仕様や技術Tipsなど
    の共有ツールに展開

    View Slide

  61. Qiita Team

    View Slide

  62. 情報がまわるように
    •情報の流れをあえて冗長化
    •Qiitaに投稿(自動的にHipchatに通知)
    •さらにたたみ掛けるように、より知ってお
    いてほしい相手に自分でHipchatでメンショ
    ンを飛ばす
    •さらにさらに重要情報は朝会で口頭で共有

    View Slide

  63. 情報がまわるように
    •情報の流れをあえて冗長化
    •Qiitaに投稿(自動的にHipchatに通知)
    •さらにたたみ掛けるように、より知ってお
    いてほしい相手に自分でHipchatでメンショ
    ンを飛ばす
    •さらにさらに朝会で口頭で共有
    「知らない」
    「聞いてない」
    を作らない仕組み

    View Slide

  64. 情報がまわるように
    •情報の流れをあえて冗長化
    •Qiitaに投稿(自動的にHipchatに通知)
    •さらにたたみ掛けるように、より知ってお
    いてほしい相手に自分でHipchatでメンショ
    ンを飛ばす
    •さらにさらに朝会で口頭で共有
    まだまだ
    改善の余地あり!

    View Slide

  65. バージョン
    管理

    View Slide

  66. 導入までのロードマップ
    •naoyaさんとGitHub
    •有志で社内勉強会
    •全体でGit/GitHubハンズオン

    View Slide

  67. naoyaさんとGitHub

    View Slide

  68. naoyaさんとGitHub
    •いまどきのGitHubお作法を学習
    •WIPプルリク
    •CI連携
    •継続的デリバリー

    View Slide

  69. 社内勉強会
    •有志で業務開始前1時間を使って実施
    •GitHubを複数人で触って習熟度アップ
    •導入を促進する仲間を増やす
    •Git/GitHubハンズオン
    •勉強会参加メンバーを講師としてエンジニ
    ア全員向けに実施

    View Slide

  70. 8月に全チーム
    移行完了!

    View Slide

  71. タスク管理

    見える化

    View Slide

  72. タスク管理と見える化
    •カンバン
    •チーム内部のタスクと状況を見える化
    •朝会
    •チーム朝会+全体朝会で状況と情報を共有
    •ふりかえり
    •チーム毎にふりかえりをKPTで実施

    View Slide

  73. カンバン

    View Slide

  74. カンバン
    •チーム毎に運用はお任せ
    •チームそれぞれでカンバンのカタチを決め
    て運用中
    •ToDo/Doing/Doneのシンプルなものから、細
    やかな管理が出来そうな高機能なものまで
    さまざま
    •カンバンを使うかどうかもチームにお任せ
    • 使ってないチームもあるけど、強制にはしない
    • 大事なのは共有することと自分たちのやりやすさ

    View Slide

  75. 朝会

    View Slide

  76. 朝会
    •全体朝会+チーム朝会(任意)
    •「リーン開発の現場」のデイリーカクテル
    パーティ方式
    •全体朝会の内容は「朝刊」としてQiita
    Teamへ投稿
    •週はじめの全体朝会は組織的な話やプロジェ
    クトのサマリなどを共有する重要な場とし
    てメリハリを出して開催

    View Slide

  77. https://www.flickr.com/photos/ianbrumpton/5093239758/sizes/l
    8月からの続きを
    少しご紹介

    View Slide

  78. デプロイ自動化

    View Slide

  79. デプロイ自動化
    •HipchatでHubotに話しかけてrelease
    ブランチへのPull Requestを作成
    •releaseブランチへのmergeを契機に
    Jenkinsのデプロイジョブが発動
    •開発者はreleaseブランチへmergeするだけ

    View Slide

  80. デプロイ自動化

    View Slide

  81. E2Eテストの整備

    View Slide

  82. E2Eテストの整備
    •HipchatでHubotに話しかけてST/Prd各
    環境へのE2Eテストジョブを発動
    •ジョブの結果をHipchatへ通知
    •メンバーはHubotへ話しかけるだけ

    View Slide

  83. E2Eテストの整備

    View Slide

  84. https://farm1.staticflickr.com/35/161618367_fd8ad919a1_b.jpg
    効果は抜群
    •デプロイ、テストとも大きなコスト削
    減につながった
    •開発者は開発に集中できるようになっ
    てきた
    •チャット経由で運用を回せると学習コ
    ストも低い

    View Slide

  85. プロジェクトを進める中で
    発生した課題
    (抜粋)
    https://accounts-flickr.yahoo.com/photos/r000pert/136999467/?rb=1

    View Slide

  86. •少しずつ共有を進めていったため、メンバー
    によって認識にズレがあったり、共有が漏れ
    ていたりして、うまく進まない部分があった
    •コミュニケーションの機会を意図的に作った
    り、大事な話は経緯を含めてなるべく事前に
    共有するように方針を変更
    メンバーへのインプット
    https://accounts-flickr.yahoo.com/photos/r000pert/136999467/?rb=1

    View Slide

  87. 通常タスクとの住み分け
    •担当しているプロジェクトが佳境を迎
    えると改善タスクが進まない問題
    •全体で改善タスクを推奨する時間帯を設定
    •近日中にGoogleの20%ルール的な制度も導入
    • ちょっと機能してないので、要改善
    https://accounts-flickr.yahoo.com/photos/r000pert/136999467/?rb=1

    View Slide

  88. 一部メンバーの高負荷
    •「積極的に関わりたい」と声を上げて
    くれたメンバーを中心に進めた結果、
    特定メンバーの負荷が上がってツラく
    なるシーンがあった
    •うまくタスクをバラすのは難しい
    •なるべくバランシングしつつ、巻き込むメ
    ンバーを増やす方が良い面も
    https://accounts-flickr.yahoo.com/photos/r000pert/136999467/?rb=1

    View Slide

  89. これからやりたいこと
    •リリース回数を増やす
    • 開発フローのさらなる最適化・高速化
    • 本番リリースフローの自動化
    •技術的負債の返済
    • レガシーコードを改善する
    •取組みをオープンに
    •社内ツールのOSS化, Qiita Organization

    View Slide

  90. まとめ(所感)
    •動かなければ何も変わらない
    • 思っているだけじゃダメ
    •異世界に思える開発現場もそんなに遠くない
    • やってみると、意外とできることは多い
    •スピード感を持って進めることが大事
    •成果を共有しつつ、メンバーを巻き込むのが大事
    •ふりかえり重要
    •現在地とゴールを確認しつつ進めることができる

    View Slide

  91. Special Thanks
    https://accounts-flickr.yahoo.com/photos/shadman14/7165289344/?rb=1

    View Slide

  92. •サイバーエージェントさん
    • ステキな会場を提供していただき、ありがとうご
    ざいます!
    • 渋谷駅から、アクセス抜群のCAさん、サイコーで
    す!
    Special Thanks

    View Slide

  93. Special Thanks
    •@chachaki さん(ギルドワークス)
    • 1月に「現場 Advent Calendar」に投稿した際に、
    当日いきなり「書きたいです!」と突撃したにも
    関わらず、速攻でレスをいただき、参加させてい
    ただきました。あのエントリがきっかけとなって
    今回のプロジェクトが実現しました。本当にあり
    がとうございました。
    • DevLOVEサイコーです!

    View Slide

  94. Special Thanks
    •@yaotti さん(インクリメンツ)
    • 11月のイベントで「naoyaさんに相談したら良いん
    じゃないですか?」と助言してくださり、そこか
    ら今回の改善プロジェクトが始まったと思ってい
    ます。ありがとうございました!
    • Qiita Teamサイコーです!!

    View Slide

  95. Special Thanks
    •@naoya_ito さん
    • 課題だらけの現場を改善するこのプロジェクトに
    アドバイザーとして加わっていただき、本当に感
    謝しています。はじまって8ヶ月経ち、少しずつ成
    果が出始めています。まだまだ課題は盛りだくさ
    んですが、今後も改善を進めていきますので、こ
    れからもよろしくお願いします!

    View Slide

  96. Special Thanks
    •一休の開発メンバー全員!
    •突然のキックオフから始まったプロジェクトをサポー
    トしてくれて、本当に感謝しています。相変わらず
    衝突することやバタバタすることもありますが、順
    調に進んでいますのでこれからも改善を続けていき
    ましょう!!

    View Slide

  97. おしらせ
    •伊藤直也氏
    •10月より、一休の技術顧問に就任していただ
    きました
    •4月から行っている改善プロジェクトを中心
    にさまざまな面でアドバイスいただいていま

    View Slide

  98. おわりに
    •一休ではエンジニアを積極採用中で
    す!!
    •現場改善に積極的に加わりたい方
    •「新しい価値を提供し続ける」ことに興味が
    ある方
    •ご興味のある方は @kentana20 までご連絡を
    •まずはオフィス内外でカフェでもしましょう

    View Slide

  99. 一休ウォーター
    おみやげにどうぞ!

    View Slide

  100. 終わり
    ご静聴ありがとう
    ございました!
    https://farm6.staticflickr.com/5530/10092781863_d0211e763f_b.jpg

    View Slide