Agile vs. Traditional Project Manager Role

August 17, 2010

A number of Agile authors suggest that the role of the traditional project manager on Agile projects is dead and should be replaced by the Agile Project Manager.  Although I have disagreed with this idea, I had never examined it in detail.

At a recent Agile Project Management Meet-up, I had an opportunity to examine this idea.  We had a facilitated discussion on the role of the “Scrum Master / Agile Project Manager”.  The facilitator was objective, did not favor any particular view of Agile and did not compare the Agile role with the Traditional Project Manager role.

Note: For the remainder of this blog, I will use the term “Agile Project Manager” to refer to both “Scrum Master” and “Agile Project Manager”.

After the Meetup, I documented the Agile Project Management responsibilities discussed in the Meetup in the table below.  I added Ken Schwaber’s ideas about the role of the Scrum Master, (noted in italic with an asterisk) and listed PMI’s PMBOK 2008 responsibilities for the Traditional Project Manager.

After analyzing the table, there appears to me to be little difference between successful Agile Project Managers and Traditional Project Managers. They have similar responsibilities and successful ones practice participative management.

To me, the main difference between the roles is in the way they are portrayed.

Agile Project Manages are portrayed as favoring a participative management style guiding self-governing Agile Project Teams (more on this in another blog).

In contrast, Traditional Project Managers are portrayed as favoring an autocratic, command and control management style; make all project decisions themselves; develop detailed Waterfall Project Plans themselves; assign tasks to project team members without their input; and are constantly “cracking a whip” to make sure that all team members are working as hard as they can to complete the project.

These views do not fit with my experiences and do not they fit with what the PMBOK says.  The PMBOK discusses a variety of management styles, and then states that project team members are key to the success of any project and recommends a collaborative team building style as the best way to run projects.

The most successful Project Managers that I know (Agile or Traditional) practice participative management.  They include project team members in in project planning, in project decision making and in project execution.  They focus on training and mentoring their teams to help them achieve project objectives.

Table 1 – Agile versus Traditional Project Management Responsibilities

Scrum Master – Agile Project Manager

Roles from Agile Project Meetup

Traditional Project Manager

From PMBOK 2008

Facilitate Rituals:

  • Stand-ups / Scrums
  • Demos
  • Retrospectives
Facilitate Project Activities::

  • Project Planning Meetings
  • Execution of Project Tasks
  • Project Status Reporting
Coach Agile Team in Rituals and in agile task execution
  • Develop Team Members
  • Work collaboratively to resolve project issues
  • Work with Stakeholders to set and manage their expectations
Remove Obstacles (Impediments*) Resolve Project Issues often using an Issue List (Obstacles or Impediments)
Track Progress & suggest corrections if needed

  • Burn-Down Chart for Sprint
  • Burn-Up Chart for tracking multiple Sprints that were needed for a Production Release
Track Progress and manage changes

  • Time, Schedule, Cost and Scope through Project Change Control
  • Earned Value Effort and Schedule Charts
  • GANTT Charts
Manage Project Budget Manage Project Budget
Develop estimates using Planning Poker (a modified Delphi technique) Develop estimates using a variety of techniques including Delphi and modified Delphi techniques)
Communicate with Stakeholders:

  • Product Owner
  • Team
  • Sr. Management
Develop and manage Project Communications Plan for all key stakeholders
Work with Product Owner to:

  • Help prioritize
  • Manage Scope
  • Coach
Work with Stakeholders to develop:

  • Project Charter
  • Project Management Plan
  • Prioritize and balance project constraints of:
    • Scope
    • Time & Schedule
    • Cost & Budget
    • Resources
    • Risk
    • Quality
Helps form Teams*

  • Works with Customers and Management to identify and institute a Product Owner
  • Works with Management to form Scrum Teams
Develops Human Resource Plan

  • Identify key Stakeholders
  • Identify and document project roles, responsibilities, skills, reporting relationships
  • Acquire, Develop and Manage Project Team to fill Project Roles
Responsible for the success of Scrum*

  • Is the driving force behind all scrum activities and ensues that the values, practices and rules are enacted and enforced*
Responsible to organization to achieve Project Objectives (Success)

  • Is the application of knowledge, skills, tools, and techniques to project activities to meet project requirements?
Is a New Management Role* Traditional Project Management Role that has been around for numerous years.

Hybrid Software Engineering = Agile + Traditional

June 13, 2010

The time has come to stop the debate between Agile software developers and Traditional software developers.  Both Agile and Traditional have some excellent practices.  It is time to become “Software Engineers” and combine the “best” Agile software development practices with the “best” Traditional software development practices into what I call Hybrid Software Engineering.

The popularity of Agile software development has been increasing in the past few years.  Agile has introduced a number of excellent software development practices such as: Iterations, Planning Poker, Simple Design, Small Releases, Pair Development, Continuous Development, and On-site Customers.

There are also quite a few excellent Traditional software development practices such as:  Project Management Planning, Solution and Systems Architecture design, Configuration Management, Quality Assurance, Risk Planning and Inspections.

In this post and in future posts, I use the term Traditional software development practices to refer to “Waterfall” software development.  The reason for this is that “Waterfall” software development been given a “bad” name by many Agile software development practitioners who claim that the “Waterfall” process does not work and Agile software development is “much better and faster”.

However, most organizations that I consult with still use Traditional software development practices to develop most of their software.  Numerous software applications that we use everyday such as: Telephone Billing Systems, Insurance Company Claim Systems, Order Processing Systems, Banking Systems, Cellular Systems and Medical Device Systems to name a few, have all been developed and still being maintained by some form of Traditional software development process.

The Agile folks tend not to recognize the good Traditional software development practices and the Traditional folks tend not to recognize the good Agile software development practices.

The Need for Hybrid Software Engineering

The time has come to combine the “best” Agile software development practices with the “best” Traditional software development practices into Hybrid Software Engineering.

Hybrid Software Engineering would operate similar to the way a Hybrid automobile works.  A hybrid car uses the electric engine in city driving, where constant breaking recharges the battery and uses the gasoline engine in highway driving were the gasoline engine provides a greater range of operation and can be refilled more easily.  Hybrid Software Engineering would use Agile software development practices where they provide the most value and Traditional software development practices where they provide the most value.