25 October 2018, Berlin: An employee shows the new mobile POS system at the Deutsche Bahn … [+]
Software applications go both ways. Horizontal software applications are those apps that could apply to a wide variety of use cases across any industry and work in the hands of almost any user – think about Word, Excel, the core functions of most databases as well as a whole selection of apps a user might find on their smartphone such as WhatsApp, Twitter, Google Maps and so on.
These are horizontal apps, they’re multi-use-case and multi-applicable, if not quite perfectly multi-purpose in the widest possible sense.
Then there are vertical applications.
A vertical application could be (to conjure up some extreme and less radical examples), a retail cash register software solution specifically built for the needs of golf professional shops, with unique Point of Sale (PoS) functions for shop merchanise, golf course booking slot options and player equipment repair management functions.
Equally and perhaps more broadly, a vertical application could be a Field Service Management (FSM) application designed to look after engineers’ interests when on gas maintenance visits, building inspections or some form of repair job. Often still custom-coded to the use case in hand depending upon its level of adaptability, vertical application software suite and platform providers strive to build as much customizability into their tools as possible so that they can apply to as broad a range of deployments as possible.
Why the fuss and focus on vertical apps?
Because we’re at that watershed-tipping-inflexion point where the enterprise software industry has produced a weight of product that now enables us to start looking after more specialized use cases. In truth, the golf shop app example stems from a real world app that stretches back to the 1990s, but there are now enough tiers of automation and data analytics intelligence for us to start thinking about this more directly.
Indeed, as Kaitki Agarwal of A5G Networks, Inc. has already noted here this year in a Forbes Technology Council Expert Panel story, “Industries are transforming and technologies are converging. In the past, platform developers or application developers did not necessarily need insight into other technologies such as Machine Learning (ML), 4G, 5G functions and so on. In today’s world, it will become important for developers to be ‘T-shaped’ – that is, to have deep vertical knowledge as well as horizontal knowledge and expertise.”
This notion of T-shaped development is perhaps meant to convey a broad base upper layer of knowledge i.e. competency with operating systems, popular programming languages, widely used development environments and established software delivery methodologies such as the Agile (CAPS A deliberate) approach. But, crucially, it will also incorporate a long tail stem (the vertical part of the T) where a developer’s knowledge extends downwards into an industry or use case specialism… and this is why we sometimes now use the term ‘domain experts’ i.e. people that know the nuances of the coalface.
The complexity of modern software development makes the concept of a full-stack developer nonsensical suggests Joe Drumgoole, senior director of developer relations at cross-platform document-oriented database company MongoDB. He points us to the fact that in 2003 Eric Evans wrote “Domain Driven Design: Tackling Complexity in the Heart of Software”.
“Even then [in 2003], Evans put domain knowledge and ‘bounded contexts’ at the center of software design.. A bounded context establishes a domain that a single team can work on independently of others. The contextual firewall is then the Application Programming Interface (API) or the contract between the technology service consumer and the originator,” explained Drumgoole.
He further notes that this was an extension of ‘design by contract first established by Bertrand Meyers in the 1990s. The point is that complexity has always been a problem and the solution is never ‘programmers must just get better’ somehow. Instead, we have developed better and higher-level abstractions.
“Hence single node databases begat distributed databases, TCP/IP begat HTTP, and RPC begat REST,” said MongoDB’s Drumgoole.
Getting software application developers to understand the business and the market need is key to success in any successful company. This means that developers can work in cross-functional teams alongside Line of Business (LoB) team members and speak the same language around problems, rather than simply looking at the technology involved.
In Cassandra-centric database company DataStax’s ‘State of the Data Race’ report this year, as many as 91 percent of respondents from organizations with a strategic focus on deploying enterprise software applications that use data in real-time said that developers, business owners and data scientists are working in cross-functional teams – hence the potential for greater development of vertical applications.
“Companies win by empowering teams closest to the customer experience or business process to roll up their sleeves, dig in and make a difference in a quick, Agile fashion. That includes understanding the minutiae of the industry and how its processes work in practice. Shared curiosity and drive are critical for every role, including developers,” said Bryan Kirschner, vice president strategy at DataStax.
It seems clear, any organization is going to have distinctive relationships with its customers and business processes that are broken down in their own special ways. Delays and disconnects happen when business owners who don’t fully understand technology try to communicate with developers… who, in turn, don’t fully understand the pain points or the upside opportunity.
“The notion of a ‘vertical’ application might be a slightly odd notion in some senses – I mean, all applications are used in a vertical setting, essentially,” said Marne Martin, IFS’s president of service Management, EAM, and Global Industries. “What I would say is that you can come at the enterprise software market from a best-of-suite solution perspective (i.e. an end-to-end suite of applications where integration is inherent), or a best-of-breed solution (where functionality is more specialized, but some level of integration to other systems will be needed). Companies need to evaluate their current landscape together with their business goals and ambitions – and then recognize the pros and cons in their decision in terms of speed of roll-out, impact on customer service, operational efficiencies… and so on.”
Given the discussion thus far then, does the scenario (or perhaps spectre) of Line of Business domain-specific software application development mean programmers and other software engineers working in a dedicated stream will pigeon-hole themselves into a role they can’t transfer out of?
“This is not a concern that the software industry should have – and vertical specialism is happening at every level from the way the cloud hyperscalers [AWS, Google Cloud Platform and Microsoft Azure] are bringing new services to market… and the way we as technology platform makers are honing and aligning services today,” said an upbeat Prakash Vyas, head of portfolio at OutSystems, a company known for its low-code and application modernization approach.
For Vyas, it’s more a question best of breed technologies developing at a more cerebral higher level and of developers embracing those innovations with a view to gaining competency and skills, but retaining what he calls a ‘transferability of experience’ across use cases, even when working in narrower industry vertical scenarios.
“Many industries share commonalities or system characteristics that other companies are in fact trying to learn from others that they see as leading the way. For example, if you’ve supported a high-touch sales organization in financial services you may be well set up to do the same in healthcare, because organisations in that sector have similar relationships with patients. So vertical software development is not a closed shop – the message to developers should be: excel at what you do, strive for more, apply it to the requirements in hand, think about how you might also be able to help others,” summarized OutSystems’s Prakash.
Despite our (hopefully) creative use of a television-themed title for this piece (and yes, we realize that nobody younger than Generation-X will know what a TV horizontal hold knob was, or possibly still is, we can now perhaps think about technology growth in more than one plane.
The technology industry likes, no loves, no… adores talking about scale; it’s a means of validating expansion, augmentation and enhancement to guarantee the future worth of tech in general. But rather than just thinking about scale for upward growth, we can now think about vertical scale for the number of users and size of data estate in a horizontally expanding fashion.
Vertical software is real, please do not adjust your set.