During my Honours year at University, I fell in love. Twice actually. One of these relationships was with my best friend’s sister, now my wife. To ensure that I stay happily married, I would like to point out that this will always be the most important relationship. The other great find was Java. I found Java amazing – from its Virtual Machine to its Javadocs to its promise to “run anywhere”. The rite of passage was also not trivial and my claim to fame was ace-ing the 12-hour Java practical, armed with nothing more than a rudimentary Java IDE (Kawa) and the awesome Thinking in Java book by the legendary Bruce Eckel.
After university, I was fortunate to find myself in an “enterprise” environment working for a Telecommunications provider. Now to a young computer science graduate, fairly fresh to the working world, this “enterprise” is almost the same as the “Starship Enterprise”, the flagship of Starfleet. Just the words “mission-critical” made me feel like one of those first astronauts in the movie “The Right Stuff”. To the irritation of my university buddies, I probably did that “Right Stuff slow-motion” walk every time we met, regaling (most likely boring) them with tales of how I kept the organization running by ensuring that ringtones and logos were delivered to mobiles reliably – in a mission-critical, enterprise environment.
Just as our family grew with the addition of children, the amazing Sun Architects extended the Java family with the introduction of Java Enterprise Edition (JEE). Over the years, I nestled deeper into “Enterprise” design and development, on a long-term mission on a journey very few and selected had been on before. Concepts like Service-Oriented Architecture, Enterprise Service Bus and Service Delivery Platforms were parts of daily conversations.
After receiving a cryptic communication regarding “Microservices” from “Starfleet” recently, I’ve started my journey back to Earth and have been surveying the technology landscape – hoping to regale the masses with my experience of Enterprise design, development and “best practices”. However, what I have found could not have surprised me more…
I’ve come back to a world of technology which has evolved and changed constantly. I was expecting Virtual Machines and Platforms as a Service – however, I’ve found Containers as a Service and Docker instances that are so much more efficient and light-weight than VMs. I’ve discovered that the “next-generation” developer feels about SubVersioN the way I used to feel about CVS – and version control is now the domain of git and BitBucket…
DevOps, my interpretation – an Operations team with “Development Capability” has become the defacto standard for supporting operational environments. We had a similar term for this – it was called “coding in production” and it was a practice which was frowned upon.
The “Java brand” is still strong and well-renowned, having established a great reputation based on solid, proven delivery. However, there has been an absolute explosion of options developers have at their disposal. Organizations like Google and Netflix, from which these trends originate are using it for their applications and platforms – which affords it “enterprise-grade” capability with the added appeal of supporting millions of users.
I’ve made the decision to stay and understand this new world of technology and I hope to bring some of my enterprise experience and capability to bear. I’m also hoping that the relationships I make over the next few months (and maybe years) will be as fulfilling and rewarding as those relationships I’ve made before…