Coffee table computing

Let me start by declaring that we, as human beings DO NOT have the ability to communicate with computers. Ever since the modern user interface based the WIMP system of Xerox Corp. came about people have found ways to use applications design around tasks and features. There are programmers and there are users. Computers work digitally, and humans cannot easily translate information to store and instruct computers. This has been a limitation and will be, for a long time. Several companies have tried to get out of this cycle by introducing newer touch and gesture based user interface which hold little value beyond novelty. These have been shown in several movies (including Iron Man 2 – where Tony Shark check’s out pictures of the Black Widow online on his table-top display)

However, I’m glad that companies are taking this seriously after the touch interface of the iPhone sparked of a UI craze that has picked up quite a pace. One experimental entrant is the MS Surface. This is a table size computer with the screen facing up and is multi-touch capable. Several great instances of object recognition and collaboration of devices and people have been demonstrated on this device, but it hasn’t been taken seriously as yet (which is probably a cost factor for now)

It raises an interesting prospect though. Do we really need cubicles and workstations for people to sit alone and work on everything separately while maintaining a crude version control system to develop programs and test them later in other machines? A truly collaborative technology should allow users to work with each other, not just at meetings but also develop together. Even the part of putting together lines of code seems rudimentary as we try to convey to a computer what we expect it to do. Too many products and solutions have been built to support this outward spiral of isolated instruction code. Why can’t development happen during brainstorming – On one computer with several users on one Giant touchscreen facing up like the Surface?

ctc2

Visual Programming – Why can’t we drag icons and link them to each other to instruct modules to interact with each other as we brainstorm the connections. Why must we have designers, architect and programmers figuring out how a large system works and then pass it on to programmers to implement. Microsoft has a product experimenting with this too – it’s called the MS Robotics Studio, which currently works with sensor / motor components from different manufacturers. In my opinion, there’s no need to limit this to just programmable sensors, while it can be used for actual .NET programming.

Imagine a collaborative environment where there are 4 architects sitting around an interactive meeting table surface, one of them putting together pieces of code using the touchscreen, the second making logic components with the code like state machines, the third working on a drag-drop UI while the fourth is working on data connections. There’s no actual need for a programmer to be involved here. Just make everything visual. You don’t need a keyboard and mouse. You don’t need to defer development until the programmers get involved. Do it at Design level. The code can assemble itself from the design. We’re already there in terms of that capability. It’s more of a matter of how people collaborate with each other while computing.

For example Designer 3 can pass on his UI screen by pushing the UI Form physically on the touch screen and Designer 2 can attach this to the logic components by dragging out wire like artefacts to get the IDE to understand the development process. This will ensure an assembly line like workshop and will lead to faster development times as well as better communication methods. A timeline of development can also be easily maintained, eliminating the need for version control between multiple workstations. Think about it, the possibilities are endless and the simplicity stares at software development companies in the face. No more coders, just designers – this is enough of a selling point.

Related Posts