はじめに
クライアントワークでお客様からお金をもらってシステム開発をしていくと、次の期間で何のテーマを実現させる必要があり、そのためにはどれだけの工数が必要かの見積もりを作成してお客様に提出すると思います。その見積もりでの予定工数は適当に決めるわけにはいかず、何かしらのロジックを立ててお客様に説明が必要ですが、お客様からは「今までの実績から算出して欲しい」といったご意見をいただくことも多いです。全ての予定テーマで実績があるわけではないと思いますが、類似のタスクなどで今のメンバーや環境での実績があれば、お客様としても納得感が得られるのでこの流れは自然かなと思います。そのため私たちは、何かしらの方法で各テーマやタスクに対して実績工数を記録していくことが求められると思います。
現代のシステム開発において、実際の業務では、Jiraを使って各タスクの工数や進捗を管理をすることが多いと思います。私が所属したプロジェクトでは、Story Pointにあらかじめチームリーダーが予定工数を記載し、Actual Effortにチケット担当者が実績工数を記録することで、Jiraで工数管理もしていました。
しかし、Actual Effortへの記載は、各メンバーが実際にかかった時間を記憶頼りに記載する、もしくは記載を忘れて数日後に適当に入力するといった事態がよく起きました。多くの開発者は、タスク自体への取り組みに集中して、実際にそのタスクにどれくらいの時間をかけたか正確に記録することまで気を配るのは難しいです。これにより、Jira上の工数は現実の作業時間と乖離し、プロジェクト全体の進捗管理や将来の計画立案に支障をきたしていました。
この課題を解消するためにJiraについて調べると、「Tempo Timesheets」のような工数管理を支援する様々な追加アドオンがありましたが、タイマーが見にくかったり追加アドオンが有料だったりと、上記課題をうまく解消できませんでした。
色々調べるうちに、「ポモドーロ・テクニック」というタスクの管理の考え方と、そのためのアプリである「Focus To-Do」というタスク管理ツールを見つけました。試しに使ってみると実績工数の記録だけでなくタスクへの集中力も上が理、かなりいいものを見つけたと思いましたが、Jiraと連携できずで結局はJiraへの実績工数は手入力で実施せざるを得ず、課題は完全には解消されませんでした。
そこで、既存の有料アドオンに頼ることなく、Jiraでの工数管理と、ポモドーロ・テクニックによる集中力向上を手軽かつ無料で実現できるアプリとして「Jira Pomodoro Timer」を開発しようと思いました。
ポモドーロ・テクニックとは?
上記で記載した「ポモドーロ・テクニック」という時間管理術は、フランチェスコ・シリロによって考案されたもので、主に以下のようなサイクルで作業を進めます。
- 25分間の作業 (ポモドーロ): 一つのタスクに集中して取り組みます。
- 5分間の短い休憩: 作業から離れてリフレッシュします。
- 4回のポモドーロ後に長い休憩: 約15~30分の休憩を取ります。
このテクニックは、時間を区切って作業することで集中力を高め、燃え尽きを防ぎ、生産性を向上させる効果が広く認知されています。
Jira Pomodoro Timerがどう問題を解決するか
Jira Pomodoro Timerは、ポモドーロ・テクニックの考えを踏襲支え、Jiraのタスクとタイマーを連動させることで課題を解決します。
このアプリケーションは以下の機能を提供します。
- Jiraチケットの自動取得: Jira APIを通じて、自分に割り当てられたタスクやチケットを自動で取得し、アプリケーションのインターフェースに表示します。
- ポモドーロ・タイマーとの連動: 選択したJiraタスクに対してポモドーロ・タイマーを起動できます。タイマーはポモドーロ・テクニックの原則に従い、集中して作業するための環境を提供します。
- 工数の自動記録: ポモドーロ・サイクルが完了するたびに、その作業時間をJiraチケットのワークログとして自動で記録します。これにより、手動での入力ミスや時間の曖昧さがなくなり、より正確な工数管理が可能になります。
- 集中力の向上: 計画的な休憩と短い集中作業の繰り返しにより、長時間の作業でも高い集中力を維持しやすくなります。
これにより、ユーザーは「今、どのタスクにどれだけの時間を費やしたか」を正確に把握できるようになり、Jira上の工数データが現実の作業状況を反映したものとなります。また、ポモドーロ・テクニックの実践により、個人の生産性向上にも貢献します。
システム構成
Jira Pomodoro Timerは、Web技術を活用して開発されており、以下の主要なコンポーネントで構成されています。
- フロントエンド (Client): ReactとTypeScriptで構築されており、ユーザーインターフェースを提供します。Jiraからのタスク表示、ポモドーロタイマーの操作、設定管理などを直感的かつレスポンシブに行うことができます。
- バックエンド (Server): Node.jsとTypeScriptで実装されています。Jira APIとの連携を担当し、認証情報の管理、Jiraからのタスク取得、ポモドーロ完了時のワークログ自動登録といった重要なロジックを処理します。
- Jira API: Jira Pomodoro TimerとJiraを連携させるためのインターフェースです。タスク情報の取得や、作業時間のワークログをJiraチケットに反映するために利用されます。
これらのコンポーネントが連携することで、Jiraのタスク管理とポモドーロ・テクニックをシームレスに統合し、開発者の生産性向上を支援します。
使い方
Jira Pomodoro Timerは、シンプルなステップでJiraのタスク管理とポモドーロ・テクニックを統合します。以下の手順でご利用ください。
1. アプリケーションへアクセス
まず、以下のURLにアクセスしてアプリケーションを開きます。
https://jira-pomodoro-timer-frontend.onrender.com
2. Jira認証
アプリケーションからJiraのタスクにアクセスするためには、Jira認証が必要です。画面の各項目に入力して、Jiraアカウントでログインしてください。
・Jira Domain:自身のjiraにアクセスした際のURLの一部を記載
例)URLが「https://XXX.atlassian.net/jira/software/projects/SA/boards/2?selectedIssue=SA-2」だとすると、「XXX.atlassian.net」を入力
・Jira Login Email:Jiraでは登録したメールアドレスがログインIDとなるため、登録している自身のメアドを記載(このメアド=ログインIDが担当者のタスクが引っ張ってこられる)
・Jira API Token:Jiraと接続するために必要な情報で、入力欄右下の「Create API Token」を入力することで自身のjiraにログインして作成可能
3. タスクの選択
認証が完了すると、あなたに割り当てられたJiraのタスク一覧が表示されます。今日取り組むタスクを選択してください。
タイマー時間はポモドーロの原則である25分が推奨ですが、ご自身でタイマー時間を変更できます。

4. ポモドーロタイマーの開始
選択したタスクに対してポモドーロタイマーを開始します。25分間ないし指定した時間で集中作業が始まります。

5. 工数の自動記録と確認
ポモドーロサイクルが完了するたびに、その作業時間が自動的に該当のJiraチケットにワークログとして記録されます。Jira側でワークログを確認し、正確な工数が記録されていることを確認できます。(テスト用のjiraでスクリーンショットを撮ってますが、デフォルトのボード設定のためActual Effortではなく作業ログに時間が記録されています)
これらのステップで、あなたのJiraにおける工数管理はより正確に、そして日々の作業はより集中して行えるようになるでしょう。
まとめ
Jira Pomodoro Timerは、見積もり作成で必要となる「実績工数記録」と、開発者の「集中力の維持」を実現するアプリです。ポモドーロ・テクニックとJiraの連携により、より正確で効率的なプロジェクト管理を実現し、開発者の日々の業務をサポートします。

