Defending Loose Coupling in a Corporation
December 27th, 2007 Posted in design, ideas, code, technology, development, django |
2 Comments »
I am working on an argument for loose coupling. I have had several instances lately where I have had to defend the practice to entrenched ideologies. There are still a lot of folks that want to mix content, logic and presentation.
I completely understand wanting to have the freedom to mix presentation and content. the need to quickly “see” how a page is taking shape makes sense. However, the practice can really muddy the waters.
Read the below draft and let me know your thoughts:
Keep Em Separated
How loose coupling provides more profitability.
The tech team’s basic development philosophy is based around an idea called loose coupling. This philosophy is designed to keep three very important elements separate from each other. These elements are called Business Logic, Presentational Logic, and Data.
Business Logic is simply the how and what of an application. When a user clicks this link, what happens. When this form is submitted, what response will the user get? The logic is the “magic” that make the application do what we want it to do.
The Presentational Logic is what does the site look like? What are the colors, where are the buttons and more. Basically, what is the end users visual experience with our products.
The final piece of the puzzle is data. The data is the raw “stuff”. The images, video and text. The content for the site.
Keeping these elements separate helps facilitate four very important strategies.
- Scalability
- Accessibility
- Portability
- Flexibility
Scalability:
Keeping an application scalable is crucial to its continued success. As a product becomes more successful, or the user’s needs change, being able to scale the product will ensure future use. Scalability does this by planning ahead for growth to avoid being surprised by inefficient processes and slow designs.
Accessibility:
By practicing loose coupling, you can also ensure that as much information as possible is getting into the “hands” of those that need it. If the data and the design are separate from each other, a screen reader will have a much easier time reading content that does not have code embedded in it.
For example, when using a screen reader, the user must listen to the reader read through the text. If styling is embedded in the content, then the reader will read that as well. It can be very disorienting for users.
Portability:
Loose Coupling is very import for portability. We have already begun to discuss making some of the ORCAS project available to mobile devices. Additionally, Adobe Air offers some excellent user opportunities as well. But if the content that we use, or the design we have created, has been mixed with another element, than this will need to be removed, often at great expense, to be used in a different way.
NEED TO ADD NOTES ABOUT SCORM HERE
Flexibility:
Being able to move a program form one use to another helps the bottom line. If you can repurpose content, or logic, or design, that is one less time that something needs to be created. If I can develop content and store it in such a way as to have it used in different place, I have made that content more profitable. If the design that we have created turns out to not work in Firefox 3 or in Internet explorer 8 it is much easier to just modify the design instead of the design and content enmeshed together.
So, when you are creating or inputting content, please make sure to keep these ideas in mind. If what you are inputting will somehow effect the behavior, position, or coloring of a piece of content directly, please reconsider. Please keep your styling of content to a minimum. For example, h2 and h3 tags are great, but applying the header tags and a color would be inappropriate. This would mix the content and the presentation and would need to be removed later.
The designers and developers are rapidly working to make as much as possible happen automatically. If there are tools that you feel you need to have added, please let us know. We want to give you the flexibility that you need to get your job done.
