Software Development

Our knowledge, experience and expertise allow us to develop applications ideally suited to our client's requirements. We've been doing this for a while!

We've developed many a bespoke software application in our time, and while the programming languages have changed (thankfully) the development process remains largely the same.

We speak to our clients, gain a thorough understanding of the problems they're facing, propose a solution, then develop software (often in several iterations or phases) to fix the problem.

When it comes to software, an important decision any business needs to make is whether to build or buy. An off-the-shelf product can seem appealing and is, in many cases, the right choice. But your business is unique, special, and so a bespoke application may give you the edge in a competitive market.

If you're using the same software as all your competitors, are you missing a chance to take an advantage?

As well as the many advantages of having bespoke software (see below), using an off-the-shelf application does often bring with it other problems, licensing fees are often high, support costly, and good luck trying to modify its functionality so that it does the one thing you know it's missing.

The Background Info - What is Software Development?

Traditionally, software development - the process of creating a software application, followed a very formal rigid process, each software project was divided into clear logical phases (requirements, design, development, testing etc.) often with specialist individuals or teams involved only in their part of the project. While this approach lead to a desirable separation in responsibilities and expertise, it also created a very cumbersome and time-consuming development period.

In response to this, developers began to choose a more flexible approach, with the aim to make the application development process more streamlined and fast-reacting to changes in customer requirements - this became known as 'agile' software development.

There are several well-recognised software development 'methodologies' - agile, waterfall, spiral etc. which describe the steps undertaken when creating a piece of software (read more info here) - we describe our own approach to development below.

Advantages of a Bespoke Application

One of the main advantages of a bespoke application is the reduction of wasted time by automating business procedures. As any business owner knows, staff are the most expensive resource so making the best use of them is key to profitability.

Organic growth often leads to businesses becoming clogged down in time-consuming, labour intensive tasks, when your business is small these tasks don't take up much time, but if you don't become more efficient as you grow, its difficult to maintain and maximise your efficiency.

Often problems arise when growing businesses start utilising multiple applications to deal with individual aspects of their business. It's not uncommon, nor unrealistic for a growing department to seek out a specialist software solution to the problem they're currently facing - an accounting package for the accounts team, a CRM system for managing clients, a website CMS for keeping their company website up-to-date, a shared excel spreadsheet for keeping track of employee expenses and holidays.

But as the number of applications, your business is using grows it's important to keep in mind the business as a whole! If these applications don't talk to each other in an efficient way - this leads to data duplication and a loss of efficiency for the business as a whole. This is a great example of a scenario where a bespoke application could be introduced to streamline tasks and the data input required.

Would it be easier if 1 person created a client record and everyone used it? If a clients address or invoice details change - wouldn't it be more productive for your business if 1 person could update their information on all of your systems?

By automating mundane and time-consuming processes and reducing duplication you and your staff will have more time to concentrate on things that require a human touch such as sales and customer relations. We have a great track record of implementing automation into businesses leading to rapid growth in both size and profitability.

Which Programming Language(s) do we use?

This very much depends on the application we're developing, we don't follow a one size fits all approach. In fact its probably easier for us to tell you which programming languages we don't use (PHP!)

We do have our own preferences, and will always recommend what we think is the best approach to take, but often it's our clients who stipulate which programming language we can/can't use, they're often looking to expand an existing application written in a certain programming language or using an existing database application.

Below is a list of some of the things we do use

  • JavaScript
  • Node
  • Babel
  • React
  • Express
  • MongoDB
  • Nginx
  • ReactNative
  • HTML5
  • CSS
  • Pug
  • Handlebars
  • jQuery
  • C#
  • and many (too many) more

Our Development Process

 

Getting to know your business

We have designed and implemented bespoke applications for many of our clients - many of whom are based close to our offices in the north-east of England. What we've learned is that each of our client's have their own unique requirements - that every client is different! every project is different, so an important part of our bespoke application development process is getting to know your business.

We need to understand why our clients are looking for a new application, what issues they're looking to overcome - and how they plan to modify their business practices to start using the application once it's in production.

 

 

Planning

Once we have an overview of how your business currently operates we will discuss the key requirements of the software and will suggest any additional features that could help to streamline your business. The result of these discussions will help us to create a clear development plan.

 

Development

We understand that your requirements will evolve, and may even change over the course of the development phase, so we use an agile methodology which allows us to embrace and adapt to these changes. We do this by breaking the development into a series of iterations. During each iteration, we will add one or more features of the application and at the end of each, you will be invited to review and test the software. The results of this review can then be implemented in later iterations. All of this means that the project remains flexible and will produce a product that has been built around you and your business.

 

Q/A

Once the main development has been completed there will be a period of testing to ensure that any bugs are removed, but because clients have already seen several early versions of the product the likelihood of any major issues being discovered will have been significantly reduced.