The idea that all companies would eventually need to become software companies was first posited in Marc Andreessen’s famous “Why Software is Eating The World” and in the modern market it appears that the idea is more relevant now than it has ever been. However, it is not always practical for companies that operate in non-tech industries to adopt this line of thinking, which is perhaps why it is common for people to think of start-ups when considering the concept of software eating the world.
For traditional companies making the transition, focus and timing are often key.
Timing The Transition
The first step towards the transition into a software company is considering what is currently available and how this can be used to offer something innovative to users.
The evolution of Netflix is interesting in this case. The company started out as essentially an internet-based DVD renter, delivering films to people’s homes after they had rented then online. For some companies this may have seemed like enough as it offered something that traditional video rental companies could not in terms of convenience.
However, the ever-changing technological marketplace resulted in the evolution of the company in-line with faster internet connections, resulting in the movie streaming model that has not only resulted in even more success, but can be considered a primary factor in the dissolution of traditional video rental stores, like Blockbuster, which realised too late that the market had evolved beyond what they were offering.
Netflix essentially looked at what was available to them and considered how they could leverage this into providing an innovative service to users that filled a market need, much like in the case of Uber, which we will examine later on. Perhaps most importantly, the company has continued to innovate, particularly in regards to its fairly recent switch to content creator, as well as provider. None of this would have been possible were it not for the expert-timing that they demonstrated in bringing their software to market, coupled with the failure to recognise a changing market by more traditional suppliers.
Staying Focused on the Business Core
As mentioned, the transition is often most difficult for more traditional companies, as it often requires hiring many new people in all areas of the organisation, in addition to restructuring the economics of the business and establishing new infrastructure for customers and partners to interact with.
Even those that have healthy revenue streams need to understand the need for speed and comprehensive testing in this endeavour, which means they need to focus to make the transition as effectively as possible.
By focusing on the core of your business and its offering it becomes easier to work out how becoming a software company can benefit your end-users. This is seen in the evolution of Uber, which filled a gap in the market for the provision of accessible and affordable transport. The company identified that both riders and drivers essentially have access to a computer in their pockets thanks to the popularity of smartphones and they used this as a platform that would allow their service to bring drivers together with riders, essentially forming the core of their business upon which sub-cores could be utilised.
The fact that the company doesn’t own the cars that people book through the service allows Uber to place its focus squarely on its software and ensuring that it offers users what they need. In doing so, the company has fulfilled a market need through becoming a software company.
Such platforms also create boosts within their wider ecosystems because they allow for innovation, which companies like Uber can develop further from. For example, the use of the payments stack from Braintree within their core service allows Uber to benefit from the innovations of Braintree, in addition to any new innovations they themselves bring to markets. The ability to swap services within a software and whether a new service introduced will provide an experience improvement for customers must also be considered.
In essence, by focusing on your core in regards to software it becomes easier to focus on customers and their needs, allowing for greater utilisation of current and emerging technology.
The Final Word
The question now is how will traditional companies go about making the transition? The examples of Netflix and Uber show how important it is to stay aware of the developing technology around your business and how to leverage this to the company’s advantage. This is exceptionally difficult and many companies fail to accomplish this task, but it is one that is becoming increasingly important in a progressively more software-driven world.
Usability is an issue that many designers have to deal with when creating software interfaces. Many look to the ten usability heuristics created by Jakob Nielsen in the 1990s to help them solve the issue, but can such thinking be applied to bots? Let’s consider each in turn to find out.
- Visibility of System Status
This heuristic states that users should be kept informed of what is happening with a system at all times, which is a distinct challenge for bots due to the transient nature of messages. This makes it very difficult to provide constant updates while also allowing for the smooth flow of messages.
This issue can be countered by providing a system that allows customers to request system status information, while also ensuring speed in feedback. Bots need to be responsive to such requests, while also being able keep users informed on the progress made with such requests.
- A Match Between System and the Real World
At first glance it appears that bots meet this heuristic by their very nature, as they are able to communicate by using the user’s language and concepts that are familiar with them. However, a key issue with this is making it seem as though the conversation offered by bots is natural, which means they need to be able to understand language itself.
- User Control and Freedom
This heuristic states that users must be offered the freedom to undo and redo actions without having to deal with a complex dialog. Bots can meet this need by offering users the ability to delete and rewrite messages as needed while also making them aware of valid options.
- Consistency and Standards
This relates to the creation of platform conventions that put standards in place to help users understand what they can and can’t do. For bots, this means sticking to a single style of language at all times, allowing users to develop familiarity and not experience nasty surprises.
- Error Prevention
Design should consider the prevention of errors at all stages, rather than being created just to inform users of when they mess up. For bots, it must be assumed that errors will happen often, at first, due to a lack of precision in human dialog. Confirmation should be required from the user at all critical steps.
- Recognition Rather Than Recall
Users should not be required to memorise all aspects of their software use, so information should be made visible to aid in recall. Furthermore, system instructions must be reachable at all stages of the interaction.
For bots, this can be translated into providing concise messages that keep readers engaged. Many of the issues that bots face in this regard relate to users not reading messages, which often occurs when they are presented with walls of text.
- Flexibility and Efficiency of Use
The system should cater to inexperienced users while also providing facilities for experts to speed up interactions. This can be used in bot creation by offering users the option of asking for things to be retrieved via semantic questions or by entering simple commands to expedite the process.
- Aesthetic and Minimalist Design
Irrelevancy in design should be avoided as extra units of information compete with pre-existing ones, making those that are most useful less visible.
This is difficult with bots as there is a difference between the service being provided and the creation of relevant human interaction. Many users will start their conversations with bots in humanistic terms, often engaging in banter along the way. These interactions should not always be constricted by the need for conciseness, however, messages related to the actual service provided by the bot should.
- Help Users Recognise, Diagnose and Recover From Errors
This is simple enough in software and bot design. If an error is made, explain what it is in understandable language and how it can be reversed.
- Help And Documentation
This heuristic states that documentation should be easy to access and focused on helping users through specific tasks. This can be applied to the bot quite easily and it is likely that commands and questions will allow for help to be received during conversations in the future.
So What’s Relevant?
This results in six of Nielsen’s heuristics still being relevant to bot design, though the others can often be combined with these:
- Visibility of System Status – Users should be able to stay informed about system status at all times.
- User Control and Freedom – The bot should request information from users at critical junctures.
- Match Between System and Real World – Know your users and what they need.
- Help and Documentation – Provide access within the bot.
- Flexibility and Efficiency of Use – Provide means for users to accelerate their interactions.
- Consistency And Standards – Ensure the communication style remains consistent.