I've been very fortunate over the years to become involved in the museum and visitor center industry. It is by far the most challenging and most rewarding industry I have ever worked in. Building exhibits that require custom programming and electrical engineering tend to defy some of the best practices utilized in companies that primarily focus on electrical engineering or software development.
The underlying reason for the deviation from best practices has to do with the custom nature of work. At a very abstract level, some of the work can be re-utilized from project to project, but largely each exhibit differs so much that it is difficult to iterate proven engineering and code unless you specialize in cookie-cutter exhibits. Those of you that have been engineering for a while will recognize based on my description, that the museum and visitor center industry is not an area where you can work normal hours and succeed.
In my experience, looking at others work; the majority of technical exhibits break often. I'll admit that I've had my own share of exhibits I messed up and taken responsibility for; but by learning from mistakes and adapting a certain set of behaviors I've been able to make kiosks and custom electronics that have run for over six months without ever being turned off.
So with all that said, here are the practices that have worked for me:
1. Have an overly paranoid attitude toward the project. Anything not tested or planned for will likely break.
2. Simulate the final environment the exhibit will be in during development. This means if you are making a kiosk, run it on the final computer it will be on. If you are making custom electronics, power cycle, and run them the same way they will be run once installed. Technology changes so quickly, that its hard to describe how many stupid scenarios I have encountered with different computers in kiosks including heat, power issues...etc.
3. Do not trust third parties. From a programming perspective this includes external libraries, and from an electrical standpoint this involves others electronics. It is imperative to realize that many off the shelf products and libraries are not tested to the extent that is needed to withstand the general public without intervention. You must prove that the libraries and electronics will withstand the final scenario prior to their installation or you are setting yourself up for failure and an unhappy client.
So now that I have described the three main behaviors that drive my attitude towards exhibit development, let me describe how I handled the most recent electronics project I installed last week on the western side of the US.

The project involved playing back audio and displaying captions in latin and non latin languages on LM4790 displays synchronized with a Watchout system. I was presented with a scenario where I would need to fabricate custom electronics to handle the solution initially; but came up with an off the shelf alternative due to the time-constraints. The displays were delayed during manufacturing and I only had a week to work with them prior to the installation. Programming commenced up to a month prior to having the displays in hand. I created a simulation of the actual electronics in advance that I was able to program and test against. I purposely created a test mode that relentlessly cycled through all the possible combinations of the display. Once I had the actual electronics in hand, this relentless test mode became a great way to break the displays over time early on. I was up until one in the morning or later the entire week I had the actual electronics testing and tweaking them.
It was close, but by the time I installed the application and electronics on site, they were stable and have been for over a week so far. Reliable exhibits make happy clients. It has been a good week.