I'm not exactly disagreeing, but don't forget the other side too -- that you might not know what you're doing, that you might not understand the good reasons that certain rules are in place, that you might not understand the big picture and that your actions might backfire and/or be counterproductive.
Don't forget to be humble too, and realize that what you think is the right thing, isn't always the right thing. There's no inherent valor in "breaking the rules" -- if you can, it's much better to gently persuade, bring people to your side, and talk things out.
Again, not disagreeing with the article, just pointing out that life isn't that simple always.
In further support of these points... Thinking outside the box, breaking the rules as a last resort to do the right thing and other similar actions can indeed produce the extraordinary results, in certain situations, the organization is hoping for after all. Yet this strategy will work only for the very top performers: Those who can sense and actually produce the truly largest "contribution" to their company (as opposed to what seems right, interesting or cool to them), even when it more or less eludes their higher ups; those who can do this while also being politically savvy enough to contain the consequences and sell their actions as actually in line with everyone's goals; those who are almost magical in being able to produce the kind of results others are very unlikely to do etc. It can work, I've seen it work, but I think it is important to realize that not everyone can or should do it. When it works, it is certainly a great boon to the career of the said top performer.
Know that by doing this, you may be counterproductive both to your organization and your career. If you take it to the extreme, you may become a friction rather than a "problem solver".
The most common pitfall I've seen is a highly technical person considering things like "refactoring", "getting it right" more important than getting to the finish line fast. Remember that you may be missing what's really the most important thing for your company at the time.
I've also seen commonplace "complaining" about inconveniences that are actually quite legitimate. It's just that you don't know all the facts or haven't been put in a position to produce the bottom-line results. Things look different when you're the one navigating the ship.
OTOH, I've seen this strategy work best when the very formal scope/objectives/deliverables of an effort are clearly wrong and would indeed lead to a subpar outcome for all involved. Implemented successfully, this strategy could produce outstanding results by forcefully course-correcting and then actually delivering great results. Remember though that you'll be blamed for everything if your course-correction isn't great, even if the original direction would also have been equally bad.
I always think that whenever a new rule or procedure gets created there should be sufficient reasoning as to why it had been created, what conditions prompted it, and what it's designed to solve.
With that information people can see why something needs to be done a certain way, and additionally they will know when rules and procedures should be eliminated. In my mind this would allow people to deduce when exceptions to the rules are applicable, and hence be more effective.
Unfortunately I have not actually seen this happen in real life.
At an earlier point in my career I was exactly the "highly technical person" in the above comment. I have always taken the approach to my work outlined in the OP, and therefore my emphasis on "getting it right" has caused me to switch jobs quite a bit over the past few years.
For people like me, understanding business constraints is crucial. We must constantly question decisions, not to condescend, but to understand.
Once I understand the context behind a decision, I can then decide if I agree with it or not. If I don't, then I'm in a fight-or-flight situation: try to change it (may not be a reasonable option) or get out as soon as my commitments allow.
Typically once I understand the constraints I start to less like a cog and more like part of a larger effort to ship in spite of our difficulties.
Exactly. I see it this way: Freeform jazz performers and poets can break all sorts of rules, because they know what the rules are so well that they know which rules make sense, which ones they can bend and which they can outright break.
I would never advocate handing the keys of this philosophy to a young scrappy kid at his first job out of college. More like the seasoned veteran who's seen all sides and knows what it takes to make something (Disclaimer: I am neither of these).
I'm not so sure age is any indicator of principled action. Older employees have been worn down and want to get somewhere, young people can have more conviction in their principles because they have less to lose and more enthusiasm. And the opposite can happen too of course; young people can be easily misdirected, and older employees can have the learned cynicism and experience to see history repeating itself.
Shows how even when you do something against the rules / on your own, you still need to remember you're part of a bigger unit.
I agree that people should know when to and how much they can break the rules and it takes experience to know that. But, I feel like you have to make mistakes to get that experience, and that there should be some room for experimentation and failure for those willing to take these risks.
As a veteran at my company, I've let scrappy kids take the keys. It's always about them understanding the general direction we're going. I trust their judgement and their fearlessness to ask questions of those of us who've been around much longer.
Which actually fits into the jazz analogy. Jazz players work together in the same direction, there are rules within the rule breaking, even if they're unspoken.
"In the matter of reforming things, as distinct from deforming them, there is one plain and simple principle; a principle which will probably be called a paradox. There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, “I don’t see the use of this; let us clear it away.” To which the more intelligent type of reformer will do well to answer: “If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it."
The problem is that there are no signs on the fence explaining why it is there, and the people who raised it are nowhere to be found, and the most likely reason for its existence is unreasonable paranoia.
Awesome post. It's great to see a top comment on HN that isn't hugely disagreeing with the article in a (perhaps borderline) disrespectful way.
Furthermore, I agree that often times the best way to go about doing things is being reasonable with people, but it's also just _hard_ to do. You're human, and sometimes you might lose it for a dumb reason --- just fall back, understand what you could have done better, and learn from the experience.
At my last company, I earned myself the unofficial job of Employee Advocate because of this philosophy. The company (which I won't mention by name, but can be easily determined) was set up to be a great place for developers to work, and for the most part succeeded in that goal.
But as time went on, there were some failings in a few areas, so I decided that I would be the one to push the founders to continue realizing their goal. I know I became a thorn in their sides on several issues, but I could also tell that other employees appreciated me speaking up, especially the non-technical staff, which often did not receive the same benefits as developers.
I always figured that if I got fired for speaking my mind on an issue, that would be okay, because it would be a clear indication that the company was too far gone and it was time to leave. Fortunately, for me and the company as a whole, that never happened.
Despite being a thorn, I remained on good terms with the founders. They seemed to understand where I was coming from, even if they did not agree.
As could be posted at the top of just about every HN article this is highly situational.
If you are in a prototyping, web advertising, etc etc business - sure, your probably just feeding your employer new business strategies to make everyone money. The business is typically fine with experimenting with new ideas hoping to uncover a new money machine - obviously Google's business model is a great fit for this and they seemingly encourage it.
If your doing what Ill call "real engineering" (to ruffle some feathers) on large intricate system this could be a very bad idea. Perhaps you even think your doing the right thing but if you're working within a highly technical environment with many participants you are just going to look immature.
In other words, imagine if everyone at Boeing adopted this strategy as individuals - I think we'd all be opting for taking the Greyhound bus.
I think it pertains to technical or ethical or anything else. The risk is that what you think is the right thing may be the right thing for one person but the wrong thing for another - in fact Id say most decisions fall under this umbrella.
If you know the reasons behind the rules of thumb, you can ignore the rules and work from the reasons for the rules. This is expertise.
When someone questions your 'breaking of the rule,' you can then cite the reasons for the rule, and show how you did not break the rule in terms of it's deeper meaning.
However, it is polite (and prudent) to CYA with discussion of your justifications with your colleagues. Either way, this makes you look good. If discussion renders you correct, you appear ever so smart and expert. If discussion renders you incorrect, you appear thoughtful, prudent and working in good faith in everyone's best interest. This is the essence of healthy collaboration.
All too many people are unable to grasp that working on teams is never about being 'right,' it is about having the discipline to actively seek out collaboration.
Being 'right' helps in that people will actively seek your opinion. Being 'wrong' doesn't actually hurt you, because you went ahead and behaved properly with regard to collaboration. Either someone else was right, and you used their idea, or everyone else was just as wrong, and in that case... ya know, fuck it. :)
I'd add to this that if people are unable or unwilling to collaborate maturely (including admitting their own failings), it is time to quit.
Waiting around to get fired is stupid, petty and passive-aggressive. If you are that sure of your correctness, you should be able to make a jusitfication.
Disagree and commit is a better strategy. Having done a short stint as an engineering manager, sometimes there's disagreement, not everyone agrees on what the right thing is, hopefully not everyone goes and does their own thing and waits to get fired. This is not a good strategy for collaboration and compromise. If you say the right thing is to know when to collaborate and when not to, you've created a tautology.
> You’ve got to recognize that companies are schizophrenic. They build process, and rules, and structure and they ask you to follow them:
> But greatness rarely happens by following rules, process and structure. That is why companies also want to find employees ready to take risks, make decisions, try new things, move fast and even break things.
The inconsistencies and contradictions you describe are not symptoms of schizophrenia. If you need a medical label, how about dissociative identity disorder?
It was clear from the context that he was not using 'schizophrenic' as a medical label (since he was not applying it to a human), but rather as a metaphor that most people would easily understand. Picking nits does not contribute to the conversation, but rather diverts from it (as we can observe happening in this very comment). Since you seem to have an opinion on the conversation, namely that the goals he lists are desirable, it would benefit everyone significantly more for you to explain your basis for that opinion rather than go off on completely irrelevant tangents about mental health.
What can I say, the informal usage of the word irritates me.
I'm sure if he said that companies are kind of gay, and then proceeded to list a bunch of qualities that had nothing to do with homosexuality but rather the informal usage of the term (as we all know all too well from high school), it would be a problem. Same thing.
To his credit though Chade-Meng Tan earned some infamy by intercepting celebrities walking through the door and getting his picture taken with them :-) Not exactly "Good for Google" but not something that generally got you fired either.
I'm all in favor of encouraging self empowerment but recognize that it means you will get fired more. It is the cost of doing what you believe. Not everyone is ok with that and I respect that.
Say what? I've always followed that course of action, and so far - knock on wood - I have not been fired for it. And that spans about 25 years.
If what you believe in and what the company believes in are not aligned, you realize that usually well before there's any talk of firing. Just go look for a new job that is more aligned with what you believe in.
Its the challenge of the argument in the large vs the argument in the small. Specifically not everyone has taste.
I have met people who follow this mantra and have been fired repeatedly, I know folks like the one in the parent who have operated this way their entire career and have been quite successful at it.
Think of it as the "Don't try this at home" admonition. They say that because not everyone will understand both the risks and the implication of the risks, not because as reasonably cautious and intelligent person could not pull off exactly the same stunt "at home."
As with all things, if you find yourself getting fired a lot for doing the "right thing" in your estimation, then its time to take a look at your compass.
It's also important to understand that doing the right thing often does not mean ignoring broken processes; it means recognizing that they are broken, and fixing them. Of course, that's not particularly easy either, but it's worth doing.
Beware of "also want to find employees ready to take risks, make decisions, try new things, move fast and even break things."
Doing the above can be a sure say to get the bad kind of fired from a job, especially for large corporate environments. I have worked at places where they claimed that innovation was rewarded, when in practice they were so risk adverse any out of the box thinking was punished.
By all means push the boundaries but don't claim that your issues of climbing the ranks or being overlooked for interesting tasks is because you are a square peg in a round hole.
Meng's point is that getting fired is a good thing, if it happens because you did the right thing. It shows you that the company you work for does not share your values, and hence you shouldn't be working for them.
His point isn't that you won't get fired, it's a different way of looking at getting fired. A lot of people assume this is a universally bad occurrence. He's telling you that it's an important opportunity to find the place where you can act in accordance with your values and climb the ranks.
I've worked at a couple of companies where this was a winning strategy, but I've worked at more companies where attempting this sort of thing on a regular basis will cause problems that are more complex and "worse" than being fired.
At a lot of places you'll have a small group of really talented engineers who would all support the idea of doing "the right thing" even if it flies in the face of established process, and then you have everyone else, particularly people on other teams (sales, QA, project management, general management -- but sometimes also engineers that have grown accustomed to the familiar process, even if it is objectively broken), who will fight you tooth and nail on any deviation from the process simply because "that isn't how we do it here" and the end result is usually that you end up in a situation where you don't get fired outright (if you're recognized as a great developer, it usually takes quite a lot of boat rocking for you to actually get sacked), but things get politically poisonous to the point where even the engineers who support you in theory just want you to stop to ease the tension being created.
As others have mentioned, this advice is very situation and probably serves people much better in companies that are smaller or that at least have a more dynamic company culture. At many companies you'd save everyone (including yourself) a bunch of time and heartache by just quitting when the process becomes unreasonable and entrenched.
If you're using this strategy with the secondary purpose of determining whether the company is beyond the point of repair and that it is time to move on, then even if the employment of the strategy results in the situation you describe, it can still be used for its intended effect.
I've soon a great engineering manager get his team taken away from him after continuing to stand up for "the right way to do things" (from a technical perspective). He moved on and is at a much better place now.
Everyone works differently especially in the world of programming. Whether you're a web developer or code in C++, you most likely do not work the same way as your counterparts. You have a different thought process, you are unique, you know intricacies others don't, you're efficient at some things and slow at others. You are human and if you get fired for doing the wrong thing, you're damn straight you're in the wrong workplace and it's not your fault.
While I definitely believe you should follow tried and tested company policies on deploying software, coding conventions and even naming conventions because it's what has been working up until this point. I think sometimes a company needs a fresh perspective or opinion on something that could work better, maybe something has been working good enough, but could be better. You need to take risks, don't play it safe, but always remember to know when you're crossing the line between contribution and destruction. If you get fired for taking risks you are damn right you should be fired, because the company you are working for doesn't deserve an employee like you.
Doing the right thing doesn't mean be another follower. Doing the right thing means you always have the best interests of your employer in mind when making a decision that could affect your colleagues or direction of the company. I believe ignoring broken processes isn't doing the right thing.
Some people prefer roads already paved and others prefer to make their own way somewhere by paving their own way, taking risks to get there. Inevitably all roads lead to Rome. Unless you're going sideways through an airport door, then you're probably going to Bangkok.
I follow a similar strategy when I'm interviewing for a job. I play it a little loose and speak freely. If they don't have the good sense to realize that questions about my resume or github code are more important than white boarding and programming riddles, then I don't want work for or with them. When I'm interviewing to hire someone, I reverse the situation and try to get them to loosen up. The interview process is a window into company culture.
Same goes when I'm setting up partnerships for STEAM classes with schools. Schools can be strict with their staff and their students. I don't ever want to put forward a persona that suggest I will also be strict or by the book because that will never work out. No one will be happy.
I suppose if I can't ever find a job and no one will let me teach, it's time to re-examine my personality. Until then, no reason to keep my disregard for bureaucratic norms and fake corporate civility a secret.
I completely and wholeheartedly disagree with this post.
Though Google might be the pinnacle of employment, at most jobs, if you leave, you can often get a salary or rate increase. On top of that, some employers will ask if you got fired and you have to explain that, even if you were only laid off.
Or, you could just work for a company that won't fire you for doing the right thing. I've turned things upside down a number of times, but if the outcome was correct, I never felt even remotely that I would be fired.
In any big company, I'm sure that anything you do which is not based on manager's request is potential career killer. I understand that some new initiatives might be good for the company as a whole but, from employee perspective, upside is so small while downside can be disastrous.
On other hand, if you do have initiative to do things on your own then a big company is probably not a place for you.
The skills required to do a job and the skills required to keep a job are very different. Not many people possess both types of skills: one skillset means you need be quite profound, while the other means you need to be quite petty.
I wish more people would follow this philosophy. There's nothing more annoying than people that follow the letter of the law without thinking about why it was established in the first place. Most (good) companies will easily forgive breaking the rules if you're doing it for the right reasons with good results.
The point of "the rules" is to protect the company in case someone does something really stupid on their own ("oy! it was against our rules!"), but I don't think competent executives are /that/ tied to them if people break them for a good reason.
I've always found the "letter of the law" types to be the most dangerous sort around, and that's not at all limited to programming. They're the ones who make authoritarianism work, the ones who tattle at the first sign of "not following the rules", the ones with absolutely no imagination, no curiosity, and an unwillingness to think for themselves.
If there are too many of these around or too many in your management chain you should get the hell out. But maybe that's just me.
Indeed. One should refer to the rules when one's in doubt. However, this assumes that everyone in company is equally humble, excellent at communication, and proficient at their job. Since most companies are unable to hire that well (maybe it's impossible), no one would admit that rules are not mandatory.
This leaves an expert in a complex situation: everyone says you have to follow the rules, but you also know that The Right Thing is not in 100% compliance with them.
If you're humble enough, you choose to follow the rules, because—well—you naturally assume that people who wrote these rules are more proficient. Then, after a while, you become very disappointed when you see that you didn't do The Right Thing only because people who hire and make the rules didn't do their job properly.
If you choose to break the rules, you wait to get fired. If you don't, that may mean simply that nobody has noticed you. Or maybe they have, but chose not to speak to you about it—you can't tell, but you feel like you're an outlaw. And if you do get fired in the end, you become not so inclined to break the rules from now on (unless you have OP's self-confidence).
A fine approach, as long as you don't have bills to pay and no realistic chance of securing another job in the time you have to pay them. Not everyone has that sort of freedom that this sort of risk makes sense.
Build up a 9 month fund of your fixed expenses (mortgage, food, car payment, etc). It can be quite liberating to have a "Fuck you I don't want to work here any more" fund. I did it by laddering some CDs. Go ahead and get the 5 year term so you get the higher interest rate. If you have to cash it in early, the typical worst case is that you'll have to give up 1 or 2 month's interest.
Ally bank is currently paying 1.5% on their 5-year CD, with a 60-day interest penalty for early cash-out.
This is a variant of "it's easier to get forgiveness than permission", but with a more positive bent. Getting all the right permissions from everyone can be a monumental task, but just going ahead and doing things, then waiting to be corrected as needs be... gets more done.
I'd change the dynamic a bit. Do the right thing, and (continue to) network and explore alternatives.
If "they" do come after you, they may think more before attempting to lower the boom of "punishment" and "example". Particularly if your skills are still needed/valuable. You're that much closer to "fuck off", and it can be useful for them to know -- or intuit -- it.
TL;DR: Don't wait for "them" to "do something" vis à vis termination.
This also applies to some degree to waiting for them to address the original problem; however, there is a chance you are wrong, and the commonly cited problem that "people think they are smarter than they are".
Good outfits take the time to have open, involved discussions on such points. It's good to have your people proactively thinking about and attempting to mitigate bad scenarios.
If that's not what you're getting, do yourself a favor and move on (assuming you're lucky enough to have a career that allows this).
If you follow this strategy, then in a fairly decent environment, the first thing that will happen is that you will eventually be promoted or be given more responsibility. This sort of leadership is generally rewarded -- at least at first, within certain limits, and at the lower levels of a company.
This strategy will not work at the higher levels of a largish company, ultimately for reasons that would be politically incorrect to point out.