In many projects, the architecture journey starts with several iterations at the high level:
- Gathering requirements from Product Owners (POs)
- Creating a high-level architecture
- Refining architecture with the team
After completing these steps, I created a high-level estimate based on the capabilities and experience of the current team.
💬 The Conversation That Followed
PO: This is too much. We don’t have time to implement such a big solution.
Me: The solution is based on your requirements. If you update the requirements, we can rethink the solution accordingly.
PO: Can’t we just create a simple script instead of building all of this?
Me: Sure — if it’s going to be implemented by a different team whose purpose is building business logic directly in the database.
But our current team’s expertise is in C# with SQL Server as a backend. They don’t have deep knowledge of maintaining complex logic in the database layer.
Adding DB-level business logic increases long-term maintenance costs. Our team is aligned around development practices like writing automated tests and applying clean separation of concerns. A tightly-coupled script would:
- Require regression testing with every release
- Increase the chance of bugs or performance issues
- Introduce DB-level complexity in a high-data-volume environment (hundreds of millions of rows)
PO: Okay. (Then he went behind my back and asked the team to try the script anyway.)
Thankfully, the team spotted performance and architecture concerns, and they politely declined the “quick fix” and referred the PO back to the architecture team.
✅ The Resolution
We regrouped and refined both solutions — the shortcut and the long-term design. We documented pros and cons, estimated each properly, and made a clear recommendation for planning.
“If the requirements add real business value, the PO will prioritize it. If not, the solution can be discarded.”
🧠 The Takeaway
There are no shortcuts, only short-term illusions.
Quick fixes often introduce long-term technical debt, performance issues, and inconsistent development practices. The better path? Build realistic solutions that align with your team’s strengths and product vision — even if they take longer initially.
🤝 Have You Experienced This?
Have you been in a similar situation where a “quick fix” was proposed at the cost of long-term quality?
Share your story in the comments. Let’s learn from each other.