3 ms·
"Most aspects of systems development are fundamentally creative processes ..." I'm not sure this is accurate. The Space Shuttle systems software, likely among
by BaronSamedi 8y ago
"Most aspects of systems development are fundamentally creative processes ..."
I'm not sure this is accurate. The Space Shuttle systems software, likely among the highest quality software systems ever developed, does not appear to have been a creative process--at least not in the artistic sense of creative self-expression (thanks to a previous commenter for the link: https://www.fastcompany.com/28121/they-write-right-stuff https://www.fastcompany.com/28121/they-write-right-stuff). If the Shuttle example were representative of software development as a whole then we might posit that software quality is inversely proportional to creativity. But I don't think it is.
Instead I would describe the creativity required as: improvisational problem-solving within the bounds of a known form. In warfare, for example, there are standard tactics (the form) for reacting to an ambush, however, every ambush is unique and the local commander must improvise within those tactics to solve the unique problems. Likewise in classical music, the symphony had a standard form in which a composer like Mozart could express creativity. Software development should work the same way.
The problem is that we don't have a sufficient catalog of proven software designs (forms) to refer to when solving common problems. We end up solving the same problems over and over again in unique ways. This allows developers a lot of creativity but does it result in high quality software at a reasonable cost? I don't think it does. I lay a large part of the blame for this state of affairs on the culture of neophilia so prevalent among developers. In the culture of other professionals who make things, they seem to cultivate a tradition of what works, why don't software developers?