Practical Software Development

Practical Software Development

    • About me
    • Privacy Policy
  • Proficient vs Senior

    Proficient vs Senior

    I recently read a post in LinkedIn claiming that the difference between junior and senior developers is how we check if a number is even or odd (I was unable to find that post again to share the link). According to this post, junior developers would do something like: And that instead, senior developers (like…

    April 30, 2025
  • De-risking A Rebuild

    De-risking A Rebuild

    My team recently started working on a product rebuild from the ground up. All software development projects have some inherent risks. In my opinion, the main risks of this project are: To manage these kinds of risks, teams often turn to frameworks like the Project Triangle, as I explained in this article. However, that doesn’t…

    April 23, 2025
  • Premature Code Optimisation

    Premature Code Optimisation

    When trying to solve a complex technical problem, it’s easy to get caught up in concerns about performance before anything’s even running. I want to share a story about a time when I introduced what seemed a reasonable idea to solve a transformation problem, but ended up in the middle of a long-running debate about…

    April 16, 2025
  • Reducing Uncertainty With Genetic Algorithms

    Reducing Uncertainty With Genetic Algorithms

    Recently, I needed to find a formula that predicted how often an event happens based on a percentage value. The challenge was to make sure the formula worked well for all reasonable inputs, without giving unrealistic results. In his book “How to Measure Anything: Finding the Value of Intangibles in Business”, Douglas Hubbard explains how…

    April 9, 2025
  • The Time Management Matrix

    The Time Management Matrix

    Time is our most valuable resource because it is limited, and we cannot get more of it. If we manage our money, we should certainly manage our time. In The 7 Habits of Highly Effective People, Stephen Covey presents a key framework for understanding how to use our time effectively: the Time Management Matrix, also…

    April 2, 2025
  • Project Deadline Estimation

    Project Deadline Estimation

    When we estimate how long a project will take, we need to start with a fundamental understanding: we will always be wrong. No matter how much experience we have or how carefully we analyse the work, unforeseen factors will influence the outcome. The goal of estimation is not to predict an exact completion date but…

    March 26, 2025
  • The Paradox of Agile Estimation

    The Paradox of Agile Estimation

    In the world of software development, Agile is recognised for its flexibility, iterative feedback, and embrace of uncertainty. Paradoxically, most developers are still expected to estimate when a project will be completed. In this article, I’ll explain why we estimate, how Agile was born, and how this paradox arises. Why We Estimate Software developers who…

    March 19, 2025
  • Dysfunctional Teams

    Dysfunctional Teams

    I recently finished a book titled The Five Dysfunctions Of A Team, by Patrick Lencioni, and I found that the concepts it presents are so interesting that I should write about them. This article is not intended as a substitute for the book. I hope that after reading this article you get a copy and…

    March 12, 2025
  • The Fallacy of “No Time”: Embracing Decision-Making for Better Productivity

    The Fallacy of “No Time”: Embracing Decision-Making for Better Productivity

    I have frequently heard someone say they wish they had more time to do all the things they have or want to. If we were talking about reading every book ever written, then yeah, that’s life. There’s just not enough time in a lifetime to do that. Instead, today I’ll discuss the case when we…

    March 5, 2025
  • SOLID Design Principles For Object Oriented Software Development

    SOLID Design Principles For Object Oriented Software Development

    Writing good software is not just about having it working with all tests passing. This is not enough. We also need to ensure that what we write can be easily changed. Many systems fail because they can’t be changed. I know of a company that acquired a system to complement its offering. Although the system…

    February 26, 2025
←Previous Page
1 2 3 4
Next Page→