Read a funny post recently, "If Building Architects had to work like Software Architects". You may have seen it before. It got me thinking again about the area of requirements. Having recently completed some house building work where I had commissioned a building Architect it started me thinking.
Many people comment after reading the above ditty, that software Archs have a long way to go to match the professionalism/process/skills of building architects. I have to agree that software architects do not yet have an industry standard qualification - consequently we lack the social/industry status this affords. The building architect I employed was able to use her 'seal' from the national regulatory body on her correspondence - and charge me a set fee based on their guidelines!
When working with my building architect we obviously started with a brief. This was a short document listing the high level requirements. If it were an IT project the closest thing I can compare it to would be a project goal statement e.g. Convert basement into two bedrooms with rear access and new windows. It was as high level as that. The next step was to draw plans, these were extremely detailed and the builder could essentially build off these plans. So building architects have refined their specification process to produce a set of highly refined diagrams. Crucially these diagrams can be read and understood by the clients (me) and the builder. What’s the best we've got in IT - UML?
My point (finally J), the builder architect does not labour under the detail of non-functional requirements. e.g. Security, reliability, maintainability, reusability, usability etc. At no stage did we have a discussion about say - security. Obviously the standard was to put windows and doors in that have locks! Also I assumed that insulation and damp proofing would be done in accordance with best practice - obviously I talked about this with the architect but we never got to the level of talking about U values etc - I trusted her and the builder to do the right thing. Of course trusting builders and architects has been the ruin of many before so the other thing on my side was the building regulations that specify minimum insulation levels (sound and heat), plumbing standards etc. etc. So building has, over time, evolved a process whereby regulations and habit ensure buildings are built to a certain standard using a common set of materials and conventions. As IT Architects we are heading in this direction and in my opinion we need to quickly accelerate past the standard of workmanship and process in the building trade (which I believe to be inefficient with too many trades and skills fragmentation – more about this another time).
Finally - the big difference between house building and system building - in my house I could see everything! So I could see insulation in the ceiling joists damp courses in the floor etc. Our customers can’t see our security or reliability features nor can they understand our diagrams/schematics. Until these non-functional requirements become standard (or regulated) our requirements and design processes will be bogged down trying to specify them and our customers will be bamboozled trying to understand what we are selling them.