Skip to main content

Why app deployment is not a solved puzzle yet?


Already more than 10 years ago, when Google Docs came out, IT experts predicted the time of fat-clients, needing to be installed on your local PC, would long be over. With the ever-increasing power of modern browsers, any application could be served as a web-app and your PC would transition to a light-weight terminal, on which only a browser would be installed and running. Unfortunately looking at my PC today, this trend is far from being completed as I still have dozens of applications deployed on my PC.
As always reality did not quite catch up with the predictions, for multiple reasons:
  • Browsers still have certain functional limitations, making it difficult to build web-applications with same feature completeness as a desktop application
  • Technical performance of web-based applications is often worse than when installed locally. E.g. Google’s gaming platform (Stadia) only came out in 2019, as it took Google years to resolve the latency issue, which is crucial for a good gaming experience.
  • Access to the internet: when applications are not installed, but instead are offered as SaaS solutions, it is required to have an internet connection at all times. While at home and in the office, this is not really an issue, when working on the road (e.g. on the train or at a client) this can be quite challenging. 4G (and soon 5G) networks are a solution, but for personal usage continuously retrieving applications of several dozens of megabytes over your mobile internet connection, will soon exceed your quota.
  • Size of application: currently many desktop applications are monolithic. If they would be migrated to a single-page app, this would mean a download of dozens of megabytes before being able to start the application. It will be required to make them more modular and only download the modules required at a certain moment.
  • Legacy of software vendors: vendors like Microsoft (with Windows and Office suite) have invested millions and several years in creating current code base. Transforming this legacy into a fully web-based application is easier said than done. Office 365 is a first step, but as most of you probably already experienced, the user experience of the online Excel tool, compared to the locally installed Excel is far from the same.
  • Legacy of companies: many companies have developed internal web-based tools, which are not compatible (or at least not guaranteed through extensive regression testing) with modern versions of browsers. As a result, many companies are forced to stay on old version of browsers, which make it impossible to develop new innovative web-based apps in (requiring modern web-browsers).
  • Data privacy concerns: when all applications are working in the cloud, this means also that all data is automatically in the cloud. As many people are still resisting to cloud for data privacy reasons, this is also an important concern to be addressed.
Nonetheless the advantages of browser-based apps are so big, that ultimately they will win over locally installed apps, i.e.
  • Everybody is automatically working on latest version of an application (avoid having to support old software versions, having to push security patches…​)
  • Browsers come with strong built-in security features, which are automatically applied to a browser-based app. If there is no software installed locally anymore, several security issues (like viruses, worms…​) can be significantly reduced.
  • Users don’t need to reinstall and reconfigure all applications when switching PC
  • As a lot of the heavy calculations can be done at server-side, the computers can have cheaper, less powerful hardware
  • Cheaper usage-based licenses, instead of having to acquire software you almost never use
  • All files are automatically and immediately stored in the cloud, meaning files are automatically backed-up
Several new emerging technologies might finally allow to transition to the fully browser-based app world:
  • Web assembly: this new technology allows binary files (i.e. compiled languages like C++, Go or Rust) to run in the same browser sandbox as regular JavaScript code. This enables high-performance applications in the web-browser and opens the browser to code from any programming language.
  • Progressive Web Apps (PWAs): these web apps combine the best of both worlds, allowing to run in the browser, but also allowing to be used when offline (or on a low quality network), to push notifications to users (even when web page not open) and to access device hardware.
  • Single Page Applications (SPA): these are applications contained in a single web page, allowing several user interactions without the browser having to load new pages. Contrary to the 2 above technologies, this technology has become already very common (i.e. all well-known websites like facebook.com or gmail.com, use already this technology). The technology allows a high responsiveness and less network load, but the size of the application to be loaded starts becoming an issue. This is being tackled by minification (removing all unnecessary characters from the code), compression (gzip) or a modular architecture, where only a core composer component is loaded, which retrieves, initializes and runs other modules only when needed.
  • Static site generators (also called Jamstack), like Gatsby, Next.js, Hugo, Hexo, Jekyll, Slate…​ These tools allow to pre-build (pre-rendering) different static HTML-based pages of a website, based on the HTML, CSS, data and JavaScript code. This means that page can be automatically retrieved and does not need to be built at the moment the user requests a specific page. This technique allows to improve performance considerably and gives also certain security benefits (as there is less interactions with the server). Of course, static site generators also come with the disadvantage that the site becomes much less interactive.
  • Content Delivery Networks (CDNs), such as Akamai, Limelight and Mirror Image, provide growing networks and more and more features (e.g. AI based smart routing and smart predictions of CDN cache renewals) to help boost the performance of heavy and complex web apps. Especially in combination with static site generators, CDNs can even more effectively improve the performance by caching all the static content.
