Critical reflection is a fundamental kind of knowledge for software engineering!
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 be undecidable and appending to the end of a linked list will have O(n) complexity. Finding fundamental ideas about software engineering is much harder. We will have some development methodology, but it will likely differ from Waterfall or Agile. We will likely have modelling tools, but they will not be based on UML, DDD or event sourcing. Are there any fundamental ideas about software engineering, or do we just keep re-inventing different-shaped wheels? I argue that fundamental principles of software engineering are of a different kind than principles in theoretical CS. Rather than alluding to mathematics, we need to critically reflect on the history. I 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 remain relevant in 100 years and can offer a new way of bringing industry and academia together.