Kindle Price: $28.49

Save $9.50 (25%)

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

Audiobook Price: $17.46

Save: $9.97 (57%)

eBook features:
  • Highlight, take notes, and search in the book
  • In this edition, page numbers are just like the physical edition
You've subscribed to ! We will preorder your items within 24 hours of when they become available. When new books are released, we'll charge your default payment method for the lowest price available during the pre-order period.
Update your device or payment method, cancel individual pre-orders or your subscription at
Your Memberships & Subscriptions
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Modern Software Engineering: Doing What Works to Build Better Software Faster 1st Edition, Kindle Edition

4.5 4.5 out of 5 stars 577 ratings

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
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

From the Publisher

Editorial Reviews

Review

" Modern Software Engineering gets it right and describes the ways skilled practitioners actually engineer software today. The techniques Farley presents are not rigid, prescriptive, or linear, but they are disciplined in exactly the ways software requires: empirical, iterative, feedback-driven, economical, and focused on running code."
--
Glenn Vanderburg, Director of Engineering at Nubank

"There are lots of books that will tell you how to follow a particular software engineering practice; this book is different. What Dave does here is set out the very essence of what defines software engineering and how that is distinct from simple craft. He explains why and how in order to master software engineering you must become a master of both learning and of managing complexity, how practices that already exist support that, and how to judge other ideas on their software engineering merits. This is a book for anyone serious about treating software development as a true engineering discipline, whether you are just starting out or have been building software for decades."
--
Dave Hounslow, Software Engineer

"These are important topics and it's great to have a compendium that brings them together as one package."
--
Michael Nygard, Author of Release IT, Professional Programmer, and Software Architect

"I've been reading the review copy of Dave Farley's book and it's what we need. It should be required reading for anyone aspiring to be a software engineer or who wants to master the craft. Pragmatic, practical advice on professional engineering. It should be required reading in universities and bootcamps."
--
Bryan Finster, Distinguished Engineer and Value Stream Architect at USAF Platform One

"The title says it all. In this book, Dave Farley shares his wisdom and experience as an outstanding software engineer and leader. The reader is fortunate to see the world of software design through the eyes of a master designer. Modern - It describes the practices tools and technology used today to build working software with a productive cadence.

Modern Software Engineering provides a reader with a clear understanding of the field of software engineering and why it is indeed engineering. Dave explains the essential aspects of software engineering concisely from the perspective of a software engineer. Unlike many books which focus on one right way, he stresses the importance of good judgment, experimentation, and measurement. Many authors discuss the goodness of cohesion, coupling, and separation of concerns but Dave illustrates concepts while discussing the natural tensions between them which are part of the art of software design. His passion and discussion for TDD and perspective on how and why it works, provide fresh motivation as TDD as design practice.

Throughout the book, Dave presents concrete examples of design choices, where creative experimentation, measure, and iterative development are essential. The book presents a series of courteous conversations about software product design and implementation. It is a book that professionals will return to often to reread and think about these important design conversations.

This is an excellent book that belongs on the self of every software engineer be they new or leading a large team."
Dave Thomas, CEO of Bedarra Corporation

About the Author

David Farley, founder and consultant for Continuous Delivery Ltd., has been a programmer, software engineer, and systems architect since the early days of modern computing. He has shaped ground-breaking approaches that have transformed how developers and teams work. With Jez Humble, Farley coauthored the best-seller Continuous Delivery. As Head of Software Development for the London Multi Asset Exchange (LMAX), he built one of the world's fastest financial exchanges. One of the earliest adopters of agile techniques employing iterative development, continuous integration, and high levels of automated testing, he also coauthored the Reactive Manifesto. Dave also runs the popular and highly successful "Continuous Delivery" YouTube channel.

Product details

  • ASIN ‏ : ‎ B09GG6XKS4
  • Publisher ‏ : ‎ Addison-Wesley Professional; 1st edition (November 16, 2021)
  • Publication date ‏ : ‎ November 16, 2021
  • Language ‏ : ‎ English
  • File size ‏ : ‎ 6912 KB
  • Simultaneous device usage ‏ : ‎ Up to 5 simultaneous devices, per publisher limits
  • Text-to-Speech ‏ : ‎ Enabled
  • Screen Reader ‏ : ‎ Supported
  • Enhanced typesetting ‏ : ‎ Enabled
  • X-Ray ‏ : ‎ Not Enabled
  • Word Wise ‏ : ‎ Not Enabled
  • Print length ‏ : ‎ 256 pages
  • Customer Reviews:
    4.5 4.5 out of 5 stars 577 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
