仕事に取り掛かるときにまずなにをしてどのように進めるか

今日はペアワークをする機会があった。その時自分がどのように仕事を取り掛かっているのか説明する機会があったので忘れないうちにまとめておく。

チケットはサンプルではあるが以下のようなものとする。

チケット内容:
  ユーザーはTODOタスクを作成する。なぜならタスクを一覧化して忘れないようにしたいからだ。
受け入れ条件:
  - タスクの入力画面でタイトルと詳細を入力し保存できる
  - 保存したタスクを一覧画面で確認できる

このようなチケットに取り掛かるぞとなったときに自分は以下のように仕事を勧めた

1. まずは該当のチケットを読み込む

  1. なにを満たしたらこのチケットは完了できるのか
  2. ユーザーはどのようなシーンで使う機能なのかを考える

チケットをちゃんと読む。なんとなく理解するのではなくユーザーがどのように操作をしてどのような値を入力する可能性があるのか考える。この時点で仕様漏れや疑問点が出てくることがあったりするので確認すべきことはなにかを意識して読む。

2. パターンの洗い出し

  1. ディシジョンテーブルを作成する
  2. 考慮するべきパターンと考慮する必要のないパターンにわける

ユーザーが入力するデータの組み合わせで保証しないといけないようなものがあればディシジョンテーブルを作成してそのときどうなるかを一覧にする。ここで受け入れ条件に漏れているパターンが存在したら周りに確認をする。
最小のテストで網羅をどのようにすればいいかここで洗い出すことができる。

3. パターンを満たすためにサブタスクを作る

  1. 処理全体を考える
  2. テストを書く
  3. 実装をする

なんとなくの全体の処理を決め、Class の Input/Output を考えて TDD でコードを書いていく。小さく実装をしてテストを動かし書いたコードが期待した挙動をしているか確認しながら進めていく。

4. 画面などで動作確認をして要件を満たしているか確認する

最後に画面などで実際に動かしてみて受け入れ基準を満たしているか確認する。ここで動作確認ができたら Pull Request を出してコードレビューをしてもらう。


こんなふうに自分は仕事を進めていた。毎回やっているわけではないが概ねこのようなフローで開発をしている。とにかく慌てず漏れなく仕事することが最終的には速く終わると思っている。