Articles about being a professional software developer.

When are you done?

Monday, April 18 2022 professional

How do you tell when you are finished working on a change you are making to the code on your current project?

Read more »

Don't be that person

Saturday, December 05 2020 professional

Nearly 15 years ago, I found myself with a particular problem at work. I felt like I was not being very productive, so I started closely tracking where my time was going.

Read more »

Weapons of mass (privacy) destruction

Saturday, July 04 2020 professional

It seems that the details of the eighteen people in New Zealand with positive COVID-19 tests have been disclosed, and officials are speculating that it may have been due to human error:

Read more »

Don't Gloss Over Complexity

Saturday, May 16 2020 professional

We have a poor habit in the tech industry of glossing over the complexity of things. Sometimes this is done deliberately, but very often it happens accidentally, as the result of skipping due consideration, or at a subconscious level.

Read more »

Impossible Numbers

Saturday, January 18 2020 professional

There’s a very clever piece of design advice that I was taught at university that seems to be less well known than I expected.

Read more »

Empathy for future developers

Saturday, December 21 2019 professional

Chatting with some fellow developers over the Christmas period, the subject of the so-called “soft skills” came up and one of them made a very interesting observation - that those skills lead to better code as well as better collaboration.

Read more »

What do you do when you find a bug?

Sunday, November 24 2019 professional

What do you do when you find a bug in the system you’re working on? I suggest that how you address the bug is a key measure of your professionalism as a developer.

Read more »

Always fix it twice

Saturday, May 12 2018 professional

One of the most useful precepts that I use to guide my development is this: when something goes wrong, make sure you fix it twice. This is especially important when the problem impacts on a production environment, but it’s also relevant for staging, testing, and development environments.

Read more »

Even longer than that

Saturday, May 05 2018 professional

In our last discussion we talked about the cost of leaving a minor bug in place, versus the cost of fixing it properly. We discovered that the fix might involve half the time investment of leaving the bug in place.

Read more »

A simple fix takes longer than you think

Saturday, April 28 2018 professional

I hope you’ve been considering the puzzle from my last post about how much effort it you should put into fixing a simple problem.

Read more »

How long is a simple fix?

Saturday, April 21 2018 professional

Imagine that you have a recurring problem in your production environment, one that occurs around once a week. The problem is fairly minor and affects only one user at a time. You can fix the underlying data issue pretty quickly with some custom scripts you wrote. What’s your threshold for fixing the problem permanently, instead of manually fixing it each time it happens?

Read more »

The Nature of Experience

Saturday, October 22 2016 professional

Most people would agree that gaining experience is vital to career development, and I’m sure most managers would contend that their hiring decisions are, at least in part, driven by finding people with relevant experience to contribute to their team and their business.

Read more »

Consideration Driven Development

Sunday, December 13 2015 professional

Reading An Experiment in Think-First Development on the AgileKiwi blog has set me to thinking about the nature of software development and why it is that we do the things we do.

Read more »

Every Team is Distributed

Sunday, December 06 2015 professional

I was reading The Rules of Attraction: Location on Mark Seemann’s blog when I had a thought: Every Team is Distributed.

Read more »

Options for Better Documentation

Sunday, November 08 2015 professional

In my last post we explored a number of common approaches to documentation and the ways that they fall short. Fortunately, the story doesn’t stop there - we can (and should) do much better.

Read more »

The Problem with Documentation

Sunday, November 01 2015 professional

I’ve been asking developers I know whether they think their current project is properly documented. Not one of them has said that they’re happy with the documentation they have and most have talked about the need to write more. I suspect the problem is not one of volume, but of accessibility.

Read more »

Developer Stereotypes and Career Choices

Sunday, July 12 2015 professional

It’s well known that the human mind takes a lot of shortcuts - it’s one of the ways that it achieves the extraordinary levels of operation that we collectively refer to as “intelligence”. These same shortcuts also lead the mind to make some interesting mistakes - a rich field of quirks ripe for the both ethical researcher and the unethical conman.

Read more »

A Keyboard of Value

Sunday, July 05 2015 professional

A developers choice of keyboard is an intensely personal one. Some people favor the original IBM Model M with it’s mechanical key-switches. Jeff Atwood feels so strongly about the importance of choosing the right keyboard that he created his own.

