WESEEK Tech Blog

WESEEK のエンジニアブログです

WESEEK で行っているチーム開発の進め方

こちらは 「SEROKUを支える技術〜プロジェクト管理編〜」からの転載です。

本記事では SEROKU の開発を例に WESEEK で行っているプロジェクト管理について紹介しています。

 


  

こんにちは!初めまして。WESEEKの haruhikonyan と申します。

SEROKUを支える技術と題して SEROKU で使われている技術をできる範囲で数回に分けて紹介をしていきたいと思います。

スクラムによるアジャイル開発

SEROKU開発だけではなく、WESEEKではすべてのプロジェクトをスクラムによるアジャイル開発で進めています。

アジャイルを採用している理由としては世界的に見ればデファクトスタンダードだということと、ウォーターフォールに比べるとプロジェクトの成功率が高い点にあります。

弊社ではアジャイルでの開発を5年以上も前から行ってきていて、その知見も十分に溜まっていることも理由の一つです。

線表作成

実際は順番は前後してしまうことが多いのですが、数か月先から半年後を見据えた線表を作成して、大まかなSEROKUの施策の展望が見えるようにします。

必ずしも作成した線表厳守というわけではなく、月1程度で見直しをしたり、後述のポイント付けの結果を見て実現不可能と発覚すれば都度修正は行います。

線表があることにより実際の進捗と見比べた際何が遅れてて何は進んでいるのかが関係者全員が把握することができるため優先順位を各々が考えて仕事に取り掛かれることと、目標を見失わなずに済むため、モチベージョンを保つという面でも役になってると言えます。

f:id:weseek:20190902145341p:plain

バックログ作成とポイント付け

  • スクラムにおけるバックログの管理は YouTrack で行っています。
  • まずはユーザストーリーを洗い出し、優先順に並べ変えます
  • そして洗い出したストーリーにチームメンバー全員でストーリーポイントを付けます
    • ポイント付けにはプランニングポーカーと呼ばれるカードゲームのようなものを使い、実際の日時とか時間ではなく、基準となるストーリーの重さに対して相対的な重さをポイントとして付けていきます。
    • 相対的につけることで開発者個人の技術に依存するものではなく、チーム全体としてスピードを測ることができます。

Sprint

  • だいたい2週間ごとを一つのタームとしてSprintを回します。
  • 初Sprintでは手さぐりになってしまうのですが、第2Sprintからは前のSprintで消化できたストーリーポイントを参考にチームとして1つのSprintあたり何ポイント消化できるのかを考えて今後のSprint計画を立てていきます。
  • また、2週間のSprint計画が先々まで立てられるようになると、当然理想で考えた線表とのズレが生じてきます。なので先にも述べたように線表はSprintの進み具合によって柔軟に見直しをしていくことが必要となります。

スクラムミーティング

  • 必ず1日の終わりにスクラムミーティングを行います。
  • 前回のスクラムミーティング(前営業日)から行ったことと、次回のスクラムミーティング(翌営業日)までに行う予定を宣言していきます。
  • スクラムミーティング(スクラム開発)で重視することの一つとしてチーム内で合意がとれていることという要素があります。例えば自分が着手するタスクが終わらないと他人の着手したいタスクが着手開始できないといった状態であった場合、当事者間でその認識と合意が取れていないと、場合によっては着手できないタスクを持っている側がいつまでたってもタスクに着手が出来ません。
    • このことをブロックと呼んでいて必ずスクラムミーティングではブロックしている側とブロックされてる側のお互いが報告しなければなりません。

f:id:weseek:20190902145510p:plain

振り返り

  • 2週間置きに振り返りを行います。
  • 振り返りの形式としてKTPフレームワークを使っています
  • 振り返りを行うことで、チーム内に顕在化している問題の洗い出しや、他人が実施している良かった施策や、問題点に対しての取り組みをチームで共有し、よりよいチーム運営を行う足掛かりにもなっています。

f:id:weseek:20190902145647j:plain

コミュニケーション

日々のコミュニケーション

  • slackでチャンネルごとに話題を分けて
    • 基本的にはダイレクトメッセージは禁止で、すべての人にやり取りが見えるようにしています。
    • 独り言のように淡々と詰まっていること垂れ流していると、思わぬところから助言が飛んできて解決に導かれるなんてことも日常茶飯事です。
    • もちろんslackだけではなく直接口頭でのやり取りももちろん行っています。
  • 遠方の人とはハングアウト
    • WESEEK には大分支部もあって常にハングアウトが繋がっており、お互いの様子が就業時間中は常に生中継されていて何気ない呼びかけなどもお互いがすぐに気づけ、まるですぐ隣にいるような気分でお互い仕事をしています。

f:id:weseek:20190902150006p:plain

週1回の定例

  • 週1回、30分程度の定例ミーティング
  • KPIなどの数字の確認
  • 機能開発の優先度確認
  • 課題や相談したいことを報告し、議論
  • 企画、デザイン、エンジニア各セクションで進捗状況を報告
  • 学生インターンの成果の報告の場

情報共有

  • 開発環境についてや仕様についてなど恒久的に参照され続けられる情報はすべて Growi にマークダウンで記述するようにしています。
  • 細かいタスクの内容などは YouTrack のストーリーやタスクに書くこともあり、Growiのリンクを張るなど互いを併用しています。

今回の記事で利用しているツール

  • slack
    • 最近はCMやっている趣味の世界でもビジネスでの世界でも人気急上昇中のチャットアプリケーション
    • Githubや様々なツールへの連携も簡単にできるため採用
    • https://slack.com
  • YouTrack
  • プランニングポーカー
  • ハングアウト
  • growi
    • マークダウンで書ける高機能のOSS Wikiシステム
    • マークダウンで記述できるwikiシステムということで採用
    • 主なコミッターは。。。?
    • https://growi.org/
  • KTP
    • KTPとは振り返りの手法の一つでKeep, Try, Problemの3つを一人一人発表していく形式である
    • 特徴として発表することについては自分個人のことではなく、必ずチームのことについてであるということです。
      • Keep:この2週間でこの先も続けていきたいこと、Keepしたいこと
      • Try:今後2週間で実施してみたいこと、Tryしたいこと
      • problem:この2週間で困っていて解決不可能なこと、改善のためにどうTryしていいのかわからないもの

参考記事

teamhackers.io