Service Oriented Development, the best of both worlds
Should you start thinking, as an IT Director, in terms of Service Oriented Development rather than Application Development or even Commercial Software?
The question is worth asking because, surprisingly, even though we have been praising Agile Development for more than a decade, the fact is that the majority of large and medium-sized enterprises are still moving forward with long-term expense heavy IT projects, leveraging notorious platforms such as SAP or Oracle or commercial software.
We understand very well the dilemma faced by IT Directors (CIO / CTO) which leads them to think, often wrongly, that the reputation of a notorious software is necessarily a guarantee of performance and security (sustainability).
Having executed over the past 30 years both Custom Application Development and Development on existing Microsoft platforms, we understand very well the risk of custom software development when a company has already invested a lot of money, on a given platform or in a critical home solution.
However, when the IT project is not an overhaul of an existing system but a project to meet new business needs, we have taken another tangent in recent years because, from our point of view, it appeared much more advantageous for both the customer and the developer, a third path between Custom Software Development and pure Microsoft Development; Service-Oriented Development.
The Principles of Service-Oriented Development
While the development of customized application allows a very strong adequacy (development of functionalities) to the needs and objectives, it constitutes a significant risk in terms of sustainability of services and development costs.
On the other hand, commercial software often entails tremendous pre-installation adaptation costs and a recurring license cost. In addition, any customization of features will also lead to significant additional costs and the end of the evolution of the software whose version becomes fixed in time.
The third way we advocate, Service Oriented Development, offers in our opinion the best of both worlds.
Our Service Oriented Development is built upon three principles:
- , by iteration
- service-oriented architecture
- platformless architecture
Parallel Development, by iteration
On the one hand, the execution of what we call Service Oriented Development is in fact executed in parallel to the systems and applications in place with which they will have to communicate and exchange. It can even be done on the sidelines of the IT infrastructures in place, by use of the Cloud.
On the other hand, development is oriented “function”; the development is done in steps, by iteration of functionalities answering to specific needs, as and when they are required over time.
Service Oriented Architecture
Our approach is to work in services and promote the reuse of existing services (features already in place). We have designed a “multi-layer” architecture that communicates with the services already in place (via APIs) and calls upon our service catalog as well.
Platformless Architecture
The services developed are no longer dependent on a specific environment, be it Windows, Cloud or Linux. To do this, we use the low-level REST protocol and the Net core 2 development environment.
Thus, the services developed will be hosted in the Cloud but they could just as easily be hosted either at the customer’s or at hosting providers.
Benefits of Service-Oriented Development
The service-oriented architecture allows the IT manager to meet business needs that systems in place do not meet and that would be too long or even too risky (managing future versions) to develop on their own IT systems.
This architecture empowers the injection of new funds into IT because it allows the development of new features using the latest technologies and it removes the barriers imposed by systems in place that not only require the use of a given technology but generally a specific version of this technology, which by the way, is often not recent.
Parallel and step-by-step development preserves the integrity of systems in place and therefore their future evolution while minimizing the risks of cost overruns and unsuitability of deliverables.
Parallel and step-by-step development is definitely the best way to deliver fast and quickly take advantage of new features while minimizing the risks and costs associated with development.
The service-oriented architecture preserves the integrity of systems and applications in place and ensures their future evolution (updates and upgrades).
The “platformless” architecture no longer forces the IT director to choose a platform or a type of hosting.
Conclusion
Let’s be honest, at a time of global competitiveness, performance, agility, and quality at every level; which company can still afford the luxury of heavy IT infrastructures, with recurring costs, and not providing the features needed to compete and perform, now?
Michel Martel