“See this? Our website? I just want it to suck less. Can you make it suck less? I have a big bag of money for someone that can make it suck less for me. ” – a CTO who shall remain nameless, during a business meeting circa 1999
My cards title me “The Geek”.
I have been a trained monkey watching backup tapes spin. I have been a DBA. I have been a helpdesk jockey, a developer, a tech lead and a systems architect. I have also been a manager, a director and a Vice President.
Think of me as you from 10 years (or more…shut up) from now, coming back through a rift in the time/space continuum…all to tell you why you suck as a developer, and what you can do to avoid some upcoming pain that I know is coming your way…
If you don’t ask questions, you will suck as a developer. You don’t know everything. You can’t know everything. It’s okay, I get it. Like I said up top – I used to be you, and in many ways, I still am you. The ego that comes along with slinging code is second only to that of doctors and professional athletes. However, your tech leads have been doing this longer than you. Your architect has been doing this longer than that. (note: if those last two statements aren’t true, find a new job) When a requirement seems wonky or you’re not sure which direction to take – ask. I assure you that people will think more of you for having asked than they will when they have to do a mad scramble to re-write your crap spaghetti code to meet a deadline everyone thought was cushy.
If you don’t understand the business, you will suck as a developer. Ha ha, yep, business users sure are dumb and clueless, aren’t they? Well, suck it up, Neo – without them, you don’t have a job, so you’d better damned well figure out how to get them what they need. I’m being very particular about that sentence – get them what they need, not necessarily what they want. But you have to understand what the company is and does, what the users do, and how your efforts fit into that equation before you can even think about opening your mouth to say “I think our customers are really looking to do it this way, not that way…” Take the time to learn the business, and you will be light years ahead of your peers – besides, you want a job that starts with “C” someday, don’t you? Learn the business.
If you cannot bring yourself to speak simple English to people, you will suck as a developer. Speaking French only sounds smart when the other person understands you. If they don’t, you just sound like a pretentious snot. Same thing with techno-babble. Walking into a meeting with business users and being unable to explain why something doesn’t work that way instead of casually dismissing them for not picking it up via osmosis and pelting them with enough acronyms and jargon to fill a glossary of terms doesn’t help anyone. Well, not entirely true…it probably helped them realize that they need to find someone else to do your job. Someone with whom they can work better.
If you can’t handle criticism, you will suck as a developer. Code reviews aren’t put in place because people have nothing better to do. Quality Assurance isn’t there just to piss you off. You may think they are some days, but they’re there to be the last line of defense between you and somebody in a tie asking you what the hell you were thinking when you wrote that. Nobody’s perfect. There is, and will always be, someone better, faster, smarter and capable of writing more elegant code than you are. The company just couldn’t afford them, and so you got the job.
If you don’t see what happens on either side of you, you will suck as a developer. Yes, you’re responsible for the java code that powers an online payment application. That doesn’t mean that you shouldn’t know or care how the presentation layer handles the data you feed up or how it writes back to you. It doesn’t mean that you shouldn’t at least understand the basics of what happens after you spit out a batch file at the end of the day for processing. If nothing else, cover your own ass and make sure nobody can say something’s your fault when it’s really something they’ve changed on their end. But you can’t do that if you don’t know what it looked like yesterday to know that it looks different today.
If you can’t balance “form” with “function”, you will suck as a developer. We all want to write elegant code. We all want it deployed on the platform of our choice using the applications that we know inside and out. Wake up, Johnny – reality’s calling. The company has standardized on Websphere and DB2, and so nobody cares what you can do with JBoss and MySQL. At least not when there’s a deadline looming 60 days out. Re-architecting the company’s hosting infrastructure doesn’t really fit into that timeline, so suck it up and get it done. Oh, and while you’re at it, learn the business and get yourself into a position where you can change that in the future.
If you don’t crave change, you will suck as a developer. Yes, there are people still making a decent living writing COBOL. Good for them. The odds of being that person are roughly the same as your five year old nephew who just took his first skate on the pond last year making it into the NHL. Millions of kids across America did the same thing, just like there used to be millions of COBOL developers. Darwinian evolution kicks in, and the natural selection process begins. Your nephew discovers football. Companies that used to rely on COBOL close up shop. Yes, you might be the one in a million that breaks through and becomes the guy that’s still writing ASP 1.0 code in 2021 for some company out there that needs it. I imagine that the last dinosaur thought he was king of the world, too…until he realized how sad and lonely he was. Relax, I’m not saying you have to get a new haircut or stop wearing the same eight t-shirts – but you do have to keep your skills fresh.
I know you won’t listen to any of this, the same way that you didn’t listen to your parents when they told you not to stick your fork in the electrical outlet.
But you can’t say I didn’t try to help you, earlier self. Find me in 15 years and you can buy me a beer and tell me how right I was.
I just bought that beer not too long ago for the person who tried to tell me all of this. Nope, I didn’t listen either. Yep, dammit he was right. A lot.
Oh, and relax. Project Managers, Analysts, Architects and the rest of them are getting their turn in the dunk tank in coming entries…because yeah, they suck too. Sometimes more than you do.
Well, that’s all for this entry in the How Not To Suck category. Don’t forget to check out new ones as we write them, as well as our Don’t Be That Guy entries and all of the other random stuff we blather on about.