Creating enterprise software system is incredibly
Keeping it useful and relevant
is even more
That’s the percentage cost spent on maintaining large enterprise
is not only essential but desirable
LOC on March 2004 – 14 K LOC on August 2013 – 1.3 M
is it difficult to modify and enhance an application?
My personal journey and why I am passionate about this subject.
Development spends too much time in understanding existing
Class names are too generic and hence the responsibility of a class
gets wide and complex
Business rules are spread across multiple architectural layers
Too many if / else and switch / cases in classes
Direct usage of implementation classes in parent modules
Section 5.2 on ,  and 
“Technical Debt is a wonderful metaphor developed
by Ward Cunningham… In this metaphor, doing
things the quick and dirty way sets us up with a
technical debt, which is similar to a financial debt.
Like a financial debt, the technical debt incurs
interest payments, which come in the form of the
extra effort that we have to do in future
development because of the quick and dirty
- Martin Fowler
Section 5.3 on 
“There are four primary symptoms that tell us that
our designs are rotting. They are not orthogonal,
but are related to each other in ways that will
become obvious. they are: rigidity, fragility,
immobility, and viscosity.
- Uncle Bob
BIG BALL OF MUD
Visit the links ,  and 
Open your most recent project and search for classes with *util*, *helper*
Essentially leads to
Forcing your team to continuously work long hours.
Burning out your best team members.
High churn rate of resources.
Create psychological divide between development, testing and
Setting up your team member to just play safe.
Basically, unpleased work environment.
At the worst - completely scrapping the project.
Congratulations!!! You have unleashed the
TAME THE BEAST?
So, how do we
While embracing change
The design with least amount of cascading disruption.
The business and the business constrains through
As a system evolves, its complexity
increases unless work is done to maintain
or reduce it.
So the magic ingredient is …