A day in my life. Thoughts on leadership, management, startups, technology, software, concurrent development, etc... Basically the stuff I think about from 10am to 6pm.

2/14/2006

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:

Command-line UIAdding 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 InterfaceHere 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.

Web ServiceAdding 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.

1 Comments:

Zimbra is an example of a company taking advantage of that UI divorce that many internet companies (Google, Yahoo, Amazon, etc) are developing. The company sells a hosted email client that auto-highlights words/phrases in your emails and implants links. Hover over a URL and Zimbra displays a thumbnail of that page that it fetched from Alexa's API; a book title will throw up a window with information from Amazon's API; an address, a Yahoo Maps window.