しょ〜うぃん広場

おもにTech系なブログ、ときどき個人的なブログ

スクラム向けの残業時間集計ツールを作りました

先週会社で1on1をやった時に、最近showwinさんのブログ更新されてないですよね…?と言われてしまいました…笑
ということで、今回は最近作ったコマンドラインツールの紹介です。

sokot

最近2週間ぐらいで sokot というコマンドラインツールを作りました。

github.com

会社では KING OF TIME で勤怠管理をしているのですが、そのAPIを叩いてチームごとの残業時間を集計するものです。

Regional Scrum Gathering Tokyo 2018 に参加してきました - しょ〜うぃん広場

の記事にも書きましたが、スクラムの手法においてスプリントのベロシティーが上がっているように見えていても、実はチームの開発効率はあがっておらず、単に労働時間が増えているだけだった。という可能性があります。 そのような事態が起きていないことを確認するために、このツールを作成しました。

sokot の名前は Scrum-Overtime-KOT(KING OF TIME) の頭文字から来ています。

インストール

Python3 が入っている環境で

$ pip install sokot

だけで完了です。

使い方

まずは初期設定です。

$ sokot configure
Token:  # APIトークンを入力
Saved to '/Users/showwin/.sokot/token'

Sprint Length (Default: 2):  # 何週間のスプリントで実施しているか入力
The First Scrum Day (Default: 2018.01.01):  # スクラムを始めた日を入力
Saved to '/Users/showwin/.sokot/config.json'
OK

設定ファイルはすべて ~/.sokot/* 配下に保存されます。

トークンが有効であることを確認しましょう。トークンを発行する時に指定したIPアドレス以外からリクエストを送ると False が返ってきます。
(私はIPアドレス制限があることをすっかり忘れていて、貰ったトークン使えないじゃん!ってサポートに問い合わせました…笑)

$ sokot available
True

次にチームの登録をします

$ sokot group add dev_team_1 0003 A0004 0011

このコマンドではメンバー3人の dev_team_1 チームを登録しています。 メンバーの番号はKOTの管理画面に出てくる、下の枠内の数字です。 f:id:showwin:20180226090426j:plain

これで準備完了です。

$ sokot overtime
+------------------------------------------+------------+
|                Sprint No.                | dev_team_1 |
+------------------------------------------+------------+
|   Sprint #1 (2018-02-05 - 2018-02-18)    |   45.97    |
+------------------------------------------+------------+
|   Sprint #2 (2018-02-19 - 2018-03-04)    |   26.35    |
+------------------------------------------+------------+
|   Sprint #3 (2018-03-05 - 2018-03-18)    |   34.73    |
+------------------------------------------+------------+
|   Sprint #4 (2018-03-19 - 2018-04-01)    |   28.01    |
+------------------------------------------+------------+

チーム dev_team_1 の3人が2週間の間に残業した時間が出力されます。

Future Work

今後の追加機能としては、残業時間合計をメンバー数で割って、一人当たりの平均残業時間を出力することと、HTTP Proxyの設定を追加できるようにすることを考えています。 APIが固定のIPからしか叩けないので、おそらくどこかIPを固定したサーバーからこのツールを叩くことになると思うのですが、毎回そのサーバーに入るのが面倒なので Proxy 機能欲しいなぁという感じです。

requestsのproxy を使えばサッとできると思ったのですが、squid で立てているプロキシサーバとなぜかうまく繋がらずハマッています…