service

Your Business as a Service

A software development project should not be viewed as cost to your business, but as an investment into its success - a way to assist your business to perform better by adopting technology as an enabler.

Following this line of thought, you want to be investing in something that will appreciate in value and generate a return on your investment. This means you need to make sure you design your software to focus on opportunities for future efficiency and growth, and minimise the cost barrier to acting on these identified opportunities, for example:

Opportunities

  • Integrating your system with other parts of your business and third party systems (marketing, business analysis, accounting, customer relationship management).
  • Creating new applications that can be supported by, or contribute to the core operational and strategic data you store for your business.
  • Scaling to match the growth of your business (multiple locations, staff working off site).

Cost Barriers

  • Ongoing maintenance.
  • Future development, implementing new features.
  • Changing or updating the user experience, years down the line.
  • Deployment and scaling costs. 

The most effective way you can balance the benefit of future opportunities with the cost to implement them is the way you choose to architect your application. Software architecture can be likened to home architecture in a number of ways:

  • Physical deployment plan - where house is built and the foundations it is built on,
  • Choice of tools and technologies - what materials and construction techniques the house is built with,
  • Organisation of the application into modular components - what rooms are in the house and where they are located,
  • Communication protocols within the application - how someone will actually live in the house, how they can flow from one activity in a room to another to perform different tasks.

Every decision in software architecture should be made with consideration to minimising costs and enabling opportunities. It is for this reason that Webscope employs a service oriented architecture (SOA) when building business applications.

At it’s core, SOA is about creating modular ‘services’ that provide simple methods for accessing and storing data, and initiating operations, to other systems. Because these services are relatively small, and they use a well defined protocol for communicating with other systems, each of these services can be maintained and replaced independently.

For example we’ve recently deployed an online Annual Meeting application for Link Market Services where this approach was used. The application enables businesses to host their AMs online, allowing their shareholders to login, view a video feed of the AM, vote on resolutions, and ask questions, all live in their browser, wherever they might be in the world.

Link Market Services possessed a legacy application that provided the core functionality required of a physical Annual Meeting, but it had not been built in a way that it could be taken online and provided to the public.

We built a concise middleware application that integrated with this legacy system and a video streaming service, and provided a new voting, ask a question, and AM management system to ensure businesses could run their AMs online even better than they could at a physical location.

Virtual Annual Meeting Services and Components

Each of these components is built as a separate service, meaning they can be changed, removed, and scaled independently of the entire application. For example, the video streaming service can be easily swapped out for another, and additional components such as asking a question via a webcam, or providing live polling results to the executive team, can be implemented without requiring a rewrite of the application itself.

There are many more benefits Link Market Services gain from this approach that would apply to any software project you may start:

Your application is not dependant on a particular language or set of technologies.

This gives you the flexibility to take advantage of advancements in software development tools and practices, and avoid costs related to maintaining legacy software - costs that are at the premium you pay for experienced and capable staff who are willing to work with outdated tools. This reduces development and maintenance costs, and enables opportunities as technologies evolve.

The development process is scalable.

It is well known that doubling the development resource on a project doesn’t come close to doubling productivity. Employing SOA won’t get you there either, but it is much more effective to have multiple small teams working on small modular systems, than it is to have the same number of people working on one monolithic system. As a bonus, it is also much more reasonable to employ development resource from multiple vendors, as it will actually be possible for them to work together. This reduces development costs, and enables opportunities to employ specialised developers on a component basis, rather than across the entire project.

The systems are inherently more scalable, and resistant to faults.

Because the services utilisation and resource requirements will vary, the ability to scale up (and down!) each component as needed will allow you to manage infrastructure more effectively. Additionally, failures of one service may reduce functionality of other components, but should not cause a complete outage. This reduces deployment, hosting and downtime costs, and enables opportunities to utilize the best infrastructure for each individual component and scale them as needed more easily and efficiently than one monolithic system.

New projects can easily integrate with, and take advantage of the data and functionality that has been developed.

This means that over time you can incrementally expand your information systems to incorporate all parts of your business wherever there is opportunity for return on investment.

 If you are investing in a custom business software solution a service oriented architecture is the smart approach to take, giving you the flexibility and power to take advantage of all opportunities that benefit your company's digital strategy.