Johannes Link is starting something that I would like to support and promote:
contact Johannes if you’d like to spend (at least) one day per month in a project with other agile consultants and you are willing to give this project priority on that day.
I believe a regular programming project with like-minded programmers this is a great idea. Programming is a long haul activity, some effects you only notice after a while, and jamming with fellow practitioners is a great way to learn. The reason I support Johannes’ idea is because I believe it will support participants in sharpening their saw – increase understanding of what they already know by spending time doing programing work and reflecting on it, as well as creating a space where experimentation is not an option – it is a requirement
As a consultant I am most often hired to explain what I consider to be “the basics”. This is a moving target of course, as my understanding of “the basics” changes with experience. When I started out coaching teams, I did a great deal more experimentation on client projects, as I was learning “the basics” together with my clients. There is nothing wrong with doing “the basics” again and again, that is also a way to deepen your understanding of a subject. Kata’s in a coding dojo work like that – coding dojos are another way to keep up your programming skills.
However, keeping up is not enough. I am lucky in the sense that I have been able to keep up my programming skills by teaching technical workshops and doing hands-on coaching on client projects occasionally. I’m starting on another hands-on project for a client in a couple of weeks, where we will pay quite a bit of attention to “the basics” and everyone (including me) will learn some new things.
However, client projects are not always a good place to try out experimental stuff that has not been proven yet – that requires visionary customers with some slack in their organisation. And quite frankly, my customers often benefit more from my understanding of what I already know than from my desire for experimentation and learning (which I then satisfy by learning about their domain instead).
Therefore, having a separate project to regularly practice practices and having the space to try things out is good. I’m lucky: with my partners in QWAN we came to some of the same conclusions as Johannes. We need to be able to spend significant time developing with other visionary developers so that we can advance the state of our practice. We decided to develop new hands-on programming workshops with challenging excercises – beyond our current understanding of “the basics” and start developing some (mini-) products together. We did that because we needed some software to support our business, have some wild ideas, and last but not least wanted to sharpen our saw.
We want to improve our programming skills in an organisation that has the vision and slack to support it (e.g. our own ), because keeping up is not enough.