In this series of posts, I describe a real problem in the software development process of designing and constructing business applications. Not only is the design and construction process trial and error, (i.e. not predictable or repeatable), there is a tremendous semantic gap between describing requirements (i.e. intent) and the resulting deliverable (i.e. executables). The reality is that business users interact with software 100% of the time through a user interface. Thats it. Business users dont care about technology. They care about getting their customized business application designed and constructed in the shortest time possible for minimal cost (including TCO) and perhaps more importantly, does exactly what they envisioned it do to.
Having designed and constructed software for business users over 15 years, it seems that using a storyboard designer application to define user interfaces descriptions and business workflows is one way to help
industrialize the software development process. Further a catalog or library of pre-built storyboards with corresponding workflows, would allow a business user to choose from a catalog a set of storyboards that would assist in defining their specific business application in a short time period.
After more research described in the previous post, it seems that completely abstracting user interfaces is still unrealistic given the immaturity of language standards and tools. XAML as an eXtensible Application Markup Language looks very promising for describing Windows user interfaces and workflow. Since the reality is that the majority of business applications are targeted for the Windows platform, XAML appears to be a great way to quickly define business user storyboards that can immediately be run on XP and Vista. XP and Vista can execute compiled XAML (i.e. C# code) on their run-time platforms with WinFX installed, and render the user interfaces and execute the workflows on the business users computer screen.
There are a handful of XAML applications and tools on the market that may provide an environment for quickly defining Business User storyboards. As discussed in the last post, we are going to start to look at Cider and Interactive Designer, both from Microsoft and targeted at different audiences.
Cider is used inside of Visual Studio 2005. Anyone that has used Visual Studio WinForms Designer knows how quickly one can define user interfaces. However, using traditional WinForms, the problem is that the user interface description is tightly bound to the code-behind. Cider on the other hand, uses XAML to define the user interface and is completely separate from the code behind. The fact that Cider is embedded in Visual Studio means you can hook up your XAML with any programming language and other components, all within the IDE.
However, the quick synopsis is Visual Studio 2005 is a full blown Integrated Development Environment (IDE) and while fine for me as developer, it may cost too much and will be too complicated for a Business Analyst or Power Business User to rapidly define a business user storyboard. Also Cider still presents a relatively low-level toolbox full of discrete controls, whereas I was hoping to have a library of common composite controls and even fully defined user storyboards (like an invoice storyboard) as catalog items to browse, select and edit.
While Cider is great for an IDE and directly targeted at developers, I was hoping to have a higher level of composite controls and catalog capabilities. Also by raising the level of abstraction, I want a simple storyboarding application that is purpose-built to rapidly define business user storyboards that a Business Analyst or even a Power Business User can quickly define, including composite controls and cataloged items (i.e. completed storyboards) to select from. This is the main goal of my storyboarding application. Perhaps Cider can assist me in building this application.
We will come back to Cider, but first we will take a quick look at Microsofts Expression Interactive Designer which just released as its first CTP. Next post.