Right now I’m working on a side-project that is going no-where. It’s not really important to the post, but the side-project is a blogging platform for children.
In this post I want to give you an idea of how I plan, run and move a project forward that is in this state. This method (if it deserves the name ‘method’ at this point) isn’t the way I’ll always run a project — especially if there are more people involved, but it does seem to work for me. It’s how I shipped Puzzle Maker.
I’ve been here plenty of times before — I’ve got an idea, I made some early progress with a prototype, but getting it to a state that I’d call even alpha seems to be taking forever. At this point, it feels like it’s going to be another unfinished prototype sitting in the graveyard that is my ~/dev folder.
It’s time to call in the big guns. It’s time to make a list.
That’s right. This is how I breathe reality in to my projects. Sometimes it works, sometimes it doesn’t. If it doesn’t, I know I probably need to can the project and move on. It’s important to know that I review this list daily, as progress is (or isn’t made). If one thing seems to be stalling the project, I’ll make a decision about whether it really needs to be there. If it does, I’ll double down on that one thing until it’s done.
To make my list I’ll usually us either TaskPaper, or just a text editor. It doesn’t need to be fancy. I might also move from the text editor to Dave Winer’s new outliner, Fargo, which looks excellent with its Dropbox support. Also, Trello and Asana are both excellent apps for this kind of work. TaskPaper is my favourite tool though, because I can mark tasks complete by appending @done to the end of the line. Simple by very effective.
Once there, I’ll break my project down in to the various components.
- Web App
- iPhone App
- Android App
Now, I might at this point decide to park Android for the first ‘phase’, because I’m faster at building iPhone apps than Android apps, and the results are usually better. Also, my day-to-day phone is an iPhone. I don’t mind noting down all possibilities, but I know it’s really important to focus. My time is super-limited, and taking small steps is quite fine, if it moves me towards the end goal. I’ll move the Android app to a new section at the end of the file (Future Tasks: or some-such).
Truth be told, I’m tempted to park the iPhone until the web app is done too, though the iPhone app is actually quite an important piece of the puzzle, so that’s a harder call to make. Maybe the features it gets in v1 (which might only ever be used by me and anybody who tests) will be excruciatingly simple, and I’ll flesh it out once the concept is proven. This isn’t a Minimum Viable Product. This is less than even that.
I’ll also add sub-tasks for each major task:
- Web App
- Landing page
- Parent/Teacher Dashboard
- New Post
- iPhone App
OK, so that’s a nice list. I’ve actually already started on some of the tasks (signup API is fairly usable already, and so is the signup page on the web app), so I can break those tasks down even further and cross off the ones that are done. Adding tasks that are already done is useful, even if I immediately delete them, because sometimes it jogs my memory or makes me see something else that is needed:
- Web App
- 5 Step Wizard (with ability to go back to previous steps without losing entered data)
- Single Site Signup
- Group Account Signup
- Validation (with friendly, helpful errors)
- Account Creation
- Welcome Email
- Email Confirmation/Validation
- Redirect After Signup
OK, so typing that list out reminded me that we still need a welcome email, and that I need to look in to email systems that work with Sinatra (my web framework of choice for this project).
I’m also aware that there are other, less techy tasks that need to be performed. These are the tasks that I really don’t deal so well with, but writing them down makes them seem less scary:
- Homepage Design
- Blog theme 1 (to get it started)
- Blog theme 2 (to prove theming works)
- Copy for home page
[and these tasks once we're closer to the end]
- Walk-through video
- Reach out to at least 3 respected teachers who are known to be involved in using blogs with their students (these can easily be found using Google or on Twitter) and ask them for their opinions and advice
- Reach out to at least 5 blogs that seem to have audiences that would like our app, and see if they’ll review it
- Test some ad-words ($100 worth)
- Get at least 5 paying customers
That last one is obvious, but the scariest item of all (for me, at least). It crosses a line that I seem to have real problems with. Outside of consultancy, I’ve had very few paying customers for any of my apps. I don’t know if it’s a psychological thing, but I never seem to get to the stage of being able to take peoples’ money. Ah, that reminds me of another item for the dev list:
So now what I’ll do is flesh out the other tasks (login, probably next, then viewing a blog and posting to a blog, then the admin screen), and I’ll start working on the tasks and crossing them off. It’s really important that I can cross something off almost every day. The tasks need to be small enough to do this — especially on a side-project, where the time I get to work on it is really just the time spend not watching TV or reading stuff on the internet. For example, ‘admin control panel’ is a very bad task, unless it has nice, small child-tasks that I can cross off, such as ‘Show blogs belonging to account’, ‘Show posts awaiting approval’.
Also, you might be interested to know how this all works out for me. Well, check back in a few months. This project is bigger than my typical side-project, but I’m actually quite motivated to finish it. I’ve also got some other stuff taking up my evening time right now, but that’s actually good because I’ve been working on this for over a month already, and I could do with a short break to get some space.
Oh, and I ticked off the name and logo tasks already too, but they’re still secret for the time being ;)