| Digital List Price: | $37.99 |
| Kindle Price: | $28.49 Save $9.50 (25%) |
| Sold by: | Amazon.com Services LLC |
Your Memberships & Subscriptions
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.
Modern Software Engineering: Doing What Works to Build Better Software Faster 1st Edition, Kindle Edition
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
- ISBN-13978-0137314911
- Edition1st
- PublisherAddison-Wesley Professional
- Publication dateNovember 16, 2021
- LanguageEnglish
- File size6912 KB
Kindle E-Readers
- Kindle Paperwhite
- Kindle Paperwhite (5th Generation)
- Kindle Touch
- Kindle Voyage
- Kindle
- Kindle Oasis
- All new Kindle paperwhite
- All New Kindle E-reader
- Kindle Oasis (9th Generation)
- Kindle Paperwhite (10th Generation)
- Kindle Paperwhite (11th Generation)
- All New Kindle E-reader (11th Generation)
- Kindle Scribe (1st Generation)
- Kindle (10th Generation)
- Kindle Oasis (10th Generation)
Fire Tablets
Free Kindle Reading Apps
Los clientes que compraron este producto también compraron
From the Publisher
Editorial Reviews
Review
-- 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
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
- Best Sellers Rank: #355,691 in Kindle Store (See Top 100 in Kindle Store)
- Customer Reviews:
About the author

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
- 5 estrellas4 estrellas3 estrellas2 estrellas1 estrella5 estrellas68%20%7%3%2%68%
- 5 estrellas4 estrellas3 estrellas2 estrellas1 estrella4 estrellas68%20%7%3%2%20%
- 5 estrellas4 estrellas3 estrellas2 estrellas1 estrella3 estrellas68%20%7%3%2%7%
- 5 estrellas4 estrellas3 estrellas2 estrellas1 estrella2 estrellas68%20%7%3%2%3%
- 5 estrellas4 estrellas3 estrellas2 estrellas1 estrella1 estrella68%20%7%3%2%2%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviews with images
Problemilla con tapa
-
Opiniones principales
Opiniones destacadas de los Estados Unidos
Ha surgido un problema al filtrar las opiniones justo en este momento. Vuelva a intentarlo en otro momento.
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!
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!
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.
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
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 28 de diciembre de 2023
Opiniones más destacadas de otros países
Con questo prezzo, Avrei decisamente preferito un libro più coinciso e più approfondito.
Overall it is a great read.
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.





