Why doesn’t anyone listen to the customer?

The tired cliché about the customer always being right does not always sit well with IT professionals, software developers, or even project managers. In private meetings, I have heard many contentious thoughts expressed:

“The customer does not know what he wants.”

“The customer does not understand what he’s asking.”

“The client is stupid.”

“This client is a flake.”

Wow! What’s going on here? Part of the explanation for this “failure to communicate” probably stems from the way that requirements are often generated – especially in projects. The customer begins with a problem, a need, or an itch to be scratched by a new software solution. He presents his challenge to—usually— marketing or business development professionals who assure him that XYZ Company can make his pain go away.

I can’t help but think of the classic picture of the “Tire Swing Cartoon” that depicts the mis-communication of requirements.  How the initial requirements are created depends on who is in the room while dream and reality crash together. In all likelihood, the company bidding for the project will include project management staff in putting their bid together to provide creativity and a dose of reality—although this is often done under the duress of a fixed cost and delivery schedule.

Eventually agreement is reached on basic deliverables, schedule, and cost among these parties (with emphasis on the soon forgotten “basic” word). In the pleasure of the moment, future problems are expected to be resolved through requirements management by the PM.

The customer’s role is not over when the contract is signed, however. Most good projects call for concept demonstrations, prototypes, and beta-test versions of the software before the customer accepts delivery and the contract terms are fulfilled. It is in these feedback sessions between the users and the developers that frustrations may manifest and charges fly: why doesn’t anyone listen to the customer?

Now, don’t get me wrong, I believe the stepped process in developing, refining, and final acceptance is an essential best practice in creating software for good project management. But as the proposed solution begins to emerge and be displayed, it is typical that users will want more and want it differently. Because users are not coders or system architects, they will express their desires in ways that do not appreciate the level of effort required or the implications of what they are asking. Nor do they understand the effect on cost and schedule to comply with their requests.  Even with new software methods like Agile development, a customer is not going to understand software problems any better than they do in a traditionl project management methodology.

That’s the PM’s job. It is also the PM’s opportunity to work with the users to better understand their needs and to explain in non-technical terms how the user can get what he wants, what the changes and additions will cost, and how they impact the schedule, cost, and quality/scope (see the Project Triangle)

“Good project managers recognize that every decision has opportunity costs. If you decide to add more features, quality must drop, or the schedule must slip. If you decide to cut the schedule, features must be drop or quality must drop. There is no way around the natural tradeoffs of resources, time and quality.”  - Scott Berkun in The List of Reasons Ease of Use Doesn’t Happen (November 2002)

The PM must also be adept at translating the user’s world to the developers. He or she must listen to the customer and try to discern what is really meant by, “can I download this on-line data to a database on my notebook?”

One effective technique to gain a handle on real customer requirements is to create a “Concept of Operations” or use- scenario before a line of code is written. This user-centric step helps the customer understand what they will be getting and provides feedback to developers when the cost of change is much lower – as opposed to later in the development process. You can read Karen’s paper on “The Performance-Centered Design & Development Methodology” for more information.  Company XYZ may also find that it is very helpful in this early part of the process to call in an outside professional to facilitate the dialogue between the end-users and the developer and PM staff.

If you have any tricks or techniques that facilitate listening to the customer, please share them via your comments.  Everyone benefits from sharing good ideas.

 

Do you need a PMO (Project Management Office)?

I am often asked by CEOs and senior managers, “Does our organization need a PMO?” Like all yes/no questions about complex topics that involve a cost– benefit trade, the answer to this question is, “It depends.”  Let me elaborate…..

What is a PMO?
Software development projects, especially complex ones, have a notoriously high failure rate—some estimates are as high as 60%–70% of software projects fail to deliver on their requirements and cost estimates.

A PMO, often reporting directly to the CIO, provides guidance and support to projects in implementing best practices, complying with standards and using tools to help keep projects on track. PMOs may conduct project reviews and increasingly are being expected to be directly accountable for project results. In some organizations, the PMO is staffed with experienced personnel who are loaned out to manage IT projects.

T.D. Jainendrukumar writing in PM World Today (January 2008) provides an overview of the duties of a PMO. He sees the PMO as responsible for: Practice Management, Infrastructure management, Resource Integration Management, Technical Support Management, and Business Alignment and his article describes these functions in detail.

