BlogBusinessDesign+Methodology

What is Productive Software?

Let’s talk software, the software you had written especially for your business! Let us view it with fresh eyes. You probably created a bullet point list of features, based it on a few spreadsheets you already used in the office and got some quotes from service providers. You received and accepted a quote and for the purposes of this post, they delivered software that you are somewhat pleased with and use on a daily basis. This is where I wish to begin. Let us discuss productivity in software.

I am assuming your software is standard business related, administrative software and not rocket booster formulation or cosmetic formulations but then, even then you will spot some things we will now discuss.

Lists of Things

Software people and spreadsheet enthusiasts love lists. A list of products, page 1, page 2, sort order, maybe with a filter to find some specific item. The list is possibly a good starting point for navigation, but it isn’t in itself very productive. Depending on the nature of the list, the columns, the sorting and filtering options, it could be quite simple, but also may be tiresome. Having the last few items you were working on at the top, would be more productive. Having the list remember your filter, even after you log off and come back the next day, is more productive than having to filter each day.

A simple list of “top 10 modified items”, “Last 10 items”, “Last 10 New items” can make for more productive software usage patterns.

Dealing with lists in software can determine how productive and usable the software is. This falls under the category of ‘User Experience’ (UX). The UX must be simple, easy to use and the developers must have thought it through properly. You do not get good UX by accident.

Quick data points

Does your software provide quick numbers, statistics and data points close at hand? Does it have a dashboard, or a toolbar that displays information like, ‘Total Sales’, ‘Total Amount’, ‘Total Sum of’ and other data points. On screen numbers can make a user’s life easier and help spot errors in software. Imagine the total in a list of entries is 12, but the total at the top says 11.

Imagine you add a new item to the list, and you don’t see a data point “X Total Items”, then how would you know its been saved? Perhaps just a message on screen, but let’s explore this point further by looking at the workflow of the add item:

Workflow of Adding items

A typical software workflow for listing and adding items would be:

  • Navigate to the list of items
  • Click the Add new Item button
  • Enter the correct details
  • Press save

There are many options in the process and it doesn’t necessarily have to work in one specific way. The software developer has made many decisions about the workflow here and sometimes it may not be the most productive method.
Have a look at these questions and think about how they may interfere with productivity of you and your staff using the software.

  • Does it go back to the list or stay on the edit page of the item?
  • Does it have an Add button on the edit page, so you need not navigate back to the list and click add
  • Does it sort the items and place it at the top of the list?
  • Can you go back to the list and find your new item quickly?
  • When there is an error, does it clear your entered data, or does it remain?
  • Are errors on data fields marked clearly and can be easily modified?

To scale these questions for your thought process, pretend you need to add 50 items quickly. If the software navigates back to the list after you click save, it means you need to click the add button once more, which is a single click. If it stays on the edit page and there is no ‘add button’, you will need to click to go to the list, click the add button, which is one click more and one more page load. A total of 50 more clicks than the other design and a total of 50 page refreshes. If you imagine that the speed of the site is roughly 4 seconds to load each click, you are sitting watching the screen for 3+ min doing nothing but clicking and waiting. Add a little mischief, like an incorrect value, a few typos and the user has to navigate again and again to fix.

There are many scenarios, and many possible designs, and there is not a right/wrong way of doing it, although there are good and best practices. If your service provider doesn’t take good UX patterns into account, it can add up into a long winded system.

The Productivity of doing nothing

Do you need to do something to intervene in the software process? For example an application form is submitted and then you need to review it and press the accept or decline button. In this case, you may refer to this as a manual task. You have to do something. This is ok, you may received a few applications and all is perfectly acceptable, but then you get 500 applications. You may never be able to automate the accept button and therefore this remains as a manual task. You needed to do this anyhow in an offline system. You used to receive paper applications in the post, read it, and put it in the accept or decline pile on your desk. Finding the application when someone called about it, was a bottleneck. The automatic elements were the online form, the user filling it in, the easy means of finding the application in the list. The software doesn’t necessarily accept and decline for you and you are left with a manual task bottleneck. Since you can get more applications complete in the online system, you may end up doing a lot of repetitive tasks around the application process. Remember software is a tool, not an android that makes decisions and does it all for you, yet.

With saying that, software can provide hints and it could automate some aspects of your application. Let’s look at a quick design that could aid your manual task bottleneck.

Software could create an automatic placement of applications from the inbox to the accept/decline pile, ready for you to manually confirm, however this could reduce the time, as it provides rules that were either accepted or broken.

  • Provide thresholds
  • Provide decision trees-

Threshholds are as they sound, code that determines if a given number exceeds a maximum and moves the application. For example, your application has a submitting end date, and all applications received after the threshhold date, would be automatically declined.

A decision tree, is a more complex version of the threshholds, where multiple properties can be examined in a specific order and even perhaps a set of weighted properties would determine the overall status of the application. This provides even more control of the process, and can drastically reduce the manual task time. In fact, a well written automatic process (in a perfect world), would mean the end of the manual task, however, for auditing, security and other reasons, a manual task is preferred to automatic. This however doesn’t mean that automatic tasks are not considered, but simply means that once the applications are sorted, someone must manually confirm the application statuses and be responsible. The time and care taken to sort the applications would be drastically reduced by an automatic sorter, even if it does not illiminate the manual task altogether.

InterExchange, API, B2B, Feeds ETC

One massive win for productivity is automating the cross business, supply chain, communication boundaries. Traditionally, phoning up a supplier, emailing them and placing an order, getting a reference number, manually inserting into your system is a bottleneck. Systems that automatically communicate with the supplier and receives the reference number, inserts it into the business database and notifies the warehouse automatically reduces time, cost and overall effort.

Does your software provide data export facilities? Data import? Does it have a Server REST API, Web Service, or JavaScript API? If not, you are experiencing bottlenecks.

Distribution of workload

You may have heard of crowd-funding, crowd-sourcing and so on, but have you considered the simplest version of this for your software? If your administrators are bogged down with work as manual tasks are getting longer and more time consuming, have you considered passing the buck? In terms of workload, it can sometimes make sense to pass on certain administrative duties to others. For example, let us say you have an application where 3 documents are required. The admin members review, check for documents, check your email, upload it, ensure the validity and then they understand the application to be valid. You can see how time consuming that would be. Consider after a brief check, you could simply defer the application back to the applicant, with a strong message stating:

“In order for your application to be accepted, please confirm that all three documents are valid, all three documents are uploaded and available to us and that the correct information is contained within each document.”

Once they have completed this, a simple automatic check could be completed moving the application to “User Confirmed”. You may now build a more rigid set of rules around the application. If your manual task is merely to confirm the existence of the documents, you can decline the application immediately.

A software provider should be able to tell you, where the bottlenecks are and how they can help reduce it. The costs of admin staff can be reduced as long as the cost of implementing the software over time is earned.

Conclusion

There are indeed many areas not mentioned here, and this is actually more of an introduction to productivity in software as food for thought. As a service provider we constantly deal with issues around productivity and strive to streamline business processes in order to maximise the software’s potential. If you are an existing client, you can talk to us at any time, regarding your software. Over time, sometimes subtle changes in use-cases or staff can leave an awkward task a lot worse, and we can fine tune software to reduce manual tasks and streamline it. Talk to us today to find out how we can improve your software.