DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report

The surgery metaphor

Giorgio Sironi user avatar by
Giorgio Sironi
·
May. 21, 12 · Interview
Like (0)
Save
Tweet
Share
7.11K Views

Join the DZone community and get the full member experience.

Join For Free

As you know in the last months I've been intrigued more and more by metaphors for object-oriented systems, since they brilliantly solve the problem of naming by borrowing terminology from an existing field.

However, it is also interesting (and indeed has happened many times) to propose metaphors for a software development process. Analogies like building a skyscraper and growing a crop have let us ground some of our hypothesis in "thousand-years old domains"; and often lead us ashtray by false comparisons like the one between programmers and bricklayers.

The goal of this article is to describe the surgery metaphor for software development and check where it is useful to explain development concepts to newcomers and non-technical people.

Quality

There are some shared values between surgery and a certain category of software development, that deeply cares about the quality of the final product.

For example, the diatribe of long-term and short-term value is resolved in favor of a the former: a solution must work without requiring larger operations for years (ideally, for decades). The cost of maintenance is taken into account and never discounted when discussing different approaches to the current problem.

Attention to the detail is omnipresent in surgery, down to the singles procedure to follow; software development faces risk by automating most of these checks: broken builds cannot be deployed, and business metrics like current active users or satisfied requests must be monitored to ensure availability of the service.

TDD and refactoring

Following Uncle Bob's metaphor, common Agile practices like TDD are akin to aseptic techniques in surgery. These procedures started out simply by hand washing, and has evolved into gloves, masks and sterilization.

Thus practices are not strictly necessary conditions for success: emergency scenarios require to operate without it, like in the case of first aid.

However, standardized procedures are facilitating conditions: not as strong as necessary, but able to improve the odds of a good outcome enough to show a good return on investment. Post-surgery infections were as common and lethal in medieval times as finding bugs in production is nowadays.

However, practices are never a sufficient condition: you don't bring a postman into a surgery room, make him wash hands and tell him to operate (while many people tell him to code without even the hand washing part.). There is a whole set of training that he has to undergo before being able to make a positive contribution.

Training

The training of surgeons is one of the hardest in the world. Depending on the country, there are strong qualifications to obtain and associations of certified professionals that a surgeon must belong to in order to operate the profession. In cases of misconduct, a surgeon can be stopped or expelled from the order.

Try imagining a programmer getting expelled for doing a sloppy job. However, given how certifications work in the field at this time, we still have much work to do before they become a reliable signal for employees.

A big part of the medical training happens on the field (in hospitals and periodically in operating rooms), although the apprentice is usually never left in charge.

Moreover, the training is never declared complete, and there is a costant update on the latest tools and techniques on the part of doctors. Their publication ofscientific papers and journals can be compared to our blogs and articles reporting the best (or good) practices of a field, although the selection system is based on peer review in the former case and on popularity in the latter.

The issues

A first way in which the metaphor fails is in the different definition of value: while maintaining software and adding new features to it is often necessary, the best surgical operation is still the one that is not performed. In this sense, the value of getting the application to work again would be preferred to the one of further product development.

Another issue that we would face is the inflating cost and time needed for training of doctors, alghouth the long training may actually be necessary for such a delicate domain. After all, the surgeon's salary justifies the investment costs to become one. High compensation systems seem to be able to attract the best programmers as for the best surgeons in the market.

The inflating costs of healthcare are instead more worrying. In the case of software, there is a trade-off between value (and so monetary revenue) produced and cost, while it is much more difficult to ethically quantify if the costs of medical procedures are worth bearing. What is happening in software is that there is absolutely no regulation on who can be a supplier in the market, and as such the average (and also median) quality of the products is terrifying.

I'm not saying that you should adopt the values of medicine in your work, which can be a stretch for Wordpress applications, but that if you share them, the surgery metaphor becomes interesting for you. Software is as important as human lives only when they depend on it, in the case of biomedical and transportation systems such as pacemakers and flight control; other important categories of software are business critical, and as such economic metaphors will suit them more than the medical one.

Software development

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Journey to Event Driven, Part 1: Why Event-First Programming Changes Everything
  • Create a CLI Chatbot With the ChatGPT API and Node.js
  • How Elasticsearch Works
  • Strategies for Kubernetes Cluster Administrators: Understanding Pod Scheduling

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: