DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy
DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy
DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact
← Back to Blog
Software EngineeringDecision MakingBest Practices

Software Criteria: Knowing What to Choose, and Why

October 28, 2026 • 5 min read

Software Criteria: Knowing What to Choose, and Why

Picture two friends with the same budget, both shopping for a car. One comes home with a sports car because it is fast and looks great. The other buys a van. Neither made a mistake about cars. They just had different jobs ahead of them. One was moving house the following week, and the other was not.

Software decisions work the same way. There is rarely one best answer. There is the answer that fits the situation, and there is the reasoning you can give for it. Knowing what to pick matters, but knowing why you picked it matters just as much.

Criteria are choices, not rules

"Fast" and "simple" are useful words, but they are not commands. Think of them as gears on a bicycle. You do not use the same gear for a steep hill and a flat road. A criterion only helps when you know what road you are on. Before you pick one, ask two things: what does this software need to do well, and what would make it fail?

Start with the context

Context is the ground you are standing on. It includes who will use the software, how long it needs to last, how many people will change it, and how much money depends on it.

A small script you run once is like a paper map for a weekend hike. Nobody needs it to be perfect, and it can be thrown away when you are done. A banking system that has to run for twenty years is more like a bridge. It has to carry heavy traffic for decades, and nobody wants to tear it down and rebuild it every few years.

The same criterion can matter very differently in each case. Speed hardly matters for the paper map. On the bridge, it matters a lot, because thousands of cars cross it every day.

Minimalist flat illustration of a folded paper map lying beside a stone bridge over a calm river, thin line art, dark gr

Ask what a mistake would cost

Start with a simple question: if this breaks, what happens? If a bakery's website shows the wrong opening hours, a customer is a little annoyed and sends an email. If a payment system charges someone twice, the business loses money and the customer loses trust. Engineers call this the cost of being wrong.

When the cost is high, it makes sense to spend more effort early on: extra safety checks, careful testing, and security built into the design from the start. When the cost is low, you can take the quicker, simpler path and improve it later if needed.

Think about a "Wet floor" sign. In a quiet home kitchen, a small note on the tiles is enough. In a hospital corridor, people need a physical barrier. The sign is the same in both places, but the risk is different, so the right choice is different too.

Two side-by-side minimalist scenes in thin line art: a quiet home kitchen with a small paper note on a clean tile floor,

Accept trade-offs on purpose

Almost every choice costs something. A flexible design that can handle many future cases is harder to understand today. A fast, specialized solution is harder to change later. This is a trade-off: you gain one quality and give up another.

A trade-off is not a failure. It only becomes a problem when nobody chose it on purpose. Consider a Swiss Army knife and a box of separate tools. The knife is handy on a camping trip, but a carpenter still wants a proper saw. Neither is better in general. What matters is which one fits the job in front of you.

Here is a small example of a deliberate choice. Say you are keeping a shopping list for a personal app:

// A plain list: quick to write, no rules enforced.
const shoppingList = ["milk", "bread", "eggs"];

For a personal note, this is a sensible choice. It is simple, and if something goes wrong, you forget an egg. Now imagine that the same list tells a store which products to ship to customers. A typo or an empty entry now has real consequences, so a stricter structure that checks each item before accepting it becomes worth the extra effort. The code is different because the situation is different, not because one version is better.

Minimalist illustration of a Swiss Army knife on one side and a carpenter's handsaw on the other, both resting on a wood

Write down why you chose it

Decisions fade from memory faster than you expect. Six months later, a teammate looks at an odd design and asks, "Why would anyone do it this way?" Often, nobody remembers.

A short written note fixes that. Engineers call these architecture decision records, but the idea is as ordinary as a note on the fridge explaining why you bought a particular lock. Write down the context, the options you looked at, the choice you made, and the cost you accepted.

A written reason turns a personal opinion into knowledge the whole team can use. It also makes it easier to notice when the situation has changed and an old decision no longer fits.

Conclusion

Good software criteria are not a checklist you run through once. They are a way of reasoning: understand the context, estimate what a mistake would cost, accept trade-offs on purpose, and write down your reasons. The sports car and the van were both good purchases for different roads. Your task is to know which road you are on and to be able to explain why you picked the vehicle you did.

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy