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
Post a Comment