In this podcast, Shane Hastie, Lead Editor for Culture & Methods, spoke to Ivar Jacobson about his work defining the essence of software engineering.
Key Takeaways
- Practices from different methods are locked in these methods and cannot easily be extracted and used in other methods. If you want to reuse a practice from another method, you most likely will have to rewrite it so it fits in your method. Essence helps to free the practices from the method prisons.
- Most large organisations have adopted many methods created by many different gurus, for instance, one method for each product. Since the different methods have very little in common (even if they could have a lot in common) different groups don’t learn from one another and people cannot easily move from one organization to another. Essence removes this problem entirely by working as a common ground for all methods and by allowing an organization to build an eco-system from which practices and methods can be selected.
- Software development is a large expense in today’s economy – globally organisations spend more money on the development of software than any other development in their business
- The kernel of software engineering is true irrespective of which practices, languages or tools you use
Subscribe on:
Show Notes
- 00:13 Introduction
- 01:00 The danger of “method prisons”
- 02:08 Only practices that the guru who described a method like will be in the method
- 02:18 The wide range of practices which the particular guru doesn’t know about or doesn’t like will not be represented in their method
- 02:40 The problem is that this prevents bringing additional ideas into a defined method
- 02:57 Gurus tend not to collaborate because they have competitive methods
- 03:12 This has resulted in a “methods war” for the last 60 years in software engineering
- 03:22 Ivar’s goal of taking practices out of method prisons so the most appropriate practices for a given context can be adopted irrespective of the chosen method
- 03:43 This enables building an ecosystem of practices which can be used and improved on
- 04:12 Most large organisations have adopted many methods created by many different gurus which often results in chaos and misunderstanding across groups are trying to achieve the same outcomes with different approaches
- 04:30 Where different methodologies fight, their followers will fight amongst each other
- 04:53 Ivar was one of the original methodologists with the RUP and UML
- 05:30 Software development is the largest expense in today’s economy – globally organisations spend more money on software than any other aspect of their business
- 06:07 Contrasting software development with system engineering
- 06:46 In any methodology, about 80% of the ideas are common across all aspects of software development
- 07:29 The commonalities across methodologies include understanding why the initiative is being undertaken and what needs to be built,
- 07:46 Requirements will always be needed, but we don’t always need a requirements specification
- 07:57 Other commonalities include building the product and working in teams
- 08:14 The importance of identifying what is common across methodologies and what is different and unique to a specific approach
- 08:27 The Software Engineering Method and Theory (SEMAT) community work on identifying the common ground of software engineering practices
- 08:58 The Essence standard for defining software engineering practices
- 09:12 Some ways Essence has been used in organisations
- 09:32 Using the Essence language methods can be described using a common taxonomy and this enables bringing ideas from multiple approaches together in a way that enables them to be adapted to a specific context
- 10:12 Essence provides an integrated set of patterns for describing practices and processes
- 10:25 Describing how Essence can be used in a real-world context
- 11:12 How the Essence toolkit can be used in an organisation
- 11:35 Explaining the Essence of the User Story
- 13:17 The value in Essence comes from the technical description as well as the conversations that the approach enables in a team
- 14:21 The engagement and motivation that comes when teams feel a sense of ownership in the way they work
- 13:38 An example of how this was applied at Huawei
- 15:38 The new book: The Essentials of Modern Software Engineering
- 16:57 The book is already in use in universities for teaching software engineering courses
- 17:13 This represents a dramatically different way of teaching software engineering
- 17:27 The kernel of software engineering is true irrespective of which languages or tools you use
- 18:15 The Essence approach allows software engineering practitioners to describe different methods using a common language and that enables drawing from different methods to find what works best for their context
- 18:35 The inspiration for the book came from an MIT class: Structure and Interpretation of Computer Programs
Mentioned:
- Ivar Jacobson International
- Escaping Method Prisons article
- SEMAT community
- The Essence standard
- Jeff Sutherland – Better Scrum Through Essence Cards description
- Essence Toolkit
- Huawei
- Book – The Essentials of Modern Software Engineering
- MIT class – Structure and Interpretation of Computer Programs