Tomas Petricek - The Search for Fundamental Software Engineering Principles
Many fundamental ideas in theoretical computer science will still be true and important in 100 years. The halting problem will still be undecidable and appending to the end of a linked list will still have O(n) complexity. Finding similar fundamental ideas about software engineering is much harder. We will still have some development methodology, but it will likely differ from Waterfall or Agile. We will likely have some modelling tools, but they will likely not be based on UML, DDD or event sourcing. Are there any fundamental ideas about software engineering, or do we just keep re-inventing the wheel?
I believe that fundamental principles of software engineering are of a very different kind than fundamental principles in theoretical computer science. Rather than alluding to mathematics, we need to critically reflect on the history. In this talk, we will look at past development methodologies, debates in the field and important milestones such as the 1968 NATO Conference on Software Engineering. I hope to convince you that critical reflection on those is a fundamental kind of knowledge about software engineering that will make you a better software engineer or craftsman and that will also be as relevant in 100 years as it is today.