Skip to content

Salesforce Dev 501 Programming Assignment Statement

My Experience with the Salesforce Platform Developer II Certification.

Hell yeah, after a long wait recently I have Received📥 response from Salesforce University as HTTP code – 200, the status message as ‘Cleared’ and response body as ‘Congratulations! You have successfully completed the certification exam to become a Salesforce Certified Platform Developer II ……’ 😃 and I’m pleased to say that I am officially an Advanced Developer, Yipieee 😎

Best Moment !!

In this article, I would like to share my preparatory regime, experience and some pro tips for an awesome Salesforce community engineers.

My tryst with the Platform Developer II

My journey with the Platform Developer II began as soon as I had cleared Platform developer I certification. I had immediately started preparing for Platform Developer II MCQ exam. Of course, it took around 5-6 months of study to clear the most challenging certification I ever had. You can get more information about Passing the Salesforce Certified Platform Developer II MCQ Exam from here.

After clearing Platform Developer II MCQ exam, it was a time to wait for assignment window to open. Luckily after few months, I got an email from Salesforce and instantly checked for the available window. Initially, I wasn’t sure about registration as I was having vacation plans 🏂  (~10 – 15 Days without Laptop) which were clashing with assignment dates. However, I didn’t want to wait for another 6 months and on the certification guide PDF Salesforce University has recommended at least 20 hrs 😜, so without giving any second thought, I had registered for an open window.

From past 7-8 months, I am working on lightning⚡ and not written any single line of VF code, so I had decided to drop my vacation plans if an assignment is very complex and needs detail understanding to complete it. When I got the assignment📝, I quickly went through it. At a high level, it consisted of a VF page, APEX controller, and trigger. After reading the higher level requirement I was quite relaxed as it seemed manageable and bag packed traveller was ready to fly✈ for vacation🏊.

👦👧👨Target audience  👩👴👵

PD 2 certification is split in two level,

✔ Platform Developer II Level 1 (MCQ)

✔ Platform Developer II Level 2
            🔊 There are 2 additional stages to this certification – 📢 There is a programming assignment💻 and an essay assignment📃

So if you have already cleared the platform developer II MCQ exam, then you are fully charged🔋for assignment.

🔀 Approach to Platform Developer 2⃣

After returning from vacation I was having around 17 days📆 to complete the assignment (which include 2 weekend and 1 declared holiday), So I have decided to plan and analyse the requirement on declared holiday, I was still chilling 🎾🎳🎵🍹.

I have followed the Waterfall model. Waterfall model🌊 helped a lot to accomplish the assignment on time with stable application,

At last, weekend has arrived where I have to start coding and finish the assignment as soon as possible, based on my analysis I assumed that 18 hrs would be sufficient for completing at least 90% of the requirements but as the famous quote says –

”There seems to be some perverse human characteristic that likes to make easy things difficult” – Warren Buffett.

As I started coding I was getting all the challenges and hurdle that was hidden behind requirement, but as another famous quote says –

“There was never a night or problem that could defeat sunrise or hope” – Bernard Williams

So after continues 2 days and 1-night efforts and dedication for ~28 hrs I was able to complete the 90% of the requirements with smoke testing (without negative testing and code coverage).  So it was kind of amazing hackathon for me, but I loved it.  It is real fun, especially if you are like me – a Developer who has strong command on programming skills and love to code and hunt any challenging puzzle associated with requirement or code, then you will surely have a fun!!!

I was very much aware of “time will FLY!!!! ” so I decided to complete my assignment in next weekend and now I have only one weekend left so I took advantage of every minute, every second, every night.

Finally last weekend has arrived and here my second PD2 hackthon started, moreover my target was to achieve 100% running application, quality testing of all the mentioned requirement, and 100% code coverage. Initially, I thought it would be easy as 90% of the application is tested and completed but yeah, I caught 2-3 technical glitches in the code while performing stress testing. Therefore after 25 hrs of continues efforts my application was ready to go live 🙂 Uff what a relief and satisfaction it was!!

Woooo, after deploying and doing few rounds of testing I have submitted my application 3 days before the actual submission date.

Frankly, this exam was really worth, not for PD 2 credential that I have earned but it gave me an opportunity to amplify my analytical skills and also helped to magnify the self-confidence. And most importantly I have also realised that why managers are really required for the projects 😛

I also have to admit that I spent a lot more than the suggested 20 hours on my assignment (~65-70 hours), but that is just because it was so important to me that I passed.

