株式会社スマレジの開発部でスマレジのサーバサイドを作っています

タイムカードAPIとredmine APIを組み合わせて日報をつける

こんばんは!株式会社スマレジ、開発部のmasaです。

また、更新が空いてしまい申し訳ないです。。。

今日はうちのチームのエンジニアがつけている日報を自動化する試みにチャレンジしており、そこで作ったツールの紹介をします。

背景

結論から言えば、「日報とRedmineをリンクさせて、Redmine上のタスクについては日報を自動生成してしまう」というのがこの記事の趣旨です。ただ、それが必要となる背景について簡単にお話しします。

生産性の見える化見える化のための工数のジレンマ

タスクが入り乱れやすい性質のプロジェクトでは、得てして生産性がはっきりせず、チーム内部と外部で作業スピードで温度差が出ることがあります。 タスクの入り乱れの原因は、社内ステークホルダが多様化にあります。 例えばスマレジのようなSaaSの場合、

  • 新規機能を推し進めて売上達成をしたい営業
  • 品質改善によって問い合わせ負荷を軽減したいCS・開発メンバー
  • APIサードパーティ向け機能を拡充して、パートナー開拓、プラットフォームの活性化、連携コスト低減による導入のスケールメリット拡大を狙いたい技術営業や大手法人担当の営業

大体この辺りの思惑がプロダクトのスケジュールへ向けられます。

例えば弊社の場合だと、スマレジ・POS関係の開発チームが上記のような傾向になりがちで、タスクの種類や性質が多様化するため、開発側でのタスクも多様化します。 こんな風に、多様なタスクを抱えるチームの場合は開発作業とそれ以外の作業をするメンバーを役割わけし、定期的に役割をローテーションさせていくことになるのですが、 実際のところは簡単な話ではありません。

というのも、誰か一人のタスクのバケツが溢れたら他のメンバーでフォローするため、綺麗に役割を分けるのはマンパワーとそれを組織するための体制が安定するまでは、個人のタスクは多様化する傾向にあるためです。

こういった状況で「何にそんなに時間がかかっているか分からないから、もっと生産性を見える化しろ!」といっても、多様なタスクに振り回されている開発メンバーに10分単位のタスクについていちいち記録をつけて行ってもらうことは現実的ではありません。限界のラインが1日の終わりにタスクを振り返って日報をつけることくらいです。

ボトムアップ見積もりによる予実管理(Redmine)

以前のブログでも触れましたが、弊社はプロジェクト管理ツールとしてRedmineを使用しています。

redmine.jp

過去ブログは↓から。

masa2019.hatenablog.com

masa2019.hatenablog.com

masa2019.hatenablog.com

スマレジではRedmineボトムアップ見積もり型のプロジェクト管理ツールとして利用しています。 (チケット駆動開発はタスクの単位での開発手法に関する議論で、これをベースにプロジェクトを計画するなら、プロジェクト見積もりになるのかなとmasaは考えています)

ボトムアップ見積もりはこちら。

ssaits.jp

チケット駆動開発についてはこちら。

www.atlassian.com

どちらも、タスクレベルで課題を明らかにしてから進行するという意味で共通しています。 このタスクが前述のように多様化するので、記録するのも一手間。とはいえある程度の粒度で残す必要はある。だけど楽はしたい。。。 そこで、毎日つける日報もタスクベースでの記載になることに着目して「日報とRedmineをリンクさせて、Redmine上のタスクについては日報を自動生成してしまう」というのがこの記事の趣旨です。

プログラム

今回はNode.jsのバッチで作成しました。 今回、少しプログラムが長いので、折りたたみにします。 社内ツールとして作ったものなので、コメントがなかったり、メソッドわけが多少雑になっていますがご容赦ください汗 (暇があれば、そのうちgithubにあげておきます。)

これを運用してみて、うまく行ったかどうか、課題点などがあるかについては、また後日報告させてもらえればと思います。