Projects
Contingency Planning
SW Projects - Roadmap
Managing Project Creep
Project Management Triangle
Lateral thinking
The Fundamental Rules
Alpha and Beta releases
Software projects
CMMI
Troubled projects
Risk reduction  
Black Spot Programs
high-risk locations on road map


Black Spot Programs
Black Spot Programs

Black Spot Programs are a vital part of the commitment to improving project safety and reducing development crashes and trauma during development. It's IMPORTANT to test out critical features before they're launched.

The word PROJECT comes from the Latin pro-jectum and means "throw forward", ie pre-view, "to forsee an ordered sequence of related of actions" rationally represented. Each project has its original scope, and an agenda to be accomplished. Unlike the other common use of the word adopted in the scholastic and other contests, the ORIGINAL meaning of the word "PROJECT" was "something that comes before anything else happens, ie It is an ITER to FOLLOW".

Black Spot Programs directly target improvements to the project risk reduction with proven crash history or high-risk locations.
These programs are very effective in reducing the risk of crashes and saving the project goals (timing, quality) many times the cost of the relatively minor project road map improvements that are implemented.
* Identify and minimize risks to the project - Design
* Securing the necessary resources: expert team with the right skill set, time allocation for different development tasks, cash flow - Planning
* Establish the sequence of realistic goals - Roadmap
* Separate the project into phases and activities clearly manageable - Roadmap
* Assess the time allocated to the project in stages of development - Roadmap
* Keep track of your progress and monitor the project - Roadmap

Risks, issues and changes
A great tip is to try and resolve any issues or risks as soon as they are identified, in order to minimize the impact they may have on your project. All risks, issues and changes must be managed on an ongoing basis using appropriate management processes and logs to record all these items. Changes must be discussed and prioritized with the relevant stakeholders on an ongoing basis and their impact on the project must be track and monitored.

Q: Is there a nonfunctional requirements checklist that I can use?
In my blog post, I outline a requirements checklist. I wanted to give a little more detail about each of the items on that list, and there's a good excerpt that I think will help.
★ Availability: A system's availability, or "uptime," is the amount of time that it is operational and available for use. This is specified because some systems are designed with expected downtime for activities like database upgrades and backups.
★ Efficiency: Specifies how well the software utilizes scarce resources: CPU cycles, disk space, memory, bandwidth, etc.
★ Flexibility: If the organization intends to increase or extend the functionality of the software after it is deployed, that should be planned from the beginning; it influences choices made during the design, development, testing, and deployment of the system.
★ Portability: Portability specifies the ease with which the software can be installed on all necessary platforms, and the platforms on which it is expected to run.
★ Integrity: Integrity requirements define the security attributes of the system, restricting access to features or data to certain users and protecting the privacy of data entered into the software.
★ Performance: The performance constraints specify the timing characteristics of the software. Certain tasks or features are more time-sensitive than others; the nonfunctional requirements should identify those software functions that have constraints on their performance.
★ Reliability: Reliability specifies the capability of the software to maintain its performance over time. Unreliable software fails frequently, and certain tasks are more sensitive to failure (for example, because they cannot be restarted, or because they must be run at a certain time).
★ Reusability: Many systems are developed with the ability to leverage common components across multiple products. Reusability indicates the extent to which software components should be designed in such a way that they can be used in applications other than the ones for which they were initially developed.
★ Robustness: A robust system is able to handle error conditions gracefully, without failure. This includes a tolerance of invalid data, software defects, and unexpected operating conditions.
★ Scalability: Software that is scalable has the ability to handle a wide variety of system configuration sizes. The nonfunctional requirements should specify the ways in which the system may be expected to scale up (by increasing hardware capacity, adding machines, etc.).
★ Usability: Ease-of-use requirements address the factors that constitute the capacity of the software to be understood, learned, and used by its intended users.
-- Applied Software Project Management, p114 (O'Reilly 2005)


------------------------------
Nightmare liner
-----------------------------
The Boeing Dreamliner programme, announced in 2003, was supposed to cost $6 billion and see the plane take to the air in 2008. The final bill was $32 billion and the 787 Dreamliner arrived three years late.

The result of a combination of various technical failures and supply-chain chaotic mess. With engineers, designers and other resources diverted into saving the Dreamliner production plans, the rest of its production were delayed.