Why Software is Important

You have heard the phrase, "Tech is the new thing, everything is going digital". Ever since the popular rise of the internet in the 90s and the success of the companies that have been built on top of it, there is no doubt in people's minds that all things will go digital. But what exactly do they mean by this? In this essay, I will dive into this subject and demystify this obsession with tech, software and the digital hype.

What is Software

The technical definition of software is a set of instructions that tell a computer what to do. In order for software to work it requires a computer to run on and a human being to have written it. The person who writes software is known as a programmer or software developer. These are the gurus and wizards of the 21st century that make the software that we all know and love. However, the progression of software development started way back, from the conceptualisation of the 1st computer. The father of computers is considered Charles Baggage and he is credited for being the one who came up with the concept of the computer that we still use today. A computer is a machine that does 4 simple things:

  1. Accepts input from a user as data
  2. Processes that data to become information
  3. Displays output for the user as information
  4. Stores that information for later use

When thinking about software using this lens, we can see that software is the element that decides how that data from the user is received, processed, displayed and stored. It manages how the computer runs to do the 4 things above. This makes the development of software a big deal because you can tell the computer what do to and it will do it. As long as it is within the capability of the computer, it can do anything you want it to do. This means you can create software such as games if the computer has a game controller or Google Maps if it has GPS and a touch screen. If you were wondering why I mentioned Google Maps, it is because even mobile phones are computers if we use the definition I have mentioned above. Everything from feature phones, TVs, laptops, smart watches, microwaves, modern cars, traffic lights and speakers are computers.

Hardware gains open up software possibilities

The art of building software that tell computers what do to is a powerful skill that the world is just getting started with. As the capabilities of computers have grown, so have the possibilities of the software we can build. In the 90s, it was not possible to create an app like Uber because computers that can fit in your pocket did not exist and the phones at the time were too slow to handle such an application. However, when the iPhone came out in the 2000s, a computer like that was available and opened up the stage for more innovative software to get built. This is the same thing with artificial intelligence (AI), which is a software that was difficult to develop during the 80s since the computers were slow at the time and there was not enough data to train the AI to get better. However, when computers continued to get faster and cheaper, and the internet opened up the people across the world to share information, AI development became possible in the 2000s and 2010s. Now it is all the hype and everyone is looking to build new applications that were not possible before.

Why the Software Hype

But why is software so popular? The right question to ask is why is software even important. Well, it is for a couple of reasons:

1. Automating manual processes

Before software, if you wanted to order a taxi, you had to have a number of a taxi driver, call him about getting a ride, tell him your location and direct him to it and then negotiate on a price. This process is tedious for anyone. With Uber, the steps above are automated, where they find a driver for you, they notify the driver that you have requested a ride, they show the driver where you are on a map and give him exact directions and they even show a price estimate before you request the trip. By doing this, the taxi market has increased by billions of dollars as they have made requesting for a taxi easier, cheaper, faster and better through automating the process with software. There are other examples close to home like sending money to friends, family and even paying for bills. Before software, you had to carry cash around if you want to give someone money, pay for a bill at a restaurant and so on. This was a manual process that required going to the bank, asking the teller for money, sign for the release and receive actual cash to put in your wallet. With software like Mpesa, there is no need to go to a bank anymore. You can withdraw your funds from your bank's mobile app to Mpesa and use that to pay people and businesses. All of this can be done in less than 5 minutes, unlike going to the bank which can take at least 30 hour at best.

2. Better information retrieval, manipulation and storage

Before software, people stored information on paper (called a file) using a pen or typewriter, filed them in folders and put those folders in a cabinet. If you wanted to find a specific file, you had to find the exact cabinet, find the exact folder and find the right file. The retrieval process is hard enough and the organisation process is even more tedious as you have to arrange all those files, folders and cabinets using a system that makes sense to everyone involved. In fact, there used to be people who went to university who studied this skill called librarians and clerks. If you wanted to change a file, you had to find it and manually rub out the items you want to change, use white-out or just print a new file. God forbid, the building that has the cabinet catches fire, you have lost everything if you didn't print copies. With computers and software, we have Microsoft Word, Excel, Google Drive and Dropbox that allow you to store information without spending money on paper, folders, cabinets and even building space. They allow you to change information easily with the click of a button and backup the documents by making unlimited copies with a similar click of a button.

3. Enhances communication

Before software, teams had to work in an office at all times and could only communicate with one another in the office and in person. It was unheard of to have a person working from home during working hours because there was no way to communicate with the person. If you had a physical document they had to review or show some work they are doing, they would have to come to the office and see it. It requires a lot of alignment of being at the same place, at the same time and focused on the same agenda. With software like Google Meets, Zoom and Slack, it is possible to communicate with someone asynchronously, meaning they don't have to be in the same place (they can work from a different location), same time (they can check the message you send later on in their free time) and same agenda (they can work on other things and get to yours when they get time). This means that more communication can take place between teams on many different subjects all at the same time. This also goes for personal use, where you can chat with someone on WhatsApp about planning a birthday party, post your favourite memes on Reddit and post your Mombasa photos from last year on Instagram, all at the same time.

Conclusion

As Marc Andreesen, the inventor of the first web browser wrote, Software is eating the world. Most companies are software companies, they just don't know it yet. What he means is that software is increasing becoming an important function in your business. As things stand today, all banks are expected by their customers to provide a mobile and internet banking solution, otherwise they will become uncompetitive and lose customers. All businesses are expected by their customers to provide a payment solution like Mpesa to pay for the goods and services they have received, otherwise they will be seen as backward and even suspect of money laundering or fraud.

Even for areas where software is obviously not the business, like agriculture and mining, software can come in to streamline information processes that require enhancing communication between stakeholders like allowing farmers to advertise their produce to distributors and even immediate customers through a website. It can also be for tracking the amount of iron ore that has been mined in a specific day, from which mine, by which mining team and determine where and to who it will be sold to.

There is so much opportunity in the world of building software as it cuts across all industries. As long as there is information involved, manual processes to automate and communication that need to be improved, software has seat at the table in any business and personal discussion. In fact, what is very important to note is that you don't need to build cutting edge software like AI or blockchains to solve someone's problems. A simple management system can do to track information and display it to users. As long as it solves the problem that the user is facing, that is all that matters.