Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now


Building a Flexible GUI

The good, the bad, and the fountain of useful knowledge. There is a wide variety of information to be pulled from every project worked on. We gain knowledge of what clients like, prefer, and what confuses them. There is such a vast variety of personal preferences that sometimes just beginning can be overwhelming. Start simple and leave the opportunity for growth. A client project created for success starts with a simple system that includes a scalable foundation for changes or growth of additional features.

The Graphical User Interface (GUI) is the face of the system. It is the means by which flexibility is achieved. A users first interaction with their system will be via the GUI, so ease of use is crucial to creating comfort between the client and the system. Delivering a flexible GUI in a scalable project has benefits to both the user and the implementer.

Starting simple does not always mean simple in functionality. Many system devices these days can be very complicated and confusing with functions that an average user may never use nor need. Knowing your clients expectations of a system is critical in determining what functionality to give them. Being familiar with the devices that you are controlling is just as important when creating a flexible GUI. Certain devices have a wide variety of options available. Know your options and minimize the need for multiple steps to create simple solutions for more complicated tasks.

For example: TiVo offers a wide variety of quick access functions. Programming multiple functions into device buttons provides easier control to the end user. Creation of season pass manager or to do lists can make programming your DVR easy.

The use of variable text (text controlled by program code) allows implementers to service on-site client changes quickly and painlessly. If a client decides to renovate a room or change the nomenclature for certain areas of the house, buttons with hard coding require time-consuming, manual changes; but variable text fields can be readily and remotely changed in the software program. In addition to implementing variable text, you can keep costs relative to the outcome and deliver higher client satisfaction by:

Limiting changes to program loads as opposed to long GUI touch panel downloads
Creating text-based icons to allow non-design implementers to make rapid changes on the fly
Delivering GUIs that control more than one area
Minimizing the use of multiple platform variations and maintaining consistency within those platforms.
Curtailing the use of custom art for buttons, gauges, and icons

These tips allow functionality to drive the GUI design instead of content and/or artwork. Imagine the maximum amount of features that can be delivered within any given project. Review the entire set of features and decide which functionalities can be combined. Can lights and drapes be grouped together? Can audio and video be combined? If you design for maximum utilization and then begin grouping similar features together, you create space for future growth or specific functions that a client may desire. By adopting this practice, you can eliminate the need to habitually change-out a clients GUI. Here are some additional best practices to ensure that a flexible, cost-effective, system will be delivered to your clients:

Label things in generic terms: Room modes instead of surround sound, etc.
Using familiar terms creates a common language between the implementer and the client. Home is a term used to bring people to the main page to begin control. This aids in the ease-of-use of a system and facilitates in future upgrades.
Allow the user to modify their system down the road. Provide presets that give the client control of the outcome. Give them the flexibility to set their volume levels, room names, zones within a grouping, setup functions for GUIs, parental blocks, etc.
Create smart and logical GUIs by knowing the resource tools. The faster you can make changes or create new projects is beneficial to all. More creative time and less production time equals less errors that can occur during an install.
Use a format to help guide the user. Create a grid that dissects functionality. Group features, controls, and other options together. Colors are another way to help guide the client choices or give them visual cues to help them make a decision on what to do.
Utilize themes, quick paste options, and dynamic images to save time, memory space, and provide flexibility.

The most successful client projects are a combination of product technology and design. Identifying and prioritizing a clients needs helps you create a flexible foundation for implementation. A successful delivery results in rapid system adoption by your clients. With the flexible foundation in place you can continue to deliver cost-effective, beneficial feature enhancements to ensure client satisfaction and future business.