Our Approach to Software Development

Our approach to software development is designed to provide a successful delivery against your requirements, budget and timescales. The process consists of these stages.

Non-disclosure agreement

Firstly, to protect both you and your data, it is usual to have an NDA in place. Check out our standard agreement here and if you are happy with its contents:

  • Complete it, including a signature on page 8
  • Print, scan and send via email or use your preferred agreement management system to get us a digital signed version

Alternatively, if you have a preferred mutual NDA, please send that for our review.

Discovery

We would then:

  • Listen to your requirements and ask lots of questions!
  • Review your current system and data
  • Understand your budgetary constraints
  • Create a system design with feature prioritisation (e.g. “Critical” vs. “Required” vs. “Nice to have”)
  • Create a corresponding, fully-costed Statement of Work (SoW) detailing your requirements for you to sign off

Everything up to this point is free of charge and neither of us is under any obligation. If you then choose to proceed, you would provide a Purchase Order against the SoW, and we proceed to System Development.

Development

With a purchase order signed, we progress to development:

  • Each element of the design is documented in our software issue management system (JIRA), which means its development, testing and deployment can be easily tracked.
  • Development work commences using the custom JIRA workflow to keep it agile as well as Toggl for precision timekeeping when working on time-and-materials projects.
  • Our team of developers are committed to .NET Standard and .NET Core and use the standards-based C# language wherever possible. We use Visual Studio and prefer code first Entity Framework for O/R mapping and a variety of technologies for persistent storage, including SQL Server. Our all developers are LogicMonitor Certified Professionals.
  • We provide iterative prototypes on a weekly basis, and against the plan set out in the SoW
  • You are encouraged to continually review and give feedback on the system during development, noting that:
    • Early iterations have extremely limited functionality, but you will have full visibility of our development process
    • No guarantees of system availability are made during development
    • We may choose to modify/update/delete the data in the developmental system as required for testing purposes
    • At this stage, the system is unsupported – for example, the user interface may change during this time
    • For all these reasons, the system should not be used for actual business use
  • Internal Q/A engineers work closely with the developers to ensure unit, build, functional and regression tests are performed in a timely fashion. This, together with customer User Acceptance Testing ensures you get the highest quality end result.
  • During this time, if required, we can provide weekly reports with full visibility of progress and demonstrating confidence of delivery against the plan.

When development is complete, we progress to the next stage.

Deployment

With development complete:

  • We issue an invoice for the amount due, which usually includes one year’s support and maintenance
  • On receipt of payment, we provide initial system training
  • We set up the production system, on infrastructure that either you or we provide (you can move between these at any time)
  • We migrate your latest data into the system
  • Your old system would no longer be used for business operations
  • Data is considered “live” – from this point, we will not use the system ourselves or access system data, except at your explicit request (for example, to provide you with support)
  • We support the production system for as long as a maintenance agreement is in place, to include:
    • Daily on-site backups
    • Weekly off-site disaster recovery backups
    • UK office hours, web-based support
  • If requested, we can offer additional professional services (further training, further system development and more)

Phased delivery – Optionally, we may both decide to phase the project, such that a subset of system functionality is available as “Version 1.0”, with an earlier delivery / payment date.  Less vital functionalities may be attributed to “Version 1.1”, “Version 1.2” and so on.

 

We hope you like our approach, which we find works very well.  We very much look forward to working with you!