Saturday, October 14, 2006

3D environment for software design

Designing anything is an activity fraught with difficulty: software design especially so. It's easy enough to check whether physical widgets fit together, but software is virtual. It has no physical presence, even once it exists. All too often people will agree on a set of documents and diagrams, yet have radically different expectations of the eventual product. The most detailed specifications and the most complete UML diagrams are about as useful as reading poetry in Morse code. (Which fact bodes ill for MDA ...).

There has to be a better way.

Our avatars sitting around the virtual table in our virtual office already have one advantage, as mentioned in my previous post: everything said and done by them will be recorded, and the content of that recording is searchable. What else can they do?

A lot of the tools will be evolutions of what we are used to. The virtual whiteboard, as an example, can be subject to version control, and the diagram thereon spontaneously self-organise. Releasing the diagram from the surface, to float in 3D above the table, is also an option. Scale can be applied; IOW one blob in this diagram can be zoomed in on, to reveal its finer structure, or out from, to show its meta relationships. Avatars can share one view of their work, or each have their unique point of view. Colour, shape, texture, even apparent movement, can all be used to indicate some attribute of the diagram. Textual content etc. can be collaboratively added and edited. Ideally the diagram can be made active, becoming a high level simulation of the software required.

Instead of a mass of text and diagrams, the engineers can be given a working model of the desired system. A model that is not only the definitive expression of the design, it is also the ultimate means of testing that design.

{a walk-through of designing the bookselling application in this environment will follow}

No comments: