Last year when we assembled all the bits and pieces of work and consolidated it into WECPOF I was extremely satisfied. It is a good feeling to have a vision, work on it from many angles and in the end see that it all fits together and really works.
We have tried the WECPOF method on a couple of real life cases and it is easy to see the value it brings being able to catch the class model, the viewmodels with UI-hints, the state machines, the actions , the high level processes, the stakeholders and user stories and the textual documentation in one place – then just execute it and show it to the users. The feedback loop is much tighter than what I have ever experienced before – and this is really important – people do not have time to forget the topic – and everything is accelerated in an unprecedented way.
I have heard all kinds of dooms day prophets saying that “You can never show a normal person a class diagram” – sure you can! Just make sure you show other stuff as well – like a running prototype with good examples of their own data executing that very class model. I tell you: normal people get this, normal people think this is fun, normal people want more and even faster. How cool is that?
What was wrong with WECPOF
WECPOF took the standard windows metaphor and made lot of movable windows available for showing information. Standard but not without usability problems. And at the same time WPF and Silverlight kind of moved away from the windows idea and tried to establish a more dashboard set up for presenting information. We also looked at a few good and inspiring examples using only modal windows where the user could not switch windows to search for information – but instead needed to use dead simple and consistent navigations like “enter” for going into detail and “escape” for moving back from detail. This was surprisingly powerful, liked and easily learned by users.
So we had the old-windows-strategy that WECPOF used, we have the dashboard thoughts of new UI’s like in Zune, we had a good real life case dealing with only modal windows in a “one thing at a time kind of way”.
We also needed something that will sit well in a browser, a tablet, a phone or what have you… So how does a web app really work? It almost always deal with one thing at a time. You can always go back, and then go forward, you can always get a new tab or even a new window. And the navigation is always very simple, hardly ever any right clicks. Navigation is grasped by anyone in just seconds. We want something like that for WECPOF.
How can we fix it
WECPOF2 borrows a lot from the alternatives described above. Let the screens stack up on each other, give the user a back and forward button to move around in the stack. Just as a ctrl-click in the browser brings up the target in a new tab – a ctrl-click in WECPOF2 creates a new tab. As WPF and Silverlight apps often have a function panel, or a function stack on the side so does WECPOF2 offer the actions available in a button stack on the right side.
Just as with WECPOF(1) WECPOF2 also lends itself to heavy styling.
Check out these screen shots:
Clicking the “Show project” from the right-side action stack…
… brings up the project view. The back button takes you back to the project group screen.
“Show task” will bring a the task screen – but I will hold the ctrl key while clicking…
Note that this screen shows up in its own tab, and the back button is not enabled since this is the only screen in this tab.
The above example is in the EcoSolutionShowcase – it is Silverlight 4 in a browser calling an IIS hosted persistence server over WCF and uses a SQLExpress database.
Even if this sample is very simple it still does things a generic way that lots and lots of apps built today will have a hard time to deliver. To name a few:
- A refresh function that ask the persistence server after LOB-data updated after fetch – and invalidates this so that individual objects are re-fetched
- An Undo-redo function for all LOB-data
- Efficient fetching of data based on the declarative descriptions of UI
- Model driven from top to toe – but plenty of room to create your c# stuff when needed.
So go figure – are you working in the most efficient way today? If not – why not?
ps. I was extremely pleased to see that WECPOF2 only is a new transformation layer – no changes were needed to the ViewModel, Action or Design architecture to get it in place – and WECPOF(1) is still available. This “proves” the strength of the concept – totally new presentation layer – exact same model. So anyone still worried about the Silverlight vs. html5 battle? Why not focus on YOUR business… Let the presentation follow your rules and ideas. ds.