Read more »

Full stack developers - Do they really exist?

Sunday, June 28 2015 professional

So I have to ask whether Adam Bertram, over on the Pluralsight blog really has a point to make or whether he’s just creating linkbait to drive traffic. (I hope it’s the former, since many of his other blogs are quite worthwhile.) For a start, Adam asks a simple question - the same question that I posed as my title - Full stack developers: Do they really exist?

Read more »

Of Software Value and Logging

Sunday, June 14 2015 professional

In my previous post we established that a key factor in professional software development is delivering value to the business - that we are constructing a business asset and that we should be building the greatest possible value into that asset.

Read more »

Of Asset Creation and Business Value

Sunday, June 07 2015 professional

Think about what you’re doing when you next write a test, code a feature or fix a defect. Why are you writing that test, coding that feature or fixing that defect?

Read more »

The Only Constant is Change

Tuesday, March 17 2015 professional

It’s a curious thing how many developers - and other people in the ICT industry - have a problem with change.

Read more »

Older posts

The Nature of Experience  09 Nov 2014
Why attend a user group meeting?  12 May 2013
The secret to Awesome software  03 Jan 2013
Solve the right problem  24 Nov 2012
Computer Abuse and Safety of Data  04 Aug 2012
Riding the Wave of Email  20 Jun 2012
Growing older and keeping it simple  17 Apr 2012
When a bomb beheld  24 Jan 2012
Looking forward to 2012  31 Dec 2011
Pay it forward  25 Apr 2011
Sharpening the Saw  18 Apr 2011
Questions for Senior Software Engineers  19 Feb 2011
The unspoken truth about managing geeks  15 Feb 2011
Strategies for becoming a better programmer  26 Jan 2011
I Choose to Ride the Tiger  29 Nov 2010
Where does your challenge come from?  24 Sep 2010
Top 10 Mistakes to make in class  19 Aug 2010
Simplicity  19 May 2010
What makes a Developer?  01 May 2010
Process Improvement  25 Feb 2010
A Boys Club?  28 Jan 2010
On Priorities  17 Dec 2009
Software Craftsmanship  13 Nov 2009
Nobody wants my Code  11 Oct 2009
Coming up to speed  10 Sep 2009
Are we speaking the same Language?  26 Aug 2009
Using new Language and Library Features  23 Aug 2009
Two dangerous little words  16 Jul 2009
Want to get more done, faster?  30 May 2009
Defining Polymorphism  07 Apr 2009
We are not our Users  05 Apr 2009
Stages of Competence  22 Mar 2009
The word "Estimate"  12 Mar 2009
Be A Better Developer  10 Feb 2009
The importance of Attitude  19 Jan 2009
On NNPPs  10 Jan 2009
On Leadership Styles  18 Dec 2008
Being a Tidy Kiwi  11 Nov 2008
The right knowledge for each problem ...  25 Oct 2008
Creative Discipline  25 Sep 2008
Fail Loudly  23 Sep 2008
Attitudes to Change  16 Jun 2008
Preaching the wrong message  27 May 2008
Studying on the Move  18 May 2008
The Curse of Remembered Pain  14 May 2008
The Gray Zone  04 May 2008
YAGNI is no excuse to be lazy  12 Apr 2008
The One True Way  30 Mar 2008
What are you measuring?  24 Sep 2006
What makes a Professional Developer?  25 Jun 2006
Coding Paradigms  03 Jun 2006
Appropriate Expertise  26 Feb 2006
Site Restructure  30 Dec 2005
Code Margins  23 Aug 2005
On Quality  08 Mar 2005
What's wrong with newsgroups?  24 Jan 2005
One in a million  20 Jan 2005
Self Improvement  23 Jun 2004
What makes a Senior Developer?  21 Mar 2004
Refactoring  07 Mar 2004
Ethics and Professionalism  11 Feb 2004
How important is assembly language  07 Feb 2004
Agile Development - The People Factor  04 Feb 2004
Chris Sells  15 Jan 2004
Writing Secure Applications  01 Jan 2004
The Nature of Quality  03 Dec 2003