16 Critical Software Practices 
 
Adopt Life Cycle
Configuration Management
 
 
 
Bad Excuses Related to
Configuration Management

 

Failed software projects are usually easy enough to analyze after the fact. You can almost always spot some fundamental sound practice taht wasn't followed; if it had been followed, the project would have succeeded, or at least failed less completely. Often the good practices that weren't followed are basic ones that practically everyone knows are essential. When that happens, project management can always cite a reason why the practice wasn't followed--an excuse or rationalization.

To save everyone a lot of time, we have collected some of the most common bad excuses for not using good practices.... The next time you're considering managing a project without a careful risk management plan, for example you needn't wrack your brain for an excuse. Just consult this page.

  • CM only applies to documents.
     
  • CM only applies to source code.
     
  • CM is not appropriate during development because we are using the latest iterative and concurrent engineering and evolutionary process models.
     
  • CM is not appropriate during development because our development approach is rapid prototyping.
     
  • It's not that big a project.
     
  • You can't stop the technical people from making a quick patch when they find a problem in integration test or in the field.
     
  • We made the change without bothering to submit an Engineering Change Proposal (ECP) because the customer's technical manager asked us to and we want a satisfied customer.
     
  • We don't need a separate CM effort because CM is automatically done by the Upper and Lower CASE tools we will use.
     
  • It's too hard to go back to the CASE tool and change the design, so we change the design with changes to the source code generated by the CASE tool.
     
  • We have de-emphasized CM because MIL-STD-973 has been superseded by MIL-STD-498, which puts much less emphasis on CM.
     
  • We don't have CM on several of our external interfaces because they are the responsibilities of other organizations.
     
  • CM is a DoD-unique practice, and DoD now follows commercial practices.
     
  • Our developers do not turn source code units over to CM because CM does not have the technical skill needed to build modules for integration test.
     
  • We don't do CM on internal interfaces because this limits technical team flexibility.
     
  • Our CM staff keeps all records manually because they are not experienced with software tools for CM.
     
  • CM will be minimal on this project because most of the software will be an integration of Government-Off-the-Shelf (GOTS) and Commercial-Off-the-Shelf (COTS) software.
     
  • We lower our cost by using only minimum-wage persons on our CM staff because CM does not require much skill.
     
  • We don't use the same CM process and tools as our subcontractors because they have a different corporate process.
     
  • We don't need functional and physical configuration audits because we are using CASE tools.
     
  • We don't put the software architecture and detailed design under formal change control during development because this limits the flexibility of the developers.
     
  • We don't put operating systems, middleware, run-time libraries, and compilers under CM because CM only applies to the application software that is developed under this contract.
     
  • We don't put software development files under CM because they are not contract deliverables.
     
  • The only baselines controlled by the buyer are the functional, allocated, and product baselines. Therefore the buyer has no right to see any contractor data from the developmental baseline.
     
  • CM cannot control anything in the developmental baseline other than source code because we are using CASE tools and CM tools that are not integrated.
     
  • CM can only control information stored in flat files because our CM tool only manages flat files

top
16 Critical Software PracticesGlossary of Terms