Tuesday, June 23, 2009

Separation Of Concerns Can Have an Effect on Your Company

In software engineering separation of concerns is a design principle which breaks down the characteristic of different elements in a design in such-a-way as to hide the design decision from other elements. Through the use of separation of concerns, a system can be broken down and layered into different spheres of concerns. This break down allows for more maintainable, flexible and, modifiable systems. In general it is a best practice to follow the separation of concerns design principle.

The separation of concerns also has another effect, but this effect goes beyond the system. The separation of concerns effects the way a system is built. The way that most systems are built, teams of people are broken down along the lines of which different elements in the system they are building. These elements are created when the separation of concerns design principle is followed and different spheres of concerns are created.

Like-wise, on a larger scale, whole companies can be broken down using the separation of concerns design principle. Think about it, most companies have different departments doing their accounting, legal issues, IT, etc. This brake down of a company along different departments follows the separation of concerns design principle.

As you can see the separation of concerns design principle effects more than just the design of a system. Separation of concerns, can, does, and will effect the organization of your team, area, department, and even the company as a whole.