Modern Software Engineering (vol. 1)
This is a volume collecting a series of articles about modern software engineering principles and practices covering topics such as systems design, testing, documentation, delivery, and continuous evolution. This volume expands on the articles by adding question for reflection aimed at individuals, teams, and organisations.
This is a volume collecting a series of articles about modern software engineering principles and practices covering topics such as systems design, testing, documentation, delivery, and continuous evolution. This volume expands on the articles by adding question for reflection aimed at individuals, teams, and organisations.
This is a volume collecting a series of articles about modern software engineering principles and practices covering topics such as systems design, testing, documentation, delivery, and continuous evolution. This volume expands on the articles by adding question for reflection aimed at individuals, teams, and organisations.
Software Engineering has a short but rich history dating back from the early development of programmable computers. Ever since computers supported stored programs in digital form, a whole practice around making software manageable to produce, execute, and change became as important as the computers themselves.
Software Engineering is a quintessential human endeavour which is becoming more mature the longer we do it. Even in the age of Artificial Intelligence systems being able to aid in the development of software, based on my personal experience with some cutting edge technologies in this field, the human judgment is still an essential part of the process. Unless that changes, I believe Software Engineering is still a valuable endeavour to pursue which will evolve to require more of the human judgment—but the mechanical parts might just get quicker.
I decided to write the series originally to share the knowledge and observations I’ve gained in the past 20 years with some anecdotes in the introductions. I’ve preserved these stories and anecdotes because I believe those narrative elements make the series more human and relatable even in this compilation.
Each chapter is an article in the series, preserved as much as possible with some editorial changes. Some have been modified to have more headings and exposition. All the articles have been augmented with a section on questions to ask and thoughts to ponder, so that you can use this for self reflection or conversations within your team.