On VB

Failure's Secret Sauce: Poor Project Management

On VB columnist Joe Kunk says coding errors can lead to trouble, but the vast majority of big mistakes are due to poor or misguided project management.

Recently I wrote a column titled " My Biggest VB Programming Mistakes ." I am afraid that I told only a small part of the story when it comes to failed software projects. While technical errors do occur and can be significant, my experience over 30 years is that the root cause of most distressed or failed software projects is overwhelmingly due to poor or missing project management practices. Developer mistakes are relatively easy to remedy compared to poor planning, a lack of leadership, bad estimates or the impact of unanticipated risks.

Consider the developer that spends weeks furiously coding an "urgent" feature, only to find out that management was still evaluating the request and has just declined to approve it. Or the developer that carefully crafts the perfect algorithm, only to find out that it is incompatible with critical requirements that the user failed to mention. Or the client’s insistence on completing a comprehensive test cycle that was not budgeted or scheduled in the quote. Or the disruption of a failed "big bang" implementation that leaves critical systems down for weeks or even months as the bugs are worked out. These are failures in communication, requirements specification, project scope and risk management, respectively.

I suspect that many developers see project management as nothing more than an impediment to their creative expression and wish they could focus purely on the code day in and day out. The reality is that project management can’t go away; business process owners still need to be concerned about budget, schedule, cost, and risk.

I am not a certified project manager. I look at project management from the perspective of an experienced developer. So what does "project management" mean in today’s world?

Project management provides important business value by addressing the Project Management Concerns questions in the list below. As you can see, they do not specifically address how the software will be built, but instead address the why, who, what, where and when of software systems. That is an important distinction; software development practices address the HOW and project management addresses the remaining questions.

Project Management Concerns

  • What does the user want and why? What are the scope, benefits, costs, and priority? Should it move forward?
  • Have all the important factors been considered before decisions are made and costly action is taken?
  • What is the best architecture and design that meet the users’ needs? What will it cost and how long will it take to deliver a particular set of desired features?
  • Ensure project risks will not derail the project. If something does go wrong, what did and why?
  • What staff and technical resources are needed for the project so they can be properly scheduled and funded?
  • How will it be demonstrated that the features are implemented as agreed without bugs?
  • How will the system be implemented and any existing data migrated?
  • What support will be required to keep it functional and useful? Backups? Network?
  • How will users be trained in its use?

The general phases of a software project are Initiation, System Concept, Planning, Analysis, Design, Construction, Integration/Testing, Implementation/Deployment, Post Implementation, Maintenance/Support, and Retirement. Some phases may be reduced or skipped based on project size, risk and corporate culture, but they must be considered at some level for each project.

I began my career when the define-everything-up-front approach of the Waterfall model was generally accepted as the best way to minimize risk. Coding, testing and implementation was predictable if everything was documented before the coding started. Experience has shown that this model fails in an environment where requirements change faster than the ability to deliver fully pre-planned systems.

Younger professionals may find it difficult to understand why the waterfall model was so widely accepted. It becomes clear when you understand that the computer world was very different in the 1970s and 1980s. Most business systems ran on mainframes where each program performed a very narrow function and interactive terminals were rare. Inputs/outputs consisted of magnetic tapes with specific, fixed-field record formats, a "process" typically required multiple batch programs, and careful planning was required to make sure everything integrated at deployment. Software was much simpler and business requirements changed much more slowly than they do now in the Internet age.

Lightweight iterative agile development practices like the popular Scrum methodology methodology have been developed to work more closely with customers to deliver the highest value features in quick iterations that provide deliverable artifacts at the end of each iteration.

These two models appear very different. Most of my experience has been with some variation of the waterfall model. I can’t offer any hard numbers on the percentage of organizations that still follow the waterfall development model, but I know that I still see a lot of organizations that do, just the developers are often reluctant to admit it.

What do I consider the best software project model today? Small projects may work well with a pure agile approach but my experience is that most Information System departments suffer from significant backlog, ongoing legacy software maintenance, budget and staffing constraints, and specialized skillsets. In this environment I recommend a hybrid approach where the project phases of Initiation, System Concept and Planning are completed at a high level to provide an overall skeleton of budget, staffing and schedule estimates for project approval. Then software construction should be performed within those constraints in an agile model to deliver the best value to the customer as quickly as possible.

Should developers be concerned with project management?
The Project Management Concerns I listed above are very important and must be addressed in any non-trivial project. If project management is so fraught with dangers, should the developer stay safe by focusing the technical requirements and leave project management to others? Absolutely not. The best developers I have known also have a keen interest in gaining good project management skills and applying them as they work. Like programming skills, good project management skills require dedication to learn and constant refinement; perhaps even more so.

What has been your experience? How has project management, good or bad, impacted your development efforts? What works best for you for what size or type of projects? Let me know in the comments section below.


About the Author

