The 15 Minute Drafts: The many faces of Software Development
As in my previous draft The 15 Minute Drafts: The Garden Industry, Gardening seems to be the closest analogy of Software Development. Software applications and systems can be viewed as gardens whose parts play different roles in functionality and/or look. Software developers and maintainers are no different from gardeners with jobs as designing, building, and maintaining. Many terms are nature-like possibly due to this resemblance: bugs, greenfield projects, or even big ball of mud.
Another similarity is Healthcare. Software products can act as living bodies, and the developers play the role of doctors and nurses caring for them. Building or implementing is as if treatment or surgery, depending on the severity and scale of the problems and requirements. It is common to see well-maintained systems as healthy bodies where most problems can be treated quickly, while complex systems, especially those due to unhealthy diet of bad practices, require more expensive solutions to resolve, just like surgeries taking hours (and in some cases, leaving technical-debt scars behind). From this resemblance, we hear terms like shotgun surgery, system health check, or diagnosing.
Last, one comparison can be found when Michael C. Feathers introduces the concept of test harness in "Working Effectively with Legacy Code." Developers are described as athletes performing aerial gymnastic performance, which requires thorough understanding and coordination. Any failure can be painful to fix, and in some cases, can be even fatal. Such damage can be mitigated with the existence of test harness as the safety net in the projects, catching any failure (bugs) early on.