• 0

At what point should you call out a colleague for being a poor programmer?


Question

This is related to web development (php and css mostly).

 

My co-worker is a 40-something and been in the field forever, who came with a great resume for making things look pretty.

 

And I'll admit he can make things look pretty, but he does it with some of the worst code I've seen. It's mostly dreamweaver or Stack Overflow inspired (complete with not-his comments), and more often than not inline tags. He doesn't follow the style for the rest of the project at all, and I just spent the morning "fixing" what he did last week so that it can work with multiple themes.

 

Really, his help is most helpful when he gives me a PDF of what it should look like and lets me play with it, but my manager likes to micro-manage things and my colleague deals with that while I program.

 

I'm inclined to say something to my manager, but I hesitate. I'm a self-taught programmer and this is my first job. I'm not sure what to expect from other people, and it may be what I consider incompetence is simply typical. Am I just a control freak? My first thought is to sit him down and talk to him, but 1) is it my place? and 2) whenever I've asked him to do something a specific way (eg not use inline styling), it usually goes in one ear and out the other, In other words, he'll do it that way if he can find it done that way on Stack Overflow.

 

In his defense, I think he is learning. But he's learning at the expense of my morning. Should I say something, or should I even care?
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

I'm also self taught and like you, probably was very passionate for learning programming.  This guy no doubt bitched that programming was part of the degree curriculum, screwed around/skipped class, and is now in the ######.

 

Forward this to him and enjoy your job :http://www.npr.org/blogs/thetwo-way/2013/01/16/169528579/outsourced-employee-sends-own-job-to-china-surfs-web

Link to comment
Share on other sites

  • 0

My company has a "programming standards" document that lists all the naming conventions, alignment, commenting, etc that everybody must follow with their code.

 

If you try to talk to the guy personally, he may just pull the "experience" card on you and ignore what you say.

But if you can find or create some sort of "standard" that your boss agrees on, then you'll probably have better success getting through to him.

Link to comment
Share on other sites

  • 0

While you certainly have a right to express your concerns to your manager, if it were me, I would keep my mouth shut and do my job. Since this is your first, and most likely not your last job, the reference you'll get is like gold. I wouldn't mess it up by being a complainer. Be humble, suck it up, do your job, and the rewards will come eventually to you. Maybe not at your current employer, but down the road.

 

Offering respectful suggestions to the co-worker in question might work, but tread lightly since he is a lot more experienced than you are in the field. Who knows, you might actually learn a thing or two from him, as well. I mean, the way you entitled your post here with the words "call out" infers a confrontational mentality. Why not turn it into a learning opportunity for both of you? Share ideas, brainstorm, etc.

 

If you go into it with a positive approach and still nothing changes, at least you dealt with it professionally, which will serve you well as your career progresses.

 

Anyway, my $.02. Hope it all works out.

Link to comment
Share on other sites

  • 0

Be careful with that. Since this is your first job, you have unrealistic expectations of how people ought to work. People have different strenghts and this guy likely has very valuable experience that you don't. I would personally see using Stackoverflow as a sign of resourcefulness; the quality and reliability of answers there is quite high.

 

I've no experience in web programming whatsoever so I don't know how evil or not "inline styling" might be, but it's certainly worth it to explain to him how you modified the work he did and why, in a non-judgemental, non-confrontational manner; ask him why he does things that way, as if you were the learner and he were the teacher. If that doesn't address your concern then explain your concern more directly to him ("you know, I don't understand why you would do things in this way since we'll have to change it afterwards"). If after such discussion there remains a misunderstanding then perhaps you should talk to co-workers or even your manager.

 

It's possible you'll find that you don't like how people work at your place, and you have little support from coworkers and management. In this case, you should consider finding a workplace with a better culture. It was only at my 4th (and current) job that I found a place where I like the culture and work ethic. Some of the most important experience you get at a workplace is what you don't like about it and how to make sure the next place you work at is better in those respects.

  • Like 3
Link to comment
Share on other sites

  • 0

Thank's for the input guys. Today was my monday (was suck Monday and Tuesday) and walked into a mess. I was already cranky and needed some perspective. And you're absolutely right, I need a good reference more than I need to lose the headaches he causes me. I'll stay mum.

 

And I can learn a ton from him, about design and video editing! :P

Link to comment
Share on other sites

  • 0

I'm no expert at PHP, but I'm pretty darn good at it, and I use inline tags :(. Is there a specific reason you don't think it's a good practice? I'm guessing you're part of this MVC ideology that I still don't quite have a firm grasp on, not when it comes to PHP anyways (I don't get a lot of time to use PHP lately). I'd love to hear your side of it.

Link to comment
Share on other sites

  • 0

I'm no expert at PHP, but I'm pretty darn good at it, and I use inline tags :(. Is there a specific reason you don't think it's a good practice? I'm guessing you're part of this MVC ideology that I still don't quite have a firm grasp on, not when it comes to PHP anyways (I don't get a lot of time to use PHP lately). I'd love to hear your side of it.

 

It boils down to separation of concerns.

 

Us humans have limited brain capacity, and we easily go past our ability to reason about things when a program becomes non-trivial. In order to mitigate this, we try to break the program down into manageable, self-contained, and loosely-coupled chunks. Most people grasp "small" and "self-contained" pretty quickly. Loose-coupling means that you're trying to minimise the impact of changing something in a chunk having a cascading effect in another chunk. Because if you're having to reason across the chunks, you'll run out of brain capacity very quick. You want to be reasoning about things in a local context.

 

So, to circle back to your original question, when you're outputting HTML it means that you're at the point where you really want to only have to concern yourself with reasoning about how you want things to be displayed. You really don't want to also immerse yourself into the minutiae of how and where you're getting data from. Think of the HTML page as a template, or maybe think of it as a function. You pass it data, and it displays the data. That frees your mind from having to think about how and where you're gonna get the data from. That's the job of another layer in your program. When you're reasoning about that other layer, your mind is free from having to worry about that CSS style that you need to update, or that content typo that you need to fix.

Link to comment
Share on other sites

  • 0

just ask him to change a few things? me and my designer agree on conventions... sometimes he will have a go at me...sometimes il have a go at him... and we will agree on what is the most logical way to proceed on... you just need to say to him that he is making things difficult for you as the way it has been done does not allow you to do your job.

Link to comment
Share on other sites

  • 0

In your first job you shut up and do as you are told.  The guy may be crap at code, but you have no idea where he is politically, or what other skill he has that they need.

 

If that's how you have to act at your job you need to get a new job.

Link to comment
Share on other sites

This topic is now closed to further replies.