Custom Development Using A Standard Reference Architecture – The Best Of Both Worlds

Posted by Mark Lawrence on 14 December 2012

For many of our customers, while commercial software packages can handle much of their day-to-day grunt work, unique business processes and requirements still call for custom development for the true value-add applications. But use the term ‘bespoke development’ in front of many CIOs and CFOs and they quail in fear, seeing a future of blown deadlines and escalating costs with no real value delivered. The good news is, it doesn’t have to be that way.

Our approach is to create consistent tools and processes wherever we can, across requirements, design, and integration, so our customers aren’t paying for us to reinvent the wheel with every new development. We combine tight and well-structured up front requirements analysis and definition with our own standards-based Microsoft .NET Reference Architecture that enables components that we have already developed and tested to be immediately ‘plugged in’ and put to use in a new project.

By delivering core functionality as a custom application built on the Microsoft .NET framework using Optimation's Reference Architecture, we can offer our customers the best of both worlds: a system that is perfectly adapted to address their unique business requirements and outcomes while also being predictably delivered on time and on budget. Importantly, because Optimation’s Reference Architecture uses industry standard technologies, design patterns and structures, customers also get a system that will be supportable, maintainable, and extensible well into the future.

The experience of 20 years in software development has enabled us to develop a wide range of re-usable components that, as part of Optimation’s Reference Architecture, deliver much of the standard ‘plumbing’ most applications need ‘out of the box’, so to speak. Some of these elements include user management, several workflow options to support different levels of business process complexity, auditing and reporting. Not all of these elements will be needed in every customer project, but having them at our fingertips (and having all our developers trained in using and deploying them) means a development team starting on a new project is never starting from scratch. The benefit that brings is that the team can focus their energies on customer-specific issues and on delivering business value and innovation, rather than on doing the basics.

This approach is a win-win for both our customers and for us. For customers, it means shorter time to implementation, reduced costs of development with improved quality, much more predictable delivery, and greater reliability. The use of industry standard Microsoft components and technologies such as Microsoft .NET Framework and ASP.NET MVC also means their application can be cost-effectively maintained and supported, even if in future the customer moves this work in-house or to another vendor.

A big plus for customers who choose this approach rather than implementing a commercial packaged solution is that they get a system that is standards-based yet still flexible, scalable and customisable. It can change as their business changes so it will have a much longer lifespan.

For our team, Optimation’s Reference Architecture also brings a number of benefits. Every Optimation .NET developer is fully trained in the Reference Architecture, which means they can work effectively across any number of customer projects rather than being ‘stuck’ with one fully bespoke system where they have become the expert. It also means that if they are taking on development or support work for a customer system they haven’t worked on before, they can generally be up-skilled in less than a day because the software patterns, structures and framework are all consistent and already familiar.

Because a lot of the basic functionality is already available at project start-up, developers are able to spend the majority of their time focusing on more challenging and rewarding work, where they are focusing on business-specific issues and delivering real value to customers. Optimation developers are encouraged to use their skills and knowledge to update and improve existing components and elements of the Reference Architecture, and the upgraded versions can then be quickly deployed in other systems if desired. Our commitment to incorporating the latest best practices, techniques, and code advances into the framework also means our developers are working with modern technologies and keeping their skills current.

Last but not least, Optimation’s Reference Architecture is designed and managed to embody all our learnings, development principles, and best practices in the software itself, rather than having developers and users relying on screeds of written documentation (or worse, having completely undocumented systems). That’s something developers, customers, and trees alike can all appreciate.