Building Software? It’s Like Painting Walls
The quality of both types of projects depends on the quality of the prep work
Experienced painters say that the biggest difference between a beautifully painted wall and a botched job is in the preparation.
It certainly takes time to prep the wall, tape the edges and remove the sockets — but all that time investment pays dividends at the end of the job. Amateurs will spend long hours removing brush marks, mopping up drips and giving a second coat, while professionals have already moved on to the next job.
Sounds familiar? If you’re in software, it very well might.
The Intricacies of Software Development
OK, so building software isn’t quite the same as painting a wall. But the fundamentals are all there. You can’t just grab VSCode, copy-paste some code from StackOverFlow and call it a day as soon as the app starts to resemble the design specifications. Good software is the result of a lot of planning work.
You can spot a good paint job when you see it. High quality speaks for itself, and we can tell when a project was executed well from start to finish. It’s the same with software. It’s easy to see an amateur app: they crash, they do unexpected things, and there are telltale signs all over the user interface. Text that didn’t get translated, inconsistent colors and fonts and missing buttons are all signs that specifications got overlooked, and there wasn’t enough time left to fix them.
When you have a team of ‘slap the paint on’ developers, they’re technically doing what’s needed to build the product. But they may not be doing all the critical “extras” that are needed to ensure the product is secure, usable, and completed on time. If you miss these points the product will likely fail.
The Mopping Up
“We’re at 90% with the product, so there’s only 90% left” — project managers used to joke about their progress. This is the time when most of the features are completed but the product wasn’t yet tested by the QA team nor customers.
The “mop-up phase” is the most critical time in the development process, and this is where the team will learn the truth about product quality. Great developers with well architected products generally allow for quicker bug fixes — while others scramble and keep introducing new bugs every time they fix one.
All this difference can be explained by how the team got to the 90%. With painting, if a hole in the wall wasn’t fixed before the paint job, that hole is probably best to leave there until the next time the wall needs painting. And similarly, fixing a “small bug” in badly architected software might be the start of a huge refactor job — and suddenly the mop-up phase is turned back into a full-on programming sprint.
Bringing Wallpapers to a Fight
Agencies do not react well to sudden changes from clients, and they also like to arrive at the job with a solution they have already used at other clients’ projects.
They are the painters who arrive at the job with a set of wallpapers that they know how to use and slap on in a short amount of time. Agencies have to work within their constraints to stay within budget and be profitable — so managing these details and changes is the most important job for an agency-facing project manager.
Slap it on
It’s on the home stretch where complicated issues start to pop up. Where the QA team uncover weird bugs. Where the client suddenly decides a new feature needs to be added. The last few sprints suddenly turn into eight!
In both painting and software, the ‘little’ things can be some of the most time consuming. It’s getting everything prepared and cleaned up that takes time, so it’s no wonder that these are the bits and pieces that often get brushed under the rug. In software, putting unit tests, or a component library in place, setting up CI/CD, a separate development environment is just as important as “prepping the wall” for painters.
Every team needs members who can ‘slap the paint on’, but managers need to ensure to have people onboard who are willing to put that 90% of time in to finish off the final 10% in the best possible way.