Software development project managers accustomed to being top dog on team projects may find that Agile methodologies can represent fundamental change. Agile software development (a.k.a. ASD) refers to software development methodologies such as XP (extreme programming) and Scrum which focus on developing software in short, iterative time periods of anywhere from one to three weeks.
These approaches to software development differ markedly from older, plan driven methods in that they allow project requirements to evolve as the project progress. This approach encourages, even demands, close collaboration between development teams and end users, and requires teams to be self-organizing/self-managing with full responsibility for their own work product.
Different Agile methodologies
Each Agile methodology describes a number of different practices that software development teams use on a regular basis, and is accepted as the “correct method” for getting things done. It’s not written in stone that dev teams adopt all practices of a particular Agile methodology, but it is critical that the team select the practices that fit the needs of their particular project. Agile practices might be technical, such as test driven or continuous integration, or related to the management of the project, like daily stand-up meetings, iteration planning, etc. Or they may relate to the overall Agile environment, like co-locating teams or self-organizing the team.
The PM’s Buck Stops Here
It’s the project manager’s responsibility when using these Agile methodologies to make sure that the team is producing quality work. This is accomplished by creating a supportive environment that continually motivates their team members to bring their best abilities to bear in the interests of the teams output. PM’s also must ensure that team members are making the correct decisions and completing assigned tasks in a timely fashion. Since an ever-increasing number of software teams are adopting agile methodologies and practices, leading researchers are exploring specific agile practices which can impact an agile team's motivation. Three practices are commonly used by motivated agile teams include iteration planning, the daily stand-up meeting, and the iteration-retrospective, and are defined as follows:
- Iteration Planning: The team meets before each iteration to collectively (and clearly) define which backlog items to tackle next, and then plan the tasks necessary to define this item as “done” during the upcoming iteration.
- The Daily Stand-Up Meeting: A 10-15 minute meeting, conducted with all participants standing up, that briefly discusses the previous day's accomplishments and the plans of each team member for the day ahead.
- The Iteration Retrospective: The team meets at the end of each iteration to review the work completed so far, and to identify improvements in how things get done for the next iteration.
What’s My Motivation?
In the iteration planning phase, team members are encouraged to express their preference for working on tasks where they are likely to learn the most - for example, gaining new skills or upping their expertise in a particular area. And by participating in the planning phase, the team feels bound closer together as they are more involved in making group decisions during task planning, as well as the daily stand-up meeting and iteration retrospective phases. Because team members are participating more closely with each other, they become more attuned to each team members quirks/needs/motiviations, and are able to support each other. This provides an outlet for feedback amongst team members during daily stand-up meetings, iteration planning meetings, and retrospectives.
Another motivator is that team members also have a way to give and receive both praise and constructive criticism during each of these meetings. Clear communication on a daily basis keeps each team member informed not only of progress, but also on where things are heading and any roadblocks in the way. This tends to give each team member a feeling of empowerment instead of just feeling like a cog in the machine. This is because clear communication leads to increased levels of trust amongst team members, engendering respect for each others competencies (and quirks). Consequently, team members are more willing to pitch in and help each other as a team.
When each team member feels responsible for the project’s goal(s), they tend to identify more strongly with each task they are assigned. As a result, team members are more likely to motivate and help each other to achieve these goals. Transparency helps, as well. When daily stand-up meetings promote greater transparency on tasks (where are we at, is it done yet, what does it need to get done, etc), greater accountability is stressed. This can be a major daily motivator.
Mastery Of One’s Domain
It’s an innate human desire to master your surroundings. It’s a fairly simple concept - people inherently want to improve at what they do. Just as nature strives for continual improvement (like evolution, DNS, and a toddler learning to walk), developers also want to improve and master their domain until it becomes second nature to them. Giving each of your team members the freedom and encouragement to master their profession is a sure-fire way to keep them motivated for the long term.
The Purpose Porpoise
Another major factor in keeping your team motivated is fostering that sense of purpose amongst each team member. Knowing how each team member’s efforts fit into the wider canvas is a deep rooted desire of any team member. Understanding why the work they are doing matters is a major motivator for the team as a whole. Too often the teams are kept disconnected from the business side and customers. This is a major mistake, as it will end up alienating the team and drying up their sense of purpose - which can bring motivation to a staggering halt. So make sure that at the team grows, they are connected to all aspects of the project. This will motivate them to strive to be more agile, more autonomous and give them a rising sense of mastery and purpose.
Downside, What Downside?
Like everything in life, there is a downside. While these are all great practices which can result in software success, they do have negative consequences for some people. For example, some team members can feel stressed with peer pressure to accomplish tasks in timeframes which, though agreed to at the start, become unmanageable during the sprint due to circumstances beyond the team members control. Or some team members may find the number and duration of meetings, both daily and weekly, to be disruptive to their workflow as each meeting reduces the time available to work on tasks, and leading to frustration. Or on longer term projects, for example (greater than two years), Agile practices may become too routine, with less interaction.
This can leave team members less motivated to actively participate in Agile practices. Another negative aspect is that the daily stand-up meetings can be frustrating or even embarrassing to team members that must regularly report on lack of progress due to difficulties with complex or fragmented tasks. So, there *is* a downside. Agile practices which encourage greater interaction, feedback, support and communication among team members, can also exert undue pressure which winds up having the opposite effect. But this shouldn’t dissuade anyone from Adopting Agile practices - because the benefits far outweigh potential risks.
The Project Manager Manages It
The project manager must make sure that no team member is experiencing undue stress. The PM must work with the team to ensure proper task allocation and that all support required for the development team is in place. It’s critical for the project manager to stay on top of this, because frustration and apprehension amongst the team will directly affect the quality and speed of output. It’s the project manager’s job to ensure that each and every team member stays motivated.
The team should also feel that they are involved enough to bring problems to the attention of the PM, so team feedback should be greatly encouraged. If there are difficulties amongst individual team members, this needs to be nipped in the bud quickly. The team needs to take control (be self-organizing), and reign in an problematic members. This should include getting the project manager to agree to review and change processes which are not working out for them.
It’s a given that Agile is the software development methodology of the foreseeable future, so keeping your Agile team motivated is therefore important to the success of not only your team, but the stake holders and most importantly, the customer. So find out what makes your team tick like a Swiss watch, and provide them with everything that they need in order to keep on ticking. Doing so will drive defects and errors down, as well as drive customer satisfaction and profits up. So fire up that motivation engine, remove the brake, and let it roll!