Pro Tips
  1. Build an application which is robust, scalable and ease to maintain.
  2. Start with Pseudo Code to get clear visualization of logic of the code, I believe that, Everything you think is a Logic and if it’s a Logic, it can be Coded!!
  3. Keep on reading the assignment from time to time in between, this will really help to get better understanding about the detailed requirement.
  4. Please, keep in mind that “winter is coming”, stop reinventing the wheel and keep an eye on the platform roadmap.
  5. While easy exam, don’t try to use any short cut keywords like copy paste, it will terminate the open window
  6. Add some logical comments whenever required about the logic and approach you had taken.
  7. Mention all the assumption if you are not sure about the exact requirement. In my scenario I was having a few statements that were confusing about the functionality, so I had raised a case to salesforce university support for clarification, but unfortunately, I haven’t received reply prior to submission. So in this situation, you have to select the best possible way of delivering the application and mention your approach and assumption as comments.
  8. Analyze requirement properly, 20 hrs isn’t sufficient for completion.
  9. Make sure you are following best approach for writing the triggers , I have followed the trigger factory approach.
  10. Plan you design well in advance so that you don’t stuck in infinite loops of changing the design.
  11. Don’t miss even single line in the requirement – in one of the articles that I have referred it was mentioned – 
  12. Try to use all the standard Salesforce functionality, you are not expected/advised to use any kind of design framework and script, so DO NOT use Javascript, angularJs, Bootstrap, Ionic framework etc. Even in my assignment, there was few requirement which can be easily accomplished using Lighting design system and angularJs, so as it was a PD2 assignment I had to restrict myself with Salesforce standard functionality.
  13. Follow the APEX best practice, VF best practice and TRIGGER best practice to deliver the application which is scalable and robust.
  14. Follow this golden rule: Try to do calculations first in SOQL or Aggregate Queries, then in APEX and finally in Visualforce.
  15. Time will FLY!!!!  Complete your assignment as soon as possible.

Here comes the most important part of the assignment,

Application Testing – Yes, as you are the Dev and QA, it’s your responsibility to perform manual testing as well as apex based testing for the PD-2 application.

Manual testing –

  • Create a proper set of data which will allow you test both +ve and -ve testing.
  • Test your application functionality wise first than jump to end to end testing.
  • Do multiple rounds of testing considering all the validation rules and other specific requirements.
  • Perform bulk testing by using either developer console or workbench.
  • Check for the exceptional scenarios. Keep in mind that your code should handle all the exceptions gracefully.
  • Do few rounds of testing after moving code to production environment.

Apex Testing –

  • A target for 100 % code coverage or at least ~98%.
  • Write Test Methods to test data security.
  • Use runAs in your test coverage to test the solution using the profiles you expect.
  • Follow the testing best practice.
  • Write Test Methods to test bulk data processing, negative scenarios, positive scenarios, exceptional scenarios and boundary conditions.
  • Cross check all the expected results with assert statements.

Easy Exam –

Don’t try any keyboard shortcuts like copy paste, it will terminate the open window. Don’t panic if you do so, call the instructor, he will again use some keyboard shortcuts and then you can resume your easy exam.

Please visit bob buzzard’s blog, Paul Battisson’s blog and one of my guru Mohith Shrivastava’s blog to get more insight about the easy exam.

Where can I find more information about the Platform Developer II certification?

https://icodecloud.wordpress.com/2017/03/05/passing-the-salesforce-certified-platform-developer-ii-mcq-exam/

http://paulbattisson.com/blog/2014/passing-the-salesforce-advanced-developer-exam-dev-501/

http://succeedwithsalesforce.com/tips-on-passing-the-advanced-developer-dev-501-platform-developer-ii-programming-assignment/

http://bobbuzzard.blogspot.in/2011/12/certified-forcecom-advanced-developer.html

http://cloudyworlds.blogspot.in/2013/07/tips-on-passing-advanced-developer.html

Long story short

With this result, my certification number went one more up to 10 now 🙂 

It is most challenging and respected credential that I have earned till now, go for it folks if you think you can crack it 🙂 ALL THE BEST!!! Don’t forget to tweet me@JitenJoysarif you have any questions or needed any further guidance.

Stay Coder, Be Coder!!

Like this:

LikeLoading...

Related

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!!!!

APEX best practices

APEX trigger best practices

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.

Visualforce in practice

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.