It is a common mistake to think that as audio and video professionals we know everything, we may know the technique, but we do not know what the client wants or needs.
Juan Tamayo*
When I started in the audio-visual world, one of my functions was a programmer of automation systems for audio and video, what we wrongly call home automation. And I made a lot of mistakes, until back in 2009 or 2010, I came across a very interesting document on how to design graphical user interfaces. From that event I changed my way of programming, focused on the user and looking for the maximum usability of a room. I hope to share this information and that your automations will constantly improve.
Before programming any line of code, before connecting any equipment, even before designing, the programmer must be clear about the objectives of the audiovisual system. It is a common mistake to think that as audio and video professionals we know everything, we may know the technique, but we do not know what the client wants or needs. When you have clear objectives, you know how to face each project, it will always depend on the end customer. With the list of defined objectives, make a checklist of the required functions and conditions for each function or subroutine, always validate this list with the customer operator of the solution.
Many times the person in charge of the project is not necessarily the one who will operate it. If possible, schedule a meeting in which the person or administrator of the system is present so that you as a programmer explain how it is planned, show you graphic design schemes of the user interface and validate, confirm and verify that the user is clear about what you are going to do and not have setbacks and setbacks due to lack of information. Nowadays virtuality helps us a lot, with virtual meetings of this type, as a programmer you can teach some programs already made so that the client knows your portfolio, and gets an idea of what they are looking for or need.
The list of objectives is essential, and this helps us to have a list of equipment to program. I always recommend for each piece of equipment that is programmed to perform the minimum functions necessary for the operation of the room. It is not necessary to program all the options, for example, if it is the remote control of a television, it is not necessary to put all the menus and submenus, for this there is the original remote control, I will discuss it in a moment, and each option or function programmed as far as possible must be assigned a variable, so that it is shown to the operator customer in the graphical interface.
For example, on/off can be shown as light indicators, this will help to feed back the function with the actual operation. If the system has an input option, you can put the indication of the selected option via text or with a group of radio-type buttons. These recommendations seek to generate active or passive feedback of the ordered function from the automation system, it is essential to diagnose simple operating faults, such as, for example, the user gave the order to turn off, but the device is turned on, or he gave option 1 of selection, but the 4 was activated.
Color composition can make your programming a total success or be a great failure, generally those of us who program graphical interfaces are engineers and do not study color theories. I recommend not using corporate colors of companies for wallpapers, it is better to use neutral colors such as gray. Screens consume power, the whiter the background, the easier the battery state is reduced. Now, buttons can be another story, with buttons it is possible to play with colors.
As much as possible, I try to differentiate the menus by color, for example, blue for audio, green for video. Red is rarely used because it indicates danger, but it can be used to activate emergency or audio evacuation systems. I have always recommended that the programmer take courses in basic graphic design, image editing, transparent backgrounds, and color theory. The aesthetic sense will give functionality to the design and make your client feel comfortable, in addition the cost in programming time is reduced, some programmers believe that graphical interfaces should be works of art, and many times it becomes an abstract art that the client does not want to use.
When you finish a program and perform the implementation, it is important to perform a complete check of its functionality, as you are a judicious programmer you have a checklist based on Avixa standards, so evaluating this is too easy. Keep in mind that the human brain must get used to the system, and it is normal to be asked for simple changes, contemplate these changes is your economic proposal, they will always be guarantees.
A simple program can take between 2 to 6 months to stabilize, it is common to offer a guarantee of a maximum of 6 months on the schedule. As documented at the beginning of the project, the changes will most likely be minimal, but if you are asked to carry out a totally different program from what was agreed, it is also valid to submit an economic offer on this change.
Programming is subjective, some programmers implement complex codes, others try to make it as simple as possible, the whole spectrum is valid, but my recommendation will always be between doing less, it's more. The word automate is associated with reduction, efficiency, operability. I've seen programs that include all the buttons of a remote control, but without delivering operability, and there's nothing more efficient than the original control, that's what it's for. Our goal will always be to optimize resources through a graphical interface, you can't forget that.
As always, I try to share simple but efficient ideas for the correct development of the project. If you want to complement this column, I invite you to leave us the comments and we will gladly read them and include them in other editions. My experience is thanks to the objective certification processes that I have and, most importantly, to listen to the end users who are the best feedback for our companies.
*Juan Tamayo, CTS-D, is an electronic engineer and currently serves as Manager of T-Árbol Audiovisuales SAS, Product Applications Engineer for Latin America at International Sales and Support Engineer for Synthax Inc.