Learning to Chunk and Why Software Developers cannot write bug free code
I have been in the
firing line recently for failing to develop acceptable performance management
targets for software developers. I consult for a business that believes,
strongly, in performance management – setting Key Result Areas, Key Performance
Indicators and performance targets for all staff. We measure performance
monthly. When staff members over-achieve they are rewarded with a bonus. When
they under-achieve we investigate to determine why. Sometimes it is because
they had inadequate resources, sometimes it is because they didn’t have the
skill and sometimes it is because they didn’t have the will.
Top management expects
software developers to write bug-free code. Nevertheless we employ a tester to
check. Testing is what is done in the software development field – it is
essential to product quality.
So the question I am
being asked by management is why? Why can’t developers be like everybody else
in the organisation, excel at their work and develop bug-free code?
So I did some
research. On the Internet, where else?
Developers worldwide
develop code with bugs. It’s unavoidable. According to one site, if business
managers think they can set performance targets for developers like they do for
everyone else in the business, they are mistaken. And if there is an HR Manager
out there who can develop suitable targets for developers that enable the
effective management of their performance, he or she will be the next speaker
on TED.com. And moreover, will be sought after by Bill Gates, Tim Cook, Mark
Zuckerberg and everyone else who matters in the software development field.
I haven’t given up –
not yet.
But I had some
thoughts recently:
I am attending a
course on the Internet called “Learning How to Learn” with Barbara Oakley and
her team from the University of California, San Diego. I thought I knew nearly
everything about learning – after all I wrote a book on the subject in 1999 –
but I enrolled because I thought there might just be something new. And of
course there was. I learned very early in the course about the focused mind and
the diffuse mind. The focused mind is what we all use to do our jobs – even
developers use the focused mind. The diffuse mind is for something else. We use
it for creativity and innovation, for ‘understanding the whole’ and not just
the parts that make it up. We should, according to Barbara, use both but at
different times.
So I did some diffuse
thinking.
I thought back to my
book on learning and how it evolved. I remember writing for nights on end. But
I remember more that I sent it to a colleague for editing. My colleague, Howard
Dean, held on to the hard copy pages of my book for three months and then sent
it back in a large envelope which I opened and first I read his covering note.
Fortunately.
He wrote: “You have a
natural story-telling ability, but……” And he then went on to say there were a
few corrections needed.
I looked at Page 1 and
there were three or four red marks in ball-point pen. I looked at Page 2 and
saw the same. There were, I was to find, red marks and writing on EVERY page. I
was shocked. How could I have written such drivel? But because of the comment
on the cover note, I didn’t throw the whole lot in the waste-paper basket. I
took up the challenge and repaired all the ‘bugs’.
The book was
eventually published and I won the Zimbabwean Personnel Practitioner of the
Year in 2000.
On the question of
developers and bugs, my diffuse thinking continued working. And I did some
'chunking'
Successful authors all
have editors who find the ‘bugs’ in their work. I know this because nearly
every successful editor acknowledges the help he or she received. Only after
the ‘bugs’ have been found and repaired do the books reach the market. Authors
and Software Developers must have something in common, methinks. The difference
probably being that developing software is a far more intricate and exacting
task than writing a book, (or a blog like this).
How does one manage
the performance of an author? Quite simply by the number of books he or she
sells. And perhaps that is how we should manage the performance of a Software
Developer? Well, not exactly the same way, but on the successful or unsuccessful
deployment of the software.
But like the author
who ‘develops’ books with ‘bugs’, we should expect the bugs in the original
software and managers should not penalize software developers for creating
them. They should instead employ Software Testers who excel at using their
diffuse minds to make every attempt to break the software before it reaches its
market.
So software
developers, like authors of books, rely on a colleague, a partner – in the case
of an author, the editor and in the case of the software developer, the tester.
My problem is not over
though: how do we manage the performance of a software developer on a month by
month basis? There has to be a way.
Comments
Post a Comment