My guide to SCEA

SCEA (Sun Certified Enterprise Architect) is the most advanced certification in the Sun J2EE certification stack. It is intended for professionals responsible for designing and architecting J2EE applications.

I achieved the SCEA certification in Aug 2007 after passing the 3 different units: in this post I just want to summarise what SCEA is about and share my experience.

Sun fellas have recently upgraded (after long time) the SCEA certification to Java 5. I haven’t looked into it yet (hence this post is about the old version of SCEA) but I suspect the approach, exam and structure will be very similar.

The Exam

The exam includes 3 different elements:

  • Multiple Choice: 48 questions which require selecting the appropriate answer or graphically drag-and-drop the correct option. Time allocated is 75 min, passing score 68%.
  • Assignment: it is a real “hands-on” exercise where the candidate is provided with some specifications (high-level requirements, domain model, an interview with the company CEO!?) and is required to propose a solution which meets the functional and non-functional requisites. Passing score is 70%. The final deliverable is a zip file with all required UML diagrams (Component, Class, Sequence, Deployment) and a document (html) which lists risks and assumptions, explains the technical choices and describe the overall architecture. No source code needs to be generated and, according to Sun, the effort required can be between 40 and 80 hours (I’ll come back to that..)
  • Essay: it is the final step where the candidate is asked (4 questions) to motivate the technical (and technological) decisions taken while working on the assignment. Typically this is very simple (as long as the assignment has been produced without external helps).

Objectives

Check Sun web site for an accurate description, in a nutshell:

UML

Use Case, Class, Component, Sequence, Collaboration, Deployment

Common Architectures

QoS requirements: scalability, maintainability, reliability, availability, extendibility, performance, manageability, security.

Legacy Connectivity

Techniques to access legacy systems from a Java environment
JCA, JNI, screen scraping

EJB

Stateless, Stateful ed Entity
EJB Lifecycle
CMP vs BMP
CMT vs CMP
EJB Container: pooling e passivation

Protocols

HTTP, HTTPS, IIOP, JRMP

Design Patterns

GoF of course

Patterns applied to J2EE technology

Internationalization

Properties, Locale, ResourceBundle, Unicode, java.text package, InputStreamReader/OutputStreamWriter

Security

Java Applet Security
Firewall
DMZ

My Experience

I wrote a detailed post on the Java Ranch forums, check it out.

I think SCEA is a really interesting experience, however it needs to be collocated in the right context. A very experience architect might not learn much more while somebody with absolute no exposure to designing architectures might find it too difficult.

Like all certifications (I believe) is a good way of combining some studying with the experience gained in the work environment: personally it gave me the opportunity and stimulations to understand better and deeper some of the technology I use every day without actually fully comprehending some of the features or the applicability.

I had to put a lot of work into the EJB stuff as I don’t do much of that in my job, while UML and design patterns have been fairly simple. If I have to generate a list of my top 5 recommendations I think I would say:

  • don’t get people to help you, just do it, it is the best way to learn and to get the real value of the certification
  • exam part 1: read, re-read and read again the questions, take your time and make sure you fully understand the questions (sometimes it is not simple as it looks, or as difficult as it seems)
  • exam part 2: spend a significant amount of time reading the assignment before you start working on it. Then start with deployment (not mandatory but very useful) and component diagrams.
  • exam part 2: don’t be afraid to take the decisions which make more sense to you: Sun people don’t want you to generate the best architecture ever, they want you to think and apply technology in a sensible way
  • use Java Ranch forums, it is absolutely the best resource to prepare SCEA.

Going back to the effort required… I reckon it depends on several factors: experience, relevance with your job, skills (e.g. UML gurus might speed up significantly the time required to generate the diagrams). motivations.

The assignment is undoubtedly the most demanding part of SCEA, it took me around 80-90 hours (Sun is optimistic… or they just assume only experienced architects would take the exam)… because I changed significantly my architecture after some time spent already. I also spent a lot of time in the final review of the solution, double checking UML, constraints, assumptions… and every time I would find something to change or adjust.

Personally I don’t think it matters how long it takes, we are all different which means we work at different speed, and with different approaches, some pay too much attentions to details (aka lots of time) others are more efficient. And don’t underestimate the social requirements (I had to go on holiday 🙂 and put everything on hold for a little while)…

Resources

SCEA official page: http://www.sun.com/training/certification/java/scea.xml

JavaRanch Forums: http://saloon.javaranch.com

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: