Tuesday, October 18, 2011

FedEx Envelope

Wow. I took a half-day vacation today. While at home, I heard a ding-dong. It was the FedEx delivery person.

Today I received my OCM - Java Enterprise Architect certificate/success kit from Oracle. Made me feel special. :-)

Wednesday, October 12, 2011

Oracle Certified Master, Java Enterprise Architect

After 2 months of extremely hard work (studying every evening, working on a design project during nights and weekends), and another 2 months of waiting, I received good news on October 6th: I achieved Oracle Certified Master, Java Enterprise Architect 5 status.


  • 2011-JUN-01 - Began studying early June

  • 2011-JUL-21 - Passed Part 1 Multiple Choice Exam

  • 2011-AUG-02 - Submitted Part 2 Project

  • 2011-AUG-03 - Took Part 3 Essay

  • 2011-OCT-06 - Received Congratulations Email

Part 1: Multiple Choice Exam

I used the following study material:

  • Design Patterns: Elements of Reusable Object-Oriented Software. The Gang of 4 Design Pattern book. Like any software engineer, I have a copy of this book sitting on my desk at work and reference it on occasion. However, in preparation for this exam, I read this from cover-to-cover twice.

  • Core J2EE Patterns, Deepak Alur, Dan Malks, John Crupi. I read over this book cover-to-cover, and went back several times to reference particular patterns.

  • Core J2EE Patterns Online. This site is based on the Core J2EE Patterns book. I used it in-tandem with the book.

  • Sun Certified Enterprise Architect for Java EE Study Guide, Second Edition, Mark Cade, Humphrey Sheil. This was the only exam-focused guide I used. I used it as my outline, to understand which areas the exam would cover, and where I needed to focus my time. I didn't have a hardcopy of this book, but was extremely fortunate that my employer purchased me a Safari Books Online subscription. I love Safari Books Online, have found it to be a wonderful technical resource, since I can read all the technical books I need without having to purchase hardcopy books.

  • Java EE 5 Tutorial.
Part II: Project

I LOVED doing the project. This is where I felt like I learned new skills and grew, and formalized my UML.

I have done UML diagrams for years. However, after a while, one tends to get a little bit sloppy. Blending interaction and time transition into a static class diagram, for example. It's so easy to do when one has an understanding of UML, but isn't held to a rigid standard.

The project really forced me to "clean up" and "formalize" my system design documents. At work, if I bleed a little bit of state transition into a class diagram, everyone still understands and gets the gist. However, I am sure that sort of thing would have been penalized on the Java Enterprise Architect Project (as well it should).

It took me over 40 hours. I went at it aggressively, started working on it immediately after getting home from work. At one point, I probably put in an 80 hour week (40 for work, 40 for my Java Enterprise Architect Project).

I learned how to use StarUML, and used it for the Class and Sequence Diagrams.

For the Component and Deployment Diagrams, I used Visio Stencils and Template for UML 2.2.

I learned of the Visio Stencils for UML 2.2 from Jeanne Boyarsky's posting, which was referenced on Coderanch.

Part III: Essays

This part was a proctored sit down and defend/explain aspects of the Project. I enjoy writing, so it was fun. The only thing I felt badly about is that I type extremely fast and tend to like getting my thoughts into words as quickly as possible (trying to get a stream of consciousness into a coherent essay while I have just the right words in my mind), and the keyboards at the testing center were "clicky" keyboards.

By "clicky", I mean, they make a click-klack, click-klack as I typed. Felt badly for other test-takers.

Overall, the Java Enterprise Architect Certification was by far the best learning experience I've ever had in certification series. I've never taken a certification series that involves a challenging hands-on design project prior to this.

I also thought it was really neat that they did not require any particular UML tool, or any particular approach. I had the freedom to design a system using EJBs or Web-container only, SOAP, REST, VMs, cloud, or physical machines.

I just had to clearly define and document a well-designed system that meets the business needs based on JAD session results, BRD, and Use Cases, much like the challenge faced by actual Enterprise Architects in designing solutions for businss problems.