Should you start thinking, as an IT Director, in terms of Service-Oriented Development rather than Application Development or even Commercial Software; if you really want to meet the challenges of today’s new business requirements?
The question is worth asking no matter your line of business. Surprisingly, even though we have been praising new development methodologies such as Agile Development and other development tools and fast development approaches 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, in its Information Systems, on a given platform or in a critical home solution.
However, when the IT project is not an overhaul of an existing information 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 client 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, development is “function-oriented“; the development is done in steps, by iteration of functionalities answering to specific needs, as and when they are required over time by your business analysts.
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:
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.
Our approach is to work in services and promote the reuse of existing services (features already in place). We have designed a “multi-layer”, or, if you prefer, a services layer architecture that communicates with the services already in place (via APIs) and calls upon our service catalog as well.
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 new .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 a hosting provider’s.
The Service-oriented Architecture (SOA) 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 (SOA) 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.
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?
Denis Paul & Michel