So you want to be agile?
In today’s fast-paced development life-cycles, the old waterfall method of development just doesn’t cut it any longer.
What you need is Agile development — but where to begin?
The first thing you’ll need to do is to create a detailed plan, or roadmap, to get your agile team(s) up and running. So let’s examine the pieces of an effective Agile team to start with.
Agile development starts with people.
For starters, you will need the people in place already, or you will need to make the tough choices with your existing crew to ensure that you have the right people with the right skills to implement Agile.
This means a thorough review of your existing team, as well as looking at new hires. You’re obviously looking for “A” players here. If you have existing employees who are resistant to Agile (set in their ways), you will have to consider jettisoning or reassigning these people to other duties while you build an effective agile team.
Next, make absolutely sure that training is in place for those who need it or want it. For those employees who are unfamiliar with Agile, or just haven’t practiced it enough, ensure that training is available.
Have those team members who are familiar with Agile spend time with those that need to be brought up to speed.
Once you have your team members in place, focus on Agile teamwork. A proper team attitude is essential for effective Agile development, so make every effort to foster effective teamwork between all members of the team. A critical piece of this is trust and communication.
Without trust between team members there can be no open communication. And without open communication you will get no team improvement over time, which is your real long term goal — building a strong Agile team.
Empower your team
Once your team is in place, trained and communication and trust are flowing, empower the team so that every single team member is committed to the team’s success and accountable to their peers. Make sure that the team as a whole is self-organizing without top management needing to step in the way. Team members thusly empowered will consistently pull whatever work is needing to be done, instead of having it pushed down onto them.
Set reasonable goals
Don’t set your team up for failure. Ensure that they’re given enough space to do things right the first time (precision vs. speed) and so can work at a pace that every member of the team can sustain.
With precision, comes speed.
Just like a good golf swing, if you work on your precision and technique first, speed and power will come over time. And be sure to give your team the support that they need. Don’t forget to factor in things like vacations, sick days, unexpected support or testing work, etc.
So you have your team in place — now what?
Introducing SCRUM
SCRUM is an Agile development methodology which focuses on breaking a project down into a series of coding and testing “sprints”, typically two to four weeks in length. A SCRUM team usually consists of the Scrum master (team leader akin to a project manager), a cross functional team of coders, designers, testers, etc, and the Product Owner (customer and/or management).
On a SCRUM team, the scrum master is responsible for keeping the project on track by consistently checking metrics and reports to ensure that the team is on schedule and on budget (for both time and money). Once the project has been clearly defined and planned out, the team breaks down the project into digestible units (sprints), and schedules the necessary resources (manpower, money, time) to complete each sprint. A sprint consists of coding, thorough testing and implementation into the final product.
That’s your roadmap to Agile in a nutshell. You’ll definitely want to do further reading, so see links below.
Recommended reading:
Implementing Lean Software Development — From Concept to Cash
Agile/Lean Product Development and Delivery — Mastering the Art of Change