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.

Gabriel Ajabahian
Senior Software Engineer at RIPE NCC
As a Software Engineer at RIPE NCC, I’m passionate about creating dynamic applications that is used around the globe.

I have extensive software engineering experience, recently I focus on Scala/Java and JavaScript. On the other hand, I have experience with C# and .net framework. I focus on integrating applications that are built against different frameworks and can run on different platforms.

Scalability, efficiency and performance are key topics for any software, that’s why I keep track of the newest technologies, I never underestimate the power of the cloud, that’s why I do believe in using this power with “edge applications” to expand software’s and solutions to a new level.

Being a software engineer who understand the business as well as my team, looking at things from different perspectives. Being open and honest and investing in relationship makes a big difference.

Specialties: Software development, Scrum/Agile, Process and Problem management.

PS: Please don’t contact me or connect with me if your recruiter, I’m not interested in any job.

  • alanove

    Great article!!
    I know have a better idea about the Agile restful application structure.
    Thanks!

    • 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.