Software from the perspective of the end user

This blog post is different from the normal ones. This blog post does not talk about the programming language internals nor it talks anything remotely close to how the software should be written. This post talks about how the end user sees the software that he or she uses to make his or her life simpler. As engineers, we sometime get too lost in making sure that we use the most recent technology to write software, that we make sure that all use cases of the software are covered and that all regression and unit test cases always pass. But what we forget is how the software provides a service to the user himself. Let us pause for a moment and don the hat of an end user of the software for sometime. 


Software instalability and accessibility

What is the first thing that you see in any computer software application, be it a mobile application or desktop software, if you intend to use it? The software application should be easily installable on the host operating system of your mobile device or computer without the need of tediously changing any configuration files for the application. Otherwise the software application should be accessible easily over the web. The application should also provide a clean and understandable interface so that the user could easily understand the workflow of using the application. If the application is too difficult to install on the computer/mobile or is difficult to work with, then not many users will like to use the application.

Application understadability

Secondly, most users prefer to use the application that will enable them to achieve their objective for using the application  in smallest amount of time. If the software application is tedious to use or understand, the end users become frustrated and move to next option available to them. This fact is more prevalent for first time users as they could quickly move to another application software, which solves the same problem for them easily and less tediously.


Product feature documentation and user education

Have you ever been hassled by inability to use a feature in the software application even if the software supports it? Presence of a feature in the software but not being able to use it, drives the users to search for online videos, product screenshots and forums where they could find how to use that feature. This annoyance of having to look around on how features of the product work could drive users to looks beyond the software that they are using and push them to explore other available options. Hence, the software application should provide sufficient demonstration videos or software workflow screenshots to enable the users to use the software more easily and effectively. When some guided tour, in form of video or screenshots, to use the software is available in the software itself, the user is able to use the software effectively without getting hassled. 

Multi-platform Support

The functionality of the application software should not be tightly dependent on a particular operating system or a particular web browser if the software provides an online interface. If the software functionally or the performance of the software is tightly dependent on the operating system or web browser then it will not be usable for a large number of users. Imagine, that in your family you own an Apple MAC while your wife owns a Windows PC. If you find a cool software that helps you optimize some important activity in your life on the Apple MAC and you were to attempt to install a windows version of the software on your wife's PC. Bummer, there is no support for that software on Windows. Your wife would kill you! The software, hence, should be available on different platforms for it to be more usable across a large realm of users.

Dependency on propriety infrastructure verus open-source infrastructure

In a world of open source software, end users have plenty of choices with most kinds of software. They tend to spend less on software that they use on daily basis. A software which depends on other propriety software to work will force users to buy that propriety software in order to make that software work. Dependency of some software on some other propriety and costly software makes little sense. Instead if the software have more dependency on open-source software infrastructure which are readily available without any additional cost, it makes more viable case for the end user to use your software.

Standalone Desktop Application vs Online Software as service

Lastly lets talk about how the access to software on the local machine via desktop application or the access to software as an infrastructure over internet, may affect users choices on picking up the software of their choice. If the software application is online then the users get to access the software application using a web browser. This does not require an installation of the software application on the host operating system. Moreover, things like online storage on cloud and live chat sessions for help could be offered to the user for such types of software. Also, any software updates to such online software applications  can be made available to the end user instantaneously. However, the downside of an online software application is that the end user cannot access the software application when the Internet connection is not available. The installation of the tool on user's local machine enables user to use the software at one’s own desired time, even without the Internet connection. However, local installation means that the software updates for the desktop software application will be available only with an Internet connection. Also the software updates to the local installation of the software application cannot be made available instantaneously. 




Comments

Popular Posts