Raph’s Blog

  • Avoiding the Disjointed Features Syndrome

    The “disjointed features syndrome” is a phenomenon that occurs when features are built with the resulting product being a collection of features that may not integrate correctly, have inconsistent user interfaces, and/or user experiences. For example, the below table has the following features: It has four legs; and Is able to be placed on a flat surface. Although the table above satisfies all the requirements, it’s still an unusable product.

    Read more…
  • Monorepositories in Azure DevOps

    There are many advantages associated with monorepositories including (among other things): Contractual changes between components (services, user interfaces, and databases) can be pull requested into master together as a single unit of integration, thus reducing the risk of version inconsistencies between components; Documentation as code and production code can be pull requested into master together as a single unit of integration, thus limiting the risk of documentation drift; Local development setup doesn’t assume the path of components, thus limiting the risk of divergent local development environments across the development team; and Consistent patterns across code-bases can be enforced more easily.

    Read more…
  • Experiment: No Phones Night

    The Experiment To have a night out with a group of friends without the use of phones. This means leaving phones at home, traveling to the destination, socialising, and travelling back. I learnt many things during this experiement and I was surprised how fun the night was, there were many things that I can’t really explain in words but here are some reflections that I am able to convey in writing.

    Read more…
  • Time in Progress (TIP) Limits

    Work in Progress (WIP) limits are enforced as part of a delivery flow in order to maximise the throughput that a team produces. From a systems thinking perspective, every time a WIP limit is decreased, further stress is put on the system. In the case of Kanban delivery this stress may break the flow completely, or allow the system to adapt and improve. I recently had a bit of a rant about this on Twitter and wish to expand my thinking further:

    Read more…
  • Apologising Less Frequently But More Genuinely

    This post follows a similar pattern to my previous posts about language that describe my attempts to subtly changes how I communicate with others. Specifically, this post addresses apologising and the word sorry. Saying sorry or apologising for something isn’t a bad thing. In fact, it should be encouraged that an individual apologises for a mistake they have made towards someone else. What I do occasionally, is also apologise for things I’m about to do.

    Read more…
  • Debunking Scrum Misconceptions

    Scrum is the most used agile framework in the industry. Some swear by it, some swear at it, and some love it. There are many misconceptions about Scrum. In this post, I’ll seek to respond to the most common that I’ve come across. Kanban is better than Scrum The problem with this statement is it assumes both methodologies are mutually exclusive, however, they’re not. Scrum compliments Kanban by using Sprints to indirectly limit work in progress (WIP) and by forcing a done state on work items.

    Read more…
  • Migrations VS DACPACs

    Dealing with SQL Database changes on production should always be automated. There are various techniques we can use and today I will compare two popular approaches. A migrations approach and a DACPAC approach. The two approaches Below is an explanation of the two approaches. Feel free to skip this section and go straight to the next section if you are aware of the two approaches. Migrations The migrations approach involves running a set of scripts against a target database in a predetermined order.

    Read more…
  • My Top 5 Productivity Hacks

    Some people are naturally productive, efficient, and focus for long periods of time. For me, I need to do certain things to help me focus and be productive. I’ve tinkered with several things in the past but I believe I’ve finally found my top 5 productivity hacks. These may help you too and I’ve explained them below: Daily Kanban Daily “to do lists” aren’t anything new, likewise, personal Kanban isn’t anything new as well (I highly recommend reading Personal Kanban).

    Read more…
  • The Case for Softly Spoken Leaders

    Many people stereotype leaders as being loud and boisterous (I can be guilty of this). Some value those leaders who can get up in front of a crowd of hundreds of people and broadcast to thousands more. Reflecting on my own life, whether this be professionally, community work, or sports clubs I feel that I haven’t valued the effectiveness of softly spoken leaders as much as I should. All organisations need a combination of leaders from both categories and in between (it’s a spectrum).

    Read more…
  • Post Deployment Tests on Azure DevOps using Pester

    Post deployment tests provide additional confidence that unit tests or self-contained integration tests will not, as the tests themselves are interrogating a live instance of your application as a black box, rather than mocking aspects of your application like unit tests as a white box. In this post, I will run through how I do this with release pipelines on Azure DevOps using Pester as a testing framework. The code for this post is on GitHub.

    Read more…