Presentation: Taking Back “Software Engineering”
Share this on:
Abstract
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? Engineering is the application of iterative, empirical, practical science to real-world problems. Craftsmanship is a wonderful thing, and as a reaction to the terrible abuses of the term Engineering in software development Software Craftsmanship has helped in our learning of what really works.
The term "Software Engineering" has gained a bad reputation. It implies "Big up-front design" and "Mathematically provable models" in place of working code. However, that is down to our interpretation, not a problem with "Engineering" as a discipline.
In recent years we have discovered what really works in software development. Not everyone practices approaches like Continuous Delivery, but it is widely seen as representing the current state-of-the-art in software development. This is because at its root CD is about the application of an iterative, practical, empirical, maybe even science based approach to solving problems in software development. Is this a form of software engineering?
Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering, neither is Electrical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should entail.
Similar Talks


Tracks
Monday, 5 March
- 
                                      Leading Edge Backend Languages                  
                  Code the future! How cutting-edge programming languages and their more-established forerunners can help solve today and tomorrow’s server-side technical problems. 
- 
                                      Security: Red XOR Blue Team                  
                  Security from the defender's AND the attacker's point of view 
- 
                                      Microservices/ Serverless: Patterns and Practices                  
                  Stories of success and failure building modern service and function-based applications, including event sourcing, reactive, decomposition, & more. 
- 
                                      Stream Processing in the Modern Age                  
                  Compelling applications of stream processing & recent advances in the field 
- 
                                      DevEx: The Next Evolution of DevOps                  
                  Removing friction from the developer experience. 
- 
                                      Modern CS in the Real World                  
                  Applied trends in Computer Science that are likely to affect Software Engineers today. 
- 
                                      Speaker AMAs (Ask Me Anything)                   
                  
Tuesday, 6 March
- 
                                      Next Gen Banking: It’s not all Blockchains and ICOs                  
                  Great technologies like Blockchain, smartphones and biometrics must not be limited to just faster banking, but better banking. 
- 
                                      Observability: Logging, Alerting and Tracing                  
                  Observability in modern large distributed computer systems 
- 
                                      Building Great Engineering Cultures & Organizations                  
                  Stories of cultural change in organizations 
- 
                                      Architectures You've Always Wondered About                  
                  Topics like next-gen architecture mixed with applied use cases found in today's large-scale systems, self-driving cars, network routing, scale, robotics, cloud deployments, and more. 
- 
                                      The Practice & Frontiers of AI                  
                  Learn about machine learning in practice and on the horizon 
- 
                                      JavaScript and Beyond: The Future of the Frontend                  
                  Exploring the great frontend frameworks that make JavaScript so popular and theg JavaScript-based languages revolutionising frontend development. 
- 
                                      Speaker AMAs (Ask Me Anything)                   
                  
Wednesday, 7 March
- 
                                      Distributed Stateful Systems                   
                  Architecting and leveraging NoSQL revisitied 
- 
                                      Operating Systems: LinuxKit, Unikernels, & Beyond                  
                  Applied, practical, & real-world deep-dive into industry adoption of OS, containers and virtualisation, including Linux on Windows, LinuxKit, and Unikernels 
- 
                                      Architecting for Failure                  
                  If you're not architecting for failure you're heading for failure 
- 
                                      Evolving Java and the JVM: Mobile, Micro and Modular                  
                  Although the Java language is holding strong as a developer favourite, new languages and paradigms are being embraced on JVM. 
- 
                                      Tech Ethics in Action                  
                  Learning from the experiences of real-world companies driving technology decisions from ethics as much as technology. 
- 
                                      Bare Knuckle Performance                  
                  Killing latency and getting the most out of your hardware 
- 
                                      Speaker AMAs (Ask Me Anything)                   
                  
 
                              





