Posts

Story Points are Utter Nonsense

Image
For over a decade, I've lived a lie. I made myself believe that Agile Story points made sense. I rationalised it like we all did. "They map to complexity, not time". Yet we spend hours on Sprint Planning meetings deciding how many jobs we can fit into a Sprint - a unit of time . Also - doesn't complexity relate to time? "They're a rough guide, they're not supposed to be accurate." How on Earth did we end up with a unit of measure that is "not supposed to be accurate"? "It depends on experience of the person doing the job." This is like saying the length of a centimeter depends on the tape measure you're using. "They're a measure of  relative complexity." Relative to what? Another story you did which didn't have an accurate estimate? "We use shirt sizes/Fibonacci/animals/fruit." Is this supposed to make it easier to understand? Why can't I give a task 4 points? "We have to agree on size befo

6 Ways ChatGPT Can Help You Code

Image
ChatGPT is blowing up at the moment, and for good reason. Its capabilities are unlike anything we've ever seen.  Will it take our jobs as developers? No. But, if used correctly, it will transform them completely. Here's how I am already using ChatGPT to turbocharge my productivity. It's fair to say if you're not using this, you're going to be at a significant disadvantage. Here's just a few ways you can use ChatGPT to rocket boost your development work. Provide a starting point If you know what your code needs to do, ChatGPT can quickly fill out the functionality for you: Understanding code A simple example but a great way to get some context on badly named or hard to follow functions.It’s also very good at explaining the different decision paths and giving useful examples. Improving Code Add more functionality to your code based on your suggestions: Give some more suggestions for improvements:  Simplifying code, with explanations I originally wrote this method

Why chasing Unit Test coverage can be a bad idea

Image
In the long running battle between management chasing metrics and developers just trying to get the job done, (hi boss!)  I wanted to provide some less obvious examples of why chasing code coverage is a damaging process.  Why Unit Test Code Coverage targets are bad Code Coverage can be gamed, incentivising low quality tests If the coverage percentage is all that matters, there are many ways to increase that number without actually improving the quality and reliability of the code. Having a test doesn’t mean no bugs - it just means the code is being run by a test, that the pathways through the code are exercised by another piece of code. There’s not really any link in these tests to importance of functionality, or even any consideration of code doing the right thing, just that it’s being exercised. Tests add a maintenance burden In the writing of low value tests written only to satisfy KPIs, developers are actually making more work for themselves in the future.  All code adds a maintena

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