My thinking was that most people are probably focusing on today, and many on tomorrow (especially as we get later into the day), with a few wondering about the next few days. So why not make today and tomorrow concrete items, and the future a bit fuzzy.
Ultimately though this lead to a new challenge in the form of a lot of visual clutter, and how to define "a few days" in code. To some a few days may mean "always Friday", three days to others, and hopefully "never on the weekends" to most. It's not a concrete enough of an idea to commit to code without a deluge of options for each user.
It would make for a nice demo video, but it would lead to a horrible user experience. So we cut its head off — didn't even send it to the farm.
This left Begin with a list for today, and a list for tomorrow. The simplified view was much easier to look at, and more importantly much easier to understand when you looked at the app for the first time.
Begin is today and tomorrow only because, anecdotally, it felt like the right balance between 'what people do on paper lists' and how we could extend that experience on a digital canvas. Of course we needed tomorrow in hindsight, but that wasn't as clear at the start.
Anything beyond tomorrow though, even the tasks you think you need to do, get a bit fuzzy and that makes your whole to-do list system fuzzy. The goal of Begin was to take away as many fuzzy decisions as we could, to get the user back out of the app as fast as we got them into it so that work could be done.
More time doing and less time fiddling.
After about 25 hours of using the app, I lost a bunch of ideas for the app, that I was storing in the app. At the time we didn't have the uncompleted list finished. This became a bit of a priority, because it drove me nuts losing my tasks.
We decided quickly against having uncompleted tasks pushed to tomorrow simply because we could potentially be moving forward items that you did, but just never got around to checking off. The question was: allow people to revive tasks they want to revive, or force them to swipe away tasks that they never got around the checking off the day before. The latter seemed less user friendly and more cumbersome overall to the app.
We decided that Begin should think the best of its users and assume we are all very productive beings. To account for the fact that you may want to revive a task from the day before, uncompleted was added in, but uncompleted only stores your tasks for 48 hours.
Begin assumes that if you don't get to those uncompleted items in 48 hours, well, perhaps it is done, or not going to be done (don't worry, Begin only assumes the latter about your coworkers, not you).
With Begin we didn't have to be as strict as paper, so adding a little user friendliness here and there is something that we tried to do only where and when it made sense.
Today, Tomorrow, but Never Next Week