Cracking Open The National Treasure With Ruby!

This blog article is a companion piece to a main talk at the Ruby Ireland Meetup held on Tue, 18-Apr-2017. You can see the full deck of slides here or by clicking on the image below.

Click to download the slides in PDF

Click to download the slides in PDF

 

Previously on The Product Works...

Back in Jan 2016, myself and my co-founder, Máté, gave a pair of talks at the Ruby Ireland Meetup in Zendesk's office. The subject of the talks was a proof-of-concept application that we'd been commissioned to build by a large financial institution here in Dublin (who were not at liberty to name).

We talked about the technical challenges of building a Ruby-on-Rails (RoR) application in 5 days, as well as the cultural challenges of explaining RoR and open-source concepts to teams accustomed to big enterprise solutions. You can read about those earlier talks in the following blogs:

  1. Mary Poppins goes Corporate*
  2. Ruby goes Corporate: the Cultural Challenge
 

* You should know that our frequent references references to Mary Poppins is not some crazy love of musicals but down to the great book, “Seven Languages in Seven Weeks” by Bruce Tate. I forgot to mention this at the talk the other evening seem to remember seriously puzzled looks!

 

And now on The Product Works...

Over a year later and we are happy to report that the proof-of-concept went so well that the client decided to build the application. In fact, we recently completed the full project, followed by a short casestudy. We wanted to come back to Ruby Ireland and update everyone on how we fared. Did Ruby succeed or fail?? Who was the mysterious client??

Dum dum dummmmm!

The Client

Firstly, the mysterious client was in fact the National Treasury Management Agency (NTMA). Who that?

NTMA is the body responsible for managing the investment assets and liabilities of the Irish state on behalf of the Government. It has evolved from a singular function to being one of the biggest financial institutions in Europe, responsible for managing Ireland’s significant state funds, assets and debts.

And the Project?

I'm glad to report that the project was an overwhelming success.

We completed the full application in 24 weeks, start to finish. That included all phases of product development: requirements reviews, architectural design, spiking, coding, integration, testing and UAT

The ICT team in NTMA were incredibly happy with the result: they delivered a loan management application that is customised to exactly the needs of the internal stakeholders. 

What's more, this project was the NTMA's first foray into open-source, community-based technology, a departure from the big, heavy enterprise software that they typically would use.

What's more, the project delivered some really positive by-products and offshoots for NTMA.

  • Adoption of Git-based tools for internal source control (and abandonment of outdated source control tools)
  • Exposure to lean, agile development, whereby little pieces of functionality was delivered often in order to get interim feedback where possible. 
  • Cross-skilling of internal database developers and testers with new Ruby and Rails knowledge
  • Proving that open-source tech can live safely and securely in a what is a super-strict infosec environment.
  • Zero recurring licensing and support fees (unlike some enterprise solutions)

And what about Ruby - did it survive?

Ruby (and Rails 5) not only delivered but surprised us in how easily it adapted to what is a very alien environment for typical Ruby development. Highlights:

  • It was developed on Windows desktops and lived happily on Windows servers (all thanks to JRuby 9.1.2.0)
  • It happily integrated with big Oracle DB (version 12c) through PSQL
  • It was deployable to NTMA's internal servers as .war (web archive) as per their requirements. (Note: we used the warbler gem. The same gem can produce .jar files too, for simple local server running with Jetty.

Takeaways?

The lessons we have taken away from this project are as follows:

  • Ruby is versatile and can play nicely with all sorts of enterprise systems, even legacy. Sure setup needs a bit of wrangling at times but once that's done, it works as smoothly as anything.
  • Ruby is grown up. It's nearly 30 years old. It has the body of tools, knowledge and community resources needed to stand with the "Big Boys" of languages. 
  • Ruby - and open-source - can be trusted by big financial enterprises. Not only did this application live happily in NTMA's strict infosec world, it did things that enterprise platforms struggle to do: it easily delivered user interfaces and dashboards exactly as the stakeholders required, it delivered savings in development costs and recurring licensing fees, the internal ICT team had full visibility - therefore ownership - of the code.
  • Ruby brings positive attitude and by-products - the Mary Poppins effect! Coding changes are generally painless, there are plenty of gem packages to do what you need to do. It means that changes and suggestions mid-way through the project are more welcome. It really compliments agility and leaness, and takes the pressure of nailing everything upfront in giant requirements specs.  

 

Ruby will be with us for a long time and, I predict, will start to surface in a lot more enterprise environments around the world.

Conor Wogan

Dublin, Ireland