Tailored software solutions that power your business
+44(0)1305-851543
Software Consultancy

Our Software Development Methodology


Each business is unique and we firmly believe that the software your company uses must fit around you. Bespoke software development is built from the ground up, to suit your needs. If needed, we can develop your custom software solution to integrate with your existing IT systems.We will carefully evaluate your software needs so you will receive a bespoke software system tailored for you, that is easy to use and will improve your business processes and save money.

We have a proven formula for software development, based around our standard fmethodology. This methodology provides our framework, within which we gather and analyse a clients requirements, then design, build, test and deploy the application to bring vision to reality.

 

We have a friendly, consultative approach, taking on board client views, and lead the client carefully through each stage of the development. By doing this, we can ensure that the finished application is fit for purpose, and matches the client expectations.

 

Our software development process is designed to deliver the software our customer's need. We can respond to clients changing business needs because our methodolgy is Agile. That means it has to allow customers to change their minds. It has to allow us to rework our code freely to improve and optimize our designs. It has to keep customers involved and the software visible at all times. It has to help us be adaptable. A brief overview of our process is described below. That said, being adaptable sometimes means changing the process itself. After all, two projects are rarely the same.

 

Stage 1: Gathering the requirements

 

An accurate definition of the business requirements are a pre-requisite for successful development. Mistakes made at the requirements stage are usually the most costly to put right. We are able to provide the experience and expertise needed to identify the business requirements, and then specify them accurately in a Requirements Specification that forms the roots of the development. We go further than this. We are agile :

 

Our process allows changes to specifications to be made during development without impacting costs or timescales.

 

We regularly demonstrate progress tothe client , so required changes are spotted quickly with less impact.

 

We deliberately organize development to produce a skeletal application first geared towards the functionality that can demonstrate our understanding of the requirements and expose problems, misunderstandings and inconsistencies. This may take the form a dedicated prototype application that will be replaced once specification is agreed.

 

Stage 2: Design

 

Derived from the requirements specification, a business prototype may be developed in conjunction with the business users. From this this iterative process ( which may take severel sessions) a firm prototype is developed. The qppropriate level of detail is then used to create a technical design specification which forms the backbone of the development.

 

Stage 3: Build and Test

 

The build and test stage involves development and testing of the software according to the technical

design specification. Full functionality is developed using object-oriented techniques and database functionality is also developed at this time. Meetings between ourselves and the client are used to review progress of the development and discuss any outstanding issues.

 

Phase 4 Deployment

 

When we are sure that the application is fit for purpose, we will liaise with the client to ensure environments are ready and prepared for softare installation. Deployment requires us on-site to deploy the application and assist the client in any initial setup requirements.

 

Data Migration


We work with clients to integrate new applications with existing systems. Data migration may require cleansing of existing data before loading into the new applications database.


Agile Methodology Developments

 

We use an agile methodology where appropriate to quickly respond to changes in project objectives.

 

System development using iterative processes splits a project into sequential iterations, which are treated as self contained mini-projects. Each individual iteration has a specific length of time. Each iteration includes the software development activities of analysis, design, programming and testing and then the iteration release ? this cycle usually runs every 2-4 weeks.

 

Agile methodology promotes this iterative approach and focuses on adaptation and communication. The main principles of Agile are well defined :

? Customer satisfaction by rapid, continuous delivery of useful software

? Working software is delivered frequently (in 2-4 week iterations)

? Agile methodologies emphasize working software is the principal measure of progress

? Late changes in requirements are welcomed and quickly incorporated

? Close, daily cooperation between business people and developers

? Face-to-face conversation is the best form of communication

? Projects are built around motivated individuals, who should be trusted

? Stakeholders are encouraged to prioritise iteration outcomes based on the business value perceived at the start of the iteration

? Simplicity

? In software terms, it requires discipline to code for agile

? Ability to react quickly to changing circumstances

 

Why do we chose Agile?

 

We use the Agile methodology, over the more traditional waterfall methodologies above on certain projects, because we have found that Agile gives competitive advantages:

 

Lowers Risk. Agile methodology is proved much earlier in the life-cycle which allows for almost immediate identification and communication of risks and issues.

 

Iterative methodologies are associated with lower risk when compared to the more traditional waterfall methodologies. Agile methods are better equiped to cope with change.

 

Agile development accommodates and allows early or late change of business requirements. It is ideal for new product development.

 

Improves Management of larger projects . By splitting the development process into small manageable iterations, the agile methodology makes it easier to manage the complexities of large scale development.

Inspires user confidence. Each iteration has a completion date at which point the end client can see a working part of the system. This iterative release process lets clients to buy in to each stage (iteration) of the development and brings early project success. It improves software quality.

 

Agile methodology ensures higher levels of development discipline through best practices such as unit testing and refactoring.

 

Agile methdology gives more reliable project predicability. Unlike the waterfall methodology which can give a false sense of progress, through short iterations and user acceptance of the iteration, agile allows for a more realistic and consistent project progress throughout the life of the whole project. 

 

Agile delivers software in small iterations that work as integral units. Using the waterfall methodology, the final product is likely to match the initial client vision of what it should do - the client commits up front. Using the Agile methodology,  early evaluation and client feedback, the agile nethodology lets the final product  match what the client really wants, reflecting the evolution of ideas throughout the life of the project.