Software: Divorce your UI
Over the last few years I’ve seen a couple instances where separation of the UI from the business logic would have really given a company a competitive edge. Now that I’m looking into web services and seeing the mobile market take off it really hits home how very important this is.
Let’s start with the question, “What is a UI?”
A user interface (UI) is the part of a program that a person or machine interacts with.
This can be a command-line interface, a GUI, or a web service. I’m going to explore the benefits of the different UI options:
Adding a command-line interface can:
• Provide your QA department a way to test basic program functionality in an automated fashion. Once an automated test environment is set up, it can run overnight unattended, regression test existing code, and basically saving a lot of time and money.
• Provide customers a way to run your application in a batch process which opens up the possibility of running your application on a grid.
Graphical User Interface
Here are some GUI thoughts:
• Windows based UI provides a way to graphically interact with the business logic through a client.
• Browser based UI that opens your product up to other operating systems and remote access.
• Mobile UI that can make your product available in a whole new way.
Adding a web service interface can:
• Provide the QA testing benefits of a command-line UI.
• Open your application up to other companies to build products that use your data and processes. Perhaps creating partnering and/or service opportunities.
So if you managed to hang with me this far then I hope that this got the wheels turning in your head. Ask yourself, “How separate is my business logic from my UI logic?” If the answer is “Very” then perhaps you should consider adding some of the other UI options. If the answer is “Not” then perhaps you should consider starting a refactoring project. By creating separation you empower your company to more quickly respond to change. Faster time to market, increased productivity, and improved product quality can all be yours by separating the code.