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
  • 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”)
  • If you are NOT a Magic Suite subscriber:
    • Everything up to this point is free of charge and neither of us is under any obligation
    • We would create a fully-costed Statement of Work (SoW) detailing your requirements for you to sign off
    • If you choose to proceed, you would provide a Purchase Order against the SoW
  • Next we proceed to System Development

Development

In the Development phase:

  • 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
  • We provide iterative prototypes as required, 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:

  • If the work is not being done as part of a Magic Suite subscription, we invoice for the amount due, which usually includes one year’s support and maintenance
  • On receipt of payment, we can provide initial system training
  • We set up the production system, on infrastructure that either you or we have provided (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 the duration of our agreement, which may 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!

Scroll to Top