Increasing Productivity in the Workplace by Implementing Software Solutions

Productivity and efficiency are concepts that every team must understand, must study, must adopt, and must make it part of their everyday activities. Many hours are wasted every day at the workplace on tasks as a result of the lack of productivity and efficiency in the way we handle these tasks. Several factors contribute to this. The purpose of this book is to provide some insight into what these factors are, how to recognize them, and how to implement a solution to increase productivity.

Let’s think about why increasing productivity is important. Being more efficient means not only having more done at the end of the day, but also having what was done, done better, with less defects and higher quality. The result is the delivery of a better product, solution, design, etc. – whatever it is that you deliver to your client -, which results in a better reputation, more business and higher profits.

Being humans allows us to do great things, our brain and hands are the two greatest tools in the world, however, our brains are unique, and each one of them is entirely different than every other one, this means we think differently than other people, when we look at a problem and try to find a solution, each one of us considers different approaches, thinks of different ways to implement it, and the reason is we all have different information already stored in our brains that help us do this, this information is there because of our past experiences, which are unique. There are no two persons in the world that have gone through the same experiences in life, and have consequently shaped their brain the same, even identical twins that are born together, grow together, and experience many things the same way, are actually not the same person, and have biological differences that cause them to interpret things differently.

Past experiences and the information already stored in our brains very often causes communication problems.

Communication deficiency, or miscommunication, is the main cause of productivity loss in the workplace. We humans are not very good at communicating between ourselves; however, we are not often aware of this. Many times when someone is trying to convey and idea, give directions to get something done, or explain anything to someone else, one the of things that we unconsciously leave out is the background information, information that is necessary to understand the idea that we are trying to explain.

We do this, as I have explained in the introduction, because this information is already stored in our brains, we did not recently had to acquire it to understand the idea or problem, so we are not conscious that we are using it; we don’t think that the other person might not have this information, many times the other person does, but many other times does not.

This is true for all types of communication, verbal, written, drawn, and anything that we use to deliver our thoughts to someone else.

One time, talking to someone that I worked with, about the need to properly document the design for a device that we were working on, he told me that he did not believe we needed to spend much time working on very detailed documentation, because us being all engineers with similar backgrounds, none of us should have the need for it, since we could all figure out what the other was trying to express easily, I said, yes that might be the case, but if we can provide the information so that nobody has to figure it out, and possible wasting time, plus getting the wrong message, it is very well worth the time to do so.

With that philosophy I have always written documentation to deliver information as detailed as possible, and as expected, it has always been much appreciated, used, and even highly appraised by other members of my teams.

Repetitive Tasks and Automation
Very often, large amounts of time are spent on tasks needed to produce something in the work place. Also very often, these tasks are repetitive. It is in this case that we need to think about improving the processes that we use to perform these tasks.

In order to provide a clear explanation of the concepts, I will use references to projects that I have developed for actual companies to provide a solution that improves the processes to complete a task.

Recognizing the problem
The first step towards improving a task is to recognize, or become aware that, the task consumes too much time, and see the need to make it more efficient. Let’s analyze a case study.

A small division of a big company had recently started obtaining many new contracts, they suddenly had a lot of work to do, this was very good, but it also brought some new challenges. One of the issues that came up was the need to establish formal software development processes, which was required to be able to continue working with some of the new clients. Because most of the people had been working for the small group for several years and did not have experience or knowledge of what to do to implement these processes, the vice president of the company decided to find and hire someone to lead the group with this effort. A person was found and hired and processes started being implemented, the engineers received training to follow these processes, and things were looking good.

One of the documents that were created as part of the process was a Software Roadmap. The purpose of this living document was to provide data for the software team leaders about the software projects that their engineers were working on. .

The software team leaders started using the document and decided that it was very useful to have a document that contained all the information they needed to make decisions and follow up on tasks with the developers. However, they quickly discovered that the data in this document was only useful for a short period of time, and then they had to go and find the most up to date information on their own, which defeated the purpose of the document.

Let’s examine what happened in this case. The document created was updated every Monday morning with the most recent data (a task that, by the way, took a few hours to complete), and only on Monday morning, that means that the document was very useful on Monday, just after its creation, but only then. However, after a few hours the data was outdated, and thus useless. It is worth mentioning that people were aware of this issue, but no one thought of it as something that needed to be improved, even less, how to improve it. This situation is common in the workplace, we tend to accept that something does not work the way it was intended to, and do not recognize that we need to do something about it. Not accepting the situation is the first step towards finding a solution to the problem, then, we need to understand the problem, design a solution and finally build and deliver the solution.

It is ironic that we follow this train of thought to develop and build a product, and solutions for our external customers, but don’t do the same for our internal ones so that we can provide solutions to ourselves.

Designing a solution
When I was brought up to speed on what the team was doing, I recognized this as a big issue and a big opportunity for improvement, so I brought up the idea of automating the document, that means that instead of having someone update the document every Monday and spending a few hours to do this, we could instead, develop a tool that would do all that automatically, and that by the push of a button on the tool, anyone could retrieve the most recent data in a matter of seconds. When I proposed this they immediately accepted the idea, but they did not know how to implement it.

Implementing the solution
To implement a solution I researched the APIs (Application Programming Interfaces) for the tools that the group used to keep track of the change requests, which is what was used to get the data for the document. By understanding how to talk to this tool, and how to retrieve the necessary data via the APIs, I wrote a program to automatically retrieve the data, process it, and display it the way the document did, all this happened with the push of a button and it took less than a minute to fetch the latest data.

This powerful tool allowed the team to view project status, view tasks by project or assigned resources, filter by status, create reports, analyze a critical path, see metrics, and more.

The following table is comparison chart between the document initially used and the new tool.

Old Document New Program Tool
Accuracy Data updated once a week Data updated when needed
Effort About 4 man hours to update the data Less than a minute for the tool to update data1 second to push the button to start the process
Filters No Yes
Reports No Yes
Metrics No Yes

The tool not only provided the ability to have up to date information in less than a minute, but it also provided project status information via different reports and data, which was not available in the past via the old document; the tool provided now additional important information that had to be manually calculated before.

Process Definition and Implementation
Having a process in place is a very important step towards increasing productivity; obviously the process has to be followed to be effective. Having a solid background on software development, I got introduced to development processes early in my career; the groups that I worked for had very good processes in place. These processes contain a set of instructions, procedures and templates to perform your job in a more consistent manner, and provide tools to save time as well. Processes do not only apply to software development, or any other type of engineering discipline, but they can and must also be established for any type of office work.

Leave a Reply

Your email address will not be published. Required fields are marked *