Category Archives: Blog

Message from Japan: ついに

Just returned from Japan… If I would have to summarize my visit in one word it would be: finally!

After hard work of everyone in the Uniface team, we finally have the right message, we finally have the right product and we finally have the momentum back in our customer base again!

The Uniface world tour has been in Las Vegas a few weeks before – and it was great – this time the roadshow stopped in Osaka and two days later also in Tokyo.  More Uniface customers were there than I’ve ever seen before in Japan and they were very positive. This is not unique for customers in Japan, I’ve seen similar things in Las Vegas and expect to see even more of the same  from customers in France in early December.

Why? Well, I have learned three things:

1. Usability: People expect easy to use and great looking applications (btw If you don’t know what that is: buy an iPad). Uniface 9.6 finally adds great usability features to our product. People can build ever better looking apps right now.

2. Modernization rules! Why would you re-develop a Uniface app, when it’s working perfectly? Why would you throw away invest money in Java development, when you can update your Uniface app for a fraction of the cost?

3. People finally realize: Productivity is what it’s all about. Do. More. With. Less. Buy Uniface!

Finally a nice link of a Japanese developer using something on an iPad…


The Evolution of User Group Workshops

NAUUG Workshop
2012 NAUUG Workshop in Las Vegas


I’ve had a couple of questions recently regarding what the user group workshops are all about as not all User groups have the opportunity or time to present a session. So I thought I’d take a moment and explore how these came to exist.

We set aside an optional day during the North American Uniface User Group for free training. Any subject was possible just needed to fit into the time available, usually 4 to 6 hours. In years past, we would provide PC’s, then asked participants to bring their own laptops that had the unfortunate effect of introducing an extra install period which at times was really stressful for both the customers and us.

To solve that we adopted a canned service provided by CloudShare where we can setup an entire environment in the cloud, just bring a network enabled laptop with browser and away you go, perfect!

But what can you fit into 6 hours was always the issue. With the Uniface release cycles at the end of the year which coincidentally is about the same time as the user group cycle begins. Plus the lab and product management graciously giving us earlier access to code, sometimes even prototype code, we came up with the idea to use this time to showcase new functionality, and what we now call the workshop was born.

These workshops give customers the opportunity to peek behind the curtain at what is coming, but do it in a controlled fashion.

It does have its downside, do we assume everyone is a developer, and even if we do they won’t know the new stuff, so we had to resort to creating detailed documents on what to do and how to do it. This is pre-release, even the documentation is work-in-progress.

We even pre-built a few things to remove the boring but necessary bits. But never the less we ended up with a fairly large instruction manual of steps which at times seems very incongruous and does little to explain what is going on.

What can I say? The exercise document format is also a work-in-progress and if someone has a better delivery idea please let us know.

Last point, the workshop we feel is an opportunity for both customers and us to experience using new features and encourage ideas on what parts have the potential to improve their systems and in doing so encourage customers to consider upgrading to newer versions of Uniface.

That last point seems to be working because Igor received comments on the new controls like “the update to the tab control was long overdue” from Charles of JDA, and I could overhear ideas from the Cayenta group on how they could use the new HTML5 container to get some custom effects.

There was even a little Easter egg in the workshop showing some additional options using the split bars. One customer comment was that this alone justified coming to the user group as he had been trying for some time to do just that.

After last month’s NAUUG conference in Las Vegas we are reviewing feedback. In the next Blog I’d like to share those comments on the workshop and ask for input on how we can improve the workshop next year.

Uniface 9.6 – out of our hands (almost!)…

Yesterday was a significant day in the Uniface 9.6 project. It was the day that we RTM’d, or released to manufacturing. This means that we’ve sent the Uniface 9.6 images to be packaged up and the eDistribution created. (we’re not going to make physical DVDs/CDs from now on).

It’s a kind of ‘lull period’ for us, we are starting the high level planning on what happens next, with Uniface 9.6.02 and Uniface 10. Tomorrow we hold an internal RAD Race, where the development teams have 24 hours to build a Uniface app which is based on Uniface 9.6. (so a real case of eating our own dog food, which is a term that stems from Dave Cutler and the project to release Windows NT). We did it for the first time last year, it was a great exercise, and also a chance for everybody involved. I’d originally wanted to invite those customers who were involved in the Uniface 9.6 preview, but as it become more popular, it became clear that idea would have to change. Watch this space, we’re going to hold the Uniface Global Challenge, a global, cloud based RAD race for customers in March.

Looking back over the past year, one thing that has really struck me, has been how useful agile as a development methodology has been. The thought was provoked when I read this online article . Uniface 9.6 has been my first release from concept to RTM (not quite GA yet!). I inherited Uniface 9.5 somewhere in the middle of the project.

Over the past 12 months, we’ve had a couple of changes, additional requirements, influences, etc where we’ve changed the scope on what we will deliver in December. And looking back at how we used to manage projects (with the waterfall methodology), it’s clear to see the benefits of being agile brings us. And I don’t even want to think of the late breaking implementation issue with threading that George uncovered in the HTML5 control!

