How to apply agile to personal projects?


After learning about source control the first thing I did is do a project with svn. After learning about git I used it in a personal project. After learning about UML/Design Patterns/Design Principles/TDD I applied them to a personal project. How can I do the same to agile development? Is agile just for teams and big projects? How do I set up these iteration things?

Best Solution

I think Agile is definitely not just for team projects. Agile advocates a set of values that apply equally well to many types of projects, even personal ones. I was in exactly your situation a while ago, trying to apply agile development to a personal university project, and learned a lot in the process. Some useful things that the agile mindset can give you include:

  • Work on stuff that adds value to the final product. Make yourself a backlog of features and prioritize them as though you were the customer. Then discipline yourself to work on features based on their value to the product rather than what you want to do right now. This might save you from a lot of unnecessary, over-designed code that you won't use. If you have a deadline, it's even more important.

  • Have an evolutionary design: start with The Simplest Thing That Could Possibly Work and Refactor Mercilessly.

  • Postpone decisions until the Last Responsible Moment.

  • Timebox yourself into sprints or iterations (VERY important on university projects).

  • ...

If you go over some of the agile methodologies again, I think you'll find plenty of values and practices that you could apply by yourself.

While writing this answer, at least 3 other answers came up and beat me to it. I agree with all of them. :)