To build systems that are maintainable, and likly to make our customers happy, both now and long into the future we need to make sure they meet more than todays requirements. They need to survive the years of operation, and the inevitable upgrades that business change demands.
One of our key strategies must be to keep our designs as straightforward and understandable as possible, we might be the best developers in town, but what is the point of building elegant masterfull code, if mere mortals can't understand it?
When building enterprise systems, there is always a tendancy to go way over the top, with Architecture and Technology. My advice is to keep it simple, and you will be remembered for delivering great solutions, that are fit for purpose.
But let's not forget that "Simple" doesn't mean "Dumb", to build simple systems we need to get smart, and think through our designs to make sure they cover all the bases, but look straightforward, Like all experts we need to make a complicated job look simple.
When modelling, continually refactor the design, aim to simplify it, work on introducing good abstractions, then remove all the stuff you don't need, keep it clean and lean. When you are done, and you present it for review, it should look obviously "correct". Expect, even work for, comments like...
"Flippin ek, its taken you all that time just to produce that, it looks like you did it on the back of a fag packet last ninght!"
To these folks, you will be their hero.
Read More......