Sometimes I feel like an evangelist.
“Have you heard the good word of Alistair Cockburn?” I ask my colleagues after returning from lunch. They ignore me. “No?” I press. “You know, he was part of the team who wrote the IT worker’s sacred text: The Agile Manifesto.”
(I still don’t know why no one wants to go out to lunch with me.)
But sometimes I get a reaction, largely from Capterra’s IT department. “Oh yes, Scrum!” “Crystal!” “Ugh, DSDM.”
When I get someone to engage, it’s nerds gone wild.
Yes, it’s as exciting as it sounds. Code, snacks, and standing desks all leaping into action.
I realize that the lack of my peers’ excitement about agile might stem from a place of ignorance—if only they knew how effective (and fun!) agile project management can be, they’d be as excited for it as I am.
What exactly is the Agile methodology? And how do you use it effectively?
The Agile methodology is an iterative approach to project management. Instead of taking a “one-shot” approach, Agile methodologies adapt to changing requirements.
Agile software development, specifically, requires feedback from customers and cross-functional teams for success. The agile method is a real-time approach to project management to help manage your development as it occurs, in an evolving manner. With the Agile methodology you create, incorporate feedback into, test, and manage your projects simultaneously.
According to market research conducted by the Project Management Institute, agile organizations fared substantially better than their non-agile counterparts in performance metrics. For example:
- 75% their goals compared to 56% of non-agile organizations
- 65% finished projects on time compared to 40% of non-agile organizations
- 67% finished projects on budget compared to 45% of non-agile organizations
- Revenue grew 37% faster
- Agile organizations generated 30% more profits
Clearly, there are benefits to using agile methods, and tech teams, in particular, can benefit from this project management approach.
If you’re sold and ready to learn about how to teach the Agile methodology to your team, read on to learn the five steps to do it correctly—trust me, gushing without explanation doesn’t work (and might get you uninvited to lunch), but these methods do.
1. Create assignments and exercises using the Agile Manifesto
You can teach these principles through exercises and assignments like the ones on Growing Agile.
The emphasis of these exercises is self-discovery rather than just teaching.
For example, begin with asking your team about the manifesto. Let them discuss the principles with each other. Then, hold a brainstorming session with your team to list the principles that will be effective in group discussions. You can then give them a written assignment to apply principles to their current software development styles. The aim of these assignments is to adopt and memorize the principles.
One great way to teach the basics—especially for new tech teams—is to create a simple fill-in-the-blanks exercise as seen in the diagram below.
2. Focus on live training rather than theory
The Agile methodology is best learned through real life examples. There are different applications of agile, like Scrum, XP, Crystal, and Kanban, which your team may be familiar with, but it is still useful to go through examples. Live training is suitable for intermediates and experts in Agile methodology. Follow the steps below to help your tech team learn agile in live examples:
- Start a project based on your current methodology, like Scrum or XP
- Define the scope and goals of the project
- Design guidelines for project requirements
- Develop a software function
- Integrate the function with the agile methods
- Test the function
- If the test is successful, move to next function and repeat steps 4-6
- Record errors if the test is unsuccessful and include changes until the function works
- Reprioritize project objectives based on client feedback
- Release the function to the market, once you incorporate feedback
- Move on to the next product and repeat steps 4-10 until the project is complete
(Hint: you can use agile project management software to get this system right the first time.)
The steps listed above are a basic sample of a live project training on agile methods. The trick here is to apply agile to your existing project. A live project training is a great way to transfer knowledge instead of just teaching.
3. Online Scrum and Kanban course certifications
One of the best ways to implement Agile is to have your team members complete online course certifications. The process tends to be more expensive than running a program in house, but offers the upside of saving time and effort at the management level. One reputable site with different levels of courses is Scrum.org, founded by Ken Schwaber of Scrum Alliance.
A useful site for Kanban related certifications is Agilecertifications.org which offers Accredited Kanban Practitioner (AKP) certification.
4. Teaching Collaboration: Focus on the “we,” not “I”
Collaboration needs to be at the core of the agile implementation for the process to work properly. This is because the key stakeholders of the agile method are the customer and cross-functional teams. There needs to be proper communication and inclusion so that they can provide proper iterations to make the final product.
During training, emphasize collaborative frameworks. Include customer use cases in live training to highlight how customers can collaborate on the final product.
You should focus on creating a collaborative and user-focused environment. The first step is to reorganize your team dynamics to create opportunities for collaboration. Have your tech team members work together in pairs, programming and peer testing.
5. Hiring an Agile Coach
Before hiring an agile coach it is important to know your budget and your timeline. Coordinate live projects your tech team is working on using agile methods. An agile coach should use live examples from existing projects to make training more relevant for your team.
There are two styles of agile coaching: push-based and pull-based.
Pull-based coaching subconsciously engages team members to adapt principles and values by giving consistent, encouraging feedback. This method facilitates learning with minimal involvement of the coach. Push-based coaching technique is when the coach plays a direct role in imparting knowledge.
More on teaching the Agile methodology?
When adopting agile project management, managers should emphasize collaboration and customer engagement. They should focus on work fluidity and teamwork, on the “we” and not the “I” mentality. If properly implemented, this dynamic project management method can realize great results for a tech team.
Have you taught your team how to use agile? Are you looking to learn it yourself? Do you use any of these stand-out agile project management software options? Are you an evangelist yourself?
Let me know in the comments below!