I get to work with a lot of developers as part of what I do, and in far too many cases I find myself asking questions when I look at their code and see how they develop. That question is usually Why?
- Why do you write code without any tests? Why?!
- Why is there Hungarian notation for variable names? Why?!!
- Why do you have source control with no shared checkouts (or no source control at all)? Why?!!!
- Why are you doing deployment from a developers machine? Why?!!!!
- Why do you have comments in your code like: "DateUpdatedValue returns the date updated DateTime"? Why?!!!!!
- Why are there methods in classes which have more than 200 lines? WHY?!!!!!!
- Why for the love of all that is beautiful is there so much rubbish code here?! WHY?!!!!!!!!!
The thing that I really struggle with and that gets me really frustrated is that these developers will try and abdicate themselves of any personal responsibility for writing code the way they have. The excuses are typically along these lines
- Everyone else writes it that way.
- The code was already a mess when I got here.
- I don’t get given time to write it properly
- The company doesn’t care about me so I don’t care about the code
- Management wants it that way
- It’s not part of my job description
And my response to that?
What… A… Load… Of… Rubbish!!
We’re developers aren’t we? And aren’t developers meant to be highly paid, intelligent and logical individuals who can think and act for themselves?
At the same time, many of the developers making these excuses have the same frustrations I do but just don’t know what to do about, so they sit there and try not to rock the boat, suffering in silence until they become numb to the pain and just accept things the way they are. How sad.
So seriously, people! Stop making excuses or accepting mediocrity and start making some changes to improve things!
Do Something About It
Now here’s some news for you - no one else is going to make the changes that are needed for your situation to improve. If they were then things wouldn’t be in the state they are now. It’s time admit that you’ve spent long enough waiting for someone else to do it – it’s now time for you to be the change to want to see.
So here’s some things to consider if you’ve lived in frustration long enough and want to make improvements.
Change Starts With You. You have to start with yourself. Check your attitudes. Take ownership and responsibility for what you do. Improve yourself until you can take pride in your work. Start learning again. Never stop learning once you do. Be committed to change.
Encourage Others To Change. I hate to sound cliché but I can’t express it any better. Change is a journey. There I said it. Anyway, as you learn and improve in what you do you should try and encourage others to do the same and take that journey with you. Show them what you learn and how you learned it. If they follow and improve as well, then that’s a great thing. If they don’t then that’s OK, just don’t let that be an excuse for you to stop doing what needs to be done. By the way, don’t be a pain in the butt when trying to get others to change – it’s much easier to get people to change through having a positive approach than it is by shouting and complaining and generally being a angry or sullen little developer.
Change Requires Courage. Have the courage to challenge the status quo. Courage to ask the questions about why things are done the way they are. Courage to suggest that things need improving and courage to suggest the changes that are needed. Courage to pressure your management to improve and change. Courage to be a visible agent of change.
Learn From People Outside Of Your Company. Most change in our lives comes from external sources (it’s an inertia thing) so if you haven’t talked with a developer outside of your company about how they develop then you should get yourself along to a user group or conference at some point. If your time is precious don’t sweat it, there are a number of virtual user groups that are starting to spring up around the place that you can attend without leaving the comfort of your own home, and failing that you can just increase the number and variety of blogs you read. Regardless of how, you need to talk to and learn from people outside of your day-to-day to get fresh ideas.
Change Your Company or Change Your Company. I can’t remember where I first heard this one, but it’s apt. If you start to improve yourself and change how you do things then one of two things is going to happen. You’ll either encourage others around you to change, thus improving and changing the company you work for or you’ll grow frustrated and annoyed with where you work. If the second one should happen then you’ve got a choice to make – stay where you are and be confined and constricted, eventually growing to despise what you do, or you can take your newly improved self and find a new job and a more suitable team to work in. Regardless of the economic climate, good people are ALWAYS in demand. Have the courage to make that decision if that time comes.
You might also want to have a glance at this blog post on how to change the world.
So, what are you waiting for? Go start changing things, and start today. No more excuses.