How We Work

Agile Development

Traditionally software was developed using a methodology known as the waterfall approach. The industry view was that the best approach to deliver software was one of careful, up-front project planning, specifying the end system in great deal before development began and then implementing these specifications through controlled software development processes.

This, however, is now understood not to be the case. It is simply not possible to understand all of the requirements of the software in advance as many of these requirements only become clear through interacting with the system. As the emergent properties of the system become clear, this often changes what is required and stakeholders become aware of needs that were not considered in advance. Couple this with today's rapidly changing business environment and the need for companies to respond quickly to these changes, and the problems with this approach become clear.

Kite Systems uses an Agile development process, which overcomes many of these problems through allowing the specification to evolve as part of the development. Software is developed in iterative phases with the end user being actively involved throughout the process. Through using a release of the software, the client can gain an understanding of how they need it to work and can incorporate any changes in their requirements due to changes in the business environment. These are then built into the next release and this cycle continues until the system is finished. The end result is software which is significantly more fit for purpose and more finely tuned to the client's actual needs.

We use a variety of Agile methodologies such as Extreme Programming, Pair Programming and Scrum depending on the needs of project in question.

Our Process

  • Meet with the client to understand the overall business problem and the issues the software is intended to address.
  • Define the scope of the project at a high level. This includes the major components and their basic functionality, but not detailed specifications
  • Provide a proposal detailing the scope, costs, timescales and lifecycle of the project
  • Initial requirements capture in much greater detail, gaining a thorough understanding of what is required from each module and component
  • Architectural design of the system
  • Client review of requirements and architecture
  • First round of development and coding takes place and the initial release of the core system is produced
  • Client review of the initial release and subsequent requirements capture for the next release
  • This continues through a number of iterations until the software is completed with significant client interaction throughout the process
  • Thorough testing and QC of the software to ensure all functionality is working correctly
  • System turnover and deployment
  • Documentation and Training provided to the client

Quality Assurance and Control

We take great care in ensuring that all aspects of our soultions are tested thoroughly. This involves two discrete steps, QA and QC.

QA involves ensuring that we understand the possible failure points and their relative importance. We undertake a thorough analysis of your levels of fault tolerance and resilience to errors. By understanding the critical points of the system we can therefore avoid serious system errors and ensure that the appropriate testing plans are created for the QC phase.

During the QC phase, we undertake exhaustive testing and checking of all functionality in every system we build. Every step we take is documented and as part of the deliverables from a project our clients receive this documentation showing full results of every test. This level of detail is one of things that sets us apart from the competition and gives you the confidence that accountable best practice has been followed throughout the development process.

Documentation

We typically provide the following documentation as part of the project deliverables. This may vary depending on the nature of your project.

  • Requirements Documentation
  • System Architecture Documentation
  • System Design Documentation
  • QA Plan
  • QC Test Plans and Results
  • System Manual for I.T.
  • User Manual