Yesterday I wrote about the Process Mafia. There is another breed of software professionals. They are the Architecture Mafia.
I have always believed that simplicity is the key to good software. I read the three rules of good software design somewhere:
1. Keep it simple
2. Keep it simple
3. Keep it simple
Whenever we design software, we should do so in the simplest manner that does the job. Unfortunately, there are architects who do just the opposite. They will introduce unnecessary layers in the architecture to impress their boss, show off their knowledge and win brownie points with the customer. The customer of course, never realizes what he's getting into.
The end customer wants a solution that works. He couldn't care less if you use the next big thing in web technologies or good old C. He wants the job done. And it should be easy to maintain. These are the main things most customers care about (or should care about).
But the architecture mafia don't get it. Their biggest failing is that they are unable to live up to their ability. Instead of keeping it simple, they try to use technologies that have just been introduced into the market, need a few years to stabilize and are very raw.
This leads to a large number of problems. You don't have enough people in the company or even in the market who know the technology. There isn't anyone senior enough who knows the technology inside out. And heaven forbid, if the technology fails to mature, the customer is doomed. There will never be anyone to fix problems that will inevitably crop up later in the life cycle of the application.
While architecting the application and designing its components, unnecessary but fancy stuff is introduced for no reason whatsoever other than to look good on paper. That it will make life miserable for every individual associated with the project down the line does not strike.
I don't claim to be an expert. But I do have common sense. And keeping it simple makes a lot of sense to me.
I have always believed that simplicity is the key to good software. I read the three rules of good software design somewhere:
1. Keep it simple
2. Keep it simple
3. Keep it simple
Whenever we design software, we should do so in the simplest manner that does the job. Unfortunately, there are architects who do just the opposite. They will introduce unnecessary layers in the architecture to impress their boss, show off their knowledge and win brownie points with the customer. The customer of course, never realizes what he's getting into.
The end customer wants a solution that works. He couldn't care less if you use the next big thing in web technologies or good old C. He wants the job done. And it should be easy to maintain. These are the main things most customers care about (or should care about).
But the architecture mafia don't get it. Their biggest failing is that they are unable to live up to their ability. Instead of keeping it simple, they try to use technologies that have just been introduced into the market, need a few years to stabilize and are very raw.
This leads to a large number of problems. You don't have enough people in the company or even in the market who know the technology. There isn't anyone senior enough who knows the technology inside out. And heaven forbid, if the technology fails to mature, the customer is doomed. There will never be anyone to fix problems that will inevitably crop up later in the life cycle of the application.
While architecting the application and designing its components, unnecessary but fancy stuff is introduced for no reason whatsoever other than to look good on paper. That it will make life miserable for every individual associated with the project down the line does not strike.
I don't claim to be an expert. But I do have common sense. And keeping it simple makes a lot of sense to me.
Comments