What are the benefits of a PMO?
In an article by Megan Santosus for CIO, titled Why You Need a Project Management Office (PMO), she reported that her research found that more than 50% of those organizations with a PMO claimed improved project success rates.

At Cognitive Technologies, we encourage establishing an organizational PMO when projects are of strategic importance to the company’s future or projects are to be executed over multiple years, multiple business units or in coordination with outside organizations. We have found that a PMO helps organizations execute complex software development projects by providing increased:

  • Control
  • Collaboration
  • Communication

If you want to dig deeper, check out Cognitive Technologies white paper about our experience and recommendations regarding PMOs: “Why do you need a PMO”

Does your organization need a PMO?
Here are 5 yes/no questions that will help your organization decide if a PMO will help you do a better job managing your software development projects:

  • Is the level of complexity within the organization’s environment high—i.e., the effort may involve multiple departments (each of which has different stakeholders) within the client organization?
  • Is the project for an outside client who is likely to assign an Independent Validation (IV&V) consultant or auditor to the program?
  • Are specialized requirements involved? (For example, HIPPA information security requirements, financial security requirements, EV reporting, CMMI compliant process or execution levels, PMI best practices, or specialized time reporting and charge codes.)
  • Will a single methodology be enforced across the different projects or program team, requiring cultural and behavior changes for the individual contributors?
  • Will there be a large number of staff/people to be managed, assigned, and tracked (i.e., 100-150) across the projects or program?

One other good source for PMO thoughts is the 2003 article in CIO magazine on Why do you need a Project Management Office.

If you have worked with a PMO in your organization, please leave a comment and share your observations. In a near-future post, I will talk about the Do’s and Dont’s of setting up a PMO.

 

Why your project needs a predictive project schedule

Have you ever been frustrated because you were sitting in a status meeting and the project schedule indicated you would be finished yesterday?!  Whatever happened to “truth in scheduling”?  A predictive schedule is one of the most powerful tools a project manager has. It provides essential information on status, flags conflicts before they happen, and provides backup when requesting resources.

Believing this, I am frequently baffled at the reluctance of some PMs to create or maintain a project schedule.  I remember years ago in the research lab hearing a senior developer say, only somewhat tongue-in-cheek when requested to provide a schedule for his project, “If I knew how long it would take, it would not be research”.

Maybe what I have seen is the reaction of PMs being burned by schedules that were imposed from “above” or were regarded as meaningless paper exercises required to fulfill contractual obligations with no apparent conformance to reality.  Does this sound familiar to you? Whatever the reasons, some PMs choose to steer clear of real predictive scheduling.

For those who spurn developing a project schedule, I can assure you that you are missing a key ingredient in managing your project effectively. Project schedules are your friend—not your enemy.  And yes, I have heard the people who say I don’t have time for project management and schedules – it gets in the way of my real work.  I call those people “one man projects!”

Here are some of the reasons I believe predictive project schedules are important:

  • A project schedule requires that you identify tasks and their relationship to one another—this is important for risk management, staffing, and sequencing.
  • Project schedules provide the only picture of what has happened (actual) and what is now planned. (assuming they are accurately updated)
  • Project schedules help forecast resource requirements and provide a visual representation of task dependencies that will help you sell your needs to senior management.
  • A project schedule gives everyone on the team insight into where the project is going and how their efforts impact outcomes.
  • A project schedule helps you keep track of accomplishments, needs, and compliance with requirements.
  • A project schedule gives you an easy to use method to evaluate the impact of changes and requirements creep.

Several of my colleagues have similar thoughts and have shared them with me.  If you want to see their thoughts check out Don’s paper “How to Construct an Effective Project Schedule Using Microsoft Office Project” at http://www.cognitive-technologies.com/ or John’s presentation at http://pmchallenge.gsfc.nasa.gov/docs/2008/Presentation/John.Rigoli.pdf

I feel so strongly about the importance and utility of predictive schedules to project management, that in coming posts I plan to talk about: the characteristics of a good project schedule, getting schedule buy-in, building meaningful dependencies and constraints, identifying risks and accommodating them, how to monitor status, schedule-based reporting, and using tools to build, maintain, and share project schedule information.
So what do you think?  Feel free to reply or suggest topics of discussion for the BLOG.

Many of you have asked so – Here is John’s Video:

Follow

Get every new post delivered to your Inbox.

Join 383 other followers