Modern Software Engineering: Doing What Works to Build Better Software Faster
€0
Price: $0.00
(as of Aug 02, 2025 15:31:01 UTC – Details)
Improve Your Creativity, Effectiveness, and Ultimately, Your Code
In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity.
For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley’s ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven’t encountered yet, using today’s technologies and tomorrow’s. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment.
Clarify what you’re trying to accomplish.Choose your tools based on sensible criteria.Organize work and systems to facilitate continuing incremental progress.Evaluate your progress toward thriving systems, not just more “legacy code”.Gain more value from experimentation and empiricism.Stay in control as systems grow more complex.Achieve rigor without too much rigidity.Learn from history and experience.Distinguish “good” new software development ideas from “bad” ones.
PLEASE NOTE: When you purchase this title, the accompanying PDF will be available in your Audible Library along with the audio.
Customers say
Customers appreciate the book’s advice level, with one noting it provides a deeper than Wikipedia-level introduction to the subject. Moreover, the writing style receives positive feedback for being brilliant, with one customer highlighting its simple and clear examples. Additionally, the book receives praise for its treatment of software engineering. However, several customers find the content repetitive.
13 reviews for Modern Software Engineering: Doing What Works to Build Better Software Faster
Add a review
€0
Eduardo Gimenez –
Book came as expected
Book came as expected
Burnt Sage –
Best Book for Experienced Engineers
This is one of the best modern books on software engineering. The author’s take on the empirical process of software engineering is a descaling operation on modern middle management “shm-agile”.In all honesty, this is one of the best books on software engineering, albeit a modern explication on the “No Silver Bullet” paper. Experienced engineers will find all of our suspicions confirmed: software is empirical not prescriptive, all software is deployment, all software is testability. In other words, Golang. But at least we have a faithful book to point at for the non-believers.
Muhammed nasrullah –
decent book, important ideas, it pedantic
The ideas presented in this book arenât new but itâs surprising how many engineers do not follow them. The book does a decent job of explaining them, justifying the, and substantiating them. Davidâs writing isnât the easiest to read and it does get pedantic but itâs worth going through this for the benefits you get.
GimletEye –
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!
Adrian P. –
Great book !
Even if the concepts presented on managing complexity were familiar, I really enjoyed how everything was linked together to bring the focus on the process of software engineering .
Jim Speaker –
Engineering > Development – nice work, Dave.
About 1/2 way through Dave Farleyâs book at this point. I had an item in my ready column related to improving the performance of a query that is core to my new product. After reading the chapter on #empiricism and #experimentation I sat down this morning and set up an experiment with code that generated clear measures as a baseline. Then I set about #refactoring and ensuring I wasnât more than a few undos from green tests. As I progressed I continued to compare my new measures.After about 2 1/2 – 3 hours of refactoring I had achieved a 15x improvement and the queries are now âfast enoughâ to please my future customers. I was planning on doing this work anyways, but I think that what I had just read the night before pushed me towards a very disciplined, more scientific approach. I doubt that with a looser approach that I would have achieved that much improvement in such a short time.I was prepared to #git reset and toss the work. I had no presupposition that it would be successful. It turned out to be completely worthwhile and an improvement to the codebase, to boot.There is a difference between #development and #engineering.Thanks, Dave.#softwareengineering #softwaredevelopment #science #engineering
wes68 –
Somewhat chaotic
This book was written by taking a few good ideas and principles (stability, throughput, high cohesion, low coupling, abstraction, test-driven development, etc.), mixing them in a blender, and pouring it out for the reader to drink.
Joe Lynch –
Building good software is simple — but not easy.
When Dave Farley speaks or writes I pay attention. The CD book blew me away in 2010. This book doesn’t add many new concepts or ideas to the discussion of what good software engineering looks like. But that’s ok. It pulls a lot of apparently disparate things together at various levels of detail and helps you see how they relate to one another. It takes some positions that I don’t necessarily agree with but any book worth reading should challenge your thinking. For example, it pushes TDD hard. I’m sorry, but the experience of many (I’d say most) is that (new of modified) tests being accompanied by a change during any checkin is more important than how you achieve that outcome. I tire when people suggest that TDD is the only way to do that. My point here is an illustration of outcome mattering more than mechanism, ironically covered in the last chapter of the book. That said, the book is loaded with sound advice, backed by experience that few people can match. Definitely worth a read.
Cliente Amazon –
amazing book !
Andrei –
Iâve been involved in building various kinds of software for nearly 20 years now (the book describes this as engineering, rather than building), and this book describes very well of what we should aim to when building software and this very much matches my personal perception of that. The book covers very fundamental subjects, yet it is really easy to read. We should not really treat ideas described in this book as dogma, but I believe that every software engineer, software developer, programmer or whatever they call themselves should read this book.
Daniel –
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.
Roger –
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.
Stefan Lecho –
A collection of interesting approaches and insights on how to become or remain a modern software engineer.