Modern Software Engineering David Farley
Doing What Works to Build Better Software Faster
June 29, 2022 - 149 words - 1 min Found a typo? Edit meThis book presents software development as an engineering practice at every level. To master software engineering, we must become experts at learning and managing complexity.
Optimize for learning
To optimize for learning, the book presents five behaviors to consider:
- Working iteratively
- Feedback
- Incrementalism
- Empiricism
- Being Experimental
The main idea is to work on small steps, collect feedback, and adjust.
Optimize for managing complexity
The book presents other five ideas to manage complexity:
- Modularity
- Cohesion
- Separation of Concerns
- Information Hiding and Abstraction
- Managing Coupling
We need to manage the complexity of our systems.
Tools to support engineering in software
Going deeper into some ideas that were already discussed in the book, like:
- Testability
- Deployability
- Controlling the variables
- Continuous Delivery
A great video explaining the core ideas behind this book by his author:
200 pages