When I started my private project series I thought building a house should be fairly similar to building software as far as you look from project management perspective. At least you have similar phases and you employ similar techniques in both cases. As it appears details differ much.
Another thing which is different is control and supervision in the project. In my private project I’m a sponsor. I buy final effect but I don’t really know all details of construction. On the other hand I know there are a lot of things which should be done well or I’ll see serious problems in the future. I don’t say about things I could see – these are UI bugs and I can verify them easily. I say about architecture (construction) flaws in core of the system (house) – leaking roof, rising damp etc.
Now if I were a business person any techie could probably convince me the way he chosen to build an application is OK, no matter if he was honest or not. I wouldn’t understand all that architecture stuff. Talking about building a house I’m in the same position.
In software projects sponsors usually don’t really care they can’t control whether the core of the system is crafted well. Oh, maybe they care but they trust it’s enough to know the vendor employs agile methods or uses RUP or has implemented ISO 9001 or is CMMI Level 4 or whatever. Which is of course completely dumb, because you can ultimately waste your money no matter if your vendor is agile or not and I have no idea how ISO started to be synonym of quality.
In case of my house I hired building inspector (recommended by friend). A guy who actually knows how houses should be built. He controls all ongoing works on core of the system… I mean construction of the house. He interferes with vendor whenever it comes to determine how specific things should be done or even which materials should be used. Thanks to him several things have been already corrected and I believe a number of them haven’t appeared at all since the vendor knows everything is checked on a regular basis.
Coming back to software I wouldn’t feel comfortable if my client enforced that kind of supervision on a project I’m about to deliver for them. Unlike in construction projects I think there’s a small amount of mission-critical applications which are controlled in that manner. In the rest of cases vendors would be reluctant to be controlled in so detailed way. Just think – the client telling your developers which tools they should use or how interfaces between classes should look like. I leave aside problem of rights to source code which aren’t often sold to the client along with the system. Of course when you buy a program from the shelf (or cloud) the situation is different too.
Anyway If I was buying an application which I planned to live in for the rest of my life I would definitely hired a professional to verify how it was built, not only to do some acceptance testing. Fortunately houses last still much longer than software.