Tag Archives: Mobile

What does the cloud bring to application development?

Following our line of thought of keeping up with technology, I had the privilege and pleasure to join a diverse group of Uniface engineers who participated in the Google Cloud Next  event in Amsterdam. As mentioned earlier, Uniface is at the leading edge of application technology so in that respect we participate by learning about the newest trends. We do this also for cloud with great partners like Google by obtaining the technological highlights,  and diving deeper into some examples like spanner and app maker.  All this to drive momentum and to spark innovation at Uniface.

Next Amsterdam being such a nice and big event consisted of several tracks with different areas of focus all around the cloud. Tracks that were visionary, strategic and technical besides the experimental breakout sessions; handling everything from the business, the technology and innovation.

I attended several sessions and had a look at the experimental/technical campground as presented by Google and some of its technology partners at the conference.

The most outstanding thing I realized while at the event was that cloud is moving everywhere, from application development, to deployment and innovation.

So, in that sense, cloud is becoming a game changer in application development. What do I mean by that? Well, in general, we are used to waves of technologies and application architectures like mainframe, client/server, Static Web, Dynamic Web, mobile apps, and now the cloud.

The cloud is reshaping the way we think about software; whether that is containerizing, micro services, contributing to developing new applications, exploiting the data produced by the usage of applications, all in all, taking software to a new level. Actually, one could say, it is being changed in several dimensions.

What does the could bring to application development?

Think about security which appeared to be something for the experts, and nowadays reshapes the way we think about software. And some of the thoughts around security today may involve user behaviour as an additional way to authenticate us. Wow! Nice. Although it does also imply user behaviour is something you need to consider.

What does the could bring to application development?

What does the could bring to application development?

Well, you may think “but there is a lot of data that now needs to be processed for that”, and “what about the structure of such data?” Well, have you seen all the developments around big data and high performing databases which the cloud is enabling? Ok, I give it to you… but then how can I, as a developer, make use of that data? Well, API’s is the answer. An old and beautiful concept that is being embedded in software development now, as collaboration with others is a must. Your software needs to be easy to interface with and as such it must provide a clear and easy API for others to use. Better even is the fact that software in the cloud must have API’s, becoming a de facto standard otherwise you are out. (By the simple fact that adoption will be hard if not impossible with all the competition around.)

What does the could bring to application development?

The more common areas where the cloud appear initially to have impact was on whether the application was executed on bare-metal or on a virtualized environment reshaping componentizing the hardware and the different layers of software. This too, is something that affects application development as we need to think also on those components/containers we can use/enable others to use. Consider frameworks for it and make the necessary provisions in your application architecture.

What does the could bring to application development?

Also of utmost interest were the innovation presentations that took place on a plenary/breakout, or campground sessions. It was amazing to see how creativity is being applied to develop the technological step around the cloud; think about natural language support API, and its applicability on the artificial intelligence spectrum, which nowadays is within our reach, it is in our hands (literally) with our phones/tablets.

What amazed us too was to see synergy in our approach to application development and the new trends like App Maker.

Whether you use the cloud to deploy your applications, execute on the cloud and or to innovate, the cloud is here to stay.

All in all, the value proposition around the cloud is to think not only of what the cloud can do for you, but what you can do in the cloud too.

 

 

 

 

 

3-Step approach to evolutionary innovation

In my last blog post, I explored why everyone isn’t innovating if it’s so important. I surmised that innovation can be evolutionary as well as revolutionary. In this scenario, I would like to offer 3 steps to approach evolutionary innovation.

How is it possible to have your cake and eat it – to keep up with your urgent tasks while moving forward at the same time? Various solutions have been put forward, such as the idea of bimodal IT.

From what I’ve experienced, a good, pragmatic approach is to follow what is sometimes called “evolutionary innovation”. By building incrementally on what you have, it’s often possible to push forward with innovation without putting everything else on hold or disrupting business-as-usual.

Let’s look at how to approach evolutionary innovation under three headings:

  1. Build on what you have
  2. Make the most of the available ideas
  3. Be ready to fail

Uniface Innovation

  1. Build on what you have 