While on personal computers, there is a trend towards browser-based apps, it is strange to see that we don’t see the same trend in the mobile space. While initially we saw a lot of "m." websites and later responsive websites (websites which could also be correctly rendered on a mobile device), today almost for everything a native app is being created, even though we see here similar issues:
  • Slow release cycle, especially with certification processes of Apple and Google sometimes taking several days
  • User having to continuously reinstall dozens of apps, often resulting in version conflicts with mobile operating system version or with app backend if not correctly upgraded.
  • Valuable disk space on the smartphone being filled by apps, leaving little room for user data (like pictures)
  • Difficulty to have different apps depending on environment, user…​, making segmentation and testing strategies (like A/B testing, canary testing) more difficult to achieve
  • Users not wanting to make effort to install app for infrequent or one-time usage
At the same time the features of mobile phones are still evolving strongly, which means that the browser cannot always follow the latest new features provided by mobile phone providers to native developers (e.g. advanced access to camera, compass, accelerometer, swipe gestures, AR-toolkit…​) and native apps provide the fastest, most reliable and most responsive experience to users. Furthermore, users are well-acquainted finding apps on their phone, rather than having to open browser and go to a specific website.
But also, in the space of mobile devices, technological evolutions will gradually make the deployment of apps, which needs to be installed on the device obsolete:
  • Most native apps currently require a separate development for Apple phones (native iOS apps are usually written in Swift or Objective-C) and Android phones (native Android apps are usually written in Java), making the development cost very high (more than one code base) and quickly resulting in inconsistencies between both mobile platforms. Cross-platform development frameworkslike React Native (from Facebook and used by e.g. Facebook, Walmart, Tesla and Airbnb), Flutter (from Google), Titanium (used by e.g. eBay or PayPal) or Xamarin (from Microsoft and used by e.g. Slack and Pinterest) try to give a solution to this (develop once and build for multiple platforms), but come still with certain limitations (as they typically need to foresee the common denominator between all supported platforms) and still require to install an app. Thanks to large open-source communities these limitations are rapidly resolved, while remaining gaps can still be resolved by a partial native development (but this mix of technologies complexifies app considerably).
  • Responsive web apps are web sites which render nicely in the browser on a mobile device and are developed using JavaScript, CSS and HTML5. Due to evolutions in these languages, the features of such sites are becoming more and more rich.
  • Hybrid apps: these apps are installed like a native app, but actually are a simplified browser, in which a web-app (built in JavaScript, CSS and HTML5). Typical hybrid app platforms are Apache Cordova (PhoneGap) and Canvas. These apps are easier to scale and upgrade (new versions of code don’t require an upgrade by the user), have only one code base to manage and still give the app experience to the user. On the other hand, responsiveness and UX will be negatively impacted and it’s also more difficult to make use of the latest feature of a mobile platform.
  • Low- and no-code platforms: the rise of low- and no-code platforms for developing web and mobile apps results also in a rise of hybrid apps, as these platforms typically result in hybrid apps.
Will be interesting to see how all those new technologies unfold, but with an increasing digitalization of our world, it’s clear that any overhead and non-productive work (like maintaining 2 code bases for different mobile platforms, having to install and continuously upgrade apps on devices…​) will gradually disappear, when feature sets of browsers become more and more powerful.
What is less clear is where compute and business logic will be executed, i.e. on the client or server-side. Executing code on client-side typically gives better responsiveness and a more dynamic app behavior but means also higher hardware demands at client-side and less control by the app provider. Many technologies mentioned above (like e.g. web assembly) will further enforce this movement. On the other hand, execution on server-side gives more control and requires less compute power on client-side, but on the other hand requires more network bandwidth and a highly scalable server-side. Also in this domain, many new technologies provide answers such as elastic scalability (thanks to cloud infrastructure, container orchestration systems, functions-as-a-service…​), compression techniques, more sophisticated CDNs…​ As in many situations, this comes down to the traditional choice between decentralization (execution as much as possible on client-side) and centralization (execution as much as possible on server-side), which traditionally swings back and forth, but will ultimately end in between, making use of each side depending on the use case.
Check out all my blogs on https://bankloch.blogspot.com/

