Over the years we've been tasked with participating in some very large and complex enterprise web applications. In that time we've witnessed several attitudes toward code quality which we've categorized into four metaphorical archetypes:
- The wooden ice spoon (well, `stick` really)
- The plastic spoon
- The common spoon
- The silver spoon
The Ice Cream Spoon (Stick)
Those with this attitude about code want to spend as little resources as possible to achieve the desired outcome. It is hyper-practical, albeit ridiculous approach to code. You can technically eat your ice cream with these specialized tongue depressors, but it doesn't make for the nicest of ice cream experiences. Oftentimes the spoon breaks. Sometimes the end user gets a splinter.
Coding approached this way usually results in a train wreck. Often the only concerns are the cost and sometimes the delivery date. Just as with these ice cream "spoons", such code is ill-equipped for the vigor of common use.
Aside from perhaps prototyping products, there is little to no reason for an enterprise to ever code with this approach, and yet many do.
Core attributes of ice cream spoon code
- Barely functional
The Plastic Spoon
A plastic spoon is a definite upgrade to the ice cream stick. They share most qualities with the better spoons of the world, but are still affordable. They are economy spoons - working fine for a quick bite to eat while traveling to a destination, but not up to the rigors of daily and protracted use.
Unlike the wooden ice cream spoon, there can be legitimate reasons to take a plastic spoon approach to enterprise code, though such approaches should be with the knowledge and direction of product stakeholders.
Intentional plastic spoon code is written to accomplish a very basic and functional need for a very short period of time. Despite having a form similar to more durable code, longevity is unlikely.
Plastic spoon code can support light use but is not a good candidate for heavy and continuous use and has a limited life expectancy no matter the intention.
Intentionally, software with very limited life expectancy, and software written to support very little use falls under such a category. Unfortunately, many products are plagued by plastic spoon code unintentionally. Such code starts out with better ambitions but suffers poor quality due to time, budget, or (more often) lack of oversight.
Core attributes of plastic spoon code
- Limited reliability
- Low cost
- Moderate use
The Basic Metal Spoon
The basic metal spoon is a staple implement in countless homes around the globe. They are affordable, reliable, and dependable. They're able to withstand high use but for minimal investment.
Most enterprises desire their code to fall into this category - code that serves it's primary purpose and does it well, but without extreme cost.
Such code is reliable and can withstand the rigors of ongoing use. It's not ornate, nor does it need to be. Such code is also not brittle and can adapt well to changing conditions. It is made from better resources. It's durable.
Many stakeholders assume this is what their project budgets are achieving and expect that because they are paying for a metal spoon, they're getting a metal spoon. Unfortunately, such assumptions are often incorrect. It's often not until it's too late that many organizations discover they got the ice cream stick or plastic spoon quality for metal (or even silver) spoon prices.
Core attributes of metal spoon code
- Moderate cost
- High use
The Silver Spoon
A silver spoon is functional but unnecessarily ornate and costly unless one's intent is to make quite a statement.
In today's business environment, enterprise code rarely needs to have this level of quality. Technology changes at blazing speeds and is often replaced in months versus years.
Short product shelf life doesn't warrant such extravagance.
To a spoon craftsman, a silver spoon may be a work of art. However, no matter how ornate and perfect some code is, to someone who needs a durable spoon all the extravagance is mostly meaningless.
In the enterprise, the silver spoon approach is revealed by development teams who are emotionally concerned with the code quality at an egotistical level. Pride and reputation of the contributing developers takes precedence over the best interest of the business or the client.
Core attributes of silver spoon code
- Overly complicated
- Endlessly refactored with need
- Incorporates the latest vs the greatest
- High cost
- Portfolio/resumé code
It is often difficult for non-technical project stakeholders to evaluate the true quality of project code. WASI can provide impartial third party technical code reviews and help your code meet the code quality standards you embrace. Click here to find out more.