The organization of a indie developer
Project organization is something we all need to deal with on a daily basis. The way we handle it leads directly to how efficient we can be, how support is handled, and how complete our products are. No one wants the be the guy who is letting things fall through the cracks.
Project management for an independent can be easy to overlook as you don’t have anyone to answer to, but it is important to have a solid system to keep track of everything. I’ve been asked by a number of friends over the years how I keep on top of stuff and have had the idea of blogging about it for a while now.
I figure it is best to start off with the key points before I describe how I personally implement them. Here they are:
- Have a single tool were you keep all your project tasks and support items.
- Find a tool that is quick, easy and everywhere you are.
- Make the tool a part of your workflow and review it often.
I think these are things that have made the biggest impact for me. It doesn’t matter what tool you use to manage things. It could be a notebook, a text file, or something more advanced. It just needs to become the place for managing project stuff. It can’t be a hassle to use and must be as quick to access. It has to become an indispensible part of your work process.
The rest of this post will be focused on how I’ve implemented these. Hopefully, it will be helpful or at least interesting to compare to your own workflow. For the past few years, my key tool for project organization has been RememberTheMilk (RTM). The rest of this post will focus heavily on how I use RTM to manage things, but most of these types of things could be done with other tools easily enough.
If you are looking to organize everything, you are gonna need multiple lists. I keep a number of high level lists or areas. Personal, Work (day job), and RazorAnt (my company) are the big ones. Ideas and Someday are special areas that I’ll explain a bit near the end of this post. The main point here is a have a few high level areas to place my tasks.
The RazorAnt list is the one we are concerned about in this post. It is a list of every task I’ve record for all my myriad of projects. (Yes, I have way too many projects between client work and my own projects, but that is a different problem.) Since I have so many things going on, I like to have them all lumped together in one area. I assign each task a tag stating what project it is a part of, but they are all part of the RazorAnt list.
The point of the big list is I can see at a glance which projects have the high priority tasks and which ones have due dates coming up. This helps me know what projects need the most attention. It is often the place I start the day at so that nothing gets forgotten.
Once I’ve settle down to work on a specific project, I pull up the filtered view so I’m just seeing tasks for the project at hand. This gets rid of the extra noise and helps keep me focused. The last thing any of us needs is more distractions. I keep the project list organized by using the priority levels and due dates. I’ve included a screen shot of one of my current projects that is in the early stages to give you an idea of what this looks like.
These are the real key. As I work in the early stages of a project, I sometimes feel like I’m adding as more tasks than I’m crossing off as I breakdown tasks into multiple steps. Once you do the work of breaking down the tasks into the steps, you might as well make them into tasks. Big items on your list can sit out there until you are ready to deal with them and break them down to manageable chunks.
When I first started writing down all these little tasks I felt like I was wasting time, but it turns out it is more then worth it. You don’t want to have to figure out the steps again and you can’t always control interruptions and other issues. Besides, there is a sense of completion as you mark items as completed.
Many indie developers handle support by having customers email them. I’m the same way. Emails come in and if the email is a feature request, bug or other issue that requires work, I just forward it to my RTM email address, give it a smart subject line, and it shows up right in my task list tagged correctly. It is placed right with the rest of my task and doesn’t get lost.
In the screen shot above, you can see a bug item that came via email. It has a note icon on it where the body of the email can be viewed.
Project Ideas & Questions
As we work on projects, new ideas are always popping up. When new ideas or questions come up, I just add a new task with the project tag and a question mark on the end. If there are lots of details, I usually end up send RTM an email with the details in my head so it gets listed and everything is right there for me.
I can evaluate these question mark items later and not lose focus completely on the task at hand. It is not uncommon for me to have lots of question mark tasks when I’m in the prototype phase. Question marks don’t mean I’m going to do these things, just that I’m going to think about them.
If you are anything like me you have a list of ideas for possible apps you’d like to consider. I keep my project idea list in RTM as well. These aren’t tasks like everything else, but it is a great listing tool and since I’m in this app all the time, the ideas don’t get lost and get to revisited often.
Hear about a book you should read or a video you should watch? I put them in my Someday list. Again, it is simple a place to list things that you might want to revisit. If after 3 months you no longer care about that book, just delete it from the list. The key here is again having a place to put something that you see often.
I keep this list at the big area level as I don’t need to see these every day but since I’m in RTM all the time, they are always there and get reviewed on regular basis. (Roughly weekly for me.)
Why I chose RTM
RTM has some key functions for me. Since I rely on it so heavily for my dev work and my personal organization, it is important it is always with me. The iPhone app is great and it automatically syncs with the web site. Everything is always up to date everywhere.
The easy of entering tasks is huge. The smart add functionality allows me to put tags, lists, priority and due dates all on the task line as I enter it. One line of text and enter and I have my task in the right list, tagged and organized. No messing around with separate fields.
Lastly, the ability to easily manage emailed items is huge. I can keep my inbox clean and not let it get out of hand. I simply forward the emails to my RTM address, change the subject (and use the smart add features) and send it. Nothing gets lost and I don’t have 2 places to keep track of items.
The goal of this post isn’t to sell you on RTM, but to share the key things I think are important in keeping me on track and showing you how I do that. There are tons of great tools to help solve this and many of them might work better for you than RTM. Hopefully, my key points show through in the description of my workflow.