My new business partner Graham King is a self-described “agile development evangelist,” and it has led to some interesting discussions on if and how to run an agile company.
Agile development is a software development practice whereby a team of necessarily highly competent, self-directed, motivated, and mutually trusting developers iterate rapidly on software ideas in the absence of formal structure and planning. It is, in theory, more people centric, more responsive to change, allows for better learning over time, and avoids the unnecessary overhead of activities that are “about” software development, replacing them with actual software development, and faster, more effective working software.
I certainly have sympathies to this school of thought. Being a highly impulsive, entrepreneurial type who is constantly multi-tasking, tends to reject authority, and interacts interpersonally on the basis of merit and personal respect, rather than position or process – it is intuitively satisfying to me.
But at the same time, I’m also an experienced project manager, and I have a deep appreciation for the motivational power of extrinsic forces – particularly the customer, not all of whom have a desire to be intimately and rapidly iteratively involved in a software development process driven largely by technical resources. In addition to this, my view of human nature is that most people work better under some degree of pressure. I can see the risk of an agile team becoming too inwardly focused.
A restaurant analogy seems apt:
The chef is most concerned with preparing a delicious tasty meal, and is often not customer focused. In preparing the perfect meal, the customer is likely to have to wait, or to have to come back to the kitchen to provide advice to the chef, sample different sauces, be involved in the preparation process. In most cases, the customer just wants their meal to not be burnt, and most importantly, delivered on-time – because they are hungry. I worry that agile development can easily lead to the technology driving the business. Like having the chef run the restaurant. One of the classic errors in software.
But with that said, I think there is great strength in agile development, and it’s a relatively new – and kind of exciting – idea to me. So for now, I am going to trust Graham, and we’re going to try it out. Apparently its worked quite well with Google.
Next post – how to run an agile company? Forget technical software development, how applicable are agile principles to running the business itself?