Your Software is Mission Critical - Mike Lehan

Design a process throughout software development, not just a stage. Learn how to build trust, avoid unintended harm, and create mission-critical software that works correctly and is resilient.

Key takeaways
  • Design is not a stage in software development, but rather a process that runs throughout.
  • Most developers are not interested in building bad software, but rather, it’s often a case of being too dry and neglecting design and testing.
  • Systems build trust by being more resilient.
  • Tests ensure that code changes do not break existing functionality.
  • It’s crucial to write tests, but it’s not a new concept - it’s about ensuring the system works correctly, not just testing it.
  • People are skeptical of software, often with good reason.
  • Software can cause unintended harm, not just by malfunctioning, but also by being misused.
  • In the case of Astri, software was used to verify the absence of defects, which is not an effective approach.
  • The design should not be something that you go back to and revisit after completing the initial development, but rather a process that continues throughout.
  • Mission-critical software is not just limited to applications like aerospace, but is everywhere in software development.
  • The diversity of a team and the use case are essential considerations when designing software.
  • Software development should focus on creating a system that understands the human factor, and not just solving a specific problem.
  • Testing and design should be intertwined and happen simultaneously, not separately.
  • Code changes should be validated before deployment.
  • The mission-critical way of doing things should be a guiding principle in software development.