Businesswomen Balancing Over Money

Project Risk or Issue?

Uh-oh. This is a show-stopper.  We can’t complete the project on time because the part that we need won’t be available for another 3 months! What will we do?

If you have managed projects for very long, you have run across a situation like this.  Is this a risk or an issue?  Does it matter?  A risk describes an uncertain event that might happen.  It is something that people are worried about.  If something has already happened that affects the project, then it is called an issue.  In the example given in the opening paragraph, we are certain that the part we need won’t be available when we need it.  This is an issue.  An example of a risk would be: “We may not be able to complete the project on time if the part we need does not arrive on time.”  In this case, we are not certain that we have a problem yet.

To be a project risk it must be something that might affect the cost, schedule, scope, or quality of the project.  If a risk will not materialize until after the project is over, then it is not a risk to the project.  It may be a risk to the program or organization, but not to the project.  The same is true of an issue.  Does it affect the things that a project manager is responsible for?  If not, then it should be handled by those responsible for the program or organizational area.

Being able to distinguish between these is one of the hardest things for project managers understand.  It causes problems because risks and issues are dealt with differently and dealing with non-project risks and issues wastes a lot of a project team’s time and energy.  The examples given so far are in the scope of the project.  Here is an example of a non-project risk:

“The system we are building is designed for 100 concurrent users, but if we get more than that it might run slow or even crash.”

If the project ends when the system is deployed, then this risk will never occur during the project.  If the requirements for the system say that it must support 100 concurrent users and it does, the it is not a project risk, it is scope creep.  The risk of actually getting more users than that and the ensuing consequences is the domain of business operations, not the project.

The source of this confusion is usually failure to distinguish between a project, a product, and a program.  A project delivers what is asked for, often a product. It does not make claims about the value or benefits of the product.  That is the domain of the program or product owner.  Sometimes the project manager, program manager, and product owner are the same person, but often they are not.

Risks are documented when they are discovered, most being at the beginning of the project.  The probability and impact are assessed and mitigation tasks are added to the project plan.  A contingency plan may be created to document what we plan to do should the risk occur.  These risks are monitored and updated as needed throughout the project.  Should they actually occur, they become issues.

Issues are problems right now that we have to do something about.  The actions that we take might involve adding tasks to the plan, extending the schedule or increasing the budget.  Issues are tracked and actions are taken until they are resolved and no longer affect the project.  These get a lot of attention in most projects.

That is the difference between risks and issues.  Handling each appropriately will communicate more effectively and make management much easier.

Can Project Management be Agile?

I am surprised by all the different viewpoints I have seen since I posted Does Agile Project Management Exist? There are those who say that Agile Project Management is an oxymoron.  There are those that say it is simply management of Agile software development projects.  There are still others that consider it a philosophy or set of values, but not a methodology!  Please understand that I am not an Agile-hater.  My projects these days are mostly IT infrastructure.  I was a software developer for many years  and a project manager of software development projects.  I am not clinging to Waterfall or the “old ways” of doing development.  I just think Agile has been over-hyped and everyone has an Agile something if they are in IT.  Now project management can be Agile; or so it would seem.

Let’s start with the PMBoK definition of project management: “…is the application of knowledge, skills, tools, and techniques to project activities to meet the project requirements…”

This is a broad definition that goes way beyond Waterfall vs. Scrum.

Here is the manifesto from agilemanifesto.org:

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Notice that this is specifically directed at software development, not project management.  Software development can be done outside the bounds of a project and not all projects are software development.

The only thing that might be seen as conflicting with project management is the statement “Responding to change over following a plan.”  Even this is accommodated by change control.  Some might say that this is saying that change should not be controlled.  I have seen many systems fail because of uncontrolled change, so I don’t think this is what was meant.  Being too rigid and preventing change at all costs is a bad idea.  This may be practiced in some places, but not many.  It is not something that is considered “good practice” by the PMBoK or related standards.

What this manifesto describes sounds a lot like what we did a long time ago, before projects were managed.  There were a lot of problems with this, but that is a topic for another post.

Here are the twelve principles (my comments in red):

Principles behind the Agile Manifesto

We follow these principles:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Good idea for software.  Can this be applied to a tangible product?

  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

This works for software, but does it work for tangible products like a bridge or even a house?

  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Incremental and iterative software development was done before this manifesto was written and since.  Still trying to see how it would apply to a tangible product.

  • Business people and developers must work together daily throughout the project.

That is ideal if you can get the business people to do it.  Not a conflict with any existing PM principle that I know of.

  • Build projects around motivated individuals.

That is ideal if you can get them.  Most PMs I have ever known would love this and try to get it.  No one says, “Give me some apathetic resources and we will get this project done!”  It is hard to maintain high morale in an economic climate where you can lose your job any day.  This principle does not tell us anything new.

  • Give them the environment and support they need, and trust them to get the job done.

If you have a competent and mature team this works great!  I always try this until I find out that they do not have the skills or experience needed to get the job done.  This is not often a problem.  This is what I would call a general management principle, not even a PM principle.  It has been done this way for at least the last 10 years in the organizations I have worked at.  None of them claimed to be Agile.

  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

This is very true and is understood by every project manager I have met.  This is the reason for meetings that project teams often dislike.  Sometimes it is not possible however because of geography or people moving on to other jobs or projects.  Some documentation is also needed to retain knowledge.

  • Working software is the primary measure of progress.

This is a way of quantifying physical percent complete.  This has been used in many projects with tangible results like construction for a long time.  Measuring software is trickier though, so work percent complete or schedule percent complete is often substituted on software development projects.

  • Agile processes promote sustainable development.

Agile has processes?  This is not what some of its advocates say.  I believe that this relates to the next principle.

  • The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

This is where Agile Software Development ceases to become a project.  A project must have a beginning and definite end and is a temporary endeavor by definition.  None of the customers I have met in my career would agree to this at the beginning.  It may wind up that way in effect, but usually not without pain.  This is the only principle that is incompatible with project management.  Software development becomes a business operation, not a project, when this is done.

  • Continuous attention to technical excellence and good design enhances agility.

This is a good software development and engineering principle.  It does not conflict with PM, but is not a PM principle.

  • Simplicity–the art of maximizing the amount of work not done–is essential.

The KISS principle of engineering right?  No one wants to do unnecessary work, and PMs don’t want that either.

  • The best architectures, requirements, and designs emerge from self-organizing teams.

This is often true in software development.  Sometimes the self-organization is painful however.

  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

This is done at the end of the project or between phases on most projects.

Pasted from <http://agilemanifesto.org/principles.html>

My point here is that there is nothing new to project management here but there are a few things new to software development management.