Michael Norton (doc) is Director of Engineering for Groupon in Chicago, IL. Michael's experience covers a wide range of development topics. Michael declares expertise in no single language or methodology and is immediately suspicious of anyone who declares such expertise. Michael is a DZone MVB and is not an employee of DZone and has posted 41 posts at DZone. You can read more from them at their website. View Full User Profile
Over the course of my more than
twenty years in the software development industry, I've worked with
hundreds if not thousands of developers. Many of the projects I've been
involved with have suffered from the same malady; a disconnect between
expectations and realistic possibility. The Agile Manifesto
attempts to address many of the root causes of this malady. It
encourages individuals to interact, collaborate, communicate, and
respond to change. These are not easy things to do. Nor do they
necessarily ensure quality software. The Manifesto for Software Craftsmanship
gives a clear nod to the Agile Manifesto and then extends it by
addressing the need for quality software. These are not easy things to
do. The man is always keeping us down
look to this inequity and the challenges and realize they are helpless
against unrealistic demands. External forces are at play; leadership,
management, or sales - no matter. They neither listen nor care. They
want it done. They want it all done. And they want it yesterday.
So we cluster together. We lament. We gnash our teeth. We
wring our hands. We commiserate. And then we perform our duties in
compliance with the demands set upon us.
It is not our fault. Try as we might, we get no respect. No
recognition. No appreciation. If we don't crank fast and put in the long
hours, they'll just find somebody who will.
We have no choice.We are victims.And we need only for "them" to understand and allow us to do our jobs well.
It's our own damn fault
do we get off? Absolving ourselves of responsibility for the quality of
our work by blaming others. We rationalize doing a lower quality job in
the name of pressures, deadlines, and promises made by others. But it
is we who deliver the software. It is we who ultimately make the
decision to not test enough, not refactor, put in excessive hours, and
not do a quality job.
And every time we do this. Every single time we say it can't
be done but then deliver a steaming pile that closely resembles that
which we said couldn't be done; we reinforce the behaviors. Every time
we put in excessive hours to be heroes, we set a precedent for the next
time. Every time we compromise quality in order to meet unrealistic
expectations, we devalue ourselves and the service we provide.
We haven't the right to complain about the very behaviors we enable. Never ask permission...
we want to stop this pattern. If we want to improve the reputation of
our profession. If we want "them" to understand, then we need to change
our behavior. Take a stand. Do your job well regardless of the pressure.
A doomed project is doomed whether we compromise on our values or not.
The more of us who behave this way; the more of us who insist on quality
from ourselves and our teammates, the more evident it will become that
this is not only a better way, but the right way - perhaps the only way.
Do your job. The absolute best you can. Keep learning. Keep improving.
Never ask permission to do your job well.