Application Development Services

How It Works

Solution Analysis

We start by analysing and surveying existing solutions in play within your enterprise. Some consultancies are too quick to discard working functionality so they can build something brand new and fresh. Not only does this add signficant cost to the project, but the risk factor also grows exponentially.

We carry out a thorough examination of the current solution to determine what can be kept as-is, what needs to be updated or improved, and what needs to be discarded and started over. The benefits of this approach are:

  • Significant cost savings as existing functionality is re-used
  • Reduced risk by not reinventing working software
  • In cases where existing software is not up to scratch, we typically recover logic and functionality that is working and improve it
  • Where all is lost and the current software cannot be kept, you can be sure that everything was done to try and rescue it

For many applications, there can be years or even decades of complexity and logic that has built up over the years. On the surface, it may seem that throwing all of this away is a good thing, but from experience we have found that this often creates more problems than it solves. Instead, let us help you find the good, the bad and the ugly in your current solutions, and leverage this knowledge to make better decisions about where to go next.

Design & Spec

This phase of the process is probably the most important of all, as it defines not only what functionality the solution will have, but also the finer details of how it will work, what it will look like and how users will interact with it.

We start by mapping out key business requirements and overall goals and milestones for the project. From this, we expand into greater detail by defining a series of user stories that map out how a user will interact with the software, and what impact this will have on the back-end. Rather than making assumptions about what a user wants, we conduct interviews and exploratory sessions with your users to ensure that the solution will work for them.

From the user stories we then create a project plan and start working on user experience and user interface design. Although both design processes are closely related, they are not one and the same and each must be thought out carefully.

  • User experience (UX) design defines how the user will use the software and incorporates key components such as navigation and workflow. During the UX phase, we will create wireframes and prototypes that illustrate how the solution will work.
  • User interface (UI) design defines the visual appearance of the software such as what colours and typefaces are used. During the UI phase, we will deliver mockups, graphics and layouts of what the final solution will look like.

The design & spec phase of the project is highly collaborative, and we will be in constant contact with key stakeholders in your organisation throughout. The final step of the design and spec phase is sign off - we will only progress when you are completely satisfied.

Development & QA

This stage of the process involves the development and testing of enhancements and new functionality. Our software engineers will implement a strong foundation, following industry best practices to ensure that your solution is stable and resilient. We follow test-driven development (TDD) and agile approaches, writing unit and integration tests as we build.

Our engineers have years of experience working on Web, mobile and desktop applications in a variety of languages and frameworks. They are also widely experienced in database development across a multitude of relational and NoSQL database systems.

The following table outlines just a small sample of the technology solutions we are experts in:

Programming Languages Front-end Frameworks Database Systems
JavaScript AngularJS Oracle
Ruby React PostgreSQL
Python Ember MySQL
C# KnockoutJS SQL Server
Java ExtJS/Sencha Touch MongoDB

We also have experience in handling large-scale requirements, using cache stores such as Redis and Memcached, queue platforms such as RabbitMQ and SQS, data warehouses and more.

Deploy & Scale

When your application has been fully developed and tested, it's time to make it available to your users. Whether you are providing a product to the general public, making an internal app available on a private or public cloud, or installing your software in an on-premises local environment, Array will work to your specific requirements.

Prior to production deployment, we will perform load, concurrency and penetration tests to ensure that your application is rock-solid and ready to ship. These tests emulate typical scenarios where the application may come under significant stress to ensure that it is capable of handling the pressure when times get tough.

When it comes to scaling, we have the expertise needed to configure your application in a load balanced environment. Whether it be via a roll-your-own solution or the likes of Amazon's Elastic Load Balancer (ELB), we've got you covered. We also have the know-how to recommend when you should use vertical (i.e. upgrade a server) or horizontal (i.e. add more servers) scaling to increase your capacity.

Our experts know cloud solutions such as Amazon Web Services (AWS), Rackspace Cloud, IBM BlueMix, Pivotal Web Services and Heroku like the back of their hands. Prefer to use Virtual Private Servers (VPS) providers like Digital Ocean or Linode? No problem. If you want pure on-metal dedicated hardware, we can help you with that. Or if you want to host servers inside your own corporate firewall, we have years of experience working within those parameters too.

3 reasons to work with Array Software

1
Breadth of experience

We've seen it all before - from billion dollar payroll to complex distribution platforms, we have built it.

2
User and Customer focus

Our approach is unique in that it puts the emphasis on the needs of both the end-user and the customer.

3
Unrivalled Support

The team that builds your application is the team that provides you support, get answers direct from developers.