An idea doesn’t have to be brand new to be innovative. It’s often about doing the same thing better. Think about mobile phones. An initial step was going from wired to cordless. Since then, we have seen a lot of evolutionary steps, bringing us to the smartphones we use today. There have of course been some revolutionary jumps; however, for the most part, the innovation has been evolutionary.

Rather than await a flash of inspiration and light-bulb “eureka moment” – going from nothing to revolution – we can innovate by listening to people’s challenges and turning these into creative new ideas.

Those ideas can often be implemented with what you already have. In the case of IT innovation, it’s possible to work with solutions that take care of encapsulating technical complexity. That way, you can quickly utilize your existing business assets, getting more out them, with zero (or minimal) rework effort. For example, you may be able to move a legacy application to the web without rewriting core business code. This means you have the time and resources to go on continuously improving your solutions to keep pace with business, consumer and technological change.

  1. Make the most of the available ideas 

It’s important to listen to what other people are thinking – everyone is innovating. The best ideas of all will often come from your own workforce, so it is important to find ways to develop this important resource. With the consumerization of IT and the 24×7 access available to users, particularly through smart devices, the era of apps, bots and assistants sparks many ideas and demands. Combined with the many continually improving features available on these devices, the scope to innovate is immense.

Organizations should try to provide employees with “play time”. Children learn and very rapidly develop through playing; the adult version of this is called R&D. Unfortunately, as we mature, the amount of play appears to decline. Organizations should aim for a range of individual and group activities such as personal experimentation time and team hackathons. It’s important to include individual activities as well as group ones because not all ideas come to the surface in the context of a group, especially if a few people are particularly dominant. As simple as this last statement may seem, it is often overlooked.

The trick is to strike the right balance between business tasks, prescribed learning, and play time. When you hit the sweet spot, you may be surprised how many ideas you have at your disposal – who knows, you may even have enough to spin off additional solution offerings or even new business entities.

  1. Be ready to fail 

With any form of innovation, you must be prepared for some of your ideas not to work. Eddie Obeng’s TED talk on Smart Failure for a Fast-Changing World memorably captures why this is so important. We don’t experiment enough, and although companies pay lip service to the idea that it’s OK to fail, they often find it hard to follow through.

This is one of the biggest blockers to innovation, and we need to overcome it. We have to find ways to experiment with new ideas, some of which will fail. We must ensure that businesses of all sizes fully understand and account for this requirement. If we take the phrase “Be ready to fail” and replace the word fail with experiment, test, try, learn, play, develop, grow, evolve or many similar words, the emotional response is very different – however, the end goal remains the same. Whatever word we choose, the process of innovation is normally iterative. It is important to understand this principle and not give up at the first hurdle.

This series is based on the paper: Agility and Innovation in Application and Mobile Development. You can download the paper here.

If innovation is so important, why isn’t everyone doing it? 

So why isn’t everyone innovating? Sometimes people simply get too comfortable with the status quo to try something new. Think how many users were reluctant to move from Windows 7, which admittedly let them do their job fine, to Windows 8, which some considered less perfect. But, once they were through the Windows 7/8 mourning curve, it was easy to change to Windows 10, with very quick emotional acceptance and significant benefits.

Another major reason for not innovating is that people have more pressing things to do, and this is no doubt true. Throughout life, we often hear phrases like: “I’m too busy,” “I’ve got higher priorities,” and “We have to clear the backlog.” Within the IT function, some technical teams are big enough only to keep up with day-to-day maintenance, leaving no scope to craft new solutions or modernize legacy applications. Large organizations may also find they spend too much time and resources “keeping the lights on,” with little left for innovation.

Innovation

A Catch 22 situation then arises, because by not moving forward, it becomes harder to deliver. This can lead to a failure to give the organization the business agility it needs.

Another reason for failure to innovate at the right pace, is that for many organizations, it’s difficult to make innovation work. As discussed in a recent article by Anderee Berengian, the innovation lab model has often failed. I’m going to elaborate on Berengian’s conclusion that “real innovation comes from outside your company,” as although that may be true for some, for the rest of us there is an alternative.

In my first blog post I addressed the question: What comes first—innovation or agility? In my next post I will look at 3 approaches to innovation for organizations.

