Salesforce.com Advanced Developer (501) Programming Assignment & Essay

Back in August I posted about my takeaways from the Salesforce.com Advanced Developer (501) Certification‘s multiple choice exam. Since then, I completed the programming and essay portions of the exam back in November, and just found out on Tuesday (~8 weeks after the due date) that I passed, leaving the fabled Technical Architect certification as the missing trophy from my collection.

cert_adv_dev_rgb

Below are my thoughts about the second half of the certification experience.

Signup

The signup for the programming assignment is something that you’ll want to set a reminder for, as it usually “sells out” in a couple hours (and since it only comes around every 3-4 months, that is a long wait). At the time of sign up, you’ll pick a time slot to take your essay. While it is preferred that you finish your programming assignment first, you can set up the essay for any time within the month. I set mine up near the end of the month but as I was finishing early I moved the date up and took it early.

Programming Assignment

As many others have noted, the programming assignment mentioned that it would take at least 20 hours. I ended up spending about 25-30 hours to make sure that I caught everything and was using the most ideal techniques for each situation. From talking to others who have taken the exam in the past, people spend anywhere between 20-60 hours on this part, depending on the speed at which you work and the level of comfort you have with Apex and Visualforce.

I found the content of the programming assignment pretty reasonable. Without going into details, the assignment consisted of a Trigger, Visualforce page, and Apex controller. I found that most of what I used were common to everyday Force.com development, but I did unearth a couple of techniques while researching to find the most ideal implementation that I hadn’t known about in the past (things that were harped on frequently in the multiple choice part of the exam).

Of course, unit tests are also quite important, and I probably went a little beyond what I normally would do on a project as the requirements of the assignment were pretty explicit. I had to reign myself back a bit overall on trying to implement the perfect solution to every potential scalability issue and fall back on the instructions of only implementing what is explicitly stated.

I found that I ended up being comfortable enough to state any assumptions that I was making throughout the implementation in comments around my code, explained my reasoning for choosing a particular way to implement something, and hoped those were taken into consideration.

Essay

To be relatively blunt, if you complete (or are close to completing) your programming assignment by the time you take the essay, and you have a compelling reason for why you did things the way you did, the essay will not be an issue. Just make sure that you are familiar with your code and design decisions (I set up my essay a few days after I was code complete, so I needed a refresher just before I took it).

While you have the option of taking the essay at any time, if you try to take it before you start to work on your actual implementation, you are not going to do very well. My assumption (similar to Keir Bowden) is that this is just an opportunity for you to prove that you actually did the assignment, and you have a good explanation for why things work the way they do.

As an aside, I had a lot of issues getting my at-home proctored test to work on a Mac. For whatever reason, Webassessor‘s support for Mac is something like 10.6 (which is probably 3-4 years old) and when the Sentinel program would load, it refused to load my webcam even though I followed the explicit steps they provided. I finally got it to work after having to miss my first window debugging and calling into their tech support. Hopefully that has been fixed by now, it was a pretty stressful afternoon. Word of advice to Kryterion: allow me to test my webcam working with your software before the test starts.

Results

Advanced Developer Email

I ended up finding out my results about a week after some of my colleagues, which kept me on the edge of my seat (and constantly checking my email). The email itself had a small blurb about how I met the requirements, and then listed the strengths and weaknesses of my implementation (at a very high level). While it would have been nice to get an in depth report on each bullet (particularly a specific example of the weakness cited), it understandably isn’t part of the scorer’s job description.

Summary

I found this portion of the certification exam to be a pretty good representation of what a Force.com Developer would do on a normal project (and while by far the most time consuming, the most fun). Unlike some of the really abstract concepts that you find in some of the multiple choice exams that seemingly test the extremes of your Salesforce.com knowledge and reading, nothing in this part of the assignment deviated too much from things that I’ve done for clients in the past.

I highly suggest that anyone who has been working on the platform for a year or two take a stab at this certification, as the worst case scenario is that you’ll learn some new techniques that you may not have come across before. That being said, the complete process of this certification spanned 5 months since I passed the multiple choice part (late August to late January), so make sure you identify the programming assignment windows and don’t miss out or it could be a long wait.