AIエンジニアが一ヶ月でアプリ開発15:機能見直し(再考)
こんにちは、りぼっちです。
今更機能見直しかよぉーっと思ったかもしれませんが、その通りです。全然検討不足でした。
TO-DOリストに必要な機能の選定
とりあえず TO-DOを作って、チェック( DONE )できる機能だけあれば良いと思っていましたが、最近の TO-DOリストには様々な機能があります。
例えば私が使っている things3 の機能としては、「いつやるか」「タグ」「サブチェックボックス」「期限」など、あとは他の TO-DOを見てみると画像が貼れたり、リマインダーしてくれたり、重要度が設定できたり、ポモドーロ時間が設定できたり、様々な機能があります。
ここで再度、今回実現したいと思っているバーナーリストについて振り返ってみました。
バーナーリストをデジタルで実現するために
そもそもバーナーリストは紙に書いて使うことを想定しています。しかし、現代において紙を持ち歩いたり、書き直したりする手間もあるので出来ることならデジタルで実現したいというのが目的です。
バーナーリストの鍵となるのは、一枚の紙に書ききれる量で作るということ。これは、一番大事なプロジェクト1つと、二番目に大事なプロジェクトが1つ、その他の雑多なタスクがいくつか。これが一度にやれる(やるべき)ことの全てになることが重要です。
また、バーナーリストは定期的に作り直すことが出来ることが売りだと書いてあります。また、本から読み取れなかったこととしては、重要でなくなった未完のタスクを切り捨てられるとあります。
どうやらタスクごとに期限を決めるのではなく、バーナーリストに期限を付けて、定期的にプロジェクトの優先度付けを行うのが良さそうです。
ってことでライフサイクルとUIを少しだけ変えることにしました。
新しいUIで実現する機能
もともとは柔軟にプロジェクトの優先度を変えれるようにすることを考えていましたが、プロジェクトの優先度を変えるのはバーナーリストの再構成のときだけにします。
また、タスクごとに期限を決めるのではなく、バーナーリストに期限を付けます。これによって定期的にバーナーリストを再作成することを促します。
こういう機能を増やすと決めなきゃいけないのが、期限のリミットです。基本的には、ひとりスプリントにも応用できるように最大を7日にしようと思います。あとは最低は1日かなぁ〜。毎日作り直したい人もいるかもしれないし。あと自信のデフォルトの再作成サイクルとか登録できるように出来れば良さそう。(簡単だけど、必要か分からないので後回し)
もう一つ問題になることがあります。
バーナーリストの良いところは、紙という領域の決まっているので、何もかもは入らないというところです。つまり一定の量に抑える必要があります。
思いついた解決法は、二つ。ひとつはプロジェクトに登録することができるタスクに上限数を設けること。もう一つは、プロジェクトの中でも、今回のバーナーリストで実現すべきタスクだけを毎回選ぶってことです。
前者のメリットは、プロジェクトのサイズが肥大化することなく、一定のサイズに治めることができ、バーナーリストの再構築のときもプロジェクトの優先度を決めるだけなので簡単に行えます。デメリットとしては、一定サイズ以上のプロジェクトが作れず、プロジェクトを細分化したときの命名などが面倒かもしれません。
一方で、後者のメリットは、プロジェクトのサイズは柔軟に対応することができます。デメリットとしては、バーナーリストを再構築するときに毎回プロジェクトごとにやるべきタスクを選ばなきゃいけないということです。
いろいろ自分でも実験してみましたが、後者が良さそう。
理由としては、再構築の際に時間はかかりますが、バーナーリスト期間のタスクイメージを行うことで、やることを明確化することができるからです。これは最初のハードルは高いかもしれませんが、慣れてくると非常に効果的に働いてくるものだと思います。
最後に
ということで、バーナーリストについて再度復習し直した上で、細かい機能仕様の策定を行いました。UIに関しては頭の中では決まってるのですが、作ってみて実機で確認したいと思います。(でたっ、エンジニアの悪い癖)
そろそろLPを作り始めないとヤバイと思っていますが、次回はバーナーリストとプロジェクトとタスクをファクトリーパターンに乗っかってモデル化する実装をしたいと思います。