Comments

Popular posts from this blog

Transforming the insurance sector to an Open API Ecosystem

1. Introduction "Open" has recently become a new buzzword in the financial services industry, i.e.   open data, open APIs, Open Banking, Open Insurance …​, but what does this new buzzword really mean? "Open" refers to the capability of companies to expose their services to the outside world, so that   external partners or even competitors   can use these services to bring added value to their customers. This trend is made possible by the technological evolution of   open APIs (Application Programming Interfaces), which are the   digital ports making this communication possible. Together companies, interconnected through open APIs, form a true   API ecosystem , offering best-of-breed customer experience, by combining the digital services offered by multiple companies. In the   technology sector   this evolution has been ongoing for multiple years (think about the travelling sector, allowing you to book any hotel online). An excellent example of this

Are product silos in a bank inevitable?

Silo thinking   is often frowned upon in the industry. It is often a synonym for bureaucratic processes and politics and in almost every article describing the threats of new innovative Fintech players on the banking industry, the strong bank product silos are put forward as one of the main blockages why incumbent banks are not able to (quickly) react to the changing customer expectations. Customers want solutions to their problems   and do not want to be bothered about the internal organisation of their bank. Most banks are however organized by product domain (daily banking, investments and lending) and by customer segmentation (retail banking, private banking, SMEs and corporates). This division is reflected both at business and IT side and almost automatically leads to the creation of silos. It is however difficult to reorganize a bank without creating new silos or introducing other types of issues and inefficiencies. An organization is never ideal and needs to take a number of cons

RPA - The miracle solution for incumbent banks to bridge the automation gap with neo-banks?

Hypes and marketing buzz words are strongly present in the IT landscape. Often these are existing concepts, which have evolved technologically and are then renamed to a new term, as if it were a brand new technology or concept. If you want to understand and assess these new trends, it is important to   reduce the concepts to their essence and compare them with existing technologies , e.g. Integration (middleware) software   ensures that 2 separate applications or components can be integrated in an easy way. Of course, there is a huge evolution in the protocols, volumes of exchanged data, scalability, performance…​, but in essence the problem remains the same. Nonetheless, there have been multiple terms for integration software such as ETL, ESB, EAI, SOA, Service Mesh…​ Data storage software   ensures that data is stored in such a way that data is not lost and that there is some kind guaranteed consistency, maximum availability and scalability, easy retrieval and searching

IoT - Revolution or Evolution in the Financial Services Industry

1. The IoT hype We have all heard about the   "Internet of Things" (IoT)   as this revolutionary new technology, which will radically change our lives. But is it really such a revolution and will it really have an impact on the Financial Services Industry? To refresh our memory, the Internet of Things (IoT) refers to any   object , which is able to   collect data and communicate and share this information (like condition, geolocation…​)   over the internet . This communication will often occur between 2 objects (i.e. not involving any human), which is often referred to as Machine-to-Machine (M2M) communication. Well known examples are home thermostats, home security systems, fitness and health monitors, wearables…​ This all seems futuristic, but   smartphones, tablets and smartwatches   can also be considered as IoT devices. More importantly, beside these futuristic visions of IoT, the smartphone will most likely continue to be the center of the connected devi

PSD3: The Next Phase in Europe’s Payment Services Regulation

With the successful rollout of PSD2, the European Union (EU) continues to advance innovation in the payments domain through the anticipated introduction of the   Payment Services Directive 3 (PSD3) . On June 28, 2023, the European Commission published a draft proposal for PSD3 and the   Payment Services Regulation (PSR) . The finalized versions of this directive and associated regulation are expected to be available by late 2024, although some predictions suggest a more likely timeline of Q2 or Q3 2025. Given that member states are typically granted an 18-month transition period, PSD3 is expected to come into effect sometime in 2026. Notably, the Commission has introduced a regulation (PSR) alongside the PSD3 directive, ensuring more harmonization across member states as regulations are immediately effective and do not require national implementation, unlike directives. PSD3 shares the same objectives as PSD2, i.e.   increasing competition in the payments landscape and enhancing consum

