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