I’ve been a programmer for about 5 years now and only recently have I discovered what I believe is the most important aspect of software development that every developer should be aware of, and that is to keep-it-simple-stupid!
It is such a simple and widely used statement yet not many people follow it. I’ve been reading this Book called Enterprise Architecture Planning by Steven Spewak and I came across this passage:
“As an organization grows and becomes more complex, management makes greater demands of their information systems function. They require timely access to data whenever and wherever needed, a useful format for data that can be easily interpreted, accurate and consistent data throughout every department, responsiveness to rapidly changing business conditions, and sharing of data across the enterprise.”
Basically what they are getting at is sharing data with those people that need it at any given time. This book was written a long time ago but the same principle can be applied to modern day development. The need to share data between departments in enterprises is still prevalent today, but since this books conception another platform has emerged where sharing of information is important…the internet. Through the internet we are all able to share information with each other anytime and anywhere, so the need to share it in a manner that is readily available and in a useful format is of the utmost importance.
Let’s take a look at a typical example; social networks. Why are they so popular? Why are there are so many of them out there? The reason is that these networks allow people to share information with people from all over the world. It doesn’t matter whether we actually know each other in “real life” or not, we just share. To most people, the technology behind all these networks doesn’t matter. It doesn’t matter how facebook manages to scale the way it does or which language it is written in, or how twitter manages to allow millions of people to send in updates about what they are doing. All that matters is they are able to connect and share pictures, video, music and blogs with their friends and family. What’s happening under the bonnet doesn’t matter. And that is where our focus should as developers; giving people the information they need.
Now been able to provide ONLY that which is necessary is not very exciting. As programmers we always want to try out the latest and (supposedly) greatest tools out there. It’s always fun to play with the latest development framework or language that has come onto the market, but the fact is, we only need to do what is required. What this also boils down to is writing the simplest code possible. Nothing fancy, just that which is required. There are several benefits to this including:
- Code is easier to maintain
- Shorter development cycle
- Less bugs
- Happier users (They can easily do what they need to)
- Happy clients (You deliver an application that does what it needs to)
- You could even see performance improvements, because there is less overhead to deal with from unnecessary components.
Been able to deliver an application that does what it’s supposed to in the simplest way possible is dependant on many factors including good knowledge of data requirements by the users and clients, understanding how the business works, who needs access to which data, etc but that is out of the scope of this article. If those other factors have been addressed prior to the commencement of actual coding, writing the application should be a lot more pleasant process.