Are you having a hard time deciding between custom software development and off-the-shelf software for one of the critical functions in your organization?
- Advantages Of Bespoke Software There are, on the other hand, numerous advantages of having your own bespoke software developed. At Make IT Simple, our software developers have created programs that solve business problems, that improve efficiency and productivity, that improve business intelligence and performance measurement, and that help get.
- Advantages And Disadvantages Of General Purpose Application Software Computers have tremendously improved the way businesses operate in their respective industries. Technology has advanced so remarkably that those who are not using computers in their business are at a major disadvantage against their competitors.
Choosing between the two options is, in fact, a very difficult decision to make for any manager or a leader.
Both custom software development and off-the-shelf software require a considerable investment in terms of time and cost, and also affects your company for many years to come.
You would not like to go wrong on this important decision.
Advantages And Disadvantages Of General Purpose Application Software Lower costs SaaS has a differential regarding costs since it usually resides in a shared or multitenant environment where the hardware and software license costs are low compared with the traditional model.
You need to understand the advantages of custom software over readily built solutions and vice-versa, and evaluate all pros and cons to make a wise decision.
Custom software can be a viable solution if you chose the right kind of people who provide you with highly customized flexible solutions that are easy to use and maintain.
On the other hand, a ready built solution saves a lot of your time and initial investment.
There are various factors that can help you decide on the right option for your organization.
This includes complexities of your work, the size of your organization, your future plans for growth and of course the most important, financial viability of the solution.
Before you make a final decision, it is important to understand the advantages and disadvantages of each option in detail and cases where custom software may be better suited over off-the-shelf software and vice-versa.
Let’s first have a look at what are the advantages of custom software.
- Advantages of Custom Software
- Disadvantages of Using Custom Software
Advantages of Custom Software
Readily available solutions are built on the basis of generic requirements in the category for which it is built which may not fit the way your operations work.
Sometimes, businesses need unique solutions to solve problems specific to their organizations.
Custom Software Development is a popular option for all such companies.
Advantages And Disadvantages Of General Purpose Software Examples
Let’s look into some of the key benefits of Custom Software.
Tailor-made Solution
When you purchase off the shelf solutions, they may or may not be built around your business goals.
Developing a software solution specifically for your company ensures that it is tailored to suit your needs.
In fact, during the process of building custom software, you may find several opportunities to optimize your processes, which leads to higher productivity for your organization.
There are several outsourcing partners who would be willing to analyse the complete set of processes followed within the organization to give you highly optimized solutions for automation.
This will increase your productivity, which in turn makes it financially more rewarding in the long run.
Check out our portfolio page to find out what custom tailored solutions we have created for our customers.
Return on Investment
Custom software development may look like an expensive option at the beginning as a lot of investment is involved in software development but in the long run, they may get you higher returns.
On the other hand, readily built software packages also involve some cost.
At times you may need to purchase extra hardware, high-end servers (sometimes even with version updates) to run them effectively. The additional cost that you need to bear every year is annual license fees.
Custom software is high on investment at the beginning but the costs become almost negligible in the long run.
A detailed ROI needs to be done to find out paying huge sums for custom software development which will pay for itself in few years vis-à-vis license fees during the same period and other costs involved in buying off-the-shelf software.
Advantages And Disadvantages Of General Purpose Software Design
Security Concerns
One of the benefits of custom written software is that security, as required by your organization, can be inbuilt in the software.
Hackers love the popular commercial off-the-shelf software (COTS) and are more likely to find ways through vulnerable portions of such tools to enter your systems.
With custom software, chances on intrusion are considerably reduced as you use your own tool which is predominately used by your own team.
Flexibility
Scalability can be built into custom software easily.
This will ensure that the software addresses any changing needs of your organization. On the other hand, features of an off-the-shelf application remain constant more or less and cannot be manipulated easily.
With off-the-shelf software, you will have to wait for some other company to enhance their features to make your life easier.
This is not the case with custom software, you have a team in hand who can take up all your requests at any time and enhance the features for you.
In case you are outsourcing development to another company, it is always better to ensure maintenance is built into your contracts and they are flexible enough to incorporate any changes that you may need at any point of time.
An agile and flexible team is what you need.
Compatibility
There may be several other tools that your organization may be using.
You may want that all the tools talk to each other and may need to build interfaces which makes it easy to transfer data from one application to other.
These functionalities are very difficult to obtain in an off-the-shelf tool.
This compatibility can, however, be built in a custom software. Off-the-shelf software may have some options to integrate with other software but this may not be too seamless as you may want it to be.
Easy to Operate
Another advantage of custom software is that they are easy to operate as they are not bulky and have just enough features required for your operations.
Off-the-shelf software may have a lot of functionalities based on a generic set of requirements.
You may not be needing many of these functionalities and may be using just some features. The tools become bulky and difficult to operate due to this.
The ease of use increases productivity and reduces costs by automating repetitive tasks. This will increase your profits and lower the cost involved further.
What Are The Disadvantages Of General Purpose Software
Long-term Risks
Many times, off- the- shelf companies release newer versions of their software and they stop all support for older versions.
Companies also go bankrupt and stop providing any support altogether.
You don’t run such risks if you go for custom software.
You can run your business without worrying about an off-the-shelf software that is being used to run your entire business or a critical function may be discontinued and no further updates or improvements can be received.
A custom software is always available and can be updated as many times as you may want.
Improved Software Support
You get better support from teams working on custom software than off-the-shelf software.
Most of the time, continuous support is built into your contracts with outsourcing partners which means there will be a dedicated team that they will provide you to maintain the software.
This provides better problem solving and defect fixing than the support provided by off-the-shelf software.
The response and resolution time are faster with custom software development and this can be ensured by building Service level agreements (SLAs) in your contracts.
The control of support that you will receive is in your hands and not the other way around.
Competitive Advantage
A custom software is made exclusively to suit the needs of your business.
You can get all kinds of unique features built into the system which your competition may not have.
You have a unique solution in hand which can become your USP (unique selling proposition) and gives a competitive advantage to you over your competitors. An off-the-shelf software is rigid and you need to align your processes against it.
With custom software, you have what you need and you can focus on your target audience better.
This can ensure higher customer satisfaction and more business for you in the long run.
Disadvantages of Using Custom Software
Now that numerous advantages of customized software are listed, let’s look at the flip-side of using custom software.
High Investment
As we discussed above, a huge investment is required to develop a custom-built software.
While it may pay in the long run, the initial investment may be a little overwhelming for some organizations.
A good ROI should be done before deciding on the custom software.
Time Involved
Apart from investment in terms of money, a huge time investment is required to complete the software development process.
While off-the-shelf solutions will give benefits quickly, it may take months or years to actually get the custom software delivered.
The organization need to invest a lot of their time in providing requirements to the outsourcing company or to your in-house software development team.
An off-the-shelf software has been tested for all defects, has gone through elaborate usability tests and is ready to use when it reaches your desk.
This may not be the case with custom software.
The custom software requires investment in terms of time to test the software from a user’s perspective and the process may go through several iterations before you get the desired results.
This whole time spent in various software development phases may be draining for you or the teams working with the outsourcing partner.
Deciding Between Custom Software and Off-the-shelf Software
Now that advantages and disadvantages are listed, let’s go back to our initial question on choosing between the two options.
Here’s is a small checklist for you which will help you decide.
Choose custom software when:
- You need highly customized software that suits your business needs and gives you a competitive advantage and off-the-shelf software may not fit the bill.
- You need it to be compatible with other systems, flexible to include any changes that you may need and easy to use.
- You work with highly sensitive data and security is a concern.
- You are looking to increase your efficiency by automating repetitive tasks, as well as efficiency in the processes obtained through custom software will significantly improve your productivity and reduce cost in future.
- You can afford the cost of the software and ROI goes in favour of custom software due to a productivity improvement and reduced labour requirement.
- You can devote time to custom software development.
Choose commercial off-the-shelf software when:
- Investments are too high or ROI is not in favour of custom software.
- You are a very small organization and there are no plans or opportunities to scale-up.
- No integration requirements or security concerns.
- You are in a hurry.
Custom software often cost much more than off-the-shelf software.
This makes custom software a very expensive option for a smaller business. These higher costs may be easily borne by larger or medium-sized businesses.
They may also benefit hugely from small efficiency increases in the process which may lead to large cost savings as labour requirement is reduced.
A small company which is planning to expand its footprints may also benefit from custom development as needs for highly efficient processes and a quick turnaround would lead to higher cost savings.
They can also benefit from scalability and flexibility offered by the custom software.
To cut the long story short, the best option depends on the circumstances your organization is in.
Advantages of custom software are numerous and they also provide you better control on how you want to run your business and changes that you may need later on, but the decision has to be taken after carefully evaluating the benefits that you will derive both in short-term and long-term.
Making wrong decisions may be very costly, choose the most effective solution through which you will be able to serve your customers better without compromising on the profits that you are getting.
We would like to hear your thoughts on this.
What is an advantage of custom software that really got you thinking more about custom software vs. off the shelf software?
Comment below or contact us if you have any other questions.
SOFTWARE
Term software is used to refer tothe computer programs used in a computer system. Software can be broadlydivided into two categories:
- Applications Programs;
- Systems Programs.
APPLICATIONSOFTWARE
Application programs are written to solveend-user problems. These include:
- payroll programs – used to generate the payroll of many businesses.
- stock control programs – used by businesses to manage their stock efficiency
- accounting programs – used by businesses to help manage their financial affairs. A spreadsheet program is useful for this. It allows the user to create a table of numbers and manipulate them.
- educational programs – used in schools for teaching various subjects.
- administration programs – used by many organisations for maintaining records of employees, customers, clients, students, creditors, members, etc.
- computer-aided design programs – used by engineers, scientists, architects and others to speed up the designs of building, and an aeronautical engineer may use one to determine how a different tail design will affect the performance of an aircraft.
- graphics programs – used, for instance, by an advertising agency for creating advertisements for television.
- library control programs – used by libraries for maintaining records of books and borrowers, in order to provide faster, more efficient service.
- word processing programs – used by all kinds of people for the efficient preparation of letters, documents and reports.
Application programs software falls intothe following categories:
XGeneral-Purpose
XCustom Written
XCustomisation of GeneralPurpose
XSpecialized Software Packages
General-Purpose Application Software
General-purpose application software isused by a large number of people in a variety of jobs and personal situations.The “Big Five” types of general-purpose application software are:
-Word processing
-Spreadsheet
-Database management
-Communication
-Graphics/Presentation
Advantages of using General Purpose Software
·You can install it yourself byfollowing the easy instruction in the installation
manual that comes with the software.
·Cheaper than employing aprogrammer to write the software for you.
·Easy Updating and Revising,each new version can be had at a reduced price if
the owner can show proof of purchase of aprevious version.
·Most users may already befamiliar with previous versions of the software, so no
intensive training programme is required.
·Several persons use thesoftware, therefore help is easy to find.
Disadvantages of General Purpose Software
·The package may be poorlydocumented
·The package may have hiddenproblems
·The package may not fit theuser’s need exactly
·The package may not be userfriendly
Custom Written Software
If you need a new outfit, you can buy thefabric and take it to a tailor, allow the tailor to take your measurement andthen make an outfit that fits you. A custom written software is a software thathas been designed or created by a programmer to meet the unique need of a useror organization. For example, you could hire a system analyst to look at theaccounting principles employed by your company and then set a team ofprogrammers to write a program to meet the requirements. This program would bea custom written software.
Advantages of Custom Written Software
·The software meets the need ofthe user specifically
·The software can grow with thecompany
·Business owners can relieve thestress placed on over burdened employees and save money from hiring additionalstaff.
Disadvantages of Custom Written Software
·Expectations can changemidstream when developing custom written software, making a realistic budgetdifficult to project. As a result, businesses often run out of money before theproject is completed.
·An experienced software team isneeded. Acquiring the right team can be costly.
·If the people who are trainedto use the program resign then it will be some time before new persons aretrained, slowing down the business functions.
Customisation of General-Purpose Software Packages
Imagine buying an outfit in a departmentstore that you like but not exactly your fit. What do you do? Find a tailor orfashion designer who can adjust it to your size. Similarly, if you find ageneral-purpose software in a software house that you like, but it needs someadjustment to meet your specific need, you can get a programmer to modify theprogram to meet your specific need. A customised general-purpose softwarepackage is a generalised software package that has been tailored to meet a useror firms specific need. Areas of the software that can be customized include:
üScreen colour
üPage size and arrangement on the desktop
üNavigation to available menus
Specialised Software Packages
Specialised software packages are writtenfor a specific discipline. An example of such packages is expert systems. Anexpert system is a type of computer application program that makes decisions orsolves problems in particular fields, such as banking or architecture, by usingknowledge and analytical rules defined by experts in the field. For example, adoctor could employ an expert system that asks a patient a series of questionsand then make a diagnosis. The software fall into two main categories:
·Business Application Programs –programs that perform the information processing tasks of important businessfunctions or industry requirements.
·Scientific Application Programs– programs that perform information processing tasks for the natural, physical,social and behavioural sciences.
SYSTEM SOFTWARE
Systems programs do not solve end-userproblems. Rather, they enable users to make efficient use of the computingfacilities for solving their problems. These programs manage the resources of acomputer system, automate its operation, and make easier the writing, testingand debugging of users’ programs. Many systems programs are supplied by thecomputer manufacturer, since to write them a programmer needs in-depthknowledge of the hardware details of the specific computer. (In contrast manyapplication programs can be written with very little knowledge of the hardwaredetails of a specific computer, and can run on several different computers withlittle or no modifications.)
The most important systems program is the‘operating system’; this actually consists of a number of programs designed toensure the smooth running of the computer system. Other common systems programs(from the user’s viewpoint) are:
- the editor – this program enables users to create files for storing their programs and data. It also provides facilities for making changes (such as adding or deleting lines) to files.
- language translators – people normally write programs in what are called high-level languages (such as Basic, Pascal, Fortran, or Cobol). Before the computer can run these programs, they have to be translated into the binary code known as machine language. Each language needs its own translator. Language translators can be divided into three broad classes – compilers, interpreters and assemblers.
- diagnostic programs – these provide facilities which help users to debug (remove errors from) their programs more easily.
- utility programs – on a typical computer system, there are many routine functions and operations which users may wish to perform. Utility programs are usually provided to perform these functions and operations. One of the most common of these is the sorting of data into desired sequence.
Operating System
An operating system may be seen as a suiteof programs that has taken many functions once performed by human operators.The sophistication and speeds of modern computers is beyond the capability ofhuman operators to control without the aid of an operating system. The role ofthe operating system is therefore one of resource management. The primaryresources it manages are:
- processors
- storage
- I/O devices
- Data
- Programs.
It can be seen from what is said that theoperating system controls the way software uses hardware. This control ensuresthat the computer not only operates in the way intended by the user but does soin a systematic , reliable and efficient manner. This “view” of the operating systemis shown below
Part of the operating system remains inmain storage permanently during the running of the computer. This part iscalled the Kernel (or Supervisor or Executive) and as the name suggestsis the “controlling” part of the operating system. It controls the running ofall other programs. The remainder of the operating-system programs are storedon a direct-access storage device (preferably) from which any particular onewill be “called” into main storage by the kernel when required.
On many very small microcomputers thekernel is stored permanently in ROM and starts execution the moment thecomputer is switched on. A message is usually displayed by the kernel tosignify it is ready to accept commands from the user.
On most modern computers the kernel is notin main storage when the machine is switched on. The system must be “bootedup”. This sometimes involves pressing special “boot buttons”, keys or switches,which cause the hardware to load the kernel into main storage from apredetermined position on a disk.
Functions of the Operating System
ØIn multitasking where multiple programs can be running at the sametime, the operating system determines which application should run, in whatorder and how much time should be allocated for each application before givinganother application a turn.
ØIt manages the sharing of internal memory among multipleapplications.
ØIt handles input and output to and from attached hardware devices,such as hard disks, printers and dial-up ports.
ØIt sends messages to the applications or interactive users ( or to asystem operator) about the status of operations and any errors that may haveoccurred.
ØIt can offload the management of what are called batch jobs (forexample, printing) so that the initiating application is freed from this work.
ØOn computers that can provide parallel processing, an operatingsystem can decide how to divide a program so that it runs on more than oneprocessor at a time.
Choice of Operating System
The applications for which a computer isneeded largely determined the choice of hardware and accompanying software. Theoperating system supplier will need to consider these factors:
- The hardware provision and basic design of the computer.
- The applications intended for the computer.
- The method of communication with the computer, e.g., many or few peripherals.
- The method of operating the computer.
The choice of O/S is also dependent on theprocessing environment required by the user. This includes:
- Batch processing
- Time sharing multi processing
- Single User processing system
- Real time processing
- Online processing
- Single user multi-tasking processing
BatchSystems – These are systems that providemultiprogramming of batch programs but have few facilities for interaction ormulti-access. Commands or jobs are collected in groups and processed in theorder in which they are placed in the group, i.e. in a “first in first out”sequence. Each group of commands or jobs is called a batch. The jobs areentered in a batch queue and then run one or more at a time under the controlof the operating system. A job may wait in a batch queue for minutes or hoursdepending on the workload. No amendments are possible during processing.
Time-sharingmulti processing – Processor time is dividedinto small units called time slices and shared in turn between users to providemulti-access. These systems allow the CPU to switch between different programsrapidly so that users are unaware that they were ‘time-sharing’ the CPU withothers. Several persons can connect to the main computer via dumb terminals andaccess different application programs.
SingleUser Processing – These systems came on thescene with the advent of personal computers. The majority of smallmicrocomputer-based systems have operating systems, which allow a user tooperate the machine in an interactive conversational mode (response to theuser’s message is immediate) but normally only one user program to be in mainstorage and processed at a time, there is no multiprogramming of user programs.Multiprogramming occurs when more than one program in main storage is beingprocessed apparently at the same time. This is accomplished by the programstaking turns at short burst of processing time.
Single-UserMultitasking – This system only allows oneperson to use the computer at a time to do multiple tasks.
Real-TimeProcessing – is a system that is able toprocess data so quickly that the results are available to influence theactivity currently taking place. There is often a need for multiprocessing.Multiprocessing is the name for the situation that occurs if two or moreprocessors are present in a computer system and are sharing some or all of thesame memory. In such cases two programs may be processed at the same instant.These systems are used mainly in critical systems. Critical systems are systemswhere delay in the processing of data after its input can lead to thedestruction of life and property. Examples of critical systems are systems thatmonitor critically ill patients, nuclear plants, the engine of an aeroplane,etc.
Advantages And Disadvantages Of General Purpose Software Technology
Utility programs perform tasks related tothe maintenance of your computer’s health, hardware or data. Some are includedwith the operating system; others can be bought as a separate package. Utilityprograms perform tasks such as:
ØFile Management
ØDisk Management
ØBackup
ØData Recovery
ØData Compression
ØAntivirus Programs
The interaction between end-users and thecomputer is said to take place at the “Human Computer Interface” (HCI). Theterm “Human Computer Interface” is meant to cover all aspects of thisinteraction, not just the hardware. Of particular interest is what makes oneHCI better than another one.
One of the most important features normallyrequired in an HCI is that it be “user friendly.” As the name suggest, auser-friendly interface is one that the end-user finds helpful, easy to learnand easy to use. It is easy recognise unfriendly interfaces but not so easy todesign one that is certain to be user friendly.
What makes an HCI user friendly? There isno simple answer but the following points are important.
- It should be relatively easy for the user to start using the system.
- As far as possible, the system should be self-contained so that the user is not forced into accessing manuals or dealing with things that should be kept outside the system.
- The amount of effort and information required of the user to get the system to complete required tasks should be kept to minimum.
- The user should be insulated from unexpected or spurious system actions. This includes protection against being the cause of a system failure and implies that the system should also be robust and reliable.
- The system should be able to adjust to different levels of expertise between users, and as users grow in competence.
- The user should be made to feel in control of what is going on.
- The system should behave in a logical and consistent manner, enabling the user to reason about what is going on and apply what has been learned.
Of course thesepoints are rather general in nature. We now turn to a number of specificpractical issues.
Types of interface
There are many different types of userinterfaces available. They may be broadly classified as follows:
- Command Driven Interfaces
- Menu Driven Interfaces
- Direct Manipulation Interfaces
- User Interface Management System (UIMS)
- Special Purpose Interfaces.
Note. In somesituations two different kinds of interfaces may be combined, e.g. a menuinterface with command options.
Command driven interfaces
One of the long-established methods bywhich user can interact with the computer is by the use of commands. Commandsenable the user quickly and simply to instruct the computer what to do. Howeverthey require the user to already have a knowledge of what commands areavailable, what they do and the rules governing how they should be typed, sothey are more suited to experienced users than the end-user is a technicalperson, such as a computer operator or programmer, or where the end-user continuallyworks with the same program and therefore can gain mastery of the commands.
Advantages of command driven interface
- Faster to use once you have learnt the commands
- For computer programmer command driven interfaces are cheaper to implement.
Disadvantages of command driven interface
- It is sometimes difficult to remember all the commands, therefore users have to constantly refer to the software user manual
- Restrict the user to using only the keyboard as the interfacing devices, while with other interfaces a wide variety of input devices can be used.
- Commands must be entered at a special location on the screen and in a set format.
Menu-driven interfaces
Advantages And Disadvantages Of General Purpose Software Development
Menus provide another popular form of userinterface. There are many different alternative forms of menu. The simplestmenus provide the user with a number of options and a simple means of selectingbetween them. The user is presented with a choice and therefore does not haveto remember any commands. The interface is therefore suitable for beginners andinfrequent users. All the user has to do is to make a choice. A special type ofmenu called a pop-up menu, an additional submenu pops up as a selectionis made.
Help isnormally made available to the user of a menu-driven system by means of screensof information that can temporarily be called up and displayed on the screenduring normal activities. It is best if the help information displayed is asspecific as possible the user’s current activity. Help screens are normallyactivated by a special key. Some keyboards even have a key labelled “HELP”.Similar facilities are often available in command-driven systems and areinvoked by typing a command such as “HELP”.
Pull-down menus are a special type of menu used in windowing and were brieflyintroduced. Some variations on the same idea are pop-upmenus andbelow an item on the screen in order to elicit a choice from the user.
Advantages of menu driven interfaces
- The user is presented with a list of option to choose from, they don’t need to remember commands
- Free from typing errors, because user does not have to type commands.
- A wide variety of input devices can be used to interface with a menu.
Disadvantages of menu driven interface
- Several steps required to issue a command.
- Once user has learned the menu system it is bothersome to have to wait on the package to present the questions before commands can be entered.
Graphical User Interface
A Graphical User Interface (GUI, commonlypronounced “guey”) is an HCI based upon a graphical display. GUIs are mostcommonly found on workstations or PCs fitted with graphics adapters able tosupport high-resolution graphics. A GUI is a variation of the menu-drivensystem of selecting commands with the use of the mouse. This system popularisedby the Apple Macintosh uses a graphical user interface. This consists of iconsand “pop-up” and “drop-down” menus. A mouse is used to click on an icon toexecute some operation or select options from a pop-up or drop-down menu.
Advantages of GUIs
- User friendliness results in less anxiety on the part of the user.
- Icons/symbols easier to recognise and provide the user with a context.
- Fewer command error.
- Reduce typing.
Disadvantages of GUIs
- May consume more screen space
- For programmers the design of Graphical User Interface is more complex
- Clicking an icon can produce unexpected results because of a lack of icon standard
- Increase use of computer memory can lead to slower processing.
State the propertechnical terms for EACH of the SIX underlined passages.
(b)State twofunctions of an operating system.
(c)What is the major interfacing device for
(i)a command language interface?
(ii)A graphical user interface
(c)Explain briefly ONE distinguishing feature of Eachinterface mentioned in part ii
2.What is the process of starting up a computer called? (1 mark)
3.What is an integrated software package? Give an example. (3 marks)
4. What is the difference between application software andsystem software? (2 marks)
5What category of software is the back-up and recovery tool? (1 mark)