スクラム向けの残業時間集計ツールを作りました
先週会社で1on1をやった時に、最近showwinさんのブログ更新されてないですよね…?と言われてしまいました…笑
ということで、今回は最近作ったコマンドラインツールの紹介です。
sokot
最近2週間ぐらいで sokot というコマンドラインツールを作りました。
会社では 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の管理画面に出てくる、下の枠内の数字です。
これで準備完了です。
$ 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 で立てているプロキシサーバとなぜかうまく繋がらずハマッています…