Skip to content

Main Index

Dr. Neil's Notes


Seamless Software


Artefacts that are seamless, behave as a single system, together. The person using those tools does not have to think about each tool as a different product, with clear delimitations between each tool. You will have likely encountered good seamless software experiences, as well as bad experiences.

Modern cars integrate their audio systems with modern mobile phones. When you are talking to someone on your phone, and you get in your car, the car becomes your phone. You do not need to hang up, and call them back from the your car. The car seamlessly integrates with your phone, and the phone integrates with your car.

Trying To Be Everything

Imagine if your car manufacturer told you, that only phones made by the car manufacturer would work in your car, I expect you would be looking for a new car. However many software applications still attempt to take this approach, of trying to do everything in the same application, or lock you into their ecosystem of applications. The idea is to lock customers into the manufacturers software products, and collect more revenue from those customers. However it also locks everyone else out of the products. It is an all or nothing approach. Many customers will choose the nothing approach, rather than be locked into a single provider. This is especially true when there are many options.

Sharing The Load

Software complexity is increasing. The expectations from customers increases, the security demands compound, the platform diversity increases. In the physical world no one attempts to do everything themselves, people specialize, and then collaborate to enable bigger outcomes. When you want to fly to another country, you do not study to become a pilot, instead you allow someone else to specialize in being a commercial pilot, and fly you there. When you want to eat, you do not have be a farmer, grow your own food, slaughter a cow, and then prepare the raw ingredients from scratch, instead you rely on people that have specialized in farming, food preparation, delivery. Complex societies exist because people share the load of doing everything between parties, and use systems, such as money, religion, and politics, to reduce the friction of collaboration.

Software applications that become good citizens in the society of other applications, will attract a greater number of users, and therefore prosper better, than applications that attempt to do everything themselves.

Network Effect

The more software that an application can interact with, the greater the opportunity for the network effect. The network effect creates more value for the people using the product, where there are more people using the product. The same can be true for the other software applications that use a product.

To become a valued application citizen in the software society, provide 'hooks' or APIs (application programming interfaces), to enable other software to work better with the application. Exposing an API to access shared features of the application, will encourage other software to offload features, not core to the other application, to your application.

Making Integrations Seamless

To create seamless interactions between software applications, means to make the interaction, the hand off, or hand over, invisible to the people engaging with the applications. The closer to invisible you can make the switch between software products, the more seamless it will be. To achieve this consider the integration points an application will require, and expose. An application that allows images to be chosen, should integrate with the operating system's picture picker. An application that tracks your expenses should enable book-keeping, or accounting, applications to automatically import those expenses.

A good rule of thumb is to integrate with other software for features that are not core the value of the application. Unless you are building an email client, do not add email client features to your application. This is especially true for identity. Most people already have multiple digital identities, and most of the digital identity systems expose an interface for supporting authentication in another application. Enabling a customer to login to a new application using an existing identity, lowers the friction to using the software.

In the earlier example of transferring a call between the audio output of your phone and your car, this is an interaction that has improved over the years, and often now requires no physical confirmation, it just happens. The expectation of most people using software constantly increases, and to delight customers software needs more features to just happen in a seamless manner.

Last update: November 20, 2022 04:23:38
Created: November 20, 2022 00:28:07
Authors: Neil Roodyn