Trade-offs Are Inevitable in Software Delivery - Remember the CAP Theorem

In the world of financial services, the integrity of data systems is fundamentally reliant on   non-functional requirements (NFRs)   such as reliability and security. Despite their importance, NFRs often receive secondary consideration during project scoping, typically being reduced to a generic checklist aimed more at compliance than at genuine functionality. Regrettably, these initial NFRs are seldom met after delivery, which does not usually prevent deployment to production due to the vague and unrealistic nature of the original specifications. This common scenario results in significant end-user frustration as the system does not perform as expected, often being less stable or slower than anticipated. This situation underscores the need for   better education on how to articulate and define NFRs , i.e. demanding only what is truly necessary and feasible within the given budget. Early and transparent discussions can lead to system architecture being tailored more closely to realisti

Low- and No-code platforms - Will IT developers soon be out of a job?

“ The future of coding is no coding at all ” - Chris Wanstrath (CEO at GitHub). Mid May I posted a blog on RPA (Robotic Process Automation -   https://bankloch.blogspot.com/2020/05/rpa-miracle-solution-for-incumbent.html ) on how this technology, promises the world to companies. A very similar story is found with low- and no-code platforms, which also promise that business people, with limited to no knowledge of IT, can create complex business applications. These   platforms originate , just as RPA tools,   from the growing demand for IT developments , while IT cannot keep up with the available capacity. As a result, an enormous gap between IT teams and business demands is created, which is often filled by shadow-IT departments, which extend the IT workforce and create business tools in Excel, Access, WordPress…​ Unfortunately these tools built in shadow-IT departments arrive very soon at their limits, as they don’t support the required non-functional requirements (like high availabili

An overview of 1-year blogging

Last week I published my   60th post   on my blog called   Bankloch   (a reference to "Banking" and my family name). The past year, I have published a blog on a weekly basis, providing my humble personal vision on the topics of Fintech, IT software delivery and mobility. This blogging has mainly been a   personal enrichment , as it forced me to dive deep into a number of different topics, not only in researching for content, but also in trying to identify trends, innovations and patterns into these topics. Furthermore it allowed me to have several very interesting conversations and discussions with passionate colleagues in the financial industry and to get more insights into the wonderful world of blogging and more general of digital marketing, exploring subjects and tools like: Search Engine Optimization (SEO) LinkedIn post optimization Google Search Console Google AdWorks Google Blogger Thinker360 Finextra …​ Clearly it is   not easy to get the necessary attention . With th

Deals as a competitive differentiator in the financial sector

In my blog " Customer acquisition cost: probably the most valuable metric for Fintechs " ( https://bankloch.blogspot.com/2020/06/customer-acquisition-cost-probably-most.html ) I described how a customer acquisition strategy can make or break a Fintech. In the traditional Retail sector, focused on selling different types of products for personal usage to end-customers,   customer acquisition  is just as important. No wonder that the advertisement sector is a multi-billion dollar industry. However in recent years due to the digitalization and consequently the rise of   Digital Marketing , customer acquisition has become much more focused on   delivering the right message via the right channel to the right person on the right time . Big tech players like Google and Facebook are specialized in this kind of targeted marketing, which is a key factor for their success and multi-billion valuations. Their exponential growth in marketing revenues seems however coming to a halt, as digi

AI in Financial Services - A buzzword that is here to stay!

In a few of my most recent blogs I tried to   demystify some of the buzzwords   (like blockchain, Low- and No-Code platforms, RPA…​), which are commonly used in the financial services industry. These buzzwords often entail interesting innovations, but contrary to their promise, they are not silver bullets solving any problem. Another such buzzword is   AI   (or also referred to as Machine Learning, Deep Learning, Enforced Learning…​ - the difference between those terms put aside). Again this term is also seriously hyped, creating unrealistic expectations, but contrary to many other buzzwords, this is something I truly believe will have a much larger impact on the financial services industry than many other buzzwords. This opinion is backed by a study of McKinsey and PWC indicating that 72% of company leaders consider that AI will be the most competitive advantage of the future and that this technology will be the most disruptive force in the decades to come. Deep Learning (= DL) is a s