I am going to leave the sorry state of our software industry behind as I think it is fairly obvious by now that we are in need of some industrialization. The type of industrialization I am talking about is similar to what happened to the engineering design and manufacturing world in 1982 when a company called Autodesk introduced a Computer Assisted Design (CAD) tool called AutoCAD.
AutoCAD revolutionized and industrialized the engineering design community, not only with its full-fidelity drawing tool, but also with its universal file format called Drawing eXchange Format (DXF). This meant other drawing tools and devices like Computer Aided Manufacturing (CAM) machines could read the DXF and render itself on a computer screen or produce a physical part output.
AutoCADs revolution also came in the way of computer automation. Look at what it did for building architects. Aside from easily sharing blueprints electronically, it introduced standards in the way the blueprints were put together, in a fraction of the time it took to do it by hand. Now they had reusable symbols and even room constructs where one room can be replicated 100s of times in the blueprint to produce a skyscraper in a matter of hours instead of months. Revolutionary indeed!
What our software industry needs is a way of describing software size and complexity in the form of an architectural drawing or blueprint. Lets take a traditional building blueprint for example. Almost anyone, without any training, can differentiate between an architectural blueprint of their 3 bedroom bungalow compared to the Empire State Building.
However, we as software developers have nothing like this or so it seems. Some may say that this is what IBM/Rational Rose does with UML or Visual Studio.NET (2005) does with its Domain Specific Language. However, it still requires highly skilled designers and programmers to work with these models and they seem to be quite far away from a full-fidelity modeling/drawing tool like AutoCAD.
In my next post, I will discuss a full-fidelity modeling tool called BRIDGEWERX in which a Business Analyst can use a drawing tool to completely describe application integration scenarios. Better yet, since it produces a full fidelity drawing, like AutoCAD for example, the XML output can be used to code generate the solution in minutes compared to months of manual labor programming time.