There is only one problem with finishing the job. When your work is complete and your software is integrated, it can sometimes be timely and expensive to modify your work.
Just like in the case of a new home or car, great software meets the initial needs of the user. However, after initial use, requirements change and the flexibility and speed to change becomes very important. For example you wouldn’t want to have to rebuild a wall just to wallpaper it, or to have to change the engine of a car just because you added a body kit?
Similarly in front end applications changing the “user experience” should have no impact to business logic/processes.
The starting point is service-oriented architecture (SOA), an approach to software development that has quickly moved from the margins to the mainstream. Great SOA will allow the business to re-use existing components in new and exciting combinations.
Here-in lays one of the problems of SOA, the majority of focus has been on creating “re-usable” services. Whilst this provides significant advantages we should not be complacent and lose sight of “layering” and more specifically “de-coupling layers”. Keeping the data source, separate from integration, separate from business logic separate from presentation provides much greater benefits that creating discrete re-usable services alone.
Always think in a decoupled manner. Create as few dependencies between the application layers as possible. Such breaks will allow you to make changes and reduce the risk of defects further into the system..
The most important focus should be the presentation layer. As the user interface, this is the layer that users will want changed most often, a bit like redecorating your home every few years.
However many approaches to quickly creating front end applications require the use of bound controls, thereby creating a hard link between the front end and the underlying business logic. This hard link means that if you need to change the data source you have to change your front end screens to map to your new data source.
A better separation would allow you to change a data source without affecting the screens at all.
Decoupling the presentation layer – and holding information as a session variable – makes it easy to undertake alterations, loosening the tight reins between screen display and back-end coding.
Whilst layering is very important to an application the decoupling of the presentation layer should be of paramount focus as the majority of changes will be in the front end and hence will require the greatest flexibility. This flexibility in the front end presentation therefore focus’s on the needs of the user. Which, in the end, is all that matters.