Category Archives: Blog

When thinking Desktop “first” still matters

By Clive Howard, Principal AnalystCreative Intellect Consulting

A few months back, I registered for Mobile World Congress 2015 in Barcelona. As an Analyst, there is a different registration process to the one used for regular attendees. This is so the organisers can validate that someone is a legitimate industry analyst. As well as entering a significant amount of personal data, additional information such as links to published work and document uploads are also required. Crucially, there are a number of screens to complete the registration and accreditation process. But more to the point, many different types of data must be entered – from single and multiple line text entry to file uploads. Some data (such as hyperlinks) requires cut and pasting.

I’m sure that I could have done this using a mobile phone but it would have taken a long time, been awkward and irritating and probably highly prone to mistakes. In short, I would never have considered doing something like this using my phone. Could I have used a tablet? Without a keyboard and mouse it would have been problematic, especially if the screen is small. Using a tablet only Operating System might also have had its problems in places: such as uploading documents from centrally managed systems. Actually I did use a tablet but one connected to a 20inch monitor, keyboard and mouse and running Windows. In that traditional desktop looking environment the process was relatively quick and painless.

Rumours of the desktop’s demise are greatly exaggerated

It is not just complex data entry scenarios such as this that challenge mobile devices. Increasingly I see people attach keyboards to their tablets and even phones. Once one moves beyond writing a Tweet or one line email many mobile devices start to become a pain to use. The reality of our lives, especially at work, is that we often have to enter data into complex processes. Mobile can be an excellent complement, but not a replacement. This is why we see so many mobile business apps providing only a tiny subset of functionality found in the desktop alternative; or they are apps that extend desktop application capabilities rather than replicate or replace them.

One vendor known for their mobile first mantra recently showed off a preview version for one of its best known applications. This upgrade has been redesigned from the ground up. When I asked if it worked on mobile the answer was no, they added (quite rightly) no one is going to use this application on a mobile device. These situations made me think about how over the last couple of years we have heard relentlessly about designing “mobile first”. As developers we should build for mobile and then expand out to the desktop. The clear implication has been that the desktop’s days are over.

This is very far from the truth. Not only will people continue to support the vast number of legacy desktop applications but will definitely be building new ones. Essentially, there will continue to be applications that are inherently “desktop first”. This statement should not be taken to mean that desktop application development remains business as usual. A new desktop application may still spawn mobile apps and need to support multiple operating systems and form factors. It may even need to engage in the Internet of Things.

The days of building just for the desktop safe in the knowledge that all users will be running the same PC environment (down to the keyboard style and monitor size) are gone in many if not the majority of cases. Remember that a desktop application may still be a browser based application, but one that works best on a desktop. And with the growth of devices such as hybrid laptop/tablet combinations, a desktop application could still have to work on a smaller screen that has touch capabilities.

It’s the desktop, but not as we know it

This means that architects, developers and designers need to modernise. Architects will need to design modern Service Orientated Architectures (SOA) that both expose and consume APIs (Application Programming Interfaces). SOA has been around for some time but has become more complex in recent years. For many years it meant creating a layer of SOAP (Simple Object Access Protocol) Web Services that your in-house development teams would consume. Now it is likely to mean RESTful services utilising JSON (JavaScript Object Notation) formatted data and potentially being consumed by developers outside of your organisation. API management, security, discovery, introspection and versioning will all be critical considerations.

Developers will equally need to become familiar with working against web services APIs instead of the more traditional approach where application code talked directly to a database. They will also need to be able to create APIs for others to consume. Pulling applications together from a disparate collection of micro services (some hosted in the cloud) will become de rigueur. If they do not have skills that span different development platforms then they will at least need to have an appreciation for them. One of the problems with mobile development inside enterprise has been developers building SOAP Web Services without knowing how difficult these have been to consume from iOS apps. Different developers communities will need to engage with one another far more than they have done in the past.

Those who work with the data layer will not be spared change. Big Data will affect the way in which some data is stored, managed and queried, while NoSQL data stores will become more commonplace. The burden placed on data stores by major increases in the levels of access caused by having more requests coming from more places will require highly optimised data access operations. The difference between data that is accessed a lot for read-only purposes and data which needs to be changed will be highly significant. We are seeing this with banking apps where certain data such as a customer’s balance will be handled differently compared to data involved in transactions. Data caching, perhaps in the cloud, is a popular mechanism for handling the read-only data.

