How Can Software Be So Hard? - Professor Martyn Thomas CBE

TL;DR
Software development is complex and challenging, with issues such as changing requirements, poor change management, and the need for strong evidence of fitness for purpose. The lack of trustworthy components and overconfidence of developers adds to the difficulty.
Transcript
good evening good evening welcome thank you all for coming we've got two so far in in this series of lectures we've we've seen how dependent society is on software we've seen that there are a huge number of programmers worldwide we've seen the cyberattacks are getting much more frequent and much more successful we've seen that even the expert progr... Read More
Key Insights
- 💱 Changing requirements and poor change management can lead to project failures and loss of control.
- 👍 Testing alone is insufficient to prove software fitness for purpose, and strong evidence is necessary to gain trust from customers.
- ⚾ The complexity of software development arises from the inherent complexity of software-based systems, the addition of extra features, and challenges in meeting assurance targets.
- 🖤 Lack of trustworthy components, overconfidence of developers, and inadequate tools contribute to the difficulty in software development.
- 🍵 Agile methods may be effective for prototyping and innovation but may not deliver sufficient evidence or handle complex projects.
- 🥺 Adding more people to a project can often slow it down, and cutting out activities or testing leads to further problems.
- ✳️ Software development requires a disciplined approach with effective planning, risk management, and consideration of emergent properties.
- 🪡 The lack of liability in the software industry and the need for stronger technical knowledge at management levels are challenges that need to be addressed.
Install to Summarize YouTube Videos and Get Transcripts
Explore YouTube Video Summarizer or Get YouTube Transcript Extractor
Questions & Answers
Q: Why do software development projects often fail or run into problems?
Software development projects can fail due to changing requirements, poor change management, loss of control, and inadequate evidence that the software is fit for purpose.
Q: What makes software development difficult compared to other engineering disciplines?
Software development is complex and creative, with emergent system-level properties that cannot be fully tested. It lacks trustworthy components, and developers often have poor tools and choose the wrong ones.
Q: How do software developers typically react when a project runs out of control?
When a project runs out of control, developers may cut out activities, such as testing, or add more resources. However, these actions often lead to further problems and delays.
Q: How do innovative software developers achieve success despite the challenges in software development?
Innovative software developers often start with a simple idea and focus on turning it into a working product. They prioritize attracting users and can quickly adapt and make changes without the constraints of liability or complex requirements.
Summary & Key Takeaways
-
Software development is dependent on complex systems with changing requirements, leading to projects running late, over-budget, or being cancelled.
-
The need for strong evidence of software fitness for purpose is crucial, as testing alone is not sufficient to demonstrate reliability, safety, or security.
-
Complexity in software development arises from the inherent complexity of software-based systems, the addition of extra features, and the challenges of assurance targets.
Read in Other Languages (beta)
Share This Summary 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator
Explore More Summaries from Gresham College 📚
Summarize YouTube Videos and Get Video Transcripts with 1-Click
Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator

