The Evolution of Software

Most people interact with technology on a consistent basis. They wake up and check their social media accounts, review their voicemail, check email, tune in to the news on their Smart TV, and drive to work. Each of these activities is powered in some part by software, something that more than six decades ago barely existed. Back in those days, most of the tasks were handled by hardware that occupied large rooms, consumed a lot of electricity, and generated incredible amounts of heat. The term “computer bug” originated from these types of hardware-filled spaces when, in 1945, Grace Murray Hopper was working on the Mark II and Mark III machines. Operators kept observing issues with the functionality of the hardware and found the problem to be a real bug: a moth was trapped in one of the relays. As computing technology evolved, the terminology followed.

The work that the machines performed early on does not come close to the tasks that software takes on today. Software is what allows companies to run efficiently and helps keep operating costs low. The concept is relatively simple: procedural work that can be done with hardware can be done with software and vice versa. In the early days of software, practically everything was custom written, and few options were commercially available. The industry was largely limited to big companies and scientists, and most of the programs involved complex mathematical computations. IBM created the first widely-adopted programming language. Afterward, the Department of Defense (DoD) released a programming language for its business applications called Cobol.

As the software concept evolved, room-sized machines were replaced by smaller ones that accomplished the same tasks running programs written in varying computer programming languages. Initially, these languages were complex and required a lot of code. As technology improved, these languages evolved to higher level languages. The effect was a drop in the complexity and the ability for developers to create programs in less time with fewer lines of code, thus making computing and automation cheaper and more accessible to smaller companies. However, practitioners began to experience issues with on-time and on-budget project deliveries. This crisis initiated the software engineering industry, since the sector worked on an effort to develop best practices and methodologies to improve the situation.

Today, software companies are significantly more efficient and effective at creating products. The advent of higher level and object-oriented computer programming languages allows coders to create more sophisticated applications in less time. Such improvement also creates scenarios where companies can have customized features that are specifically aligned with their internal business processes and overall organizational strategy, thus improving the way that these businesses operate. From fleet maintenance software for trucking companies to iPhone apps that manage synchronization between eCommerce platforms, companies can leverage the power of software and communication technology to manage corporate processes efficiently and from anywhere. The next generation of software is also highly integrated, as software systems can exchange information throughout the supply chain and share data with strategic business partners. The combination between applications and communication technology, specifically the internet, the interoperability of software, and the standardization of communication techniques provides companies of any size to implement powerful technology that was once limited to large multinational corporations.

The connectivity and automation of software have advanced so dramatically that business owners can run their operation from anywhere in the world. From hiring employees that telecommute to running a complete supply chain with automated software, companies are becoming leaner because of the efficiency that software provides. Therefore, whether checking out things to do in North Bend, OR or relaxing on a cruise ship in the middle of the Caribbean, a business owner that successfully implements efficient processes and automates can run a company from anywhere. Connectivity and software became more important than an office location. In retrospect, technology evolved from requiring a room-sized million-dollar computer to something that runs on a hundred-dollar smartphone.