Software Development Project Management: Introduction

1 Comments
Join the Conversation
Software Project Management is More Than Tools - Ivan Soares Ferrer
Software Project Management is More Than Tools - Ivan Soares Ferrer
High-level overview of how to manage a programming project. Project failure risk factors, project planning tasks.

So you've just been assigned to manage a software project. Maybe you're an experienced manager, but not with software projects. Or maybe you're a recently-promoted programmer. Here's how to get started.

While it's not possible to learn everything by reading an article, we will at least point out the main areas that need to be considered.

The first step is to understand the enormity of the job. A ZDNet article by Michael Krigsman titled, "New IT project failure metrics: is Standish wrong?" quotes the Standish Group's Chaos Report as saying that two-thirds of IT projects are "challenged," while other researchers believe that one-third of IT projects fail.

The IT Cortex website has more statistics on IT project failure.

Causes of Software Project Failure

While it might be tempting to think that the right software project management tool is all that is needed, the lack of tools is not a major cause of project failure.

Many experts in the field, point to software requirements errors as a main cause of unnecessary costs and other project problems. Ellen Gottesdiener from EBG Consulting, has an article on "The Top Nine Requirements Misconceptions," with statistics on requirements errors and their effect on project performance.

In a "Computer Aid, Inc. State of the Practice Interview with Capers Jones," the software metrics guru fingers project size as an issue, saying that small projects below 1,000 function points in size, are usually successful. While 10,000 to 100,000 function point projects are more problematical.

(Function points are a language-independent method of measuring software size or complexity. For many programming languages, one function point translates to about 50 SLOC or Source Lines of Code).

Software Project Management Tasks

Here is a brief list of the major tasks and issues that need to be handled on a large software project:

  • Software requirements. Getting the correct specifications, managing conflicting requirements, determining trade-offs, getting specifications that are detailed enough to be useful, determining which specifications are flexible or need to be prototyped.
  • Project deliverables (documentation, source code, executables).
  • Quality standards (acceptable number and severity of bugs).
  • Project sizing and budgeting. Estimating project cost, manpower requirements, schedule, functional scope, software lifespan, software maintenance budget.
  • Negotiating schedule overrun penalties.
  • Software development methodology and related tools (Waterfall, Spiral, CMM, Agile, Scrum, UML, RUP).
  • Development strategy (start from scratch, modify an existing program, integrate with COTS Commercial Off-The-Shelf software).
  • Testing (test item management, load testing, acceptance testing, test automation, regression testing, code coverage).
  • Risk management. Creating contingency plans for manpower issues, requirements changes, technical risks, budget uncertainty.
  • Project monitoring (metrics, objective pass/fail milestones). Will you know if your project is in trouble?
  • Design review process (design review, code review).
  • Language and platform selection (computer language, operating system, application server, supported web browsers, database).
  • System architecture and design methods (synchronous or asynchronous, centralized or distributed, client-server, thin client, fat client, web-based, PC-based, design patterns, object-oriented, object-based, data-driven, re-use, compartmentalization, inter-module communication).
  • Source code quality (coding standards, static code analyzers, dynamic code analyzers).
  • Code control (version control, software build schedule).
  • Documentation (requirements, designs, testing, traceability).
  • Change control (Change Control Board).
  • Issue and bug tracking.
  • Customer or end-user liaison.
  • Deployment plan (big bang or phased).

Some items can be skipped for smaller projects. The larger the project, the more important the above items become.

How to Survive a Software Development Project

Software project management is a complex task, requiring the handling of many issues. Project managers need to be able to specify the project, manage team members, communicate with stake-holders, monitor progress, as well as deal with the many technical aspects of the software development process (unless a separate technical manager is appointed).

Chances of project success are greatly increased if the project is kept small (a big project should be broken up into a few smaller projects if possible, non-critical features should be ruthlessly removed or postponed), and emphasis is placed on getting accurate requirements.

For more information, the Software Project Manager's Network (US Navy/Department of Defense) has a list of "16 Critical Software Practices," and "SPMN Focus Team Lessons Learned." The IEEE Spectrum article, "Why Software Fails," has case studies of large software project failures.

Joel Spolsky, in "How to be a program manager," argues that a program manager is primarily in charge of the specifications. He is the user or customer advocate. He should not also be the manager of the programmers. However, this might mainly be a difference in terminology.

Photo of Kit Mun, Yuen Kit Mun

Yuen Kit Mun - Kit Mun is a self-confessed information junkie, reading an average of a book a week over the past two decades. His growing Internet ...

rss
Advertisement
Leave a comment

NOTE: Because you are not a Suite101 member, your comment will be moderated before it is viewable.
Submit
What is 5+2?

Comments

Feb 12, 2011 6:45 AM
Guest :
cool
1
Advertisement
Advertisement