Microsoft Professional Program for DevOps Part 1.

Structured Learning Again

Perhaps it's simply because it has been almost two years since punishing myself finishing my MBA (that topic really should be its own article), but it felt like a good time to put myself through something useful again that produced a certification from structured learning again. Given the full-blown pivot to DevOps with a heavy focus on our cloud practices, it made sense to not spend time tinkering but doing something more traditional. Naturally, that meant some sort of certification. I actually hadn't completed one in a good year and a half after completing the Mulesoft integration exam and then....never really using that knowledge because I haven't been developing APIs through that a whole lot lately.

My Thoughts on Certifications

For certifications, the gist of this post is my belief that:

  1. No recruiter or too-far-removed manager (outside of anyone who already respects you) cares about what you say you are knowledgeable in if it doesn't have an institution backing the claim. It is a sad truth I have observed in the last 13 years of doing "IT things for dollars". While that's typed half in jest, I mention this since we as a society are on our slow-death-march towards only caring about raw data about people from an arbitrary time-consuming educational program (Yikes! An in-process post that is taking a *very* long time to gather data)
  2. They're mostly meaningless. I have met complete buffoons with stacks of certifications and geniuses that never obtained a single one. It should not be a qualifier, but they can be enjoyable and useful. Sure, there are benefits to following a guided learning engagement and passing a test, but it just means they learned enough specifics to pass a test.

Courses

Course 1, "Introduction to DevOps Practices"

No complaints. This is a good high-level introduction and covers a lot of important ground. It's not particularly difficult, but it has the content you need to get on the same page about what DevOps is.

Course 2, "Infrastructure as Code"

Barring some frustrating, dated technology references, it's a good course. IaC is one of the most crucial technical pieces of getting DevOps not only started, but really running. Granted, this comes from a heavy Microsoft perspective, but that's not a bad thing...if you can do the cringe-filled ARM templates in Azure, you can definitely work in Puppet or Ansible.

Course 3, "Continuous Integration and Continuous Deployment"

This course is pretty sad for a few reasons. The most jarring aspect is that while concepts and other tools are useful, labs are tied to what was Visual Studio Team Services, now Azure DevOps, and that is a problem. Additionally, it is all component-based CI pipelines. Seeing as there is currently a feature flag in ADO for completely hiding the visually based pipelines in favor of YAML, the course better have a major update planned. The content that touches Jenkins is mostly okay, though.

Course 4, "Configuration Management for Containerized Delivery"

So dated, the less I say about it the better. Deprecated APIs and platforms combined with very basic concepts makes for a highly disappointing course. For someone who needs to talk about technology in their job, it's likely good enough. If you are looking to build something, look elsewhere.

Course 5, "Testing in Continuous Delivery Pipelines"

Everything I said above applies around the orchestration and configuration, sadly, but the concepts are important. I think the bummer is that the issues around all of that several limits the ease of learning the content as well as how useful it is from a practical, show-up-at-work-and-do-something perspective.

Quick Trivial Tech Aside

For one lab, you need to put double quotes around your commands if you're working in Windows, which as my great friend Jeremy puts it to deliberately egg on people, means you're "working with a grown-ups' OS".

curl --header "Content-Type: application/json"   --request POST   --data "{\ "name\": \"load testing\", \"description\": \"checking if a software can handle the expected load\" }"  http://localhost:5000/tests

The Program is Alright

Hit-or-Miss Content

What a mixed bagging of content. The irony is that while you're learning some good material, you're also struggling through debugging some outdated libraries, making massive solutions compile that sometimes choke in Visual Studio, and translating on-the-fly requirements into something workable in your environment. It sounds trivial, but little things add up. I ended up down a rabbit hole on one instance when a continuous integration build simply would not fire off. I found threads experiencing the same thing, and the only sure-fire way to correct it was to delete the organization. Yeah. That's not super, is it? But edge case bugs do exist.

Or, for instance, lab 3 of a second course assumed that you were on Linux. Sir, I stopped doing Linux for fun when I just needed my computer to work after putting in 10 hours at work already. In that case, protip: look in /Scripts instead of /bin when using venv in Python if you're on Windows. It was a two minute nuisance, but two-minute nuisances add up. Actually, that entire lab was a nightmare and had breaking typos.

Profoundly Dated

Throughout all of the courses, it is not uncommon to see references to VS2015. What's worse is that many, many labs, content, and lessons point to deprecated APIs or capabilities in Azure. Why is it not updated? Well, it's agile, of course! The entire program is billed as being in 'beta'....ah, perpetual beta: IT industries excuse for not fully finishing things.

The problems I reference are frequent. For instance, in lab 1 of Infrastructure as Code they literally reference a CLI that has been deprecated for 3 years while quickly saying how to find your data centers. Pro-tip: the command you are looking for is: "az account list-locations".

What should be a quick, focused educational task makes you spend far more time than you should. Actually, unless you do some of this day in and day out, you're already at a disadvantage in some aspects.If you aren't touching multiple languages and even multiple OS, it will take you a little longer. In that aspect, it's actually quite good, giving you a breadth of content.

And yet, the tech is old and documentation sometimes wrong while the concepts really are solid. Perhaps it's the X-Files fan in me, but I almost wonder, in all sincerity, if Microsoft does this because rather than stumbling your way through labs easily, you must actually KNOW what you're doing to complete the exercises.

A Quick Comment on Tests

This is hardly unique to this program since it is like pretty much any professional exam you ever take, but the more you know can hurt you. If you actually know the topic, some questions will be so reductionist that you can get confused by what the actual answer is and stare at it for a bit instead. The solution? Look through the course, as there is probably a verbatim answer. For roughly 1/3 of questions, that is definitely the situation.

Lastly, expect lots of oddly specific questions with answers buried somewhere in a Microsoft article. Deep links are your friend.