Adaptability
Many systems begin with an assumption.
“That will never happen.”
“We’ll never have more than three participants.”
“The same person will never use both locations.”
These are the kinds of sentences I hear at the beginning of almost every project.
And they almost always become the next problem.
While designing registration systems for summer camps, I realized that the real goal wasn’t to build a process that handled today’s situation.
It was to build a system that could adapt to tomorrow’s.
Every year brings new locations, new schedules, new promotions, different availability, new partnerships, new rules, and new ways of registering.
Instead of turning every exception into a software update, I tried to build a framework based on general rules and independent modules.
The information changes.
The rules of the system change much less.
Most of the work simply becomes updating the data.
Not rewriting the process.
Over time, I realized that designing also means resisting the temptation to turn assumptions into constraints.
When I don’t know all the answers yet, I’d rather leave a door open.
Because requirements change.
People change.
Organizations change.
A good system should be able to change with them.
It’s the same principle that makes ecosystems resilient.
They don’t survive because they’re perfectly optimized for a single condition.
They survive because they can adapt when that condition changes.
That’s how I try to design systems.
Assumptions grow old. Good principles last much longer.