I'm in the middle of a renovation. A new layout, flooring, installations, the whole house is being overhauled. And as I walked through our home again yesterday to admire the progress, something struck me: this renovation actually has a lot of parallels with software development. Because just like with a good construction project, software isn't just about what you build, but especially about how you collaborate.
1. A good design starts with the right questions.
In the preliminary phase of the renovation, we worked together with an architect (Haajee architectuur). He didn’t just think along with what we wanted, but also asked exactly the right questions: What’s important to you? What do you want to be able to do that you currently can’t? Through those conversations, we arrived at a design that’s not only beautiful but also makes sense in terms of functionality, light, space, and layout.
It’s no different in software. A good preliminary phase is more than just creating wireframes. It’s about jointly exploring what the core of the application should be, which processes matter, and what users really need.
At Leukeleu, we often start with a "sprint 0" or technical analysis. Not to cause delays, but to build faster and more purposefully on a solid foundation.
2. Good communication means better understanding
Our contractor (Bouwbedrijf de Graaff) explains what he’s doing, why something needs to be done a certain way, and what the impact is. As a result, we understand what’s going on, even if we’re not experts ourselves. The same applies to software. When developers communicate clearly about decisions, dependencies, and risks, the project not only improves, but trust also grows. Because only when everyone understands things together can the right choices be made.
“ A good design is no coincidence. It arises from asking the right questions before you start building. ”
Bart Heesink
3. The cheapest option is rarely the best choice
We didn’t go with the lowest quote, but with a contractor who is realistic about costs, timing, and risks. No surprises afterward, just clear agreements and openness when things turn out differently. The same goes for software development. Too often, projects are started on the cheap, only to later get stuck in technical debt, unforeseen extra costs, or poor maintainability. Transparency and realism are more valuable than a low entry price.
4. There are always surprises
You remove a wall and discover there’s no steel beam where the original blueprint said there would be. Not everything can be predicted in advance, and yes, that can be a bit stressful. But with a good contractor, you solve it together. In software development, you also always run into surprises. Unexpected dependencies, unclear business logic, bugs. The point isn’t whether it happens, but how you deal with it. An open, flexible attitude is worth its weight in gold.
5. You can recognize craftsmanship by the joy in the work
What stands out? Our contractor and his team enjoy what they do. You can tell by everything: how they communicate, how they finish things, how they handle setbacks. The same is true in software, you notice the difference when people are energized by their work. You don’t just get a minimum viable product, but something crafted with care, with that extra touch. Craftsmanship isn’t just about skill; it’s also about dedication.
Our current customers/partners have been with us for (on average) 9.2 years
professional work experience developers
6. Planning is difficult, flexibility is essential
Of course, our renovation has experienced some delays, deliveries, weather conditions, shifting schedules. But because we keep aligning with each other, things don’t spiral out of control. Software projects face exactly the same tension: you want structure, but you need to be able to adapt flexibly. Working Agile helps, but it also requires realism, trust, short lines of communication, and mutual understanding.
7. Collaboration makes all the difference
You can have the best blueprints, the finest materials, and a tight budget, but without good collaboration, it will still become a frustrating experience. Building software is people work too. In the end, mutual respect, openness, and shared responsibility make the difference between a difficult project and a partnership you can rely on.
What you build is important.
But how you build together is what really matters. Whether you're working on a house or an application, lasting quality only emerges when people understand and trust each other, and are given the space to build, with craftsmanship and joy.
Want to know more about how we build software? Check out our approach ›
Schedule a no-obligation introduction!
More articles
- Impact Mapping: Turning software into real business value
- Code with a soul
- How can we become less digitally indifferent?
- Responsible use of AI
- Experimenting with Vibe Coding: a new way of working
- How Leukeleu's contribution to open source strengthens your digital security and privacy
- django-hidp: A Complete Authentication System for Django Developers
- Digital sovereignty
- Python & Django
- ISO 27001 certification replaces hope with certainty