Ahead of
JAX London, we
caught up with speaker and Agile expert Nigel Runnels-Moss,
otherwise known on Twitter as @sleepyfox.
Nigel is a software expert who has worked in the industry for
over 25 years. He is interested in the areas of social dynamics,
methodology and organisational change. Nigel also runs London Code
Dojo to help professionals rediscover the joys of coding.
On Tuesday October 14th, Nigel will present on “The Dark Side of
Software Metrics” and discuss what software quality really
means.
JAXenter: At the JAX London you’re going to be talking
about the “organisational (mis)behaviour” that software metrics can
cause. What kind of misbehaviour?
Nigel
Runnels-Moss: Ever
seen a manager push a team to ‘increase our velocity’? What
happens? Stories curiously get larger over
time… Ever seen a
developer asked to give a ‘rough estimate’ that mysteriously
appears the next day on a project plan and next week becomes
a team commitment? What happens? Developers get very evasive about
any kind of estimation, or even any kind of communication with
management at all.
Ever seen teams rewarded for having fewer bugs? What happens?
Bugs reported by testing or support get classified as ‘WAD’
(Working As Designed), ‘Not a bug’, ‘Won’t fix’ or get rounded up
together and all classified as a duplicate of the ‘UI fault’
super-bug…
There are better ways of measuring things, but first we have to
understand what can be productively measured, and what can’t; how
the selection of scale and instrument affect the measure, and what
are the bounds of error or certainty that the measurement has. All
too often our culture persuades us to mistake measuring for
managing, but it’s not.
You’ve got some interesting ideas on how areas like
psychology and cognitive science can play a role in programming. In
what kind of ways do you think multi-disciplinary sources can
influence software development?
Most of the really interesting advances in Science seem to have
come about through collaborations between disciplines; when I was
at University I was fascinated by Artificial Intelligence: the
conjoining of Computer Science, Neurobiology, Systems thinking,
Learning Theory and Psychology. Now we have Complexity Science,
Exobiology, Sustainable Development, Quantum Information
Processing, Cybernetics and many other interesting
collaborations.
For too long Science has been insular and favoured
specialisation over collaboration, now it is time to integrate
Sciences with each other, and with other disciplines – an excellent
discourse on this is Stephen Jay Gould’s book “The Hedgehog, the
Fox, and the Magister’s Pox”. We have more to learn from each other
than our hubris will allow us to admit.
The internet of things – is it the next revolution in
programming? Or just another overhyped trend?
I’m not a prophet! Many of us have been talking about
distributed computing and network systems for decades, so perhaps
the IoT is ‘just’ another forcing factor. One thing that I can say
for certain is that it makes the already difficult situation of
‘not enough programmers’ much much worse, but that’s a whole other
topic of conversation…
Are you looking forward to Java 9? Why
(not)?
No; Java is the new COBOL. For me, the most interesting thing
about Java is not the language, but the ecosystem of alternative
languages that have evolved around the JVM – which has given us not
only the usual suspects of Groovy, Scala, Clojure, Jython and JRuby
– but also Nashorn, Renjin, Ceylon, Joy, Ioke and Kotlin, to name
but a few.
The JVM is an incredible feat of engineering, but the future is
not Java.
What kind of music do you listen to while coding (if
any)?
Whilst I’m sure discussing peoples’ musical tastes de rigueur, I
probably won’t be popular for saying that the research is telling
us that we’re more productive without most kinds of music, see for
instance this article:
http://www.sparringmind.com/music-productivity/
I now use
simplynoise.com to provide an ambient noise
soundscape which helps cover intrusive external environmental noise
(cow-orkers, telephones etc.) whilst remaining free of lyrics or
distracting melodies. Try it and see for yourself.
Any advice for young, budding Java developers out
there?
Use the community: London Java Community, London Code Dojo,
London Software Craftsmanship Community – one of the best things
about London is the wealth of tech community
events. If you’re not in
London, find like-minded people in your own locale, join up with
them and help each other learn and improve. Practice practice
practice! Learn new
things, stray outside your comfort zone, as the farewell message of
the Whole Earth Catalog said: “Stay hungry, stay
foolish”.