Just recently I’ve had the not so nice experience of
ignorance presented publicly. There has been a session on software engineering
a colleague and I compiled for our department. The narrative was around
extensible architecture a topic that would need some promotion round here as we
are faced with a bunch of legacy code.
Virtually no-one showed up. Afterwards I figured that they
were too busy or just not convinced that a topic like this would apply to them for
they are experienced developers with some 10, 15 or even 20 years of experience
in corporate software development. They just know how to code.
How did actually write all this legacy code, then? I wonder.
What happens here is a nice little mistake: experience == knowledge
applicable
This is no new situation to me. I’m faced with claims like
that all the time. Just like a UI developer once told me that she would not
provide any mock ups for the team to discuss and commit to for she would be an
experienced UI developer who knows how to build UIs for years. Again a
manifestation of experience outweighs everything else.
What’s wrong with a developer so convinced and self-assured
that he would give a statement like this?
Basically nothing when it comes to self-esteem. Basically
everything when it comes to the ability and will to learn to progress in ones
skills and abilities.
The guys giving these statements were the ones that showed
only little impulse to question themselves to reflect on their skills and how
they fit to the needs. It definitely has consequences when a skilled procedural
programmer tries to use her skill on an object oriented language and
environment. This would result in a legacy code base that is not extensible,
supportable or testable, as could be observed in our code base.
Why does some otherwise intelligent person fail to see this
difference? Do they really not see the difference? Or is there something else?
I didn’t come to a conclusion about this yet. My hypothesis circles
around uncertainty, fear of loss of control, self-betrayal and plain ignorance.
Thinking about being in the situation of having 20 odd years
of experience in software development (which I have) and considering myself an
expert (which I do) and someone not even working in my problem domain coming
around trying to tell me how to do things differently (which I basically did) I
guess I would have and show my objections to that person.
In the end this person would question me. The expert. Would
basically say I did something less optimal and perfect than I would consider it
myself to be. I could imagine myself not giving a damn about this. I just would
not feel comfortable with admitting my work over years has been less than
excellent.
Switch back. While this feelings are just and cannot be
ignored there has to happen something to improve the code quality, the design. In
my opinion the admittance of less than optimal work, the admittance of failure would
be to closely related to failing as a person, to closely related to not getting
the bonus granted by the boss. The culture of failure needs to be there. A
culture where making and admitting a failure would be understood as a learning
opportunity. A culture where there is no need for a never failing expert who
tells everybody who things are handled here and who has to approve any idea. We
need a culture where true expertise shows itself in the experience that
everyone will make mistakes and the simple thing that one single person could
not know everything. Even an experienced expert level developer could learn
something from a complete newbie every now and then.
Read also:
On Coaching Agile - What I've learned from being an agile coach
On Sporadics - How to deal with intermittent tests in continuous delivery
On Agile Testing - Do we need testers?
The opinions expressed in this blog are my own views and not those of SAP
No comments:
Post a Comment