Our tools shape us. Ideally, they shape us for the better, but that’s not always the case.
Traditional checklist and “to-do” apps have wide adoption, but they miss the mark for software developers and creative professionals, and ultimately these tools shape us for the worse.
To be clear, personal task management is necessary for successful professional outcomes — for both individuals and their teams1 — but the traditional tools get it all wrong.
Why is this?
For one, traditional task apps are too general, attempting to serve both consumers knocking out grocery lists and professionals executing creative projects, as if grocery shopping were effectively the same use case as creative delivery.
“Get More Done!” is a familiar sticker tag on these products. At some level, we know this is the wrong goal. Completing 1,000 tasks in record time does not translate into project success, and yet software practitioners commonly operate as if this were the case — even as software projects regularly fail.
Our tools shape us.
In the traditional “to do” app view of the world, tasks are managed as an unordered bag of items to be completed and “checked off”, encouraging a kind of blind walk toward outcomes.
But successful creative execution involves strategy: a conscious, ordered sequence of steps to reach our goal — that is to say, we require a plan.
But plans are worthless, aren’t they?
Yes, Plans are Worthless…
Plans are worthless; but planning is indispensable2.
Interestingly, Eisenhower’s popular wisdom here (about the optimality of planning) has a theoretical proof3, but, practically speaking, we can understand the need for planning by first considering the traditional task app’s process of managing tasks.
With traditional tools, we may loosely order tasks with priority tags and the like, but over time our core operations are effectively adding and checking off disordered items in a bag:
If plans are worthless, one can see the appeal of this process: we’ve altogether removed any semblance of plan or strategy from our process and tooling.
But, while this process is provably suboptimal, we don’t need a proof to see why it’s so deficient.
For one, this process leaves us with no meaningful history or data over time. At any point, the finished tasks in our bag may, at best, have the date at which we marked them as done — but understanding the historic cost and relative order of those tasks is not available or reliable for analysis. There is not much data for us to look back on to assess our performance.
Secondly, at any time in our process, we have no clear or reliable picture of our future. Traditional task apps offer “future-projecting” features such as setting a “due date” or priority level for a task, with which we might record our hope for when a task would be complete or what we might work on soon.
But “hope” is the key word here; these features reflect wishful thinking more than reality.
In the real world, as we all know, new tasks are regularly discovered, and existing tasks are frequently de-prioritized and re-prioritized. Yesterday’s due dates quickly grow stale, losing all meaning, while tasks marked as “Important” sit incomplete for months.
Planning is Indispensable
Plans, static plans, are indeed worthless, precisely because of this flux inherent in real world execution. But for the same reason, planning — the dynamic, continuous activity of it — is indispensable.
Instead of a bag of tasks, consider a strictly ordered, linear sequence of tasks that is continuously revised to reflect the latest reality:
Instead of due dates we specify estimates and leave it to our tooling to dynamically project completion dates, keeping them accurate as our estimates and the relative order of tasks inevitably and frequently change.
Instead of “checking off” tasks we speak the same language about our past as we do the future: the estimate of any completed task is precisely how long the task took to complete.
By keeping current tasks active via estimates, this new process can be as simple as checking a box; but, unlike checking a box, data isn’t lost: we accumulate, at every stage of our work, a fully accurate per-day diary of our historic on-task time.
This is especially invaluable historic data, which we can use to personally assess our own performance to date, demonstrate our own productivity objectively to career stakeholders, and most significantly this is data that we can use to improve future estimates and, consequently, outcomes.
Introducing Chronos: The Task Management “IDE”
Chronos is a new desktop tool — an “IDE” for task management — that seeks to make personal time tracking and planning as intuitive and flexible as using traditional apps, but powered for the software developer and creative practitioner.
As software developers, we leverage IDEs to continuously refactor our code whenever it doesn’t fit reality — either because we have defects, new feature requests, or because our knowledge of the world and our problem domain has inevitably changed.
This is the same relationship we ought to have with our plans.
Chronos puts continuous refactoring tools for plans, tasks, and estimates on our desktop and at our fingertips, delivering value on multiple levels: first, by offering support for managing and quickly refactoring lists of tasks; secondly, as a generator of accurate historical on-task time, and, third, by supporting estimation and completion forecasting for future tasks and plans.
Chronos makes each of these levels opt-in at any time in the lifecycle of a project plan.
Our Tools Shape Us
Unfortunately, it is common to see that estimating software project timelines is hard and just … give up. There’s an established “No Estimates” position that says we should entirely stop giving estimates on software projects 1, 4
Estimation, especially in the software industry, is a hot button word, but this is unfortunate: the surest way to find ourselves stuck in an “expert beginner” skill set is to ignore time and estimates while otherwise cultivating our technical and professional delivery capabilities.
One major “secret” to advancing in a technical career is learning how to give accurate estimates.
This is true of individual contributors and engineering managers: you can pretty easily become a Senior Engineer or Engineering Manager without needing to be good at estimates, but to go much farther than that you’ll likely need to learn this skill.
And it is a skill: estimation can be learned.
Chronos is designed to meet software developers (and other creatives) where they are in their professional journey while fostering the advancement of one’s own personal estimation skill set with minimal required buy-in.
Estimates are the lingua franca of Chronos: the singular model used for predicting the completion of future tasks and for the recording of actual historic task on-task time. Estimates of future tasks are optional and Chronos embraces the real-world expectation that estimates will be frequently inaccurate and regularly revised.
Chronos anchors its users into an effortless practice of linking day-to-day creative professional pursuits to time and estimation.
1 Team collaboration and project management tools sit a layer above the personal and serve a separate purpose, but look over the shoulder of any successful team member practitioner or individual contributor and you’ll find a list of tasks captured in an app, text editor, sticky notes system, or similar.
2 This quote is attributed to Dwight D. Eisenhower 1890–1969 American Republican statesman, 34th President 1953–61.
3 See: Garcia Contreras, Angel F.; Ceberio, Martine; and Kreinovich, Vladik, “Plans Are Worthless but Planning Is Everything: A Theoretical Explanation of Eisenhower’s Observation” (2017). Departmental Technical Reports (CS). 1102 https://scholarworks.utep.edu/cs_techrep/1102/
4 Jacob Kaplan-Moss’s Estimating Software Projects is an excellent series on the topic of software project estimation. The series covers why the practice of estimation is invaluable with practical tips on how to do it well.