Continuation of the Testing challenge

Testing will need to take into account the new architecture, design paradigms and potential end user scenarios. Test methodologies and tools will need to adapt and change to do this. The application stack is becoming increasingly complex. A time delay experienced within the application UI may be the result of a micro service deep in the system’s backend. Testing therefore needs to cover the whole stack – a long time challenge for many tools out there on the market – and the architects and developers will need to make sure that failures in third party services are managed gracefully. One major vendor had a significant outage of a new Cloud product within the first few days of launch due to a dependency on a third party service and they had not accounted for failure.

Using CouchDB with Uniface

I won’t repeat any definitions of what NoSQL databases are, nor a review of any specific products. I’ve read plenty about NoSQL databases and I think that the general view of developers is that it is one more tool in the arsenal of application development. I generally believe that you should choose the right tool for the job at hand.

So, you may get that task one day where the advantages of using a NoSQL database outweigh the disadvantages. Can, or how can you use this database with Uniface? The answer definitely depends on the specific NoSQL database product. Between them all, they have a large variation in their APIs and data structures. For that reason I will just describe my experiences doing some prototyping with CouchDB from Apache. Be aware that this is slightly different to Couchbase, which appears to be a commercialised offshoot from what Apache took on board as an open source project. For brevity, I refer you to the website for information about CouchDB’s characteristics:   https://couchdb.apache.org/

The major characteristic of CouchDB is that the documents stored in the database are in JSON format. While investigating another project, I stumbled upon a convenient source of JSON formatted documents that I could use to store in my CouchDB database. I hope that you aren’t offended by simple Chuck Norris jokes. It is a unique genre that not all will enjoy, but it served my purposes adequately. Thus in studying my prototype, you could imagine how you would handle more business related data.

I have provided a sample form in the community samples part of Uniface.info. All you need to do, besides compiling that one form, is to download and install CouchDB from the earlier link provided. I downloaded the Windows version. I manually created the “cnjokes” database using the CouchDB provided Futon utility, also installed with the Couch DB. I also manually defined the design document “vcnjokes”; more about that later.

The top part of the COUCHTEST01 form is really a “utility” area, where you can manually enter URIs and run requests against the “cnjokes” database.   These requests use the UHTTP internal Uniface component. The way the CouchDB API is structured gives you a very RESTful web service interface, though there are some comments on how RESTful CouchDB really is, within their online tutorials. The results of the calls are available in the message frame.   You can press the GET button without adding anything to the URI and you will see some global information about the “cnjokes” database. Overall, this “utility” is not as flexible as the CouchDB provided Futon utility, but it might be helpful during further Uniface development.

The 4 buttons, and accompanying entity and fields provide the real prototype; effectively demonstrating a CRUD lifecycle of managing CouchDB documents. The UHTTP component is used to obtain a CN joke in JSON format from an internet website, and then the UHTTP component is used to interact with the localhost CouchDB server. The document format is deliberately unchanged between the external joke website and CouchDB. However, you could manipulate the JSON before storing it in CouchDB if required, using Structs. Note that I have used $uuid as the basis for assigning a document ID.

The other 3 buttons query the CouchDB database using views. Ad-hoc queries are not possible in CouchDB. The 3 views are defined in a single “design document” called “vcnjokes”. The source for that design document are provided with the sample download, as comments for the COUCHTEST01 form.

  • Button “Get all current jokes from CouchDB” uses view “joke_by_jokeid”. All jokes are retrieved, and sorted by joke_ID, but only a few columns are selected. It cannot be edited as the revision ID is not available. Note that escaped quotation symbols in the data are displayed as quotations.
  • Button “Get all nerdy jokes from CouchDB” uses view “nerdy_joke”. The jokes list is filtered to those that have a category of “nerdy”. This list also cannot be edited.
  • Button “Get all current data from CouchDB for edit” uses view “all”. This view references all of the document and so all fields, including revision ID, are available. Thus editing can be done, and when stored, the new revision number is updated. Note that escaped quotation symbols appear as stored, for ease of updating.

