"You can't apply Scrum without an external expert"
"You can't apply Scrum without a Certified Scrum Master"
"You can't apply Scrum without XYZ"
You can replace Scrum with any other buzzword. Is it really necessary to have an agile coach on board to join agile camp? Is it really required to send someone to CSM courses and delegate Scrum adoption to this brave knight in a shiny armor? I believe it is not the only way to go, and there are 2 reasons that support my vision:
- I did not attend any courses, conferences and other events, but I did learn agile and became an agile expert.
- We implemented agile process in our company without any external help.
To me it looked (and still looks) natural to improve development process internally. It was an ad-hoc agile adoption in our company. There was no defined structure, but on-going learning. People have been reading books about agile development which I recommended. I've been making some presentations about agile history, main processes and so on. People have been reading articles and discussing new ideas. It worked out, finally. Even with such an unstructured approach you are able to set up an agile company. But are there better ways?
What's wrong with external coach/trainer/consultant? Nothing, actually. You pay someone to teach you. You pay someone to inject agile culture into your company. You pay someone to get it faster.
The problem is that this process is so slooow. It is inevitably slow, because all the mindset changes are slow, and you can't speed them up greatly. My estimate is about 1 year as a minimum (no proof, sorry, just personal experience). You can't absorb all the agile spirit in a shorter period of time (maybe some geniuses can, but they don't need coaches anyway). I do believe that a good agile coach can speed up agile adoption, but not as greatly as often advertised.
OK, so changes are slow. It is absolutely required to manage the change over a long period of time. You can't setup something, run it for a couple of iterations and leave. There is a high chance that development team will degrade and slip back to old-and-oh-so-known practices quite fast. It leads to several possible conclusions:
- If you hire agile coach, it is better to have about 1 year contract.
- If you hire agile coach for just 3-6 months, setup internal learning/change process as fast as possible.
The main idea of agile adoption is a paradigm shift. People should change their habits, rituals, working patterns and activities. It is SO hard! Some people just can't accept it and leave the company. The goal of agile adoption is to change mindset of as many people as possible and let rock-hard minority go.
So why I personally don't like the idea to hire someone who will teach us agile? It immediately puts our intelligence to question. Are we really not able to learn ourselves? Can't we read some books, discuss them and try, for example, Scrum in a single dev. team? If we want to hire someone, to me it looks like we've already given up and can't do anything cool without external help. It looks like we got exhausted and now need a power recharge. It is similar to an external CEO hired in a desperate attempt to save company.
Don't get me wrong. Agile coach can help greatly. But I don't buy the paramount idea that development team can't go agile without external help.
Problems and Solutions
I like challenges and like to solve problems without external help. What I like is a full team involvement and participation. It is so cool when people discuss problems and generate solutions. If I ever hire an external consultant, it will be a person who will teach how to solve problems. Problem solving is the MOST IMPORTANT skill (can I stress it more?) for any good developer/tester/designer/you-name-it.
Here I see a major flaw of Scrum as a methodology (so far?). It does provide a framework, but it says nothing about problem solving. OK, you should have a retrospective meeting every other week. You should identify problems, generate ideas and write action items. You should execute action items and retrospect in 2 weeks. Sounds good. But HOW to identify problems? HOW to generate ideas? Scrum says nothing about that, but I believe this should be the core of any agile process.
Knowledge From Within
There are various ways to ignite the team and solve problems internally, but you can't solve problems effectively without knowledge. Study Groups could be the most promising way to educate people. To be honest, we did not try it. As I mentioned, we did not have any structural approach so far, but intuitively came to something similar to Study Groups.
Study Group is a small group of people (4-6) that have cadence sessions e.g. weekly. There's no distinct leader, they rotate with every session. People should be really interested in the domain. For example, if you have Study Group to learn TDD, all the members of the group should be passionate about TDD learning and actively participate in discussions.
Why I think Study Group should work? First, there's no Boss inside. People can freely discuss various problems without pretending that they know everything. Second, there is a clear focus. You should not form a group with a goal to solve all the development problems, instead it is better to form groups to study UX, study TDD, study Scrum, study Lean. Once again, Study Group is not a problem solving technique, but it helps to educate people. And it is absolutely clear that educated people will generate better solutions faster.