Articles about being a professional software developer.

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 »

The Nature of Experience

Sunday, November 09 2014 professional

Most people would agree that gaining experience is vital to career development, and I’m sure most managers would content 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 »

Why attend a user group meeting?

Sunday, May 12 2013 professional

Recently, someone asked me why it was a good idea to attend a local user group meeting. Here’s a longer version of the answer I gave at the time.

Read more »

The secret to Awesome software

Thursday, January 03 2013 professional

What is the secret to writing awesome software?

Read more »

Older posts

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
Appropriate Expertise  26 Feb 2006
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
Chris Sells  15 Jan 2004
Writing Secure Applications  01 Jan 2004