I have only been working at my current position for a little over 3 months and I feel that some of the coding standards that are in place go against my personal best practices. The biggest clash seems to be when writing SQL code, I like to make my code very readable, easy to understand, and easy to test but apparently that is not part of the standards here and I am asked to remove items I put in place to promote my best practices which again makes it easier and quicker for me and I am sure others who come behind me to understand and test.

The enforcer is my manager and very strict about the standards and makes it nearly impossible to get a word in and completely disregards any reasoning behind my actions falling back to "this is not standards". Why can't they be then? Why not make them standard? What is so wrong with having easy to understand code that makes it easy to test and tweak?

The other part of my frustration comes from feeling like I am the only person that these standards are being imposed upon. I have found many times code that makes me cringe and does not match what our standards are yet.. it exists and is recently written.

Right now this is my biggest concern with where I am working, I like that we have standards and that they are enforced but I am not digging the inflexibility and closed mindedness of the standards and it is becoming very frustrating.

On top of it I started hearing a new line this morning, "[Director's Name] does not like..." though he is no longer writing code and I feel his personal coding style should not dictate a possible improvement to the standards.

What would you do? I feel like I am stuck between a rock and a hard spot.

Though, this post is less about what my standards are and more about how to handle a conflict of standards especially when you feel they hinder the speed in which you work.

  • 7
    I can't tell if you're asking for help with coding standards (off-topic here, try Programmers), or if you're asking how to persuade your manager to change (in which case the detailed coding issues are kind of distracting). In any case, discussions of SQL coding standards don't belong in comments here (because they're about SQL coding standards and because they're discussions), so I'm deleting those. I suggest editing your question to focus on the workplace-specific aspect. Thanks. Jul 15, 2014 at 20:25
  • I agree and will update when I can.
    – Tony
    Jul 15, 2014 at 20:34
  • 5
    Remember that coding standards are about establishing conventions across the entire codebase, so that the programmer who will have to maintain the code five years after you've left the company doesn't have to figure out each programmer's idiosyncratic conventions. You aren't becoming less efficient by following the standards -- you're essentially investing that time in documenting your work. (Yes, a good programmer should be able to read any common style. On the other hand, I've seen some coders who, left to themselves, wrote code so idiosyncratic that it broke the debugger!)
    – keshlam
    Jul 16, 2014 at 2:10
  • 3
    @Tony - See my question about being new and advocating for change (How soon should I advocate for making changes after starting in a new job?). Might be useful.
    – user204
    Jul 16, 2014 at 5:27

5 Answers 5


You aren't a special snowflake nor working in a vacuum

my best practices

Unless you are your own manager, you don't get to dictate what standards you use. And even if you are you likely will do work for others and still need to abide by their standards.

This is a significant part of the reality of working for others.

Also keep in mind standards have a lot of history in many cases. Perhaps some previous dev did something which caused a ton of problems when the dev left. Perhaps a manager had a power trip. This will never be immediately clear, especially as a new person.

The other part of my frustration comes from feeling like I am the only person that these standards are being imposed upon.

I suspect this is partly if not entirely because of your attitude. There are a lot of factors other than simply your work which affects your bosses perspective on you.

By this point, it is likely your boss feels you are a problem employee. Everything in your question reads like, "I am right, why won't the idiots I work with understand and believe me! It's so obvious!"

What would you do?

If you want to have significant influence in your workplace learn to "play" office politics.

Another reality check: if you want to start influencing people you need to do so in ways which are effective. This means people skills are more important than technical knowledge. Before you disagree with this, realize your entire question is a result of this problem - if technical skills/perspective was of the highest importance you wouldn't have had to ask this question.

This is the dreaded "politics" component to work which most technical people shy away from.

A key component to politics is realizing the "how" is more important than the "what."

People will forget what you said

People will forget what you did

But people will never forget how you made them feel.

New person arguing with management (especially if directors get involved) is not a good career move, almost ever. This is different than disagreeing constructively.

