What’s the Point?

Obviously, the name “Agile Evangelist” for this blog immediately leads to the question why would I want to go as far as “evangelizing” Agile, even at the risk of coming across as some kind of religious zealot, as that is the obvious connotation of “evangelizing”. I actually hate the word “Evangelist” for that very reason, but that is also why I chose it: Both as a provocative challenge to the reader and as a provocative challenge to myself.

So why do I believe that Agile is so important that I want to “promote” it by actually writing a blog about it?  A lot of people have very straightforward answers why they think Agile is important, which relate to how Agile is supposed to make teams more efficient, how it is intended to produce higher-quality software, how it allows customers to change their requirements in a controlled manner, and so on. But my answer is not all that straightforward. In fact, it is much more personal.

I started developing software in 1985. For many years, it was my hobby, or even my passion. I had finally found my creative outlet. Others could draw or sculpt or play musical instruments. I could develop software, and I did it well. I had no doubt that I would end up working as a software developer one day. That changed when I began to understand how software development works in an industrial environment. I felt that in common software development methods, creativity is largely suppressed, and the software developer becomes a cog in a huge machine. It reminded me of working in an assembly line. I stopped being interested in being a software developer then, and I ended up going first into the “research” branch of R&D and later into project management.

For a long time, I took for granted that development had to be done that way: as a heavily planned machinery. I realized that a lot of things about conservative processes such as waterfall are nonsensical – the detailed project plans, the arbitrary milestones, the late discovery of bugs, but I admit that I failed to see the alternative – until I heard about Agile.

While Agile seemed to avoid a lot of the aforementioned ridiculous aspects of old-fashioned methodologies, what impressed me the most was that it actually brought back the creativity that I thought was impossible to achieve in a corporate environment. Agile gives the software developer as much freedom as possible, respecting the developers as the experts on the subject, giving them the responsibility to plan their work (as opposed to being planned as a resource) while trusting them to understand the priorities and to make decisions in their development work in the company’s best interests.

This might sound overly emotional and positive, because of course, the developers are still constrained by business needs and should ultimately create a product that generates profit. So if you want to be cynical about this, you could say that this is still about cold hard cash and not about the developer’s well-being, but to me, the key difference is that in Agile, software development is seen as a craft and not as a commodity skill.

A goldsmith, a carpenter, a tailor or other people who work in a craft also have to create a product for sale. They cannot just create anything they want for their pure fun and enjoyement, but they have to work within the confines of their business, and their product needs to be markeatable. Still, I would claim that at the end of the day, a goldsmith, a carpenter or a tailor can look at what they have created with a sense of achievement and even pride. If software engineering is respected as a craft, then a software developer can experience the same.

And once software engineering is respected as a craft, everything else falls into place. Software developers will accept that they need to hone their craft and constantly improve themselves. They will take pride in their work and take pride in creating a high-quality product.

Agile provides the framework for respecting software engineering as a craft and provides the tools for honing this craft and for creating high-quality output.

That is what fascinates me about Agile: Now, a new generation of software developers can expect to work in an environment where they have room for creativity and where at least some of the fun and sense of achievement of hobbyist software development can be carried over into a professional environment.

I think that is a worthy cause.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.