Full description not available
O**L
Essential Reading
I bought this book for myself after watching Dave Farley's YouTube channel. I've now bought a second copy for the office library and I'm suggesting that everyone in my development team reads it. For me, this is pure gold. Yes, you can get some of the info online - what can't you get online these days? - but this book consolidates many of the crucial principles of software design into a coherent guide to, hopefully, convince more developers that you can set yourself up for good (or at least better!) design and there is a tangible payoff if you do.If you do what I normally do and read the best, and the worst, reviews for a product before buying, you'll see comments about this book being repetitive, lacking actionable advice and lacking examples.Are the concepts in this book repeated - sometimes, yes. Ideas like separation of concerns and testability crop up throughout the book. There's a reason for that. The are fundamental to achieving good design (which is where this book is trying to take us) and if that means some of those points need to be hammered home a little bit harder, so be it.Lacking actionable advice? I don't get this criticism at all. The book is literally a guide on what you should strive to do to make better quality software. Make your designs testable. Achieve that with tools like TDD and CD for fast feedback. In the process you will achieve coherent design, separation of concerns and practice the correct degree of coupling. All of this is actionable - you many need to read more deeply into those concepts to apply them, but that's on the negative reviewer, not the author.Lacking examples? There isn't a LOT of code, but where it's helpful to illustrate a point more clearly there are examples, and I liked the fact that the author mixes up languages to show that none of this stuff is dependent upon the IDE, OS, or language du jour - these all come and go, but the good practice that this book advocates isn't a "fashionable" thing. It's just "good". My hunch is that this criticism comes from those with little actual experience, looking to be spoon fed the Fred Brooks' magic (silver) bullet. Hard luck guys - developing good quality software takes some effort, and that effort comes in the form of lots of learning, before you've writing your first lines of code.Having tried to be a better software engineer throughout my career, I've found that things don't always work out first time, or second, or third, but the more you practise good practice, the more effective it becomes. This book has reinforced the ideas I'm encouraging in our team and added clarity around areas that I had an intuitive feeling for, but not the experience to back up that feeling.This is a GREAT book. Buy it, read it, practise the techniques Dave Farley advocates. We all owe that to the profession.
P**H
Both obvious and tedious, but not obvious to many I've been told
For classically trained software engineers there's very little new. If you're read Fred Brooks you've read this book - and that collection of essays had been written some time ago. Old seems to be the new New. More generous view would be that the author make crucial point around how one goes practicing software engineering ... still glad I've read it. It provided us with a common reference among several colleagues.
S**E
A definition of Software Engineering to take us beyond "craft"
Modern Software Engineering is a useful re-definition of the basis of how we work in professional software settings. We've been looking for a foundation metaphor for some time. Software Craftsmanship was step in this direction, but there was something missing from the craft metaphor.Dave Farley gives us the new baseline for software development in this title, linking together a bunch of fundamental elements and using them to redraw the importance of Software Engineering.The book defines what this means (and just as importantly, what this doesn't mean) and provides the key concepts to move us past all the stuff we tried that helped us get to where we are today.With this book, we can launch ourselves into the new research-backed era of software delivery and provide software that creates real value.Some reviews call for more concrete advice, but that's already available in "Continuous Delivery" and "Continuous Delivery Pipelines". The role of Modern Software Engineering is to set a standard for how we approach the work (not the specific practices as these have already been published).
R**T
Worthy of the title
I think this book is worthy of its title. It sets out to define an engineering approach to software development and I think it succeeds. The book distills a huge number of important concepts in software development in a very cohesive and accessible way, while remaining paradigm-agnostic.Farley posits that there are two main focuses in software engineering. The first is learning. The second is managing complexity. Learning essentially refers to the iterative, agile approach to building software. Managing complexity is how we retain our ability to change and iterate software without our systems becoming big balls of mud. Iteration, feedback, incrementalism, experimentation and empiricism are linked to our ability to learn; modularity, cohesion, separation of concerns, abstraction and loose coupling are linked to our ability to manage complexity.Drawing from Accelerate, Farley puts forward stability and throughput as the two basic measures of an effective software engineering team. These measures provide further justification for the tools and techniques that he describes for optimising learning and managing complexity.
A**A
A great book from a great author, a must-read for every software engineer
My professional life changed when I read "Continuous Delivery", by Dave Farley and Jez Humble, more than ten years ago. Farley has never stopped producing excellent material for software engineering professionals, in the form of YouTube videos, books, or training courses. Having followed him for a long time now, I knew this book would not betray my (high) expectations. It is something that the software development industry, right now, was really missing. Farley has the rare ability of showing things in a new perspective even to people (like me) who've been a software engineer for more than two decades. You always learn something new from him. It's about time that we define what software engineering really means and what are the techniques and practices that allow us to become expert at learning as well as managing complexity. This book can be seen as a snapshot of what good looks like, today, in our field. A must-read for every software engineer.
G**E
Interesting approach to software engineering
I really like Dave Farley, the author of this book and host of the Continuous Delivery channel. His treatment of software engineering from a true engineering perspective was eye opening to me. I've been an developer for years and years, but had never thought of it directly in that manner.You won't read it in one sitting - the subject matter is perfect for skipping around to different chapters, depending on what you're currently working on or what topics pique your interest. Great book!
R**R
Great material with excelent topics
I loved this book, from start to end. All topics were well founded with a good amount of good examples. I understand that people expect more practical examples with real scenarios, but as stated by David, the book is not a recipe to achieve quality, but a foundation based on ingredients that are likely to lead your development to success. The examples given were simple, to illustrate and have a starting point to describe an idea. It's not only about coding my fellow friends, it's much more.
D**L
Great book about what's important to write good software
Describes many important concepts, and makes clear why those concepts matter.Such concepts are incrementalism, feedback, separation of concerns, abstraction, ...Some technical concepts are explained somewhere else in more depth, but I think that's fine: The book provides a good overview.
S**O
Interesting book for all software engineers
A collection of interesting approaches and insights on how to become or remain a modern software engineer.
A**B
Bon livre
Thank you Dave
Trustpilot
1 month ago
1 day ago