Second part of the list, as promised! I feel a bit less strongly about the recommendations in this second list. In some cases, I would advise a 'menu approach' that will allow the team to pick and choose.
As before any omments, suggestions and real life stories will be most certainly welcomed!
Action | Description | Who is responsible? | Phase |
Code Coverage | The new Visual Studio suite offers the possibility to explore all the possible paths of a piece of code. If all the lines of code are executed at least once in a test environment, it is less probable that they will contain critical errors. Also, if there are areas of the code that are never accessed, it would point to areas where maintenance can be compromised. | Developers | Development |
Tracing requirements to Use Cases/Test Cases | This would add overhead to the QA operation, however, it may help to keep all the requirements in sight and also limit their scope | Tester/PM | Planning, Development, Stabilization |
Sign on at each milestone. | My proposal would be that at each milestone the PM MUST send an email to the team announcing it. This means that a change in design (Planning) after the ending of the Planning phase will not affect developing. The change will affect next iteration (Thinking in MSF context). This may seem draconian, but may help architects, PM and Customer to be more conscious when they are breaking the process. | PM | End of each phase inside the iteration |
No switching of resources | Every time that resources are brought in/out of the project, there is a learning curve and information that is lost. A project with a big resource turn-over risks to have a larger amount of undetected issues | PM | All phases |
Representative Test environment | Sometimes, due to the complexity and expense of the production system, the test environment is significantly different from the Production Environment. If the environment are similar, the test effort twill be much more accurate | PM, System Engineering, Testing | Stabilization |
Risk Management | Core to the MSF, it should include the customer/customer representative. The extra overhead is well compensated by the managed approach to problem when, if they, appear. | PM, Everybody | All phases |
Real and represenative test Data | If the customer supplies real and representative test data, it is easier and more probable to spot problems/code deficiencies during the test process | PM, Testing | Development, stabilization |
Customer agreement on quality | Customer should take an active role defining what they expect of the product. | PM | Envisioning |
Formal Security Review (if applicable) | For project that require a high level of security, in addition to the usual test procedures –encryption, use of certificates, users rights…- it also should be submitted to deliberate attacks to try to break into the application | Sys Eng/Testing | Planning, stabilization, deployment |
Cross disciplinary Peer review of documents | This could identify issues that are more obvious to another team. | Everybody | All phases |