Modern Software Engineering
Doing What Works to Build Better Software Faster
Format:Paperback
Publisher:Pearson Education (US)
Published:26th Jan '22
Should be back in stock very soon
In this insightful guide, David Farley empowers software professionals to enhance their creativity and effectiveness. He presents core principles for effective development, emphasizing learning, managing complexity, and achieving meaningful progress.
In "Modern Software Engineering," author David Farley, a pioneer in continuous delivery, provides valuable insights for software professionals seeking to enhance their creativity, effectiveness, and overall quality of their work. The book addresses programmers, managers, and technical leads, regardless of their experience level, and presents enduring principles essential for successful software development. Farley emphasizes two fundamental exercises: learning and exploration, as well as managing complexity, which serve as the foundation for improving both mindset and code quality.
Farley outlines practical strategies that help readers clarify their objectives, select appropriate tools, and organize workflows to promote incremental progress. He advocates for evaluating progress based on the development of thriving systems rather than merely producing legacy code. By encouraging a culture of experimentation and empirical learning, Farley equips readers with the tools to navigate the complexities of software engineering while maintaining control as systems evolve.
The book combines a scientific approach with practical applications, allowing readers to tackle real-world software development challenges within economic constraints. Farley's guidance encourages software professionals to draw lessons from past experiences, differentiate between effective and ineffective development ideas, and achieve a balance between rigor and flexibility. Ultimately, "Modern Software Engineering" aims to foster a deeper understanding of the software development process, enabling practitioners to create better software more efficiently while finding greater satisfaction in their work.
" 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
ISBN: 9780137314911
Dimensions: 230mm x 186mm x 18mm
Weight: 480g
256 pages