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.

要查看或添加评论,请登录

Peter Vo的更多文章

  • The Art of Dealing with Code Sh***: A Comprehensive Guide

    The Art of Dealing with Code Sh***: A Comprehensive Guide

    As one who has done a fair share of works in developing, reviewing, and maintaining code, both my own and others', I…

  • From Zero to Hero: What I Learned from Achieving 100% Code Coverage

    From Zero to Hero: What I Learned from Achieving 100% Code Coverage

    In the past few weeks, I've been dedicating some of my free time to a new project. As someone who enjoys tinkering with…

    2 条评论
  • An approach to Single-responsibility principle

    An approach to Single-responsibility principle

    Any fan of Uncle Bob must know the 5 principles, forming the acronym SOLID, in designing software for the goal of…

    3 条评论
  • The 15 Minutes Drafts: 2 Dependency Flows

    The 15 Minutes Drafts: 2 Dependency Flows

    Most systems, usually small to medium, uses the N-tier architecture style. From this model, we can see the dependency…

  • Triangles in Software Development

    Triangles in Software Development

    The Iron Triangle: Time Quality Scope / Quantity There are many other variants, which I consider as the same type in…

  • Minesweeper Kata: Logic portion

    Minesweeper Kata: Logic portion

    I guess there is not much introduction on this, since most should know what is Minesweeper. Create and implement a Game…

  • Pagination Kata

    Pagination Kata

    Introduction Suppose a client sends a request to a web API server, and the web API server will have to return a message…

  • The Bank Account Kata - Clean Architecture experiment

    The Bank Account Kata - Clean Architecture experiment

    I have known Uncle Bob's Clean Architecture model for awhile, but did not understand it thoroughly and know how to…

  • The 15 Minute Drafts: The Garden Industry

    The 15 Minute Drafts: The Garden Industry

    Imagine a world where gardens become a popular commodity. Thanks to the advanced technologies of Time and Space, any…

  • The 15 Minute Drafts: What the heck is Agile?

    The 15 Minute Drafts: What the heck is Agile?

    VERY FIRST INTRO This is simply just a start of something. I'm not the type who solidifies my thoughts and reasoning…

社区洞察

其他会员也浏览了