I want to work on an idea and want to build an web application on the same idea<p>All I am bad at is breaking down the tasks into iterations and tasks and track them down with progress.<p>I have always seem people on HN doing awesome personal projects with their jobs.<p>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<p>Please pour in your ideas and educate me<p>Thank you all in advance
I've used Trello, the pomodoro technique, and self-sprints to a great degree.<p>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.<p>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.<p>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.
Trello, source code control, fogbugz and lots of notepaper. Basically, treat and run your personal projects as if they were professional ones and you can't go too wrong (also makes it easier and quicker to get extra pairs of hands involved if the side project takes off and becomes a major project).<p>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 keep 2 plain text files:<p>1. backlog.txt - a list of all potential ideas and tasks<p>2. changelog.txt - a list of iterations/versions/milestones<p>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.<p>backlog.txt is in a format like this:<p>* Fix IE9 compatibility<p>* Refactor CSS<p>* ... etc<p>changelog.txt looks like this:<p>1.1.0 - next release<p>--------------------<p>* Fixed IE8 thingy<p>* SSL encryption enabled<p>1.0.9 - March 10, 2012<p>--------------------<p>* Fixed null-pointer crash<p>* Catch exception in sendmail.java<p>* Enabled websockets transport<p>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.)
In general you don't HAVE TO break your work to tasks and track them. Many people can hold the whole project in the head and that is completely viable strategy. However, small tasks give you a sense of progress. You experience a good sensation when you mark task as Done.<p>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.
Probably overkill but I created an MS Project mpp and broke functionality into "Releases". Each release has a bunch of functionality and for each function/page I have an activity of scaffold -> finish dev/tests -> apply design.<p>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).<p>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.<p>Might be overkill but I like seeing a % complete (rolled up to and knowing whether I am ahead or behind by x hours).<p>Currently on my 352 hour release I am 56% complete (155 hours) and I am aprox. 6 hours ahead of schedule... :-)