In the world of software development, I have seen one idea pop up more times than I can count “Getting it done is more important than making it perfect”. While I understand the idea (we all have deadlines), I’ve never really accepted it. If “done” means shipping messy code that makes it impossible for the next guy (or even worse – myself) to go through and fix, are we really fixing the problem?
Innovating in development isn’t about new, shiny code. It’s about building real, practical solutions for the specific use case
Innovation > New Code
We often mistake activity for progress. Writing 1000 lines of “new” code to solve a problem that can be fixed with a little brainpower and 50 odd lines of code. We need to determine the exact use case and work towards the best solution, not write more code to fix the previous problem caused by writing more code.
Elegant Solutions > Old Problems
We are often tasked with solving problems that have existed for years. Usually just slapping on the same old patches. But an elegant solution is different. It addresses the root cause while keeping the project flexible, fixing the now issue and keeping the code simple enough to fix the next issue.
Better > Done
A project is “done” when the ticket moves to the right column. A project is better when it’s scalable, readable, and perfectly fitted to the specific needs of the user.
In my work, I focus on the current use case. I don’t expect to bore a tunnel through a mountain when a well built bridge across the valley is needed. But I also won’t hand you a bridge that collapses after the first gust of wind. It’s all about finding the balance, the right infrastructure for the current environment.