It's time. You have been postponing it for long enough! Finally, you are ready to make the much-needed improvements to your SuperTool utility. First, you find the notes that you put away on the top rack of your bookshelf. These papers and sticky notes look familiar but there are no dates on them. Which are the most recent ones? With some effort and help from your memory, you are able to put them in the right order. But something is still missing. You don't have a clue as to where the last bug report list is. You feel an odd sense of uneasiness until you manage to locate it in a directory with an awkward name «Other stuff». Now that you have everything on hand, you decide to start coding until you switch back to HyperTool, yet another great utility.
After several recurrences of the same stressful experience, you think that you have had enough. You decide to keep everything neatly in a Word document, a text file, or even a spreadsheet in the root of your project directory. You name it SuperTool-TODO.doc and put some structure in place. You have headings such as «Bugs», «Ideas», «Improvements», and «High Priority Improvements». After some thought, you add another section called «Web Site», because you have designed a cool website for your utility. If everything has to be in one place, so should the website too.
You begin to use your invention and it feels right! It's not hard after all to compile all tasks to be done in such a manner. And you don't have to worry about losing track of anything. You can even quickly find whatever you want with a simple keyboard command: <Ctrl+F>. The only problem is that you have to cut out the details, because otherwise your system may soon become unusable. No big deal! You exercise writing shorter descriptions and everything seems to work really great. You can even print the file and work on it while traveling in a bus or a plane (or even while soaking in a bathtub).
Welcome to the Mainstream
You are meticulously writing down every single little bug or idea. After several months, your list looks really long. After a year, it's exhaustive and downright humungous. You are beginning to doubt if your great idea was really even good in the first place. You are still able to work on the hard-copy, but need a small folder to carry it around. To work with a colleague, you need to give over specific parts of the file and merge the suggested changes later. You are forced to add more sections to keep track of what has been done and how. Finally, you decide to feed everything into a software that is built to handle such situations automatically.
More months have passed. You are intimately acquainted with Bugzilla and you know every glitch in Trac. You have even mastered Microsoft Project. It's not that you haven't found a solution. Each of these fine tools does everything you need and much more. So much more. But you don't care so much about specific dates, hours, dependencies, and resources. And you can surely live without babysitting the infrastructure you have put in place. And all you want to do is to have a list so you don't forget something and to know what needs to be done next. You finally realize you are not having fun anymore.
Back to Basics
After this glorious battle with yourself, you are now a free soul. You are back to your yellow post-it notes and to-do lists on paper. You feel so much more productive now. But sometimes you dread the moment you'll finish your current work and return to that HyperSmartUtil you haven't opened in months because you know you'll be back to square one.
Does it have to be like that? Maybe. The truth is that the answer lies within you. Are you willing to make some trade-offs and live comfortably in spite of them. Someone is fine with tools created for corporations and large teams that manage the project, the people, the infrastructure, the process, and whatever you may name. Or, you can do what I have done.
Equilibrium in Duality
I don't know how it is with you, but what I really want on small projects are only the basics. I want a list and I want to know what I should be doing right now. So how do I do it? I keep three lists, I call them «Now», «Later», and «Much Later». I don't see a point in making bigger distinctions than that, because for tasks I should be doing «now», the important thing is that I know I should be doing them. For other tasks, the only thing that does matter is that I don't forget about them. This way, when something comes to mind (or to my inbox for that matter), I simply add it to the most appropriate list. And I maintain the right to change my mind later! Actually, after each milestone or release, I'm combing the lists to decide what needs to be done next.
«Hey», I hear you say suspiciously, «that's similar to what you already described…but it had all those problems? Have you simply accepted to live with them? (shrug)». The answer is yes. At first. Then I write my own to-do application, which keeps the simplicity, namely, lists and focus on what to do next. But it enables me to enter the details; keeps the records for me; and does all the boring jobs like merging someone else's changes. You are welcome to follow my path, or you can probably find a similar tool on the Internet. I surely tried, but I found myself confronted with zillion to-do applications. The first dozen that I tried just didn't make life easier for me. So, I quit trying.
I found the solution that works (at least for me) for small projects, but what about big corporate projects? Here is the secret: for these, I continue to use the corporate stuff! You can't simplify big projects too much anyway, and it wouldn't get well with your boss either. It took me quite some time to realize that, but the truth is the same as ever. Sometimes you just can't fulfill all your needs with a single tool. While you probably can't avoid the heavy duty software packages altogether, you are much better off with a small specialized tool for small projects.
- 21st October, 2007: Initial post