What follows is a continuation of our series of posts detailing Caxy’s experiences, implementing agile. This post by our CEO of Caxy Code Creative, Michael LaVista, describes the atmosphere which called for agility as well. Michael also shares some key indicators for success and failure, along with some practical tips for implementing agile in your organization.
Is Agile a big deal?
If you're reading this, you might have already heard about Agile or Scrum practices in the world of software and how that approach to projects is something any business can adopt. It gives organizations tools to innovate, continuously improve, and complete projects in predictable ways. This post is about how we did it.
What is Agile Development anyway?
Agile Development is a project and leadership methodology typically used to make software, but can be applied to any business. Agile/Scrum is the most sensible way to handle any initiative that requires creative and critical thinking. Complicated projects done as a part of a multi-disciplined, collaborative team go better with agile. We’ve seen agile used to plan a wedding, remodel a house, organize a party, and plan a benefit. Have you had an IT project (or any project) go spinning out of control? Are you trying to get the most out of a team with regular predictable deliveries? Then agile may be for you. What follows are our success stories as well as some of the challenges we overcame in implementing agile.
What took us so long?
Caxy’s story of Agile Development Implementation goes back five years. At that time we had some projects going over budget and some that were going well. But it seemed like every time the company made headway, one of the over budget projects would drag us back down. We were functioning as many agencies and companies still do, in a top-down, command and control model. The team leader, typically a project manager, figured out what needed doing, and assigned the work to “resources.” The project manager acted as the reviewer and approver of everything. What’s more is the project manager was also the client point person. The team was expected to work without a voice. Team members were unable to take ownership of the work. Further, that operating system created a bottleneck and single point of failure at the project manager role.
We needed a course correction and were immediately intrigued by agile. Agile/Scrum proposed quick cycles or "sprints" to evaluate project progress. Sprints could provide early indications of project health – early enough indications to make effective changes. Using agile estimation and project planning method we might have more information, and metrics.
Caxy needed several years to fully digest the implications for our operational process, and more importantly our culture. Early on, we implemented iterations and figured, “That's it! We're done implementing agile and everything will be better now.” But it didn't work. What we found over time, through trial and error, was that the importance of embracing the values that an agile culture demands was the key to making agile work.
We reinvented ourselves as an organization with clear vision and a culture supporting team play and mutual accountability. It is a culture where leaders support from behind, as servant leaders, developing and training people. Agile provides the framework, as an umbrella under which the team is empowered to make decisions, and instead of relying on a Jack Bauer-like hero for instruction (and single point of failure).
Key symptoms of poor leadership and culture breakdown:
- Over-promising, command and control – project manager goes rogue
- Project managers asking the impossible of teams resulting in poor quality and missed deadlines
- Lines of communication break down and trust evaporates
- Teams don’t buy in causing burnout and attrition
- No team investment in the outcome
- Unprofitable, unsustainable work
How Caxy Implemented Agile
After a couple of years of banging our head on the agile wall, we finally embraced the culture of agile. Really smart people on our teams collaborate and figure out the best way solve problems. Having separate roles for Product Owner and Project Manager in an agency setting gives us the ability to have one person strive for the best product possible, the Product Owner, and one person strive to ensure client alignment and overall project success, the Project Manager. In an ideal project those two roles are completely aligned. But when one side gets out of alignment there is a check and balance to make sure that the two come back together.
We implemented pointing parties where team members collaboratively estimate the work and assess its relative complexity or size in story points. Team members chose the work that best fits their skill set in the interest for the sprint. Team members help the product owner set realistic, achievable priorities. While the product owner works with the project manager to keep alignment with the client. The work we do is always prioritized, and estimated with team input giving teams ownership of the work.
Agile teams need a very high level of maturity and a high degree of transparency. This goes for the client side, too. We spend a lot of time talking about agile with our clients. We have done our best work in alignment with clients. It's magical.
Agile is working when:
- Work is predictable
- Teams are accountable to the project, each other and on time delivery
- People love the work - internally and externally