Posts

Microsoft Certified: Azure Fundamentals

Image
Another month, another Fundamentals exam 😄 I got this one because it was free after doing some online training through Microsoft. But - it was about time I got it. I've been using Azure since it came out but never got certified because there's a lot of Infrastructure stuff in the exams which don't particularly interest me as a developer. In saying that, I found the exam material high level enough to be interesting and I managed to fill in a few gaps.  Most notably - I enjoyed playing with the Azure Infrastructure map . It's a cool visualisation tool that lets you explore all the Azure infrastructure, all the datacentres, undersea cables, even satellites. You can take a virtual tour of a datacentre and learn about Azure in space! Cool stuff.

Foundations of Humane Technology - Course completed

Image
Back in January (has it been that long!) I completed the Foundations of Humane Technology course from the Center of Humane Technology . You may have heard of them, they made the Netflix Documentary " The Social Dilemma ". If you haven't watched the movie, it's well worth a watch, delving into the often devastating impacts of Social Media. The course explored how to build technology in a more responsible way to minimise the harmful consequences of the technology you build. It's perfect for technology oriented Product owners and developers like myself, requiring us to think about externalities and unintended consequences, and aligning our values with the products we build. I was made to reflect on how technology has impacted me personally, and realised how my health, cognition and attention were impacted by technology overuse. I was obliged to acknowledge that I am very privileged and lucky, I don’t have any major accessibility issues and my demographic allows me t

Microsoft Certified: Azure AI Fundamentals

Image
  Woo!  This was by far one of the most fun exams I've had to do.  I've learnt a really good overview of Microsoft's AI services. I learnt about Image recognition, Bot framework, Speech recognition, Language processing, Knowledge mining, and more.  I've worked a little with Microsoft's Cognitive Framework in the past. In 2016 my team won our company's Innovation Day prize for building an app which monitored employee happiness. We made it into a joke - Big Brother spying on you all day to determine your emotional state at work by taking a photo of you every few seconds and analysing your emotion. It was a joke, man. Fast forward 5 years and there are companies out there doing this as a business now. How effective it is I'm not sure. Given that I ran Hide the pain Harold through the Emotion Service and he got 99% happiness, I have my doubts. Anyway, there is so much cool stuff you can do with the Azure AI tools. I recommend giving this exam overview a good lo

Unit Tests - Keeping them clean and simple

Image
Tests should be split up by behaviour One behaviour, one test. This means don't test more than one thing in a test. Ideally there should be Acceptance Criteria clarifying each expected behaviour. This gives you a solid starting point, but Unit tests can expand on these scenarios by covering edge cases. Telltale signs of breaking this guideline include: Multiple "Act" steps (this is a big sign) Multiple asserts throughout a test Multiple unrelated asserts at the end of a test Data is being changed after the Act step Using the word "correct" in your test name - indicates vague expectations Don't be afraid to create lots of test methods for a single scenario or unit under test, testing various behaviours. When writing unit tests, you can make a new class for each scenario, this gives you power over the TestInitialize/Cleanup methods, allowing you to keep your tests cleaner. Readability is Everything The number one thing to remem

Writing Good Acceptance Criteria

Image
As discussed in my last article , Writing good Acceptance Criteria gives the Agile team clarity and helps them work towards a common goal, saving time and effort while increasing quality. Now I'd like to dig into the details of how to write good Acceptance Criteria. Behaviour Driven vs Procedural Driven Mindsets Many of us may be used to writing/seeing procedural driven tests; step by step instructions with actions and expected results. Procedure-driven tests are often imperative and trace a path through the system that covers multiple behaviors. As a result, they may be unnecessarily long, which can delay failure investigation, increase maintenance costs, and create confusion. Acceptance criteria, and indeed Behaviour Driven tests, should instead be behaviour driven. This means they should be Declarative , specifying how a system should behave in a particular scenario. Procedural/Imperative: Given the user opens a web browser And the user navigate

What's the best gaming controller?

Image
I've tried all the game controllers. They all have such major pros and cons. If someone could put all the good features into one controller, it would be amazing. Xbox I owned the Duke , and I didn't mind it, but I have decent sized hands and it still felt like a bowl with buttons so when they brought out the newer controller I felt it was a good move. Ever since then Xbox controllers have been the most natural, comfortable controller out there, without question. I had a 360 controller for over a decade and a half across the Xbox 360 and PC, and it just worked.  I love the concave thumbsticks, I'm cool with the offset sticks, the buttons have always felt solid and the triggers get smoother with every release. It's a solid controller in every way, the D-pad on the new Series S controller is clicky but robust, the whole thing is comfortable and high quality. I love the Xbox controllers. They are now, however, missing some significant features. Switch What can I say. They a

The Importance of Good Acceptance Criteria

Image
Acceptance Criteria can be seen as a chore, a convoluted, verbose set of prose with the sole purpose of satisfying "the business". At best, its value is underestimated and it is often written as a vague list of requirements. Given the right attention, Acceptance Criteria can be extremely valuable to all members of a Scrum team. Before it can be done correctly, we have to understand its value. So what exactly is the point of Acceptance Criteria? Purpose of Acceptance Criteria To define boundaries Acceptance criteria help development teams define the boundaries of a user story. In other words, acceptance criteria help you confirm when the application functions as desired. To reach consensus Having acceptance criteria synchronises the development team with the client. The team knows exactly what conditions should be met, just as the client knows exactly what to expect from the developed functionality. To allow for accurate planning and es