Introduction to custom Software Development:
Custom software (also known as Bespoke software) is a type of software that is developed either for a specific organisation or function that differs from or is opposite of other already available software (also called off-the-shelf or COTSsoftware). It is generally not targeted to the mass market, but usually created for companies, business entities, and organizations. Custom software is also when companies or governments pay for customized software for budget or project managing.
As referenced at wikipedia.
Before discussing Custom software application development it is important to understand what the alternative is; a packaged solution. Once we know this we need to understand why companies have a Custom software solution. Once we know this I discuss how a
custom software development can be resourced.
Why a packaged solution may not be suitable?
Some companies, if not all, use software packages because the cost of supporting and developing the application is shared between many companies. Given this it is easy to understand why people use packaged word processors, accounts packages, warehouse package … the list is endless. There are situations where a package is not suitable, where out of the box will not do. We have found the reasons for this to include:
- The software package does not provide the key functionality that is required to support the business.
- There is a small number of companies who will use the application so the costs of the solution are not shared. The compromises the business has to make are not outweighed by the potential advantages of a packaged solution.
- The solution has to interface into several existing systems/applications. The cost of modifying the existing applications, and the package to fit in, are too high.
- It is a new business idea that requires unique software.
- It is a good business idea and the intellectual property needs to be protected.
- A package does not provide the absolute flexibility to develop precisely what the “business” wants, and when the business wants it; overall control of the package development direction and quality is retained by the package supplier.
Back to top
Reason why companies choose a custom software development
What is a packaged software solution? Searching on the web found this definition, “A software package that is created for a specific purpose or industry."
As referenced at PCMag.
Given this we then need to ask why do we have packaged software solutions? The answer is a community has helped to define the functionality, and fund the development. It is then assumed anyone using a packaged solution will benefit from increased functionality, lower costs, and lower risks. Given this I would change the definition to: ‘A software package that is created for a specific purpose or industry that offers users a lower cost of ownership, greater functionality, and reduced project risks than they would have expected from building it themselves. If the above is true then a packaged solution is probably the way to go.
The following are situations when a packages solution is not recommended:
- The industry sector is so small that the advantages of packaged solution do not exists (See advantages/Disadvantage below).
- New business opportunities where a packaged solution does not exist.
- Mature companies that have large, varied, and complex systems. Implementing a packaged software solution would result in high costs of modification, along with increased risks and timescales.
Back to top
Advantage and Disadvantages of a package and custom software development
The advantages and disadvantages of custom Software Development versus a Packaged Software Solution are listed here.
Note: Each reader must place there own importance on each advantage/disadvantage.
| Solutions |
Advantages |
Disadvantages |
| Packaged |
- Lower initial costs
- Tested by many installations
- Functionality defined by a larger audience
- Shorter implementation times
|
- High cost of configuration
- Restrictive functionality
- Difficult to influence the development path
- Business must fit the package
- Reliance on a 3rd parties priorities
- Pay for functionality you may not need
|
| custom |
- Software built to meet the exact business requirements
- Flexibility to react quickly to market changes
- Retain control of your USP
|
- Fund the full cost of the development
- Internal resources required to specify and test the application
- Longer timescales
- Greater risks
|
NOTE: Software development companies may have built re-usable packaged modules. The use of these modules will benefit from being funded and developed by a larger community. One example of this is Transition Computing’s workflow module, which enables companies to implement a function rich business workflow that supports their business.
Back to top
Resource options to deliver a custom software application
Offshore custom Software Development Company - Using resources from a company which is based in a lower cost region of the world.
Onshore – A local custom software development company that uses local resources.
Contractor - Finding and using individuals who have the skills required (usually via an agency).
In-House - Recruiting your own resources with the skills required.
Note: The reader will need to apply their own weighting priorities to each point. The number of points should not be used to indicate the relevance of a resource option.
| Method |
Advantages |
Disadvantages |
Notes |
| Offshore |
- Lower daily rate (Perceived lower project costs)
- Mature process
- Large pool of resources
- Tend to be larger companies
- Paid by results and not effort
- Knowledge retained in company
|
- Inflexible
- Higher management costs
- Problematic communications
- Problems emanating from cultural differences
- Loss of control
- Political uncertainty risk
|
- Companies that can manage the disadvantages will benefit from the lower costs.
- Small to medium sized projects are less viable due to management overhead.
- Rigid specifications are required. If the problem is not easily defined then offshore is not recommended.
|
| Onshore |
- Good communication
- Mature processes
- Paid by results and not effort
- Knowledge retained in company
|
- Limited resource availability
- Limited resource expertise
- Need to manage the relationship and not the contract.
|
- Finding the right partner will enable the business to call on expert resources to manage future peaks in the work load.
|
| Contractors |
- Lower daily rate (Perceived lower project costs)
- Greater flexibility
- Greater control
- Greater recruitment options
|
- Paid for attendance not results
- Pay for free time
- Knowledge lost when contractor released
- Difficult to understand value
|
- For time and material work contract resources have a place. This is particularly true for consultancy and project management work, where the duration is difficult to determine, and the high level of expertise may only be required for a short period.
|
| In-House Staff |
- Greater Control
- Lower costs
- Contractual focus on business objectives
|
- Limited by company resource and experience
- Difficult to attract and keep subject experts
|
- Can be supplemented by software house or contractors
|
Back to top