Software is a collection of instructions that tell a computer how to work. This is in contrast to hardware, from which the system is built and actually performs the work.
Software is the programs and routines for a computer or the program material for an electronic device which make it run
oftware is a set of instructions, data, or programs used to operate a computer and execute specific tasks. In simpler terms, software tells a computer how to function. It’s a generic term used to refer to application scripts and programs that run on devices such as PCs,mobile phones and tablets and other smart devices. Software contrasts with hardware which is the physical aspects of a computer that perform the work.
Without software, most computers would be useless. For example, a web browser is a software application that allows users to access the internet. Without the web browser software, reading this page on Webopedia wouldn’t be possible. An operating system (OS) is a software program that serves as the interface between other applications and the hardware on a computer or mobile device. TCP/IP is built into all major operating systems to allow computers to communicate over long distance networks. Without the OS or the protocols built into it, it wouldn’t be possible to access a web browser.
HISTORY OF SOFTWARE
The Early Days of Software
Computer scientist Tom Kilburn is responsible for writing the world’s very first piece of software, which was run at 11 a.m. on June 21, 1948, at the University of Manchester in England. Kilburn and his colleague Freddie Williams had built one of the earliest computers, the Manchester Small-Scale Experimental Machine (also known as the “Baby”). The SSEM was programmed to perform mathematical calculations using machine code instructions. This first piece of software took “only” 52 minutes to correctly compute the greatest divisor of 2 to the power of 18 (262,144).
For decades after this groundbreaking event, computers were programmed with punch cards in which holes denoted specific machine code instructions. Fortran, one of the very first higher-level programming languages, was originally published in 1957. The next year, statistician John Tukey coined the word “software” in an article about computer programming. Other pioneering programming languages like Cobol, BASIC, Pascal and C arrived over the next two decades.
The Personal Computing Era
In the 1970s and 1980s, software hit the big time with the arrival of personal computers. Apple released the Apple II, its revolutionary product, to the public in April 1977. VisiCalc, the first spreadsheet software for personal computing, was wildly popular and known as the Apple II’s killer app. The software was written in specialized assembly language and appeared in 1979.
Other companies like IBM soon entered the market with computers such as the IBM PC, which first launched in 1981. The next year, Time magazine selected the personal computer as its Man of the Year. Again, software for productivity and business dominated these early stages of personal computing. Many significant software applications, including AutoCAD, Microsoft Word and Microsoft Excel, were released in the mid-1980s.
Open-source software, another major innovation in the history of software development, first entered the mainstream in the 1990s, driven mostly by the use of the internet. The Linux kernel, which became the basis for the open-source Linux operating system, was released in 1991. Interest in open-source software spiked in the late 1990s, after the 1998 publication of the source code for the Netscape Navigator browser, mainly written in C and C++. Also noteworthy is the release of Java by Sun Microsystems in 1995.
The Mobile Device
The worlds very first mobile phone call was made on April 3, 1973. In 1993 IBM released the first publicly available “smartphone” and in 1996 Palm OS hit the market, bringing PDA’s to the masses. In 1999, RIM released the very first Blackberry 850 device and quickly became the worlds fastest growing company. Then, in 2007, Apple changed computing with the release of the iPhone. This is when mobile computing really found it’s place and mobile applications began to explode. Mobile apps are now a major part of development using languages like Swift and Java.
Software Development Today
Today, software has become ubiquitous, even in places that you might not expect it, from crock pots to nuclear submarines. Some programming languages, like C and Cobol, have survived the test of time and are still in use. Other languages, such as Java and Python, are somewhat younger and have been used in countless software development projects. Still others, such as Apple’s Swift programming language for iOS or Go Open source, are relatively new and exciting.
WHAT IS GENERIC SOFTWARE
Generic software is an off-the-shelf product designed for many consumers and can meet many clients’ general requirements. Custom software is a bespoke design developed to meet one client’s specific needs, based on the budget and requirements predefined by them. It’s meant to be operated by one user or a group of users and meets the needs not fulfilled by off-the-shelf software.
An example of generic software is a word or spreadsheet document. An example of custom software is B2B accounting software or a student portal for a university.
Each of these types has its own pros and cons. Below listed are the main factors that will help you decide what’s better.
Since generic software is made for a wide range of users, it has plenty of features, all of which may not be useful or needed for a particular organization. GS features may be simple or complex depending on their functionality, but a range of similar GS serving similar use cases will have common features.
On the other hand, custom software will have highly unique and specific features, only limited to the particular client it’s made for. Each CS serving a common purpose for different clients will still have distinctly designed functions and features that share no commonality.
GS is super agile and designed to accommodate large-scale future scalability and adaptation as per the growth and pivots in markets and technological advancements.
Custom software may be designed for a specific purpose, considering who is going to use it based on the current business scenario. Still, it may have to incorporate some amount of scalability for the future.
Generic software is usually not expensive, in that users across demographics can afford it, be they small to medium firms or individual business owners and entrepreneurs. CS is designed to keep in mind the huge strata of the business ecosystem and derives profits from quantity sold and provide decent quality.
Custom software can be expensive since it’s developed just for one client. However, if a company invests in custom software to enhance its productivity, efficiency, and customer service and engagement, the returns on software investment are sky-high.
For generic software producers, creating good quality software is important but not extremely paramount. If a company makes mass consumable software while tinkering with it endlessly until it’s perfect beyond comparison, it will lose market share to competitors and fail to make enough profits.
As opposed to generic software, custom-made software is focused on quality as the developers have to ensure that the end result surpasses the client’s expectations in terms of performance and useability. Custom software has to offer quality solutions to the client to increase revenues, improve customer service, or even streamline internal business processes. These are precisely the reasons why quality cannot be compromised.
The software company developing generic software is in control of inception, design, architecture, functions, QA and testing stages of the product. Users can own the software after acquiring the licence to use it.
Custom software is produced and owned fully by the client. The development agency can guide, strategize, and execute on the client’s behalf, but the client’s final authority and control belong.
Which is better?
There’s no better or worse option. It really depends on your requirements and budget.
After the initial investment in customised software, there are lower costs and it pays for itself over time, integrating smoothly with your current set-ups.
If your business has a traditional hierarchical structure, involves record-keeping, personalised communication, inter-departmental updates, and data entry, raising tickets to coordinate with off-site teams, massive marketing campaigns with measurable goals, extensive accounting, you’d be better off with a custom software catering to exact specifications per department and workflows. Custom software also integrates with other software your company is already using.
Readymade software is also prone to hacking whereas custom software can be built to avert hacking and malware. Bespoke software is harder to infiltrate.
Other than that, custom software doesn’t have to be a lifetime tool. You can maintain it and utilize it as long as it serves your purpose.
The software development agency that built your software offers technical support and assistance as well. So in case of glitches or breakdown, help is readily available.
On the other hand, readymade software does come with its own set of advantages. You save a lot of initial time and money if you decide to invest in generic software to meet general needs. Over time, with a few workarounds, generic software can keep you in a type of momentum, especially if your business doesn’t really depend on excessive note-keeping, data sharing, or constant customer communication.
Another reason to continue using generic software is the time and energy needed in finding the right and trustworthy software development agency to whom you can entrust building your customised software. If you choose a mediocre agency based on lower development quotes and don’t do enough due diligence checking out the entirety of their portfolio and do not spend enough time chalking out your complete requirements from the software, the whole project can be delayed, and the result may end up being unsatisfactory. Custom software is meant to solve a specific problem in-house. If your business doesn’t need problem-solving software, then generic software could fit you better.
ADVANTAGES OF GENERIC SOFTWARE
Overall, generic software provides a flexible system with the freedom to enter and manipulate functions. “It’s very easy,” WIP’s Baladi said. “When using a generic software you can set it up the way you want.”
Disadvantages of generic software
A major disadvantage of using generic software is the lack of industry experts available to help tweak the software to fit a retailer’s needs. Custom training and support are not always available when using generic software, critics say.