marked as duplicate by Mark Trapp Jul 30 '11 at 18:48

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Just say "I'm driving" and start coding until your pair will not want to be the driver.
–
LorenzoSep 27 '10 at 13:49

1

@Lorenzo Pair? Which Pair? Being solo does not imply that I don't get any pair to argue with?
–
DavRob60Sep 27 '10 at 14:00

1

I think the very nature of solo programming becomes an agile process. You are the sole developer, responsible for coding, testing, documentation, the works, so to keep up with the pace your development will need to be agile. Generally speaking agile is faster iterations, of the usual document, implement, test, push features, repeat until code base meets specifications.
–
ChrisSep 27 '10 at 14:08

@Chris I know all that, I'm (probably) doing some king of Agile development right now. What I'm asking for is some reference so I could review my current practices and improves them.
–
DavRob60Sep 27 '10 at 15:27

Well any agile books would suffice, I doubt there is a agile development specifically geared towards individual developers. If there is I would be interested in reading it to see if there are any differences noted compared to agile development within a team environment.
–
ChrisSep 27 '10 at 15:40

Mark, I've been reading almost everybook on Agile, I did all certifications I could, I went to gatherings, conferences, etc. This is the only reference book that did the wow effect on me. It is complete, well written, easy to understand and read. The book is divided into small sections that describe one particular problem and how agile can help
–
user2567Oct 6 '10 at 7:23

Honestly, just be nimble. Agile has a heavy grounding in getting the most out of a team (standups, pair programming, etc). As an individual you're likely agile by your very nature - invent a process that works for you and go for it... just don't get entrenched by it. These development processes exist because managing IT projects across many functions is challenging... you're one man. You are the process.

I track my tasks using post-its, I have a CI server checking my code and I iterate until myself and (volunteering) testers are happy. I design first, code later. I try to set achievable goals for the week, and tend not to think about the project months in advance.

You'll get better results working in a way that you feel comfortable and have evolved into.

You're going to have to adapt. I doubt there are any books that specify one developer or 100 developers. If you want to learn about Agile development, there's plenty on the internet. I browsed a few books at the local book store and didn't see the need.

Paired Programming - I happen to work at a firm with a lot of financial analysts that have been doing things in Excel that I convert to our application. I drag them over to look at my code occasionally and work through things with them. Saves a lot of back and forth.

We have plenty of people requesting software that can play all the other roles.

Stand Up Meeting - OK, this one freaks my coworkers out. Especially when I have to cut myself off for taking too much time. Just kidding, but I do keep a journal of what I did and what I'm going to do daily.

As far as the requirements gathering, planning, unit and acceptance testing, you can follow whichever methodology seems to make sense.

We use kanban at our work, and I've found it really useful - I think the idea of limiting yourself to a certain amount of work means you get more done.

One other thing kanban does well is categorizing where the work is up to - we use plan | build | test | distribute | done - each of these stages is defined and you need to work an item through the board - this helps to make sure that you haven't ignored testing, or that you've spent a bit of time planning and defining how to tests and demonstrate a completed feature.

One of the good things about agile is the accountability / transparency - so I'd let your clients know what you're working on, get them to agree to features they want added so that you keep yourself accountable to someone, even if they don't know the technical in's and out's.