Agile Project Management
By now, we know we want to make use of agile development practices in our IT organization, but we also know that the traditional project management techniques just do not map 1:1 to our style anymore. So let’s take a look at the role of an agile project manager and that person’s responsibilities and techniques for carrying out those responsibilities. Before we do that, let’s look at the principles of the project management declaration of interdependence (PMDOI) to reiterate fundamental differences in agile project management.
Project Management Declaration of Interdependence
In addition to adhering to the agile manifesto, agile project managers agree to the project management declaration of interdependence. The following six core values of the PMDOI will give you a good idea of the role of an agile project manager. The PMDOI is consistent with the agile manifesto, but the core values provide a much clearer definition of agile project management. Let’s see how the core values relate to the fundamental motivations for agility (which were presented in Chapter 1). Please note that each core value starts with “We.” Agile project managers are a community of professionals who signed the declaration. Also notice that the core values are heavily influenced by the key principle of iterative-incremental development.
We increase return on investment by making continuous flow of value our focus. Instead of delivering the value of a project in one single piece, agile projects deliver in increments. Therefore, agile projects not only tackle the issues imposed by traditional project management, they also provide a cost-benefit standard as well. This is possible because the value of the project is continuously evaluated. Instead of hooraying because “We got it done!” agile project teams hooray because “The right thing is done.” The “right” thing is determined by the stakeholders, who define the value of the project to the organization. The agile project manager leads the team to this goal, iteration by iteration.
Increasing the return on investment requires feature-thinking by all participants. Features add benefits to an organization. The positive impact of some features might be stronger than others. Therefore, the sooner the benefits can be put to use, the higher the return on investment. We will see in subsequent chapters how we can schedule high-priority features to be developed early in the project to increase the return on investment.
We deliver reliable results by engaging customers in frequent interactions and shared ownership. The end of an iteration is a technical and functional checkpoint for all participants of the project. Equipped with the latest successful build, the project team can demonstrate what functionality has been completed. Delivering in small intervals showcases the reliability of the project team and makes executives confident in the ability of the team. Teams and stakeholders together compare the delivered functionality with the desired outcome. After five iterations, it will be challenging for your customer to argue that the system does not meet his expectations because he agreed to significant portions of the requirements during the previous four iterations. The customer plays an integral part in these interactions and owns the direction of the project.
We expect uncertainty and manage for it through iterations, anticipation, and adaptation. Remember the “Yes, but...” syndrome from the previous chapter? Your team delivered, but it did not deliver the right thing. Iterative development is the pattern used to close the feedback loop. In agile projects, the customer decides how significant the progress of an iteration was; the customer does this through feedback, redirection, and change requests. Change is common, especially in early iterations. It is the responsibility of the project managers to steer the project toward the vision.
We unleash creativity and innovation by recognizing that individuals are the ultimate source of value and creating an environment where they can make a difference. Every project team member provides value. However, sometimes team members just don’t search hard enough to find their best possible role. Generally speaking, software engineers have a good work ethic and like to add value to a project. I can’t recall meeting anybody at any time in my career who did not want to deliver something great. As a project manager, you should embrace interesting ideas and suggestions and create a stage for anybody to submit them. Google, for example, encourages their employees to work 20 percent of the time on projects that interest them. Great innovative solutions, such as Gmail and Google News, were the result of this policy. Make this source of ideas your strength.
We boost performance through group accountability for results and shared responsibility for team effectiveness. My favorite question to pose to project teams is, “Who estimates work?” When the answer is not “We do,” some work needs to be done to improve project management. Agile project managers need to be facilitators and moderators who lead the team to success. They should not be the estimators. The team estimates the work, which is prioritized by the business. It is also a team member’s (or a pair’s) responsibility to sign up for work. Think about this. Someone estimates work and then voluntarily signs up for it, and this initiative is combined with good work ethics. These are major ingredients for a successful delivery. Additionally, every team member reports to the rest of the team, not to the project manager.
We improve effectiveness and reliability through situationally specific strategies, processes, and practices. There is a huge difference between being efficient and being effective. We can streamline a development process and make it highly efficient, but it might not be effective. Effectiveness contains results that have an impact on goals—for example, the implementation of a feature can have a cost-effective result. Knowing that effectiveness is the higher standard, the project goals can change over time, and so can the development process itself. Adapting to new situations is essential to your team’s success, but the agile project manager must lead in this regard. Watching the effectiveness and reliability of the process and project are an integral part of the project manager role. As a simple example, a project team thought it would be a good idea to start the day with the daily stand-up meeting. They scheduled it for 9:00 a.m. Although penalties were assessed for late arrivals, team members had a tough time being on time. The organization had this early-arrival culture tattooed onto it, so the team had adopted it even though it was not effective for them. In the first retrospective, the team decided to have the daily stand-up meeting later in the day. They adjusted, became more effective in their meetings, and moved on.