From Legacy code to Agile Restful Application

Wait WHAT is Agile Restful? Simply building your Restful application in the Agile way, incrementally updating your legacy code to SOA (Service Oriented Architecture).

I will not explain what is Restful services, there are enough information about Restful online… What i want to highlight in this post is why i think moving your legacy code to Restful Api would allow your business to grow by 10 if not 100.

As a developer I love Rest architecture, its easy readable and most importantly it supports “Heterogeneous Interoperability”, when i want to explain it to my boss who’s more from the business perspective I start simply by saying I think our system would do better with Rest because…

“I want to integrate applications that are built against different frameworks and run on different platforms.”

RestApi

What is the objective from such design?

Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship. Each end of the transaction makes its requirements explicit and makes few assumptions about the other end.

  • Improve development time and efficiency

    Improve business development time and allow each developer to do his job right. For example: Java developers are mostly catastrophic in making a nice “look and feel” or “responsive design”.

    As a software developer myself I will stop on this point to explain what I mean, the majority of the professional developers I worked with despite if they were Java or C# developers there front end ability was very limited.

    Most back-end developers dislike front-end and reversal front-end developers dislike working in back-end, which leads to higher costs while building an application, for any senior back-end developer to build a small box on the screen, it can cost him triple the time and most probably it wont be as efficient as a front-end developer.

    With Restful architecture this issue is resolved, as back-end developers offer some services and front-end developers can concentrate on there part of building the complex front-end visualizations. Awesome no more nagging “I hate JavaScript or I hate styling”.

  • Open teams!

    The ability of having teams that does not need to understand the business logic, as a service you can go open source and allow developers to build applications that communicate with the business services, those applications are totally separated and developers doesn’t need the knowledge how things are done in the back-end.

  • Cloud friendly

    Restful architecture allows us to use the cloud represents an opportunity to take advantage of something called elastic infrastructure which is both computing capability and storage capacity that grows and shrinks with the application or applications that run on it.

    Restful applications are stateless (session-less)

    Getting to the cloud would reduce our costs and would allow the infrastructure to grow elastically.

  • Growing bigger

    When creating our application Restful and fully separated from any application design, it would allow us to go larger and faster, speed is essential if we want to sustain the full power.

    Imagine you want to build a mobile application that works the same way your web application works, right now we build a service for that mobile and integrate it with our system but if you have everything restful then you just hire people to build the application and connect to your services… “Connect the world ! :)”

Some of the powerful characteristics of Restful application!

Finally and this is based in large part on visibility, a Restful application can be more easily managed because the interactions between components happen in a highly consistent and highly visible way and therefore management tools can have a much greater impact. In looking at how all of these properties mapped to heterogeneous interoperability the rise of devices and the cloud, you can see that all of these properties are important to at least one of these areas if not all of them.

Why building Restful with Agile while leaving the legacy code?

The problem of any legacy code is “Its Working!” but… we cant update it easily, we cant refactor it easily and the most important we are scared of it.

Building a service next to the running system and upgrading it incrementally would allow you to achieve a stable system without the overhead of software prices, and failures that many people face because they thought its simple to change about what they already have, the new system turns to another legacy in 5 years and its never done.


Thank you for reading “From Legacy code to Agile Restful Application” If you would like to ask more about this approach please don’t hesitate to contact me.

RESTful design increases API performance, reduces development effort, and minimizes operational support burden.

2 replies
    • Gabriel Ajabahian
      Gabriel Ajabahian says:

      I’m happy you like it, bulding on legacy is taking us huge amount of time and efforts without the ability to maintain and grow… sometimes we have to take the incremental process to get things done.

Comments are closed.