Aug 25, 2014

GR8Conf US Recap: Why Your Company Should Adopt Groovy!

The 2014 edition of the GR8Conf US in Minneapolis was a huge success. The speakers and sessions were great and the new venues for the talks as well as the Monday night Object Partners happy hour were outstanding. It is also exciting that many of the presentations are already on the YouTube GR8Conf US channel.

With over 200 attendees, the conversations during breakfast, lunch and the breaks were as enlightening as the sessions themselves. I’d like to offer special thanks to Mutual of Omaha for letting myself and Jim McGill talk about what it was like to build the big Groovy project we worked on from 2005-2008.  It was great to hear from Jim the details about what it has been like to maintain and extend the code base for a mission-critical enterprise application over the last six years.

Our session was called “Groovy at Mutual of Omaha: Q&A”, subtitled “Groovy After All These Years or Why Your Company Should Adopt Groovy!”. In the spirit of  Cédric Champeau’s great tweet, here are some great facts and quotes from Jim during the session.

 

Regarding staffing:

  • “[With] no large body of Groovy programmers at the time, what did we have to develop with? [We learned we] don’t need to have Java rock stars.”

  • “We have an app in production. We handed over to a team of people who didn’t have a year’s worth Java experience…They were short of Java experience but not short of developer experience.”

  • Jim said thirteen people have cycled through the project over the last six years. The code base has grown from 50,000 lines of code to 120,000 lines of code.

Regarding Groovy performance:

  • “A small case will generate hundreds of thousands of calculations…a big case millions of computations.” A typical case takes 1-2 seconds in the Groovy part.  Larger cases take longer, but never so long that its a problem.

  • Even though they were stuck running on an application server that used Java 1.4 until 2013 and could only run Groovy 1.5.5, “performance was never a deal breaker. Ever.”

Regarding Stability in Production

  • “[We’ve had] less than eight [production] runtime exceptions in the last five years. Most had an immediate work-around…The scope was a single case.”

  • He doesn’t lose sleep over runtime exceptions. He loses sleep over possibly “selling something that shouldn’t have been sold.” This is where Groovy has really shined – “the readability of the code buys you a lot. Cut out the middleman and get subject matter experts as close to the code as you can.”

The Bottom Line:

“I don’t understand why management isn’t clamoring more for Groovy. Forget all the cool the stuff. [It’s about] the throughput, the readability, the ability to, in an Agile way, bring the customer and IT together in a way…that minimizes requirements docs, and brings up the testing and business rules.”

Here’s the link to our recorded session.

About the Author

Object Partners profile.
Leave a Reply

Your email address will not be published. Required fields are marked *

Related Blog Posts
Google Professional Machine Learning Engineer Exam 2021
Exam Description A Professional Machine Learning Engineer designs, builds, and productionizes ML models to solve business challenges using Google Cloud technologies and knowledge of proven ML models and techniques. The ML Engineer is proficient in all aspects […]
Designing Kubernetes Controllers
There has been some excellent online discussion lately around Kubernetes controllers, highlighted by an excellent Speakerdeck presentation assembled by Tim Hockin. What I’d like to do in this post is explore some of the implications […]
React Server Components
The React Team recently announced new work they are doing on React Server Components, a new way of rendering React components. The goal is to create smaller bundle sizes, speed up render time, and prevent […]
Jolt custom java transform
Jolt is a JSON to JSON transformation library where the transform is defined in JSON. It’s really good at reorganizing the json data and massaging it into the output JSON you need. Sometimes, you just […]