Now anybody who knows what Design Patterns are will indeed bow in reverence to the field of Architecture. Bordering on art and engineering, it is a pure delight watching my parents (yes, they are architects) design huge buildings using nothing but pure imagination. The problems are similar, the solutions are similar, and the techniques are similar. You have a set of rules set down, a set of requirements from the clients and a budget. Now Go, design the building.
It's quite similar to designing software. It's a mind game. Not surprising that architecture has given us some cool things like Design Patterns. I still wonder how my parents can have their process incorporate a bug tracker though
And increasingly, architects like my parents depend hugely on software like AutoCAD(from AutoDesk - the Microsoft of the architecture software world). And quite frankly, I wonder at AutoCAD sometimes, but largely, I am starting to think that it is a complete waste of productivity. Ok, I am being a bit harsh. But AutoCAD does not even achieve 10% of automation that is possible with designing software.
Picture this: My father designs building plans and sections using simple lines in AutoCAD! Sure there is auto-dimensioning, auto fill and loads of other such nifty tools, but anybody who has seen an architect sketch a building plan while talking of walls, rooms, doors, staircases and other 'bye laws of government' will easily see that designing a building in AutoCAD is like writing an application software in assembly. There's no concept of a room, a wall, a door.. absolutely nothing. So, an architect has to recreate same entities again and again, and while doing that, commit mistakes again and again.
Just yesterday, a silly mistake on the part of a junior draftsman cost my dad lots of money in correction and rework. This draftsman, while enjoying the benefits of copy paste offered by AutoCAD, had forgotten to change the labels and markings on the copied section, thereby marking a 40 x 50 room as 100 x 120. This problem could have been avoided in two ways. Use formulas like those used in spread sheets to auto calculate the widths OR have some tools which would check and flag such violations... much like some of our static analysis tools.
I had just run across Find Bugs (findbugs.sourceforge.net) and decided to try a parallel for AutoCAD. I decided to do something about it and some digging for scripting and macros in AutoCAD told me that AutoCAD has a scripting system using VBA (Visual Basic for Applications... yes the cursing started). Time to revive my VB knowledge, I said, and designed a simple script for flagging duplicate text entries in the design document. And what fun and pleasure to see something that I created, help my father!
Next goal : Take this project to Source Forge and keep adding rules for checking so that architects can start benefitting from it. I hope I have some time on hand to do this.
(Oh by the way, I dont understand what the people at AutoCAD were thinking when they decided to have a scripting system using Visual Basic. How many architects have the time and money and patience to learn a programming language? Why can't people think in a little simple manner..hmm..)
One thing is clear though: Some competition is needed in this field. As usual, monopolies stifle creativity. Is anybody listening?