Joe Kunk is a Microsoft MVP in Visual Basic, three-time president of the Greater Lansing User Group for .NET, and developer for Dart Container Corporation of Mason, Michigan. He's been developing software for over 30 years and has worked in the education, government, financial and manufacturing industries. Kunk's co-authored the book "Professional DevExpress ASP.NET Controls" (Wrox Programmer to Programmer, 2009). He can be reached via email at joekunk@ajboggs.com.

Reader Comments:

Mon, Feb 13, 2012 Andrew Webster

Great points all. This is a Very Difficult Problem! In my experience, if senior management gets interested in improving project management, and encourages their managers, project managers, and teams to set aside time to get to grips with improving things, then they will inevitably gravitate towards some form or other of agility. This after all is how agility was brought about - it's a mindset based on doing more of what works and less of what doesn't work. However, it's incredibly hard to bring about the kind of organizational change required to make these improvements *unless* you have the support of senior management. There is a plethora of great reading material, training, and support available out there. Start putting copies of "Management 3.0" on your bosses desks and see what happens! If they get it, your world will change.

Wed, Aug 10, 2011

In my experience the Project Manager leads by example but if the individuals in the team do not follow then the project breaksdown and fails. The Project and Project Manager are nothing without all the Team Members being 100% committed to working as a Team. This is often not the case in Software Development, there is usually at least 1 cowboy in the group who wants to develop in their own way, usually they're very technical minded. All the lifecycles and training in the world will not repair the cowboys. Find a way to fix the cowboys, have a real Team and the Project stands a much better chance of succeeding.

Tue, Apr 19, 2011 Jose Montenegro France

Very interesting article, matching many of my own experiences both good and bad. I do think that SCRUM is an excellent way to have SW developers being involved in Project Management, after all the estimates has to be done by the group developing stories. And I equally agree with the author's view that an hybrid approach can bring additional value: at some point, projects complexity can make Agile approach not as efficient as we would wish it to be.

Mon, Apr 18, 2011

Hello Someone can reccomend some books about project management for software developement ? Some books about "how to develop" one application (talking about management not about the programming as pure engineering) ?

Wed, Mar 23, 2011 Mike Lazur Detroit, MI

As a developer, most Project Management I have had to work with always turn into bean counters. I always end up spending a greater percentage of my preparing the Project Managers for their bean counting reports.

Fri, Mar 18, 2011 GreyMatter

I agree 100% with your comments but I believe the root cause of the problem is not the PM but the management environment. Having been a PM for 20 years you have to start to see that how you manage as a PM is based on how you are allowed to manage as a PM. Also who hires the PM's? Management so they determine the types of PM's and their style (PMP cerified, micro-manager, etc.) Ask yourself, is it politically easier to hold the business acountable or beatup the developers?

Thu, Mar 17, 2011 Doug Seattle

Have you seen the results of Google's research into project management? They have 8 good behaviors: * Be a good coach * Empower your team and don't micromanage * Express interest in team member's success and personal well-being * Don't be a sissy: Be productive and results-oriented * Be a good communicator and listen to your team * Help your employees with career development * Have a clear vision and strategy for the team * Have key technical skills so y can help advise the team And three pitfalls: * Have trouble making a transition to the team * Lack a consistent approach to performance management and career development * Spend too little time managing and communicating

Thu, Mar 17, 2011

In my 10 years of experience, Project Administration is rampant and Project Management is very non-existent. The art of politically managing current circumstances(no such thing as a failure or problems) is where the majority of 'Managers' excel. Then they hire more minions like themselves and the gap between compentant engineers with integrity and politial manuverers widens. I've cared about Project Management since my first job as a kid...I hate doing inefficient work or panic mode patching because the decision maker makes bad decisions. But, once you're out of school...there is no more professor or answer key to prove someone is wrong. It is the power of political spin and popularity that chooses the winner. This is a very important skill to have. Wish I did.

Thu, Mar 17, 2011 Robert Lausevic

If you define Project Management as everything besides typing in code, then, sure, it's all PM's fault. If, as a programmer, you're not involved enough to know the business, know the project, and know the customers, you're going to be on a lot of "bad PM" projects.

Wed, Mar 16, 2011 Vin D'Amico http://brainslink.com/

Regrettably, most project managers are really project administrators. What I mean is that they simply gather information and report it. They don't bother to analyze, assess, conclude and direct. That's too bad. Good teams can self-govern to a point but good leadership is always needed and makes a HUGE difference.

Wed, Mar 16, 2011

This is really an excellent article and mirrors my experience as a longtime developer and sometimes project manager pretty closely. I think that you can further generalize and say that most business failures are a result of business management failures. Just look at all the large, formerly stalwart companies and industries that are now gone. How many of them failed because management failed. Failed to anticipate future trends in their core business. Failed to take risks on new opportunities. Failed to deliver the products that their customers wanted. The domestic auto industry comes to mind immediately, but there are countless other examples. Some well respected business guru, I forget who, once said something like all business failures are failures of management.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above