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

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

kentana20
August 23, 2014

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

DevLove現場甲子園2014東日本大会での発表内容です。

kentana20

August 23, 2014
Tweet

More Decks by kentana20

Other Decks in Technology

Transcript

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

    View full-size slide

  2. 自己紹介
    •田中 健介
    •Twitter: @kentana20
    •GitHub: kentana20
    •Hatena: kentana20
    •初めてイベントで喋ります

    View full-size slide

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

    View full-size slide

  4. 今日のスライド
    90枚

    View full-size slide

  5. とある方から

    アドバイス

    View full-size slide

  6. サクサク行きます

    View full-size slide

  7. 一休 is 何?

    View full-size slide

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

    View full-size slide

  9. 一休.com レストラン

    View full-size slide

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

    View full-size slide

  11. お隣さま

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  19. 突然ですが
    質問です

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. 改善前の一休

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. 改善を考えたきっかけ
    •サービス開発を続けてきて、さまざまな要因
    から価値を届けるスピードが著しく低下
    •近年のWebサービス開発の潮流(GitHub、コードレ
    ビュー、テスト、CI etc..)にうまく乗れていない
    •毎日の開発・運用が手一杯で新しいチャレンジがで
    きない
    •etc…

    View full-size slide

  26. 改善を考えたきっかけ
    •サービス開発を続けてきて、さまざまな要因
    から価値を届けるスピードが著しく低下して
    いると感じていた
    •近年のWebサービス開発の潮流(GitHub、コードレ
    ビュー、テスト、CI etc..)にうまく乗れていない
    •毎日の開発・運用が手一杯で新しいチャレンジがで
    きない
    •サービスの方向性をうまくコントロールしないまま、
    増員を繰り返してソースコードは品質低下&肥大化
    このままではアカン。。
    けど、自分もギョームが
    たんまりあるし、、何か
    良い手はないか?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. 「X月頃」を信じて準備
    •2013年12月
    •上司に改善プロジェクト起案を打診
    !
    •2014年1月初旬
    •DevLove「現場」Advent Calendarに参加

    View full-size slide

  34. Advent Calendar

    View full-size slide

  35. 準備、準備
    •2014年1月中旬
    •Advent Calendarがきっかけで事業部長とラ
    ンチ(決まってもいないnaoyaさんの話で盛
    り上がって、上司の許可をゲット!)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  40. はじめに
    やったこと
    https://accounts-flickr.yahoo.com/photos/65830221@N06/6872338687/?rb=1

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  47. そして、ついに

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  51. 体制をつくる

    View full-size slide

  52. プロジェクト体制

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  56. 主に実施したこと
    •情報共有ツール・ルールの整備
    •バージョン管理システムの移行
    •タスク管理と見える化

    View full-size slide

  57. 情報共有

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  62. バージョン
    管理

    View full-size slide

  63. ツールの選定
    •GitHub(Private) or GHE
    •運用面ではGitHub(Private)
    •コスト面でも圧倒的にGitHub(Private)
    •ソースコードをホスティングするという部
    分を許容できず、GHEを選択

    View full-size slide

  64. 導入が決まってから
    やったこと

    View full-size slide

  65. 社内勉強会
    •naoyaさんとGitHub(コアメンバー)
    •有志で社内勉強会
    •全体でGit/GitHubハンズオン

    View full-size slide

  66. naoyaさんとGitHub

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  69. 先週、全員移行完了
    しました!

    View full-size slide

  70. タスク管理

    見える化

    View full-size slide

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

    View full-size slide

  72. カンバン

    View full-size slide

  73. カンバン
    •チーム毎に運用はお任せ
    •チームそれぞれでカンバンのカタチを決め
    て運用中
    •ToDo/Doing/Doneのシンプルなものから、細
    やかな管理が出来そうな高機能なものまで
    さまざま

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  78. これからやること
    •リリース回数を増やす
    •デプロイ運用の自働化
    •テストコード、E2Eテストの標準化
    !
    •サービス品質向上
    •コードレビュー
    •技術的負債返済

    View full-size slide

  79. まとめ(所感)
    •動かなければ何も変わらない
    • 思っているだけじゃダメ
    •異世界に思える開発現場もそんなに遠くない
    • やってみると、意外とできることは多い
    •スピード感を持って進めることが大事
    •うまくメンバーを巻き込めても、効果を感じないと
    勢いを失う

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  85. おわりに
    •一休ではエンジニアを積極採用中で
    す!!
    •現場改善に積極的に加わりたい方
    •「新しい価値を提供し続ける」ことに興味が
    ある方
    !
    •ご興味のある方は @kentana20 までご連絡く
    ださい!

    View full-size slide

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

    View full-size slide

  87. 終わり
    ご静聴ありがとう
    ございました

    View full-size slide