What is the Modern Software Engineering book?
Modern Software Engineering is a book by David Farley.
The book:
- aims to help software professionals improve their creativity, effectiveness, and code quality by applying durable principles and practices of software engineering
- covers two core aspects of software engineering: learning and exploration and managing complexity
- also offers practical advice on how to choose tools, organize work, evaluate progress, experiment, control complexity, learn from history, and distinguish good and bad ideas
Ideas from the book
Software engineering is:
- the practical application of science to create software systems that solve problems and deliver value
- not about following rigid, prescriptive, or linear processes, but about applying durable principles and practices that are based on learning, exploration, and managing complexity
- is a creative and empirical discipline that requires experimentation, feedback, and adaptation to deal with uncertainty and change
- is not only about producing code, but also about designing systems, choosing tools, organizing work, evaluating progress, and improving quality
- is a human activity that involves collaboration, communication, and personal fulfillment
Recap
I have read both books, Modern Software Engineering by David Farley and Software Engineering at Google, and I found them to be very informative and insightful. In my opinion, they both aim to help software engineers improve their skills, productivity, and quality by providing insights into software engineering principles and practices based on science, experience, and evidence.
However, in contrast, while Farley’s book focuses more on the general and foundational aspects of software engineering, such as learning, exploration, and managing complexity, the Google book is more specific and practical, emphasizing tools, processes, and best practices that are used at Google.
Here are a couple of ways to improve your software quality, productivity, and satisfaction, from Farley’s book:
- Learning from the experts through various sources and platforms, e.g. articles
- Practicing by doing your own projects or joining others
- Seeking feedback and improvement from various sources and tools
- Keeping an open mind and being curious about new things and changes
Based on my reading, it’s important to note that although these practices may be effective at Google, they may not work as well in other organizations or teams. This implies that while these books are valuable resources for software engineers, they have different focuses and scopes. I would recomm
Thank you!
Thank you for your time and for reading this!