I was lucky enough to present some fundamentals of Agile development to the good folks at the Programming Society at the University of Technology in Sydney last week. For some reason when I was preparing for this chat, I was sure I was going to get a question something along the lines of: “what makes a good Agile developer?”
(it also happens that I’d recently listened to an old SE Radio podcast interview with Bedarra Dave Thomas where the same question was raised)
Anyway, I didn’t have much of an answer to this question, so I put it to myself and came up with a couple of items which I thought characterised the behaviour and thinking I would expect to be necessary but not sufficient for a good developer, Agile or otherwise. There are lots of other sources out there with this information, so I’ve just tried to fill in the gaps with some points that I haven’t seen people speak of much. This is what came to mind – warning: it is a little Manifesto-esque…
In design/development, a good developer values:
- How much code they delete, not add
- How rarely people ask them to explain their code to them, instead of how often
- Solutions that are the best fit for the context (i.e., business domain, maintenance capabilities, operational support)
In learning, a good developer values:
- Staying current with development trends, but not at the expense of the best solution for the here and now
In attitude, a good developer values:
- Humility and understands defects are the natural part of development
- Problem solving as their principal motivation, rather than money, status or organisational power
- Finishing stuff, deploying, installing, releasing, go live, production, Production, PRODUCTION!
- Commitment to completing items and work and willingness to escalate unforeseen issues impeding the commitment
- That going from Good to Great (or Average to Good) requires either “more” or “better”, but not “the same”.