My PyCon Proposal

Building A Better Process Within the Python Community

Applying and customizing techniques used in the safety critical software development to the Python community. In particular pulling from the Aeronautic Industry (RTCA/DO-178B), Medical Industry (FDA 510(k)), and Automotive Industry (MISRA-C).

This presentation is about the process of making software and not the software itself. The goal is to keep the presentation short and leave plenty of time for discussion.

The rate of catastrophic failure on commercial aircrafts and medical devices is very low. What do they do that may be used or adapted for use by the Python community? They have a defined process that is designed with checks and balances. There is a flow from high level requirements to low level requirements to code and tests. There will be an explanation of planning, traceability, standards, and code coverage and how these tools help to create a more complete picture of the software and better assurance it will work correctly. This will be followed by a couple examples of things some major Python communities may want to consider trying. Hopefully there can be lively discussion following the speech to discuss the examples or discuss other ideas.

  • RTCA/DO-178B Overview
    • Requirements
    • Requirements-Based Tests
    • Traceability
    • Structural Coverage
      • MC/DC
      • Decision
    • Statement
  • V-Model of Software Development
    • Advantages of Multiple Disciplines
    • Difference Between Verification and Validation
    • FDA 510)/[ISO9000](http://www.iso.org/iso/iso_9000_essentials
    • The Deming Cycle”:http://www.bulsuk.com/2009/02/taking-first-step-with-pdca.html#axzz1bTzmsWn9
    • Don’t spend your effort with something that will never get approved anyways
    • Prototyping is okay, but it should not short circuit the process
    • MISRA-C:2004
    • Be stringent on things that can be abused
    • Make the process to document using an construct that can be abused more painful than not using it
    • Takeaway simple concepts
    • Checklists
    • Ways to do traceability
    • Idealistic Vs. Pragmatic
    • Your project probably will not kill anyone
    • How can we scale the process to be adequate for the Python community
    • Examples of ways to implement
    • Twisted
      • Checklists
      • Requirements
      • Django
  • Traceability

Given several speeches at the local college ACM. Hold Python and process training for Esterline AVISTA (company I work for).

Senior Software Engineer for an ISO9000 and CMMI Level 5 company (Esterline AVISTA).

I cannot link to actual copies of the documents being referred to as they are ones you need to pay for. I can say the wikipedia articles are currently correct (though severely lacking on actual details). You can add links to those articles if you like, but you won’t be able to see any actual details.