田中穏識のブログ

日々の気づきをメモしています。株式会社BrainStreamの代表で、ソフトウェア開発をしています。

Timeboxing + Pomodoro (25min)

仕事の進め方メモ。

仕事以外にも日常生活の家事などにも適用できる。

Timeboxing + Pomodoro (25min)

  • ゴール(アウトカム)は事前に決める
  • 最初の数分でゴールを達成するための道筋と時間感覚を確認する
  • 残りの時間で作業する
  • ゴールは完ぺきを目指さない。理想の60%を目指す
  • 60%を達成できないとすると、タスクが大きすぎるということ。その場合は分割する。タスクを分けてそれぞれで60%を目指す。
  • 前日に次の日にやりたいことをカレンダーに書き込んでおく
  • カレンダーの予定は余裕を持たせる

以前の Pomodoro を試した時の失敗パターン

  • ゴールを決めていなかった / あいまいだった
  • ゴールを100%達成することを目指していた
  • 作業を始める前に道筋と時間配分を考えていなかった
  • 25分の中で出力するアウトカムを意識していなかった
  • 25分やって、アウトカムがない。次の25分で終わらせよう。そしてまた次の25分が過ぎ何もアウトカムがない。現在地が見えていないので、いつ終わるか分からず、心がザワつく。アウトカムが無いので焦る。何も成果がないような気がしてやめてしまう。

UIテストで入力と出力をテストする基本的な考え方

UIテストでは何を確認するのか。

ユニットテストと同じで、ある入力があったときのある出力を確認する。

入力とはユーザーのUI操作やページロードやバックグラウンドで動いているユーザーが操作しないものに分けられる。

出力はUI、UI変更されないサードパーティライブラリのコール、APIリクエストなどがある。サードパーティライブラリのコールを保証するために、コールの検証する。サードパーティライブラリはモック化しておく。APIリクエストもテスト用のモックを作成する。モックにするのは信頼性とメンテナンス性のバランスを取るため。

---
config:
  layout: dagre
  theme: neo
  look: neo
---
flowchart TD
 subgraph s1["入力 (Trigger)"]
        A["UI操作"]
        B["Page Load"]
  end
 subgraph s2["出力"]
        D["UIの変更"]
        E["Third Party Libs"]
        F["API Request"]
  end
    A --> C("UI + ロジック")
    B --> C
    C --> D
    C -- Call --> E
    C -- "HTTP request" --> F

情報を集めすぎない

情報を集めすぎるとバカになるというけどその通りだと思う。

集めすぎた知識のせいで無難なアイデアに落ち着いてしまう。

あとは集めすぎても、結果が劇的に変わるようなことはない。例えば、60%と80%集めた場合ではそこまで差がないことが多いと思う。収穫低減と同じ。

普段の買い物で何かを選ぶときでも、あまりこだわりがないか時間が無限になければ、時間を決めて情報を集めてその中でどれにするか選ぶ。

今だとGeminiやChatGPTに聞くのが良いと思う。