This series is based on the paper: Agility and Innovation in Application and Mobile Development.  

You can download the paper here.

What comes first: innovation or agility?

The question of why innovation and business agility are vital –and independent is one that is top of mind for many organizations.

Business agility is essential to survival. With economic uncertainty everywhere, and disruption in many marketplaces, businesses need to respond fast to change. A key enabler for this ability is an IT function that is inherently good at innovating. IT must produce ingenious ideas that will facilitate the required fast business response, for example by equipping the workforce for mobile working. There are any number of innovative uses of mobile technology: for example, a sales person can take and personalize an order while walking around a shop with a customer; a doctor can receive real-time information about a patient’s vital signs.

IT innovation is essential to business agility. However, you also need agility before you can innovate in IT or anywhere else. Which comes first is hard to judge. Organizations tend to start life with both agility and innovation. However, as they get bigger, their agility tends to become constrained for various reasons. Hence their rate of innovation declines, creating a vicious circle.

Innovation and agility

Complex though the relationship between innovation and agility is, we can probably agree that both are vital to a healthy business, and particularly vital when a business is contemplating digital transformation (where the organization rethinks aspects of its existence to take full advantage of digital technology, rather than simply automate the existing way of working). Digital transformation implies that a business must be able to innovate digitally to overtake the competition, with enough agility to reshape itself around the resultant landscape. An agile IT department has the ability and opportunity to create what the business needs – or else to go out and find it fast.

This blog post is the first in a series based on the paper: Agility and Innovation in Application and Mobile Development.

You can download the paper here.

Keeping up-to-date: Mobile security & Native UI

To catch-up on the latest mobile security and native UI trends, the Uniface mobile development team recently attended the appDevcon conference. A conference by app developers, for app developers. An event which targets developers for Apple iOS and Google Android, Windows, Web, TV and IoT devices in multiple tracks.

In advance, we were especially interested in two main topics: smartphone security and sharing code between web and native apps.

Mobile security

The mobile security presentations were given by Daniel Zucker, a software engineer manager at Google, and Jan-Felix Schmakeit, an Android engineer also at Google. In their – in my view – impressive presentation, they confirmed what I already thought: securing mobile phones is not something which you do after you have designed and developed your apps. It is a key area of app development to consider in advance.

Securing mobile phones starts with a good understanding of the architecture of at least the Android and iOS platforms. How is it built up? For example, as Android is based on the Linux kernel, you get all the Linux security artefacts, like Process isolation, SELinux, verified boot and cryptography. While some security services provided to mobile apps have a platform specific nature, others are platform independent.  An example of the first one is the new Android Permissions, which have now become more transparent to users, as they now get permission requests ‘in context’. An example of the platform independent security artefacts is the certificate validation, which done in an incorrect way, would still make your app vulnerable.


Native UI

Sharing code between native and web apps promised to be an interesting session. Some context: mobile users tend to spend significant more time on native UI enriched apps than on web apps, while web apps are attracting more unique visitors than native apps, as web apps are more widely approachable using different devices.

The best way to share code between native and web apps is simply by writing them as much as possible in the same code. Of course! But how do you do that? In this session the solution was to write fully native apps using a mix of NativeScript (an open-source framework to develop apps on iOS and Android platforms) and AngularJS (JavaScript-based open-source front-end web application framework). These native apps are built using platform agnostic programming languages such as JavaScript or TypeScript. They result in fully native Apps, which use the same APIs as if they were developed in Xcode or Android Studio. That is quite interesting! So using JavaScript you can develop fully native apps. That sounds like music to my ears.

Looking at this trend, it promises a lot. The mobile community seems to put a lot of effort in trying to simplify the creation of fully native enriched apps using plain JavaScript and HTML5 functionalities. Until now, we support our users in creating native/hybrid apps with fully native functionality with our Dynamic Server Page (DSP) technology. As we are looking into ways to enrich this technology further, we will follow the developments on this trend as it is fully in-line with our philosophy to share code between applications (client-server, web and mobile apps) and to support rapid application development, which saves our users time and resources in developing and maintaining fully enriched and cool applications.