エンジニアがついつい疎かにしがちな時間管理を手助けするサービスを作ってみた

先日、友人と [Owntime](https://owntime.io/about) という、時間の使い方を管理して、生活習慣の改善を手助けするサービスをリリースしました🎉

初期から、このサービス開発をする2人の状況としては、

- 大学を卒業したばかりの新人エンジニアである
- お互い別に本業があり、趣味の延長としての開発なので、時間的制限がある
- 普段サーバーサイドばかり触っている

## この記事に書いたこと
- 開発している[Owntime](https://owntime.io/about)のざっくり紹介
- 開発チームで使っているツールの一部を紹介
- 趣味の延長として開発しているからこその取り組みの紹介
- チーム開発として困ったことと解決策

## サービスを作ろうと思った理由
**「気づいたら1日が終わっていた。けど、タスクのほとんどが終わっていない。勉強時間を削って、仕事をしよう。友人とのご飯にいく予定も削ろう。」**

エンジニアなら、一度は、このような行動をとったことがあるではないのでしょうか？
特にエンジニアになりたての頃は、見積もりが正確にできずに、このような行動パターンに何度も陥るのではないでしょうか？

もちろん、ある程度見積もりができるエンジニアの方も、毎日を理想通りに過ごせている方は、少ないと思います。
「勉強時間を確保して、インプットの時間を増やしたい」「開発ばかりではなく、趣味の時間を確保したい」など、思う方は、エンジニアを含め多くの人が考えることではないでしょうか。

しかし、多くの人が未来の時間(予定)は、管理するのに、終わった過去の時間の使い方を振り返ることは少ないです。
だからこそ、生活習慣は改善されずに、理想の時間の使い方と乖離した生活を毎日繰り返すのでしょう。

毎日の小さな積み重ねで数年後には大きな差になります。
今自分が思い描く、「なりたい人物像」になるために、今日から時間の管理をするべきだと考えて、[Owntime](https://owntime.io/about)を作ろうと友人と決めました。

## サービスのざっくり紹介
### 理想的な1日の時間の使い方を登録する
<img width="70%" src="https://img.esa.io/uploads/production/attachments/11364/2019/06/13/29773/afa06d21-2374-4b64-9be3-ba5e13701dcf.gif" />

### 毎日の時間を記録する
<img width="70%" src="https://img.esa.io/uploads/production/attachments/11364/2019/06/13/29773/9b4195fe-2180-41c0-9ed9-926f0fe72d76.gif" />

### 記録した時間を集計する
<img width="70%" src="https://img.esa.io/uploads/production/attachments/11364/2019/06/13/29773/1f9a3af5-c595-4860-b24f-a75a3ed1f64b.gif" />

### 理想的な時間配分と実際の時間配分の差から生活習慣改善のヒントを提供する
<img width="50%" src="https://img.esa.io/uploads/production/attachments/11364/2019/06/12/29773/f2580ef6-8fd2-4e87-8f6f-9e80abb029df.gif" />

## チームで使っているツール
チームで開発の効率化のために使っているツールの中で、2つ紹介します。 **Trello** と **esa** です。

### Trello
多くのエンジニアが、何かしらのタスク管理サービスを個人で、あるいはチームで使用していると思います。GitHubの「Projects」や、JIRAなどなど... 。

ただ、料金がかかるものが多くて、個人開発では、コストを抑えたいので、悩むポイントです。
そこで、このサービスの開発では、 **Trello** をタスク管理サービスとして使っています。

しかし、 **Trelloには、リリース機能や期間でボードを分ける機能がありません。** つまり、Trelloは、終了したタスクも同じボードに残り続けてしまい、それによって起こる問題は、

- 「DONE」のリストが縦にどんどん伸びていき、多くのタスクが隠れてしまう
- いつ、何のタスクを終わらせたかがわからなくなってしまう

そこで、この開発で採用したのが、 **「DONE」のリストを週ごとに作成** して、上記の問題を解決しました。
(Chromeの拡張機能を使えば、リリース機能や期間でボードを分けることは可能っぽいです。)

(実際のボード)
<img width="80%" alt="スクリーンショット 2019-06-10 21.07.53.png (1.4 MB)" src="https://img.esa.io/uploads/production/attachments/11364/2019/06/10/29773/844ccf0c-bcc7-448b-85e7-a09c5c7da382.png">

この方法の副産物として、後からこのボードを見返すと、どれだけタスクを終わらせたかが可視化されていて、「これだけやってきたんだからきっと成功する」という自信がもらえます！！
(受験生みたいw)


### esa
[esa](https://esa.io/)は、チームで「情報を育てる」ための情報共有サービスです。このサービス内で使用している場面は、

-  議事録を書く
- リリースノートを書く
- パッと思いついたアイデアの保存をする

#### 議事録を書く
議事録としての使い方は、「/」でディレクトリ構造を作れて、管理しやすいので、採用しました。

<img src="https://img.esa.io/uploads/production/attachments/11364/2019/06/10/29773/e0257aeb-e3dd-4767-b768-becd61905c22.png" width=50%/>

(※ 議事録の投稿数が少ない理由は後ほど説明します...)

#### リリースノートを書く
リリースノートとしての使い方は、は、esa自身のサービスでも使われている活用法です。

まず、esaの「Share Post」の機能を使い、誰でも閲覧可能にします。その記事をTwitterなどで投稿して、Userの方に新規機能の使い方をお知らせしています。

<img src="https://img.esa.io/uploads/production/attachments/11364/2019/06/10/29773/c959fddb-0ba2-4ef7-ac48-cccfc5b61752.png" width=80%/>

#### パッと思いついたアイデアの保存をする
esaには「WIP」機能があり、未完成の状態でも、記事を保存して、メンバーに共有されます。
未完成の状態のアイデアにも、メンバー同士で目を通すと何かが生まれるたり、助け合えたりします。

<img src="https://img.esa.io/uploads/production/attachments/11364/2019/06/10/29773/f7f0509f-eff5-4723-9f42-1b3ff0454ac3.png" width=80%/>

## 副業でのチーム開発で取り入れていること
### モチベーション維持のために週一回の対面での打ち合わせ
「slackで毎日メッセージ送っているから！skypeで通話しているから！コミュニケーションに問題はない」と言っても、 **対面での会話** に、勝るものはありません。

対面の良さは、相手の熱量が伝わりやすいことです。それは、気心の知れた友人でも同じです。

息の長い活動をしたいのなら、必ず対面での打ち合わせを定期的に行うべきだと思います。

### 仲間の活動状況を知るためにslack通知
開発メンバーは、本業が他にあって、趣味の延長として作業をしています。なので、作業をする時間帯もバラバラですし、進捗もバラバラです。

いちいち進捗を聞くのは、お互い負担ですし、日報を書いてもらうのは、もっと負担が大きいです。

そこで、slack通知ができるものは、全て、連携させて、通知を送るようにしています。
「esa」「bitbucket」「trello」などなど...

他のメンバーが活動していると知るだけで、自分もこのサービスの開発に注ぐ時間が多くなり、slack通知は良い面しありません。

## 困っていたことと解決策
### デザインが苦手問題
開発メンバーは、サーバーサイドエンジニアばかりで、フロントが得意なエンジニアがいなくて、デザインが見苦しいものになっていました。

そこで、参考にしたのが、先ほど紹介したesaのデザイナーさんのスライドです。

- [esaのデザインの話 - 自分たちのWebサービスを作るデザイナーとしてやっていること](https://speakerdeck.com/ken_c_lo/design-talk-of-esa)
- [認知パターンから考えるesaらしさのデザイン / Thinking esa-like design](https://speakerdeck.com/ken_c_lo/thinking-esa-like-design)

デザインを感覚ではなく、ルールに沿って作っていく部分を、参考にさせてもらいました。

あと、配色は、[配色アイデア手帖 めくって見つける新しいデザインの本](https://www.amazon.co.jp/%E9%85%8D%E8%89%B2%E3%82%A2%E3%82%A4%E3%83%87%E3%82%A2%E6%89%8B%E5%B8%96-%E3%82%81%E3%81%8F%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%AE%E6%9C%AC-%E5%AE%8C%E5%85%A8%E4%BF%9D%E5%AD%98%E7%89%88-%E6%A1%9C%E4%BA%95-%E8%BC%9D%E5%AD%90/dp/4797393246/ref=asc_df_4797393246/?tag=jpgo-22&linkCode=df0&hvadid=295681939151&hvpos=1o1&hvnetw=g&hvrand=14519560321719453849&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1028853&hvtargid=pla-525760474920&psc=1&th=1&psc=1)を参考にして、色を選んでいきました。

ちなみに、[Owntime](https://owntime.io/about)は、森や川や空などの自然のように、生活に溶け込んで欲しいという思いも込めて、「Recipe 033 新緑と青空」を選びました。


### ドキュメントが散らばる問題
先ほど、ドキュメントツールとして、esaを使っていると書きましたが、実は、今はチームとしては使っていません。(個人としては愛用しています。)

理由は、他のメンバーは、esaは使ったことがなく、ドキュメント化するだけなら、無料のツールを使えば良いという結論になりました。

ということで、Google ドキュメントにまとめようとしましたが、権限を付与したり、時系列がバラバラに保管されて、結局、過去の情報探索に時間がかかってしまっていました。

なので、 **Trelloに情報を集約する** ことにしました。

先ほど紹介したように、Trelloの「DONE」リストを週ごとにしておけば、時系列で情報を追えるので、活動履歴からの過去の情報を取得したい際は、便利です。もちろん、権限周りのストレスもありません。

## まとめ
開発メンバーが、フルタイムで開発できないので、発生する問題は多々ありますが、息の長いサービスにしていきます。

また、このサービスを使って、自分の理想的な生活習慣になり、なりたい人物像にぐっと近づく人が増えると嬉しく思います。