There are so many options nowadays for everything we do, and it’s everywhere. You can use 10 different programs to send emails, read the news on paper, websites, feedly, flipboard, pulse…build the identical software functionalities using C, java, Php… the IT eco-system is getting wider by the minute, and it’s close to impossible now to keep up with everything that’s happening around you.
When it comes to building software solutions, the same principle happens : a developer could build a line of code 10 different ways, a network engineer choose many different routing protocols, a software architect could build integration many different ways to achieve, in the end, the same result. Well, technically not really, but business oriented people don’t see that…however, in the end, the choices you make always have an impact overtime on the solution you build :
Solutions do not or can not evolve
Security issues or software flaws are discovered
Performance issues arise overtime
Complex undocumented solutions cost more than re-doing them
So how to build elegant, scalable and durable solutions ? Simplicity plays a big factor in the success of your projects, and also tells you a lot about who you are working with. So here’s my take on why simplifying should always be in the center of any discussion :
Simplicity is incredibly hard to achieve : resolving complex problems using the least complicated solution can be tricky. In fact, it’s an art. Often clients thinks their problem needs complex solutions, but that’s not the case.
Complexity obfuscates the real problem : whenever there is complexity involved in building solutions, it further draws you away from what you are actually trying to achieve. It may actually mean you haven’t elaborated your problem precisely enough and thought of all the possibilities.
Simplicity demonstrates knowledge : Being able to take a complex requirement and fulfill it simply means you or your supplier has a good knowledge of the tool you are working with, and knows what string to pull to solve a particular problem. Also, it often means you are using the most adapted solution to a problem.
Simplicity may require compromises : In every business decisions there are trade offs. When a solution cannot be made without a trade off, or when a solution requires additional complexity, then you should weigh the impact of that extra layer of complexity very carefully : security risks, maintenance over time, extensibility, fit with your business processes…These needs to be carefully analysed.
So start this new year striving for simplicity !
wordpress theme by initheme.com