Action Steps

  1. Talk with your manager. Indicate you are sorry for arguing and ask if you can talk through the current standards
  2. In this conversation, stop arguing. Understand the "why" to what your manager is suggesting. Don't automatically assume "you are an idiot"
  3. Listen to what your manager says for "why." If you don't get this, try to get the why - don't even try disagreeing with it or saying "but, but, but." People generally get defensive when people argue with them. And get a lot more willing to listen if you listen and seek to understand first.
  4. After fully understanding why your manager wants these standards (you probably should say something like, "So if I understand correctly, the reasons for these standards are X, Y, Z" - if you can't do this, you need more information), ask something like: "Would it be ok if I explain what I have been doing and why to determine if they could be included in the standard?"

Tread lightly in this conversation. If you have any level of argument you are likely to lose badly, given you have history with your manager.

  • 1
    Nice post, my attitude has apparently misrepresented myself from the replies I have received so far but regardless I still see value in this answer. To be clear, I don't argue with management or anyone. My manager constantly compliments me for my skills, quality of work, and yes even my ability to follow standards more so than others. My people skills are not bad, though I mainly stay head down and just hack away at code. I do have a weakness for politics though and accept I need to learn to play them better.
    – Tony
    Jul 15, 2014 at 14:35
  • 3
    @Tony sometimes the primary problem people have is recognizing their attitude is hostile/argumentative. I can't count the number of conversations I've had, about either myself or others, which basically go "you were really confrontational" followed by, "really? how so?" This is a big part of politics too, understanding the impact/image you present.
    – enderland
    Jul 15, 2014 at 14:37
  • 5
    @Tony it's also worth noting you're pretty new to the company. So your ability to influence change is limited. I, like yourself it seems, am the sort of person who enters a company and perpetually probes and prods to try and shift things in a better direction. I will say though it's a very delicate dance politically speaking, and it's almost entirely politics. Any change you try to make will be met with resistance of some kind, some is easy to overcome some will be a long campaign of attrition to wear down the opposition. Pick your battles, one fight at a time, tread softly, and keep metrics. Jul 15, 2014 at 14:50
  • 1
    Marking this as the answer as I feel it was well written despite some misconceptions and provides some good feedback in general that other people in other industries could also find useful.
    – Tony
    Jul 15, 2014 at 15:12
  • @Tony you might also find this question useful.
    – enderland
    Jul 15, 2014 at 16:33

Great answers above, but I would like to add one more point.

Good bad or otherwise, there is a history to these standards. If they are being followed, there is likely a significant code-base written to these standards. Your request to change the standards would create a need to revisit the entire code-base to restructure the old code. This could be a significant effort and adds risk for inadvertent code changes. If the team doesn't touch the old code, you are now leaving by two (or more) standards.

In my experience, if you have more than one standard, you probably really have none.

  • 3
    Whenever a new standard is introduced, this standard usually is not applied to legacy code until this legacy code requires a logical update (so a new feature or a bugfix). Changing code just to adhere to a new standard is dangerous and irresponsible.
    – Nzall
    Jul 16, 2014 at 7:52
  • 1
    I would agree about legacy code, but there plenty of current projects out there that have a multi-year history that could be impacted. One if the apps my team has built and is currently enhancing has over 200K lines of code. If somebody suggested a new standard for that code, the answer would very likely be no.
    – cdkMoose
    Jul 16, 2014 at 12:53
  • I agree, and the standards seem to be very loosely followed here except when it comes to me. I keep getting the line "others before me did not enforce them but I am" which is fine but I still see code coming from others not conforming at all. The standards I am looking to not even change just ask that they allow are simply comment based which allows for quicker understanding. I agree with what you have said though.
    – Tony
    Jul 17, 2014 at 12:12

I know this isn't what you want to hear, but the sad truth is that companies (Or rather the people running them) don't always follow logic or the "best way". This is for a variety of reasons, some reasonable (Compatibility, compliance, standardization etc), some not (Fear of change, lack of understanding etc).

The other unfortunate truth is that you're not always in a position to change that. Some things will never change, other things you may be able to influence over time. What I will say, however, is that you're a new member of staff and it's clear there is a real driving force to do things a particular way. My suggestion would be to mold to these, whether you like them or not, and assess your position when you're further embedded in the company.

Picking a fight with senior management and company leaders is a dangerous game at the best of times - even when you're top of the technical tree, the people who own and run the company can (and sometimes will) over rule you. Doing it when you're new is bordering on suicide.

  • I agree, don't argue and conform to the standards (all 30 pages of C# and SQL standards that have been set) my frustration is when I feel the standards hinder my performance. Though, honestly management is not aware of my frustration as I have not really verbalized it I just nod and say yep ok ill fix that up, possibly after I ask why but most of the time I am indifferent and just change it as I am new and still learning all of the standards but I rarely get corrected as I follow them pretty well. Good response!
    – Tony
    Jul 15, 2014 at 14:41

Just because the reason for a standard is not visible does not mean it is irrational.

While I agree with everything said above (about new employees needing to maximize their people skills and learning the local company politics) one thing that may help lower your frustration level is understanding that some coding standards are based not so much on illogical-and-arbitrary factors but rather on valid-but-invisible ones.

Consider your example which you described as

"one more WTF standard which I just roll with but seems completely pointless"

I have actually seen this exact standard in two different organizations and there was a very valid reason for it.

In both of cases I discovered that management was using certain software to analyze the code development & evolution process and this software had strict expectations of how the comments would be formatted (aka standards). The "TICKET" lines you describe might only include "comment:" in your department but later on down the line in production there might be live incidents that arise which requires troubleshooting and modifying the software. Techs and management involved in those events might add TICKET lines with things like "problem:", "fix:", "change:", "reference:", "evidence:", "decision:" and even "policy:". If you get assigned to work on fixing/upgrading legacy code you may see some lines like that yourself.

One concrete thing I can suggest for you is to try and learn about something called "ITIL" and/or "ITSM". These are collections of world-class best practices for IT, both from a technical viewpoint and a management perspective at the same time. I kid you not that it can be very hard to understand them at first if you are a pure techie (non-management) but in the long run it will dramatically improve your ability to see the "big picture" and it can be considered a marketable and/or promotable skill if you decide to go as far as to become ITIL certified.

  • +1 for valid-but-invisible. Especially for a new employee.
    – Bobson
    Jul 16, 2014 at 15:02
  • I agree about the valid-but-invisible piece, the sad part is though, not one single person is using this comment format again just I am being forced while I see others leaving comments without even a ticket number or a real description of what they have done. As mentioned in other places, I honestly feel like I am the only one they are expecting to follow some standard just because I am new while others can just have a free for all. ITIL makes me sad, long story behind it I wont share here. Just saying an 8 hr presentation with someone talking to you makes for a long day!
    – Tony
    Jul 17, 2014 at 12:18
  • I do like what you mentioned about the other variations that could possibly go with the ticket idea, to me the comment part would make much more sense if we were using a set as you have described, it actually makes it easier for me to swallow.
    – Tony
    Jul 17, 2014 at 12:19

All good advice re: new guy should not make waves, etc. and yes, sometimes it is best to just hold your nose and follow standards, policy, etc.

But sometimes management is wrong; sometimes a company's 'standards' really are bad or worse.

In that case, find another job; long experience taught me that it is impossible to fix a dysfunctional organization. Those places have a self-reinforcement culture, and if you stay there for too long, you too will become broken.

  • Please explain in all job interviews way you want a new job, that way it is much less lickly you will get the same problem again :-)
    – Ian
    Jul 16, 2014 at 13:22
  • Yeah, I agree. My problem is I jump jobs too frequently as it is. They always end up screwing me over or I find something I cannot deal with. Being only 3mo in I am TRYING to stick it out here. Unfortunately this isn't the only issue but the moment I wrote this post it was the most offensive issue lol. I totally agree though, brain eating zombies are bad.
    – Tony
    Jul 17, 2014 at 12:22

Not the answer you're looking for? Browse other questions tagged .