Bespoke Development

In the context of information systems, Bespoke Development refers to software that is specially developed and compiled into an application that satisfies specific organisational requirements. Bespoke development is all about developing software solutions to what you envisage and therefore addresses your unique ideas and requirements.

The beauty of bespoke systems is that they are tailored to the exact requirements of an organisation, allowing the software to fully integrate and satisfy key business objectives. Bespoke systems are usually designed with the long term IT plans of a company in mind.

Generally speaking, off-the-shelf systems are produced to meet the perceived needs of a particular market or sector. In effect, off-the-shelf systems attempt a one size fits all set of generic features and therefore often allows some form of customization facilities that would allow coding to evolve the off-the-shelf system to a tailored (bespoke) solution.

Usually an organisation must make a decision between buying a generic off-the-shelf solution or embark on a bespoke development project; this decision is often referred to as the buy or build decision. Bespoke software development embraces two main sub-functions:

1. From-scratch system analysis, specification, design, development, acceptance, product delivery, implementation, support, through to decommissioning/phase-out

2. Customisation of off-the-shelf system components to achieve functionality according to unique organisational requirements

In general, from-scratch bespoke development is concerned with developing software solutions to unique organisational requirements, whereas customisation refers to modifying generic off-the-shelf acquired software programs. In both instances it is necessary to adhere to a recognised Software/System Development Life Cycle (SDLC) model or method.

Kwezi Software Solutions assists organisations with selection, implementation and management of the following SDLC models:

Waterfall Method

The Waterfall Model is the most well-known SDLC model. The Waterfall model is mostly a sequential step-by-step process, from requirements analysis through to maintenance. This method is well suited to systems that have well-defined and understood requirements.

Spiral Model

With the Spiral SDLC model the bespoke development team will start with a small set of requirements and go through each development phase for those sets of requirements. Based on lessons learnt from the initial iteration, the bespoke development team adds functionality for additional requirements in ever-increasing spirals until the application is ready for the -installation and maintenance phase (production). Each of the iterations prior to the production version is a prototype of the application. As each prototype is tested, user feedback is used to make sure the project is on track. This method is well suited to systems where requirements and functionality are not well defined and are therefore determined via spiral exploration.

Top-Down Model

In this model, the high-level requirements are documented and programs are built to meet these requirements, then the next level is designed and built. The top level is designed and coded, and then each sublevel would be added after the top level has been finished. The Top-down model is a good fit when the software application is a new development and there is no existing functionality that can be incorporated into the new system.

Bottom-Up Model

In the bottom-up model the lowest level of functionality is designed and software components that provide functionality to address the individual functions are programmed first, where after the components are integrated together into the finished application. Generally, the most complex components are developed and tested first, with the notion that possible project show-stoppers surface early in the project. This model encourages development of self-contained software components that can be reused and integrated multiple times across many bespoke software development projects.

Hybrid Model

The hybrid model combines the top-down and bottom-up models. This allows the bespoke development team to make changes to the system early in the project if problems occur with individual high risk components. Many of the SDLC models applied are a variation of the Hybrid Model.

Rapid Prototyping

The demand for quicker bespoke software development cycles, accompanied by failures of traditional SDLC models, Rapid Application Development (RAD) have evolved to obtain faster bespoke development deliverables. RAD focuses on the use of prototypes, by doing a quick requirements gathering phase, a prototype application is built and presented to end users. Feedback from end users provides a loop to improve or add functionality to the application. RAD ensures that time-to-market is greatly reduced.