David Farley
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Dave Farley is co-author of the award winning book 'Continuous Delivery' and a contributor to the 'Reactive Manifesto'. He has been having fun with computers for over 30 years. During that period he has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. In recent years Dave has worked in the field of low-latency systems and was a contributor to the Duke award-winning 'LMAX Disruptor', open-source project.

He started working in large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems-a forerunner of today's Micro-Service architecture. He has a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA.

Dave was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s. He honed his approach to agile development in his four and a half year stint at ThoughtWorks where he was a technical principal working on some of their biggest and most challenging projects.

Dave is currently working as an independent software developer and consultant.

Customer reviews

4.5 out of 5 stars
577 global ratings
Problemilla con tapa
4 out of 5 stars
Problemilla con tapa
Todo perfecto con el tiempo de despacho, solo tuve un pequeño inconveniente con el empaque que venia con la tapa doblada, y como es blanda costo bastante hacer que no se notara tanto.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Opiniones destacadas de los Estados Unidos

Calificado en Estados Unidos el 31 de octubre de 2024
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!
Calificado en Estados Unidos el 27 de marzo de 2022
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!
A 11 personas les resultó útil
Reportar
Calificado en Estados Unidos el 22 de abril de 2023
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.
Calificado en Estados Unidos el 21 de abril de 2024
Every software and engineering company should value these ideas, which distill the real essence of important differentiators in engineering.

Starting with understanding how Test Driven Development and Continuous Delivery apply and enable the scientific process to software engineering, the author builds to describing some fundamental principles which can be applied more generally than software, and often with greater effect and impact on positive outcomes than some traditionally debated decisions like which language to use.
Calificado en Estados Unidos el 1 de febrero de 2022
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
A 16 personas les resultó útil
Reportar
Calificado en Estados Unidos el 23 de marzo de 2024
It turns out that books about best practices in software are always going to surprise me. They all speak about the same thing over and over again, and yet, these things are still not widely used.
It’s important that business owners read that book too. They may understand that it’s not a number of developers that makes a difference but the skilled engineers that do.
Calificado en Estados Unidos el 21 de abril de 2024
Looks like the author needed to fill up a lot of pages. No real examples, ambiguous. Too abstract for me.
Calificado en Estados Unidos el 28 de diciembre de 2023
Todo perfecto con el tiempo de despacho, solo tuve un pequeño inconveniente con el empaque que venia con la tapa doblada, y como es blanda costo bastante hacer que no se notara tanto.
Imagen del cliente
4.0 de 5 estrellas Problemilla con tapa
Calificado en Estados Unidos el 28 de diciembre de 2023
Todo perfecto con el tiempo de despacho, solo tuve un pequeño inconveniente con el empaque que venia con la tapa doblada, y como es blanda costo bastante hacer que no se notara tanto.
Imágenes en esta reseña
Imagen del cliente
Imagen del cliente
A una persona le resultó útil
Reportar

Opiniones más destacadas de otros países

Traducir todas las opiniones al Español
Roger
5.0 de 5 estrellas Great material with excelent topics
Calificado en Canadá el 6 de junio de 2022
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
5.0 de 5 estrellas Interesting book for all software engineers
Opinión escrita en Bélgica el 5 de julio de 2024
A collection of interesting approaches and insights on how to become or remain a modern software engineer.
Filippo G.
2.0 de 5 estrellas E allora?
Calificado en Italia el 22 de mayo de 2024
Sono rimasto abbastanza deluso da questo libro. Solite cose che si leggono ovunque riguardo al Software engineering. Molte ripetizioni di concetti e spesso sembra di aver già letto un paragrafo…
Con questo prezzo, Avrei decisamente preferito un libro più coinciso e più approfondito.
Buchner
5.0 de 5 estrellas It's a great book for peeking in the views of the author on how to write software
Calificado en Alemania el 10 de abril de 2023
He compares engineering allot with software development. One has an hypothesis and tries to confirm or reject it via tests and experiments on the software stack on hand.
Overall it is a great read.
Oliver Hall
5.0 de 5 estrellas Essential Reading
Calificado en Reino Unido el 20 de julio de 2022
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.

Report an issue


Does this item contain inappropriate content?
Do you believe that this item violates a copyright?
Does this item contain quality or formatting issues?