Agile isn’t perfect, most of the books and guidelines are focused on new projects, and there are some aspects which are not covered in so much detail. A couple of examples would be how to manage the input from a large, global and very diverse global customer base, or how to deal with a the support of several versions in the market place. And support isn’t just maintaining the product, it’s also currency updates, we can plan for what we know. But we also have requirements coming at us that we did not anticipate, the new Sybase driver being an example.

But the development group has really done well, it’s on time, and it’s got everything that we really wanted. And based on the feedback from the Japanese, US, Dutch and German usergroups, it’s a good release.

Windows 8 boosts enterprise applications (Part 2)

Guest contributor, Ian Murphy from analyst firm Creative Intellect Consulting

(Part 1:

Bring on the store

The second significant step that Windows 8 brings is the Microsoft App Store. This is where developers will gain access to a wider market in order to sell their applications. Microsoft has made it a seamless process to deliver an application to the App Store right from Visual Studio. The App Store is designed to only deliver applications to Windows RT and not to the desktop. While this may limit the opportunity for some applications, it will provide smaller software houses with a sales pipeline they could never have created themselves.

Enterprise developers do not have to deliver applications through the App Store, Instead, Microsoft has created a process that allows them to deploy enterprise ready applications direct to Windows RT devices. This creates a process challenge for the deployment teams since they will need to ensure that they test and approve applications and that all applications are signed. That said, it does however, open up an opportunity for enterprise IT to sell utilities and add-ons that have been developed internally through the App Store. While we don’t expect this to be a major revenue generator, it is an interesting proposition.

Value in push notification

Windows 8 is using the tiled interface first deployed on Windows Phone 7. This interface supports the use of a push notification mechanism within the operating system. There are several opportunities here. For information workers using Business Intelligence (BI) tools, changes to their queries can now be reflected in real-time to their device. This is not just about BI. Any application can be configured to use a tiled interface which means that application servers, firewall appliances, storage devices and even network switches can feed real-time data back to the administrator console.

Another advantage here is that every server gets its own tile in Server Manager. This means that any changes to a server or any event log incidents now appears immediately in that server’s tile. Using a traditional dashboard, you could have scripted this but it was not simple. Another benefit of the tiled approach is that you can quickly scroll through large numbers of servers with a single stroke of the finger. This puts the datacentre at the fingertips of administrators, operators and management. It is likely that we will see this extended, as embedded devices that have been deployed in the field such as HVAC, power supplies and remote monitoring solutions start to use Windows 8.

Technical and Emotional factors of Application Performance

Application performance has always been an important topic in Information Technology, however often seems to be neglected.

So, what is performance? A simple abstraction is, “how much, in how long.” This can be broken down into many technical metrics e.g. efficiency, throughput, utilization etc… however it is often easy to forget the emotional measures e.g. the perceived performance, time to action, usability, number of clicks etc… . “How much a user can achieve, in how long” is just as important as “How much a computer can achieve, in how long.” The fastest solution is of little use if it takes the user an eternity to use it. Think how much quicker you are able to use many applications once you learn the various shortcuts e.g. CTRL+C instead of (move mouse)->Edit->Copy.

Over the years, there have been many views on when it is best to think about the performance of an application. A common approach has often been to “test at the end and fix performance problem then, rather than architecting for performance.” The core concept here is that for the vast majority of applications, raw performance is not a critical factor for much of the functionality, so why waste effort addressing performance upfront where it is of little impact?

At the other end of the scale, raw performance can be a key success factor for the majority of the application logic. This makes it important to architect for performance and regularly assess. One interesting formal realisation of this is ‘Performance Driven Development.’

Which approach is best? It all depends.

Many areas require thought when thinking about performance. It is easy to immediately think about individual algorithms and routines, however the higher level technical and physical architecture require careful consideration too. Things such and caching, load on demand, batch processing, asynchronous & parallel processing, machine sizing, network architecture, component  distribution etc… can all have a huge impact on the application performance. From the user perception side of things, error prevention, self-diagnosis, UI consistency, visibility of system status etc… can also have a huge impact.

If we take “Visibility of system status,” this can quickly improve the perceived application performance. One example of this is adding a progress bar. Many studies have shown that users consistently feel an application performs better when they can see the progress. Further to this, for a fixed amount of time, the rate at which a progress bar fills dramatically affects the perceived change in performance. Observations suggest a progress bar that increases at the same rate, or a progress bar that accelerates towards the end, provoke better results in user perception. A bad choice here can however have the opposite effect and give the impression of worse performance.

In conclusion, performance is a wide topic that goes beyond simply making the quickest algorithms. There are both technical and emotional factors to consider.  Like much in Information Technology, it is important to remain pragmatic when considering the many factors, along with finding a balance between architecting for performance versus tuning during testing.