The Future of Software Engineering • Glenn Vanderburg • YOW! 2015

Explore the future of software engineering through a lens of creativity, iteration, and empirical experimentation, challenging traditional methods and assumptions in this thought-provoking talk.

Key takeaways
  • Software engineering is not just a matter of applying scientific principles to solve problems.
  • Models are often oversimplified or abstracted versions of reality.
  • Software engineering is a creative effort, not just a matter of applying scientific formulas.
  • There is no essential difference between design and science in software engineering.
  • Feedback loops are crucial in software development, but often overlooked.
  • Software developers should strive to capture the essence and core of engineering, rather than trying to imitate physical engineering.
  • The idea of engineers designing via documents is flawed and does not accurately represent the process.
  • The software engineering crisis is characterized by a series of different problems, including misunderstanding of what engineering is and how it should be applied.
  • Engineering is not just about applying science, but also requires an understanding of the human and organizational aspects of the development process.
  • In software development, the goal is often to deliver working software rather than to achieve a specific scientific goal.
  • Traditional software engineering methods do not work well in practice, and are often based on flawed assumptions.
  • Different branches of engineering have different approaches and methods, and there is no one-size-fits-all definition of engineering.
  • Software engineering should be viewed as an empirical, iterative, and experimental process, rather than a purely scientific one.
  • The concept of “parasitic credibility” can apply to software engineering, where experts in a related field may bring in incorrect or outdated ideas.
  • Engineers often have to make decisions in situations where there is significant uncertainty or incomplete information, and should strive to be responsible and professional.
  • Math can only be used to prove something correct if it is abstracted and simplified enough, but this oversimplification can lead to incorrect assumptions about the nature of software development.
  • The idea of “reinforced concrete” can be applied to software development, where video games and other simulated experiences can be used to test and validate designs.
  • Engineers should strive to capture the essence and core of engineering, rather than trying to imitate physical engineering.