My tryst with the Advanced Developer exam began in Dec 2014. After 2 days of solid studying + leaning on my experience, I was able to pass the multiple choice exam.
Read about that here.
After this began a long wait. It seems that there was a huge backlog for this exam and in between Salesforce was also revamping their developer certifications which led to the Platform Developer I and II.
In any case, almost 11 months later in November 2015 I got a notification that I could register. As usual, I could not register soon after the email arrived and so all the slots were taken.
I then sent a mail to the awesome Salesforce support team and they were able to get me in. I think this was because I explained I had a very long wait time since passing the multiple choice exam.
I was given a slot for the Dec 2015 batch. At about this time I had made plans to leave the US and move to Australia to check the place out. So the first 3 weeks in December would be spent serving my notice period. I got the programming assignment mailed to me on Dec 1 and the deadline was Dec 30.
When I got the assignment, I quickly read through it. As many have told, at a high level it consisted of a VF page, APEX controller and trigger. I will not go into too many details about the assignment itself. But it seemed manageable.
The recommended time was at least 20 hours. No sweat right? So I decided I will work until the 18th and then start work on this from the 19th which would give me roughly 10 days. But this ended up being a BIG MISTAKE!!!!!
I kept reading the assignment from time to time in between and work was pretty intense for the last 3 weeks and I through all of that and soon enough Dec 19 arrived.
I read through the assignment in greater detail and began forming the overall design in my mind. It was at this time that reality hit me. This thing needs 60-80 hours of work.
Especially if you are like me – a Technical Lead who can code/program if needed but does not necessarily do it everyday. Also, the assignment tests you on your core knowledge of VF and APEX and this might include stuff which you may not have worked on before.
So to summarize, if you work with APEX and VF daily then you can do this without breaking a sweat, If you have been rusty with these then you better allocate the whole month because you need to look up stuff, learn new things and you will be slower with the coding.
So here are my TIPS for doing well.
1. DO NOT UNDERESTIMATE THIS EXAM. When you get the programming assignment, start work on it ASAP.
2. Read the whole assignment and break it into smaller logical chunks as you would do in a real life project. Follow Object Oriented design principles.
3. Pay attention to the finer details. An innocent looking 1 line requirement may cause the whole design to be changed and also cause permanent hair loss!!!
4. DO NOT use javascript/3rd party libraries/plugins etc. If you are leaning towards JS, stop it because you are doing something wrong.
5. Focus on making the application robust and think of scalability at all times. In other words you need to follow the APEX best practices and the secret word here is BULKIFY!!!!
6. Follow this golden rule: “Try to do calculations first in SOQL, then in APEX and finally in Visualforce”. What this translates into is writing good SOQL queries and making use of Aggregate functions.
7. Read this GEM of a document. This is often overlooked but we all need to read this regularly if we are VF developers (reminder to self: Practice what you preach!!!)
Keep it handy when working on the VF side of things as it has great tips that we all SHOULD know.
8. Testing : No doubt you have read a million blogs about this. The often underestimated part of developing in a Salesforce environment but it has the potential to bite us HARD when we least expect it.
The same is the case with the programming assignment. You have to strive for near 100% code coverage.
i. You have to follow the Testing best practices and code coverage best practices.
Testing best practices
Code coverage best practices
ii. Keep it simple. Small unit tests. Methods to create your data.
iii. Write good ASSERT statements. We have read that folks use around 80-100 assert statements and I would concur. If you have between 60-80 also you should be fine as long as you test all the major functionality.
iv. Strive for 100% code coverage or at least 95% +. This will be the most challenging part as you will see.
v. If you already follow great testing practices in your day to day APEX coding then good on you. You will do well here.
vi. Be prepared to write bulk test cases, boundary condition test cases, positive and negative test cases.
9. Add great code comments. I am not saying write stories above your code but nice comments help to explain what you are doing. Have comments above classes and methods that explain their purpose and the arguments that they require.
10. MANUALLY TEST your application – Goes without saying. Test your application well(Functional testing). It should scale well and you should handle all exceptions gracefully.
TO SUMMARIZE:
The assignment wont be hard nor easy. In other words it can be nicknamed the “GOLDILOCKS” assignment. If you know know who she is, Click here.
As I said, do not underestimate the exam. Spend the whole month on it. Make it near perfect. Remember it has be near production-quality as top APEX experts from around the world will test it and then check your code. So dedicate the time and you will succeed.
Use core APEX and VF features. If you are using JS then you will surely fail based on what I have seen and heard.
What happened to me?
After scrambling to finish the assignment and follow all these rules I was able to finish the coding in the midst of planning my Aussie trip and packing for it. My wife also wanted to go on a short road trip to New Mexico (Roswell) on new year’s day. So I scheduled the programming assignment on 29 Dec. When I went to write it, my coding was complete and test cases were 70% done. But I knew my code in and out and also my unit testing strategy. The Essay exam asks you questions to determine if you have done the assignment yourself. It asks you to explain key design decisions among other things. So answer this to the best of your ability.
I should say that disaster struck since there is 1 hour allocated and time will FLY!!!! There was a glitch in the testing software and I had to run and bring in the examiner who restarted it but to my utter HORROR, the long answer to the 3rd question was lost. In the last 2 mins I tried to retype what I could but it could not cover it. I later came home and sent a mail again to the great Salesforce support team and they were able to retrieve my answer..HURRAY!!!! The other alternative was taking the essay exam again and it was averted. Praise God!
I came home at 4 PM and code unit tests non stop until 1 am in the night. The fear of disappointing my wife and the prospect of seeing aliens in the freezing land of Roswell motivated me. After coding with peak efficiency and sheer desperation, I was ready to deploy this to the production org and SUBMIT the assignment. It was finally done. There was relief and trepidation as I knew what would happen next. A team of Salesforce experts/whizkids/Einsteins/ascended masters would basically dissect my code and see if was fit to enter the hallowed ranks of being an Advanced Developer. I had heard of several top and ace programmers/architects who had failed the exam on their first attempt.
As it was the holiday season, the grading was a little slow. On Jan 25, I left the USA for Australia and this was at the back of my head at all times. Finally on March 24, I got a GOLDEN email from Salesforce saying I had passed.
What a feeling it was!
And so it was done. A journey of 1.3 years from the time I passed the multiple choice exam. No wonder this exam is so well regarded. It tests you completely and helps you to demonstrate your Salesforce programming knowledge. It is tough, daunting and takes a long time. It will test you and stretch you to your limits at times. It is not hard but following the basic rules and getting it to near perfection will be the main challenge especially when you have a busy work life.
But when it is done, there is a magnificent sense of accomplishment. For me it was the holy grail and the king of my 10 certifications at this time. I highly cherish it and thank everyone who supported me for it.
Special thanks to my wife who supported me during those grueling 10 days when I did this. Actually I dedicate this certification to her! Because without her help this could not have been done.
And yes the road trip to New Mexico amidst the snow and winter was awesome. Though we did not see any little green men. But maybe they saw us?
Note: The Advanced Developer is not offered any longer and perhaps I was one among the last few who got it. I suppose the Platform Developer II’s programming assignment is similar and I hope my experience helps others. Please be sure to holler in the comments.
Thanks for reading.