*The “Just Do It” approach was previously referenced in the blog entry Seat-of-your-Pants Software?
If used early in the development lifecycle, a “just do it” approach could help marketing determine the look-and-feel of an application program with a complex user interface. Early software prototyping on a PC is pretty fast today. With limited information, a software engineer could put something together and can give quick input to those drafting the product requirements. These requirements could even be refined using subsequent prototyping sessions. This technique is a big part of the Agile development model. However, it should be recognized that these prototypes can’t usually stand on their own; they need support from requirements and design specifications, which are created and reviewed piecemeal as development progresses. If trying to comply with the IEC 61508 requirements, this analysis phase of the development lifecycle must be described and documented as part of your process. In the “just do it” approach, the definition of what “it” means must be determined at each lifecycle phase. (An Agile approach requires a definition of “done”) The safety requirements must be recorded so that the validation test plan can be created. And the design requirements must be recorded so that various levels of traceability can be shown.
When applied to embedded SW development in the implementation phase, “just do it” cannot neglect the unit test documentation support for test plans and test results. A simulated environment can be useful for testing the logic of the software design, and can support the detailed unit test effort that is required for functional safety certification. Test tools are available that work with these simulated environments. The tools can also collect metrics for test coverage and often provide test reports. Some of the tools I’ve seen successfully used in past projects are C-Spy, Vectorcast, Tessy, Klocwork, and Bullseye. The learning curves can be a bit steep for these tools, but by the second or third project the benefits can easily be shown.
If you want follow a “just do it” approach for software development, be aware of what “it” means at the various lifecycle phases. The discipline of a formal process is still needed. You are responsible for showing how your approach complies with all of the IEC 61508 requirements.