SENG411 L3
From Craig
Death March Processes
Triage:
- The process of sorting injured people into groups based on their need for or likely benefit from immediate medical treatment. Triage is used on the battlefield, at disaster sites, and in hospital emergency rooms when limited medical resources must be allocated
- A System used to allocate a scarce commodity, such as food, only to those capable of deriving the greatest benefit from it
"The main thing is to make sure that the main thing is the main thing" -- Stephen Covey
The concept of triage is compatible with most RAD methods and agile methods. It is somewhat incompatible with engineering-based methods.
- We will leave no requirement unfulfilled
Triage Categorisation
- Must-do
- Should-do
- Could-do
In death march projects, it is unlikely that all requirements are going to be fulfilled. Categorising requirements early in the process can help to avoid ugly problems later in the project.
The Ugly Crisis
- Deadlines missed
- Project Manager fired (or has quit)
- New project manager
- Renegotiate deadline
- Renegotiate the requirements for the system
It is critical that all of the shareholders and stakeholders agree on the categorisation of requirements in the triage categories (must-do, should-do, could-do)
Ultimately, most organizations lack the discipline, experience or political strength to make these decisions at the start of a project.
Managing Requirements
It is one thing to model requirements, it is another to manage requirements.
- Modelling is important as long as the team models what it things is important. It should not model something because a "methodology says so".
It is through managing requirements that we have to deal with the dynamics of a software project.
- Stakeholders can't agree on triage categories
- Turnover in project staff
- Circumstances outside of project (Government regulation, markets, etc)
- The "Ugly Crisis"
Requirements, ultimately, have to be expressed in a way which can be understood by the client.
- A document in English (in North America)
- It's terse
- Succinct
Tools?
- Word Processor
- Web based or traditional collaboration tool.
Non-functional Factors affecting project success
- Methodology
- Process certification (eg. ISO-9000)
- Quality
- Portability
- Platform Independence
- Flexibility
- Maintainability
Non-functional requirements should be triaged as well
- Realise that there are tradeoffs.
"Good-Enough" software
- Result of Tradeoffs
Best and worst practices
- Rather than follow a set of practices that somebody else has set out, it's far better to follow a set of practices that the team itself regards as "best" for the circumstances.
- Mini-audits
Best Practices
- Formal Risk Management
- Agreement on Interfaces
- Peer reviews
- Metric based scheduling and management
- Continuous QA
- Project wide visibility of project plan and process vs plan
- Defect tracking against quality targets
- Configuration management
- People aware management accountability
Worst Practices
- Don't expect schedule compression
- Don't justify new technology by the need for schedule compression
- Don't force specific customer implement solutions on the project
- Don't advocate silver bullet approaches
- Don't miss the opportunity to move items that are under external control off the critical path
- Don't expect to achieve an accurate view of project health from a formal review attended by a large number of unprepared, active reviewers
- Don't expect to recover from a schedule slip of > 10 % without a > 10% reduction in scope.
