Thoughts on Acquia Certified Developer Drupal 8 Exam

2018-01-05 00:00:00 +0000 UTC

I know I’m late to the party on the here’s-my-thoughts-on-this-exam-and-acquia-certification-in-general but anyway, here’s a take from 2018.

On certifications in general

When Acquia announced their certification program, I was opposed to it for mostly the same reasons that many others articulated better than I can or will here: why should Acquia be the arbiter of truth; it’s too expensive; the certification shouldn’t become a mark of qualifications; this is too corporate, etc.

Many years and many inherited codebases later, I can safely say that, had Acquia-certified developers worked on said codebases, many hundreds if not thousands of hours of effort could have been spent on more productive, meaningful, fulfilling work. Instead I have spent way too much time in my life trying to patch up, or rip up and rewrite, mounds of technical debt. (Full disclosure: I have of course generated plenty of my own.)

The exam has serious flaws

A few of my colleagues have recently taken & passed various Acquia exams, and I read up on other people’s experiences, so I knew there was some frustration with the exam format. A few questions into the exam, I was thinking to myself, “this isn’t so bad”. But by question 60, I found myself pretty annoyed. Small things eventually add up.

  1. Answers are cut off on some questions.
  2. A surprising number of typos, and not just English language ones, but also technical mistakes, e.g. services.yaml is not the same as services.yml.
  3. Formatting on some multiple choice questions made answer two look like it was part of answer three, or answer three look like it was part of answer four, etc. Super frustrating especially as there’s no way to view source on the page, or try to even select text to see which text corresponds to which checkbox.
  4. Many questions, especially the ones that present a scenario, are poorly worded and can be interpreted in various ways. While I get that in day-to-day client work, deciphering vague requests is part of our job, I don’t think it should be part of a developer certification. Perhaps more proof reading would be helpful here, or a quick hallway usability test of an engineer to validate that the question makes sense.
  5. Not enough code samples. I can’t think of any example in my ~12 years as a software engineer where I’ve had to do something with a $user object but I can’t see the lines of code that created that object. Likewise, if I’m being asked to choose whether it’s better to inherit from one test class or another test class, why not let us see the source of those? Especially if, as in this case, the question was poorly worded as to what the developer was meant to test.
  6. All the examples that involve scenarios would greatly benefit from basic mockups, just like we have in our day-to-day work as developers.
  7. Syntax highlighting would make the exam more realistic and easier on developers. (Unless syntax highlighting off is your thing in which case, you’re in luck!)
  8. As someone a little obsessive over code standards, I was surprised that, in one question which asked me to identify two coding standards violations, there were actually three (there was no selection for the third code standard violation).
  9. I’ve used git on the command line many times. I’m comfortable with it. But truth be told I use Emacs today largely because of Magit, and I don’t particularly think about or care about the underlying git commands unless something complicated is going on. I know many others use SourceTree, Tower, etc. I’m not sure including git in this exam makes sense.
  10. For better or for worse, in Drupal 8 there is a lot of boilerplate. YAML files, annotations, etc. I’m comfortable with this but I also rely on tooling to get it right for me. (Drupal Console to generate code; unit tests to verify my work; IDE to assist in creating classes and overriding methods.) I’m not sure it’s the best test of knowledge to quiz people over the particulars of routing/services files or annotations.
  11. Not exam-content related, but the delivery mechanism for the exam (Webassessor by Kryterion) is poor, to put it politely. The “next”, “back”, “review all” and “submit exam” buttons are all the same color, height, and placed right next to each other. The pages take ages to load. The proctor had to restart the exam at one point because it got stuck and they couldn’t log me in. There must be a better system for delivering these exams? Maybe Kryterion just has a hold on the market, I don’t know.

Things I liked

  1. There’s a good emphasis on multilingual capabilities of Drupal 8, which I think is important because (a) more sites should be multilingual and (b) D8 is really good at it!
  2. I like that there are code standards questions. Code standards (or lack of them) are usually my first indicator that code I’ve inherited from others is going to have a lot of technical debt.
  3. Overall, the balance of front-end/site building/backend/general web is pretty good. And for the most part, the questions are answerable by those who have experience, rather than anyone skimming docs and trying to cram for the exam. (Which of course I did – more on that in a second.)

My results

…drumroll…

I’m not surprised I scored so low on fundamental web development concepts. My introduction to web development came via Drupal 4.7, and I knew more about nodes, content types, and later PHP in theme templates before I knew much of anything about CSS classes or JavaScript/jQuery. Still, I’m annoyed with myself for not doing better here, so that’s something I can work to improve.

I mentioned cramming. My experience with theming in Drupal has almost always been secondary. I’ve reviewed code for themes, or generated output for use in themes, but not had a whole lot to do with them directly. I spent a few hours yesterday reviewing Twig and Drupal 8 theming, and it paid off for that portion of the exam.

I also spent a fair amount of time reviewing the developer APIs for Drupal 8, for the backend portion of the exam. As a closing thought, I found myself struck by, on the one hand, the incredible development capabilities of Drupal 8, and on the other, the mountains of complexity underpinning the system and the years of experience it takes to approach a level of mastery with this framework/CMS. In that sense, having certifications to verify experience and knowledge is helpful; I just hope Acquia will do a bit of quality control on their exams.