One of the first things that I remember being impressed with when I first got tossed into this electronics lifestyle arena was just how many trades could be working on a single project at the same time.
Everyone knew precisely just how much work the preceding contractor needed to complete before they could get started. The rough-in carpenters barely had the walls up before the plumbers arrived; the plumbers moved upstairs and the electricians downstairs, and so on. In such frenzied confusion with nothing being optimally finished, somehow it all got done.
Fast forward this chaotic scene to the audio, video, home electronics world we exist within today. Its not really much different. Virtually all of the wiring is installed in walls and floors during the construction phase. However, that can overlap with speakers that need to get roughed in, display mounts that need to get installed, subwoofers that have to be buried out of sight, A/V racks needing installation, and condition power getting situated. Then these physical installations are still in progress when the displays show up, and the DVD players and receivers are getting installed, to say nothing of the security system, phone system and, at some point, the Crestron/AMX overlay control system.
Control system software is the one trade that cant begin while other trades are still installing. The problem is that control system software needs virtually the entire hardware system to be installed and online before it is started, not while its getting started. It is certainly true that there are many successful control systems in operation that are written with a distributed architecture that allows for that master bedroom to operate totally independently from all the rest. So this Im done over there, so start there approach would seem all right, but thats not really the whole story. Such installations will undoubtedly have several such independent mini-systems, all potentially brought up and brought online independent of one another. This means that once they all get interconnected, and touchpanels from one room start commanding changes in other areas, there will be myriad of inter-system communications and commands and instructions that the software programmer has to start debugging all over again. So in short, nothing has been debugged or proven at all. This alone is possibly the single largest source of software installation overruns: system performance versus room performance.
An alternative architecture for control system software is more centralized software, where these outlying smaller rooms contain virtually no coding at all and are but slaves to a central program running on one main controller in the system. This eliminates calls between peer systems and provides for one centralized source of code operation and debugging. However, such an architecture requires that the entire system be up and running hardware-wise first, before it can be installed.
This code always resides at the core of the central equipment location, such as the main equipment room or theater. So there really isnt anything to go install in that master bedroom, because its all at the head-end. But if only the head-end is done (hardware-wise), then there has got to be that master bedroom, etc, for it to talk to and control.
The real point is that control system software shouldnt be classified nor treated as one of these trade types of entities. We all need to re-categorize it as something that goes in after everything is done and completed, like tuning up a race car after it is constructed. You cant tune the car for maximum track speed while two of the wheels are still being attached. It can only be done correctly when everything is completed, verified, and functional. Anything else and you are just spinning your wheels.