Software engineering is a relatively young discipline that’s rapidly evolving. What practices moved software forward thirty years ago are different from what moves them today. Today, most software requires continual-release techniques in the era of Internet speed. In this book, David Farley, an expert in that area and one seasoned in business practices, brings the field up to date with practices that work. Modern Software Engineering provides a good summary informed by reading, personal practice, and industry consulting to guide and enlighten the next generation of developers.
Farley’s development of a financial exchange heavily informs this book’s approach. Conceptually, he is a big proponent of test-driven development (TDD) to guide efficient outcomes. He builds a matrix of guiding practices around TDD and advocates for programming values like modularity, cohesion, and testability. He shows why these values are good to approach software projects and even posits that they should be considered more with data-oriented projects. In so doing, he provides a snapshot of a philosophy of how to advance complex, integrated software.
I am a developer working on data-intensive scientific projects. I honestly don’t use TDD in my development because so much of my work is exploratory. I don’t often know what end goal to test for when I start coding because the terrain is so new. Thus, art often predominates overall over science. I don’t have any qualms with TDD; after extensive attempts, adding it to the workflow has never been efficient for my exploratory projects. I have found TDD extremely useful for certain subprojects with more defined, more stable aims. I believe my exploratory projects are outliers more than the norm, though.
After learning the programming languages themselves, advancing software engineering techniques is certainly the most essential skill for a software developer. The field itself changes, and Farley has brought us all more up to date with a fresh recast. Experienced programmers like myself might quibble about some of the details, but his overall orientation is spot on. It deserves study by anyone producing software, from newbies to the masters. Reading this book is well worth their time to interact with a leading mind about a topic crucial to their work.
Modern Software Engineering: Doing What Works to Build Better Software Faster
By David Farley
Narrated by Amy Gordon
Copyright (c) 2022
Pearson
ASIN B0BLXCXT3R
Length: 9:37
Genre: Computer Science
www.amazon.com