Dave Farley’s book Modern Software Engineering explores the question: Is software engineering real engineering? Farley’s conclusion is yes, when the work is performed by applying a set of broadly accepted and repeatable practices that scale and lead to quality outcomes. Unfortunately, a lot of software is developed, tested, and operated without following such disciplined practices. Farley categorizes this as craft software development rather than engineering. Craft is good at creating one-of-a-kind items with higher variance and low repeatability, while engineering practices are scalable and repeatable through controlling complexity and variance.[1] I wish more people in the software industry, especially people managing software teams, would read this book, and carefully consider, from first principles, if they are practicing software engineering.[2] This book was written before the rapid changes from the wide-scale adoption of AI in the software industry, which I started writing about in my essays Adapting to AI: Reflections on Productivity and Adapting to AI: Code Review. In this essay, I will explore how AI is changing software engineering by examining software engineering practices through the framing in Farley’s book. What Is Software Engineering? Farley defines software engineering as the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software. Software can be adapted over time, which makes software engineering a process of discovery and learning. When solutions become well established, it may be more efficient, reliable, and cost-effective to forgo the flexibility of software and implement them in hardware or firmware. Software engineering must be efficient and economic, so our ability to adapt and learn needs to be sustainable. Therefore, software engineering includes managing the complexity of software systems in ways that maintain their functionality, performance, security, and...

Adapting to AI: What Is Software Engineering?
Colin Breck
13 min read


