Clean Architecture. Why it matters?

While reading Robert C.Martin, Clean Architecture book, I came across a lot of real-world scenarios where productivity of code vs revenue gets stagnant over few releases of the product. From the business point of view, you want to make sure that you are getting the most value for your buck for the stakeholders.

In the book, Robert mentioned a case study for a real estate company which over the years their productivity remains constant (after 8 releases or so) and the cost to maintain the code multiplied by 10 times. So, that means if you started with $1 Million budget, then now you are shelving $10 Million with less or minimal throughput.

So, what went wrong here?

Let’s look closely with some graphs (credit: Robert C.Martin’s book)

Graph 1:

As you can see that in this graph, we are seeing the sheer scale of engineering staff dramatically increases over the course of time. By 8th release, your staff is almost tenfold as compared to release 2. Not good!

Graph 2:

In graph 2, by the time you are at 8th release the growth of the code reaches a stagnant value. Clearly, something is not right.

Graph 3:

What really scary here is the cost and with every release its growing exponentially. Boy! Upper management is not going to love it. As Robert put it, this looks like a signature of mess.

Graph 4:

This is what developer sees. They started out with 100% productivity, but with every release, it went down.

Graph 5:

This is what executives see. You can calculate what is going on their minds…Phew!

WHAT SHOULD WE GET OUT OF THIS?

Have you heard a saying “slow and steady wins the race”? Similar to this saying what happened here. Developers usually get into the game of developing without giving a good thought as to how to architect a better solution.

IMHO every architect of any project should take time to think and articulate as which of the designs will be better for the project. It is more to just coding! I firmly believe in clean architecture.

until next time…

Advertisements

Author: Raj

Sitecore Enthusiast

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s