A GUI for ITP/CCM
Saturday, November 14, 2009 at 04:20 PMAs mentioned in an earlier post ITP/CCM ‘weight’ 7.730.245 bytes: roughly 7MB. This is quite small compared to most other applications that are around these days. In most modern applications a large portion of the size is related to user interface code. ITP/CCM currently only provides an engine to run the processing. All administration is done via XML files.
Often people ask me why we haven’t added any GUIs yet, after all, modern tools provide features for rapid GUI development. Well, the answer is rather simple: we do not want just any other GUIs, we want a good GUI. Let me explain what I mean by that.
With ITP/CCM we try to keep the technical concepts as close as possible to the concepts known by the user. We are continuously spending time on designing, mapping, refining and remapping these technical concepts to high level user identifiable concepts. Having concepts in the product that are aligned with real world concept as close as possible should help us create a good GUI. This is necessary as one of our goals is to make ITP/CCM as business managed as possible.
But even when the high level concepts are right, it isn’t that easy to create good GUIs. For instance one of the common mistakes is to have a programmer design the GUI with his or her assumptions on the users perspective. A good example of this can be seen in our own ITP/MDK Repository. At some point we’ve added a menu option to run a model and named that option “Run Model”. This was done under the assumption that users want to run model. Looking at the problem from a programmer model this makes sense. But in the user’s model “running a model” is almost meaningless. No model developer wants to run a model for the sake of running a model. The only reason for them to run the model is to test it. Therefore the menu option should have better been named “Test” instead.
And that is only one example of what can go wrong with quick GUI design. To be able to design good GUIs we need to know our users. Not only what their regular daily function is but also what their mindset is when working with the product, how often they use the product, etc. We also have to be aware that there are different types of users with different roles involved with ITP/CCM. They all require different GUIs with different requirements. So we can only create a good GUI if we know what user will use that specific GUI.
One decision has already been made about the GUI: it is going to be web based. Parts of the GUI might be integrated with or provided by a CRM system. We are currently working on the design of the GUI and coming up with the proper GUI concepts and metaphors. Once we have that developing the GUI will probably go in a rapid pace, assisted by the modern tools and technologies that are at our disposal. From then on not only the functionality, which we are extending constantly, but also the number of bytes in ITP/CCM will grow rapidly.