Other articles


  1. The New Guy

    Published: Sat 01 October 2016

    tags: retro

    Everyone is new at some point. No matter your experience level. You're either new to the team or new to the business. Being the “new person” is both a blessing and a curse.

    You're New

    When you're new you come with no baggage. You're full of questions and curiosity.

    • Why …
  2. New and Shiny Things

    Published: Thu 01 September 2016

    tags: retro

    There is risk with upgrading anything, be it language, framework, library, OS or third parties.

    In the past I was rather gung-ho about upgrading. New version out? We need it. In fact, this need is often a want. The new version often seems better. Developers seem addicted to the latest …

  3. Past Mistakes - ORMs and Bounded Contexts

    Sticking with the theme of documenting past mistakes, it's worth expanding a real life scenario where I was unaware of the use of bounded contexts and fully understanding the tools you use.

    Ignoring a Bounded Context

    A fellow developer set upon a quest to rid numerous projects of duplicated records …

  4. Why You Should Do Code Katas

    Code katas are simple exercises that are meant to be repeated. They are great for learning a new language or tool. The goal is to learn something, not to complete them. In fact, if you don't finish a kata that is perfectly normal as long as you take something away …

  5. Ten Lessons from Rewriting Software

    Published: Fri 01 July 2016

    tags: retro

    1. It Will Take A Lot Longer Than Estimated

      • Its navie to actually think this but if a system has been in production for say five years, expecting to reproduce it in five weeks is not possible. You may be able to get 80% of the core functionality done, but the …
  6. I Need to Stop Misusing Divs

    Published: Fri 01 July 2016

    tags: retro

    I a certainly not a skilled or expert front end developer. While I'm more than capable of creating pages I lack any design magic to make them look half decent. Despite this one area where improvement can be made is in my markup itself.

    Over the past few months I've …

  7. Past Mistakes - Out of Process Commands

    Some of the best lessons you can learn are from failure. I figured a series on mistakes I've made in the past would highlight where I went wrong and more importantly what to remember going forward. These real life examples vary from my early days of programming all the way …

  8. Your Job Isn't to Write Code

    Solving problems is the role of software developers first and foremost. The most interesting aspect is that in many cases it is possible to perform this role without writing a single line of code.

    Low Tech

    I once worked with a digital dashboard which monitored applications. One of the yet …

  9. Project Setup Tax

    With microservices gaining popularity, one consideration prior to adoption is new project setup. In fact this statement holds true for any new project that you decide to create.

    Each new project requires at a minimum

    • Source control - somewhere to actually store the code.
    • A project base - API, executable, library, application …
  10. Best of Breed

    Published: Tue 01 March 2016

    tags: retro

    Spikes are one of the best ways to aid the design of software. In some cases spike solutions can open more questions than they solve. The use of a technique known as Best of Breed can assist when this arises.

    Rather than producing a single spike, produce several. Either individually …

  11. Gaining Ten Extra Hours a Week

    Published: Mon 01 February 2016

    tags: retro

    For a long time my work life balance has gone through phases. Some weeks I would spend hours after work writing code. This would exceed to well beyond midnight in some cases. This phase was not sustainable but it appeared to be the norm.

    My other hobbies such as reading …

  12. Sproc vs ORM vs Inline vs Polyglot

    Published: Mon 01 February 2016

    tags: retro

    With relational databases the common data access patterns tend to fall into three core options.

    • Direct access via inline SQL
    • Stored procedures using the standard library
    • ORM frameworks or libraries

    Individually these have both pros and cons, often leading to heated debate and discussion.

    Inline

    • Leaky abstractions.
    • Dangerous in places …
  13. Abstractions in Code, Details in Metadata

    I've programmed many games - each one was special in its own way. One in particular stands out early in my university studies, a top down shooter. It was not graphics, gameplay, or sound that made it stand out however. It was the lesson it taught me about software development.

    Level …

  14. Coding In the Real World

    Published: Thu 01 October 2015

    tags: retro

    As a student when confronted with a problem, I would end up coding it and thinking - how do the professionals do this?

    For some reason I had the impression that once I entered the industry I would find enlightenment. Discovering the one true way to write high quality, professional code …

  15. Production Code is Dirty

    Production code is dirty. Dirty may be the wrong word however. Complex could be more suitable. Unlike code that is not yet in production, it is weathered, proven, and full of edge cases including numerous bug fixes. After some time this build up of additions can cause the code to …

  16. Tasking in Software Development

    Published: Fri 01 May 2015

    tags: retro team

    Tasking is core part of XP, Kanban, Scrum and other software development methodologies. It is required when more than one developer is working on a feature. I consider it to be the most wasteful part of the development process as practiced in the mainstream.

    Tasking typically involves the team sitting …

  17. Remote Meetings - Balancing the Act

    Published: Sun 01 March 2015

    tags: retro

    Meetings are hard when some team members are remote and are physically based in the same location.

    It is easy for the remote user to feel second class in terms of the meeting. Remote workers can find it hard to add to the meeting without interrupting or getting left behind …

  18. Acceptance Testing need not use the Full Stack

    • Joined a team with thousands of unit tests (\~10k)
    • But bugs still got through our QA process
    • How could this be?
    • Team had a small number of full end to end live service tests
    • So my answer was to just increase the number of these
    • Surely this would solve our …
  19. Consistency

    Published: Sun 01 February 2015

    tags: retro

    Striving for consistency within a codebase is a good thing. I'm very much someone who believes in applying a consistent formatting style, patterns and practices. However there are two sides to this view.

    One colleague used to hate different apps that used different frameworks, styles and conventions. This is a …

  20. Why Technical Blogging?

    Given this is my fifth year of blogging I figured it would be worth while answering "Why bother with technical blogging?".

    Get Writing

    Write about anything. Just get started, providing it fits your core focus. This blog focuses on programming and software development related topics, so anything that falls within …

  21. Pair Programming vs Pairing

    I'm a fan of pair programming. I owe a lot of this practice to my improvement early on in my career. I define pair programming as two developers working on a task using one or more machines at the same time.

    I have had some excellent pair programming sessions. I …

Page 1 / 2 »