Agile software development ideas are now rapidly becoming the mainstream way that software projects are run. This is a good thing, but it does have a dark side: the tendency to water down the agile ideas— to claim that whatever a programming team is already doing is agile.
Coaching versus Outsourcing
Consulting can be done as an expert providing a service, or as a teacher who shows the client how to do the service for themselves. For example, if a large business wants to survey attitudes of employees, they would hire a consultant to design and conduct a survey. This is an example of the outsource model of consulting: the client has no intention of learning how to design or conduct surveys.
At the opposite end of the scale, a heart surgeon might bring a specialist into his or her practice temporarily as a consultant to learn how to surgically implant a newly developed artificial heart valve. In that situation, the client expects to learn all that the consultant can teach and then have no more need of the consultant.
One-hundred-percent knowledge transfer is the goal of Lean-Agile Partners when working with clients. We use the coaching model, not the outsourcing model, because Lean and Agile ideas are just too important for any business to leave to someone else. To be successful, they must be correctly understood and honestly driven by those at the highest levels of management.
Don't Delegate "Agile" to Others
By "delegating Agile to others" we are referring to the notion that a Vice President or CEO may have which goes like this: "I'll hire XYZ Consultancy to manage our software projects using Lean-Agile. That's a bunch of specialised techniques that I don't have the time to learn. After all, I wouldn't do surgery on myself either."
The problem with this view is that unless you are directly exercising Lean-Agile practices, you are almost certainly using concepts and management techniques that are the opposite, and you'll undermine the Lean-Agile programme that you initiated.
Lean-Agile ideas are not some arcane sub-specialty that a CEO should leave to others. They directly address the most fundamental element of any software-intensive business: How do we identify what is valuable to our customers, and how do we deliver maximum value to them as quickly as possible?
Management does have to make an effort to learn agile techniques; foundations must be put into place. You also must make it possible for software teams to test their code as they create it.
"I was so fed up with the way software is built at every company I've worked in that I was looking to move out of software development. Agile solves all that and makes coding fun again!"
― Software developer after first iteration on a pilot Agile team.