Ask HN: How to do Project Management for personal projects?
I want to work on an idea and want to build an web application on the same idea
All I am bad at is breaking down the tasks into iterations and tasks and track them down with progress.
I have always seem people on HN doing awesome personal projects with their jobs.
I would like to know how do you divide the tasks, turn them into iterations and if at all you use any project management tools to track them
Please pour in your ideas and educate me
Thank you all in advance
(
8 comments
| 11 points
| on HN
)
I think Trello and the pomodoro technique can be used almost universally, but the self-sprints are something I tailored to myself - I realized that I work best in short, intense bursts and not long, predefined durations. Sometimes I'm more productive in a single hour from 6:30am to 7:30am than I was for the three days before.
Get yourself Flowkeeper (a good pomodoro tool), a Trello account (or another piece of work queue management software), and start keeping a journal of your productivity - try and figure out when you're most and least productive, and work around that schedule.
Edit: Also, as a single person you'll never be able to be doing more things than can fit on a single whiteboard. A whiteboard is probably the single best investment that I've ever made for productivity.
Task wise, I start with brainstorming, then ui/program flow mockups (usually in balsamiq), then systems arch/planning (i.e. what server roles, how many and what sort of network layout) then I finally get coding. Coding tasks themselves are broken down in to semi logical chunks e.g. backend api, frontend (html/css), glue layer (stuff like form validation and handing off to backend api), auth layer etc.
I use milestones, and I give myself a small award if I win, (I'm terrible, I energy-drink). Small awards help make a habit out of reaching your milestones, and you know, nothing more consistent than habit.
Hemingway's trick applies to TDD, of course: http://www.secondactive.com/2009/08/boost-your-productivity-.... I like to leave broken tests before I go to sleep, and fix them in the morning.
I don't really use anything more than git, though, and personal notes, if it's a personal project. Everything else just kinda gets in the way.
1. backlog.txt - a list of all potential ideas and tasks
2. changelog.txt - a list of iterations/versions/milestones
Whenever I have an idea or bug, I add it as a line in backlog.txt When I want to actually work on code, I pick 3-4 tasks that I want to complete and move them to changelog.txt. The number of tasks depends on how much I can do in one or two sittings.
backlog.txt is in a format like this:
* Fix IE9 compatibility
* Refactor CSS
* ... etc
changelog.txt looks like this:
1.1.0 - next release
--------------------
* Fixed IE8 thingy
* SSL encryption enabled
1.0.9 - March 10, 2012
--------------------
* Fixed null-pointer crash
* Catch exception in sendmail.java
* Enabled websockets transport
Keeping everything in plain text helps me from fiddling around too much with the tool, which I am very prone to do. (Meta-bonus, my product is a text editor so I can organize my product with itself.)
Most likely you don't need iterations. Just a list of tasks sorted by importance is OK. As mentioned, Trello is a very good choice. It is free and visualizes progress. Physical and simple Kanban Board will server as well.
I estimate each function/page for each activity (scaffold, finish dev, apply design) and I set an assumption in Project that my work day is 2 hours (how much I try to dedicate each day).
Project tells me based on my estimates what day I should have a particular task done and I try to finish it by said date. Every day the last thing I do is set my actual work for each task so that I know how I am progressing and whether I am ahead or behind schedule.
Might be overkill but I like seeing a % complete (rolled up to and knowing whether I am ahead or behind by x hours).
Currently on my 352 hour release I am 56% complete (155 hours) and I am aprox. 6 hours ahead of schedule... :-)