When preparing the JSON for display in a Uniface form, it is certainly necessary to use Structs to manipulate it into the Component data structure. In fact the choice of the external data structure of the form entities is quite arbitrary. CouchDB has no fixed schema. Thus you can never be sure that an external application won’t add data that renders your entities and fields obsolete. All I could do is generate a useful number of jokes, and observe that some of them have one category with a value of “nerdy”. However, I can see that the category is defined as a JSON array, and so I make sure to set   $tags->jsonClass = “array” before converting the struct to a JSON string. This is what led to the one to many relationship between CNJOKE and JCATEGORY. With my CouchDB data set, I verified my schema by manually adding several extra categories to some jokes, using structure editor commands to add and remove occurrences (tool tip text will assist you).

Hopefully this prototype demonstrates how modern features in Uniface allow integration with other modern software systems.

 

Our Day by Day Highlights of MWC Barcelona

It was the first time we participated in MWC15, and to sum it up in a few words: Totally exceeded our expectations! Here’s a day by day recap of our time in the “trenches.”

Day 1:

It was a very interesting first day. There were initially some quiet moments, but then things picked up and all demo stations (3 of them) plus the 5 devices were being used by our Uniface colleagues were all busy and everyone engaged in conversations. It was awesome. The energy flowing around the booth and within the team was fantastic. The day flowed with up and down time and in general with a lot of positive reactions.

Danny (account manager) attended Mark Zuckerberg’s keynote presentation. Even the Uniface (freelance) photographer ;-) got a great picture of the King of Spain!

Arriving at the event

Arriving at the event

The King of Spain who attended the event

The King of Spain who attended the event

Day 2:

After an early team debriefing at the booth to the Uniface crew, the energy was good, we had a good synergy between the whole crew and the roles were working fine. We worked hard, including sending people canvasing around to talk to people around our section “App Planet” which by the way it is the perfect spot to have Uniface. Also, it was clear that our tag line “Design your mobile enterprise” is spot on.

Remind me to tell you later about my public transport adventure after the day was over, I mean  Tianle, Thomas, Christophe and myself going back to the hotel with the idea to see a bit more of the city. And we did, including walking the “extra” mile … literally!

Busy time at the Uniface booth

Busy time at the Uniface booth

Day 3:

The Uniface crew went through a metamorphose with some people leaving and new people coming. I must confess that as a former ‘amateur’ football coach/trainer, you know you never change a winning team; so I was a bit worried. Luckily for me, this was not a football match, so everything transitioned perfectly fine.

Again the day passed on the blink of an eye. For me, the best way to describe it is using as reference the differences between the length of technical demos which are: on day one demos lasted approximately 15 minutes, on the second day those lasted 25 minutes and on the last day these were over the 35 minutes average; the main reason being the interest of the prospects (of course) and the type of questions they asked.

At the end of the day, people were partying all over the exhibition halls, listening to music and having drinks. I have a complaint which I want to make public now, Danny Ragowan went to drink tequila with my fellow Mexican countrymen on my invitation and he left me behind at the booth. I was invited earlier on the day when I visited them. (On his behalf I need to say I was involved in the last demo.)

Part of the Uniface Crew

Part of the Uniface Crew

More booth traffic

More booth traffic

Day 4:

The experience has been unreal – In my wildest dreams I would not have imagined such positive results of MWC15 for Uniface. The people we talked to were interested in the core Uniface message, which means that a cross-platform model-driven development and deployment environment is what people are looking for.

Besides the above, how about our approach to the market by extending technologies (CHUI, C/S, WEB, RIA, Mobile) in the spirit of shielding the business from technological evolution and then again empowering the developers to embrace those and in case needed go the depth necessary to solve the business requirements. And guess what? It did all of these and more. Because even fellow exhibitors considered that an incredible strength of Uniface.

As a bonus, the Uniface culture also shined at the event. The ambiance and behavior will be remembered and we heard on several occasions: “Here come the nice guys in the white shirts!”

Packing up at the end of MWC

Packing up at the end of MWC

Showing Uniface’s Mobile Capabilities at Mobile World in Barcelona

When you think of enterprise mobile apps, what is the first type of app that comes to mind? That’s actually a more difficult question than we thought when we first started off creating a mobile app demo to showcase at Mobile World Congress in Barcelona. We decided on an insurance policies app, which we will show on both iOS and Android devices. The event is already taking place next week, and luckily all of our preparations and hard work are falling into place.

Uniface will participate as an exhibitor in the App Planet Exhibition Area (stand number: 8.1K79) at the event. Here we will demo the power of Uniface Mobile to create cross platform mobile applications and showcase how we can address the current opportunities and challenges of developing apps for enterprise mobility.

