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 accomplishChoose your tools based on sensible criteriaOrganize work and systems to facilitate continuing incremental progressEvaluate your progress toward thriving systems, not just more “legacy code”Gain more value from experimentation and empiricismStay in control as systems grow more complexAchieve rigor without too much rigidityLearn from history and experienceDistinguish “good” new software development ideas from “bad” onesRegister your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
From the Publisher

Publisher : Addison-Wesley Professional
Publication date : December 10, 2021
Edition : 1st
Language : English
Print length : 256 pages
ISBN-10 : 0137314914
ISBN-13 : 978-0137314911
Item Weight : 15.2 ounces
Dimensions : 7.38 x 0.44 x 9.1 inches
Best Sellers Rank: #66,372 in Books (See Top 100 in Books) #2 in Project Management Software Books #8 in Computer Systems Analysis & Design (Books) #26 in Software Development (Books)
Customer Reviews: 4.5 4.5 out of 5 stars (655) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });
13 reviews for Modern Software Engineering: Doing What Works to Build Better Software Faster
Add a review
Original price was: $39.99.$16.49Current price is: $16.49.


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!
Amazon Customer –
I can’t wait to give this book 5 stars
This is a must have book for software engineers. The part on engineering philosophy is a must for every engineer in my opinion. So why the 4 stars?let me explain my reasoning. The ideas in the book are important, but the presentation is still raw and underdeveloped. The ideas are intertwined making the text a hard read. For such a short book, I found that it took me a surprisingly long time to read. I hope that the author will treat this book in the same manner we should treat our software. With future, better and improved editions and with better clarity and separation of concerns between the topics. I do recommend that you buy and read this book. But like software, it can be improved.
Cliente Kindle –
Puts engonerrong back into software development!
Recently, I finished reading this great book by Dave Farley. It immediately was added to my “zero B.S. readings”, along with Team Topologies and a few others. Those books I would take to a desert island if someone asked me to build up a software facility from zero. :)What I really liked of the book is that it retakes the often discussed concept of software “engineering” and refines it to suit today’s needs. I always felt we need an “engineering approach”, but after the (gone) CMMI days, the term was always used more as a synonym to development rather than something to describe a professional, disciplined way to produce better software. I feel Dave’s book puts back engineering into development, but with a very pragmatic and realistic approach, derived from actual experience.When reading it, I felt a similar sensation to that I felt when I read Steve McConnell’s Code Complete and Rapid Development, many years ago. Though very different books, I think Dave’s also has that “handbook” nature. A book that you read once, but come back very often to look for ideas, concepts, etc. I hope Dave does not mind about my comparison.Thanks Dave!
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.
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
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.
Eduardo Gimenez –
Book came as expected
Book came as expected
Gary –
Very repetitive
He says the same things over and over again but in different chapters. Very little code shown. Though anyone can gain some value, it seems to be more for a larger team. I got the big picture but very few practical examples.I agree with most things he says. It is easy for someone to say what to do. But how to do it? Someone needs to write a book on how to find a job/company that does all those things he suggests.
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.