When building a demo app specifically for an event, it’s important to be able to show someone quickly the power of your solution.  With Uniface, this is no different, however while we can (also) make flashy front-ends, the back-end integration of a mobile app is where you see the real benefits.

Preparing the Uniface demo for Mobile World Congress
Preparing the Uniface demo for Mobile World Congress

So take an insurance app that allows a user to view their various policies on their mobile, be able to submit a claim to their insurance company with all the relevant information and accompanying photos—and all of this seamlessly integrating into the back-end system. Take that same app and add a piece of business functionality which would normally lead to lengthy change management and development time, and see how Uniface can build a component in minutes. That is the power of the Uniface mobile solution, and what we are looking forward to showing at MWC in Barcelona.

Over the course of four days, 2-5 March 2015, 85,000 delegates will hear from thought leaders from the most important companies in mobile and adjacent industries. They will be able to see the newest technologies and most innovative products available in a cutting-edge Exhibition featuring more than 1,900 exhibitors, and participate in App Planet where more than 200 app-focused cutting edge exhibitors, including Uniface, will showcase the newest apps, gadgets, devices, and technology in the mobile ecosystem.

If you’ll be in Barcelona for MWC 2015, contact us to arrange a meeting or drop by our booth in the App Planet Exhibition Area. In the mean time, visit go.uniface.com/mobile to learn more about Uniface Mobile.

How Uniface Harnesses Diversity to Drive Innovation

Author: Andrea Chatterson, Human Resources Business Partner, Uniface

Last year, I had the opportunity to join Uniface and further my career with a dynamic, successful company.  During my first year with Uniface, I’ve often been asked what attracted me to the company?

What I found was a combination of a highly skilled workforce and a company culture which fosters an open and innovative environment for employees to collaborate and express ideas.  Being a HR Business partner, I have a unique insight into what sets Uniface apart from other companies and what makes it an exciting and motivating place to work: diversity, empowerment and emotional intelligence. The Uniface approach is refreshing,  because it taps into key drivers of innovation and individual empowerment.

Workplace Diversity

At Uniface, diversity in cultural experience is a key element of our work culture: currently we have over 32 different nationalities working across 14 countries. Forbes has recognized that diversity breeds business innovation and is essential to the growth and prosperity of any company. This includes, diversity of perspectives, experiences, cultures, genders, and age.

As a result, we pride ourselves on developing this intercultural approach to recruitment and have learned to recognise the value it has brought to the company. This diversity within the organisation has created an openness to new ideas, and made people highly receptive to solving problems in new ways.

Compelling evidence from the Harvard Business Review shows that diversity unlocks innovation and drives market growth. Six of these behaviours have been found to unlock innovation across the board:

  • Ensuring that everyone is heard
  • Making it safe to propose novel ideas
  • Giving team members decision-making authority
  • Sharing credit for success
  • Giving actionable feedback
  • Implementing feedback from the team.

At Uniface, we’ve worked really hard to establish a culture in which all employees feel free to contribute ideas and share in the success of those ideas.

Empowerment and Collaboration

One way in which we promote our open culture is through scrum methodology and a monthly sprint pitch, which is all about collaboration. We achieve collaboration by engaging each and every member of the team.

This has the additional benefit of being a trusted forum with a free format so individuals get to gain visibility on how they fit into the process of reaching targets while practicing skills we value. Forbes research shows that a diverse and inclusive workforce is critical to driving the creation and execution of new products, services, and business processes. At Uniface, we harness diversity to give us a competitive advantage in the market place.

Emotional Intelligence

At Uniface, it’s not just about hiring the “smartest” people. We know we can do that. So, we also look for what Daniel Goleman has described as ‘emotional intelligence’ and in particular, we look for people who can demonstrate proficiency in managing relationships and building networks. This includes an ability to find common ground and build rapport with others. In fact, this is probably what separates life at Uniface from other companies I’ve worked in.

So at Uniface, building a uniquely motivating and empowering workplace culture comes as a result of the type of employee we actively look to recruit and the type of workplace environment we co-create.

If you think you’d like to join us here at Uniface, you can always check our job listings at https://uniface.has-jobs.com/  – we’d love to have you become a successful part of our global team.

What’s your experience of working in diverse teams? Has it been positive? Let me know what you think supports an open and innovative culture. We’re always looking for ways to improve.