Tuesday, November 11, 2008

Strategy for Winning


I believe that any organization worth being a part of is an organization that strives to win.  Something within the spirit that strives to part of a winning team. I personally can’t imagine being excited to work in an organization that merely settles for second best. And anyone of quality I’ve ever encountered feels the same way.

In my opinion there are at least 5 basic ingredients for any large organization to win, mostly irrespective of what the organization is trying to win at. Another way to say this is that these are some of the basic things that any organization has to do right in order to succeed. They are:
  • Strength of leadership and faith in that leadership
  • Overall strategy to win as well as a clear definition of what the organization is trying to win at
  • A clear understanding, at each level and group within the organization, what part that group plays in the execution of that strategy
  • What organizational support and infrastructure will be put in place to ensure the successful execution of that strategy
  • Whether the right people are in the right places in the organization in order to make sure everything happens

Strength of Leadership, Faith in Leadership

The larger an organization gets, the less likely that success will happen spontaneously. This is because the greater the size of an organization, the greater the amount of organizational entropy. People are naturally motivated by different things and move in different directions. The more people you have, the greater the variety of motivations, and the greater amounts of pull in different directions. In a small startup of 10 people, it is much easier to get everyone on board and pulling in the same direction as compared to an organization of 10,000 people. What this means is that the greater the size of the organization, the stronger the leadership has to be in order to guide the organization towards a common goal. But that much is common sense, and should not come as a surprise.

Something just as important that doesn’t usually get as much attention however, is an organization’s faith in that leadership. An organization’s faith in its leadership is directly correlated with the leadership’s ability to align that organization towards a common goal. When there is faith, the people will tend to trust the direction set by the leadership and spend more time executing and less time second guessing. When there is little faith, every ambiguity or setback is an excuse to question the leadership’s judgment. It is extremely difficult to align on anything in such an environment.

That being the case, what are the characteristics leaders might exhibit that might either increase or decrease people’s faith in them? Among them are:

Openness and Honesty - It is easy enough to be open and honest when times are good, but what about when times aren’t so good? Intelligent and informed people have a low tolerance to anyone or anything they perceive as being less than completely truthful. Attempts to sugarcoat or withhold information tend to decrease trust in such people. Telling it like it is, no matter how bad the situation is, and owning up to mistakes, will buy more trust.

Decisiveness - Are the leaders willing and able to make tough decisions or are they trying their best not to rock the boat? Are they willing to make real changes that are needed (and might be difficult) in order to win or are they content to shift people around and hope for the best?

Informed - Do leaders make decisions based on the best information available? Do they strive to learn from their previous mistakes or do they just try something new if the previous plan didn’t work as expected? Are they taking known and calculated risks or are they just going with their gut? How thorough are they in verifying the correctness of the assumptions that their decisions are based upon?

Strategy to Win

Strategy is not just what you want to do in order to succeed. It must also take into account the conditions of the environment and your organization’s ability to execute within that environment. You want to be the number one sprocket maker in the world? Great. Is this a good time in the market to be making sprockets? Does your competitor have a sprocket making advantage that you don’t? Are you able to even put enough focus on sprocket making given than most of your people are tied up working on spindles?

An organization that it’s on a path towards winning should be able to say exactly what it’s going to win at. It should also be able to clearly articulate how it’s going to win, under the conditions of the market, its competitors, and its own internal capabilities, both current and future. “Cutting costs” doesn’t tell me how you’re going to win. “Focus on innovation” doesn’t do it either. What you need to tell me is a viable story of how you’re going to get from point A (where the organization currently is) to point B (the organization winning).

Having a viable strategy isn’t nearly enough of course. The strategy should be well communicated to as much of the organization as practical so that people at all levels of the organization will be able to plan and act in accordance with it. In addition, the fact that the leadership has a solid and viable strategy should not be kept a secret, advertently or not. The fact that such a strategy exists, and is well disseminated, and is openly acted upon by all levels of the organization will help to align the organization under a common purpose and give the people a better sense that the organization knows what it is doing. Conversely, if most people in the organization don’t know how they’re supposed to win, we go back to the problem of lack of faith in the leadership and different people pulling in different directions.

Strategy Elaborated

An organization’s single, common strategy to win must be driven from the top. Indeed, it can be argued that it is one of the leadership team’s most important responsibilities. However, for any larger organization, the top level strategy will not be enough to derive a complete execution plan. The top level strategy by necessity will be too abstract, and it will be up to every level and group in the organization to elaborate upon the portion of the strategy provided to him or her from one level up.

Since organizations are typically already organized hierarchically from abstract to well defined responsibilities, the same organizational structure can be used to elaborate a top level strategy into appropriately detailed strategies and plans at every level of the organization. Not only does this allow the organization as a whole to “fill in the gaps” of the high level strategy, it helps unite the entire organization under one common purpose and goal.

The importance of being able to understand, for any individual, how his work contributes to the company’s overall strategy to win, seems like common sense. But too often it breaks down, and people once again have difficulty understanding how their work relates to the success of the company overall. There are many things that can contribute to this breakdown, but there are two things that often fail to happen to help ensure that breakdown doesn’t occur:

  1. People at every level of the organization are responsible for elaborating and developing the strategy at their own level with his/her peers and manager such that the strategy at that level aligns with and supports the strategy one level above.
  2. People at every level of the organization are responsible for clearly articulating how the strategy at its own level fits into the organization’s overall strategy to the organization one level below.

If both conditions are met at all levels of the organization, there should be little question as to why any work is being done or how it relates to the organization as a whole.

Ensuring Success

Everything mentioned above has mostly to do with planning. But planning is only part of the equation. The other important part (and some would argue more important part) is execution. Defining a strategy is good, and clearly communicating that strategy as well as elaborating it at all levels in the organization is also clearly good. But how well will the organization execute it? Furthermore, how will we know how well the organization is executing, for when we need to make adjustments when something doesn’t go according to plan, either due to internal or external factors? Finally, how will we know the strategy is even working at all (that is, helping the organization to win)?

The feedback mechanisms that will indicate how well a strategy is being executed and whether or not changes need to be considered, need to be thought up as part of the execution plan, not after the fact. Again, this needs to happen at all levels of the organization, with the level of detail appropriate to that particular level. This is more important for larger organizations than smaller ones because large organizations have much more momentum once it gets going in a given direction, and it becomes more difficult to change course as a result. Often times, by the time you realize a need to change in a large company, it becomes too late to implement that change effectively. Smaller companies are generally more nimble and can afford to make changes without nearly as much damage. Changes in large organizations are generally much more costly. But still, change is necessary. No organization, big or small, will get it right the first time, and the environment changes regardless of how well thought out its plans are. The key then, is to reduce the cost of change by implementing change early enough, before too much momentum has set in, and implementing change only where they are necessary. Both these mean proper instrumentation of the organization so that flags are raised when they should be and that the right information will be available to make the right decisions when the time comes.

The Right People

If there is one thing that makes all of the above even possible is having the right people in the right position at all levels in the organization. Strategy communication, buy-in, elaboration, execution, and feedback needs to happen at all levels of the organization. If one link in the organizational hierarchy isn’t up to the task, it’s very difficult to guarantee the results of the organizational levels below him. The best you can hope for is that his department manages to stumble forward in spite of him. In the worst case, his department can actually subtract from the organization’s overall ability to execute due to conflicting priorities, dependencies, or even just distractions.

This aspect makes it especially difficult for large organizations because the reality is, finding the “right people” to fill the right positions is incredibly difficult. There just aren’t that many “right people” to go around. But even given the situation, the best attempt must be made. No amount of clever planning or strategy will make up for not having capable people in key positions to drive that strategy forward.

We’ve already established that every level within the organization should have a strategy and plan with the level of detail appropriate to that level. What’s also needed is to have the right people drive the key aspects of the strategy at every level. While not everyone within a given group needs to be a superstar, there will aspects in any plan or strategy that will be more critical to the overall success than others, either because of important dependencies or because of high cost of failure. It is the manager’s responsibility, at every level, to make sure these positions are staffed by capable people. And if the manager can’t do that, for whatever reason, then he can’t guarantee his results to his manager either, and a flag should be raised.

Putting It All Together


It should be noted that the topics mentioned all go hand in hand. It will be common for most companies to have one or 2 of the bases covered, but that by itself is not enough. I came to this realization in my previous company, when I raised the need to have an overall vision for the company several times. After hearing the need not only from me but from other people in the company as well, our CEO finally relented and spent time formulating and articulating his vision for the company. And it was an intriguing vision too. Unfortunately, operation wise, the company did not execute significantly better after the vision was established. Because outside of now having a shared vision, nothing else in the company really changed. The vision was necessary, but not sufficient.

Strength of leadership, having a viable strategy, elaborating that strategy throughout the organization, providing the infrastructure to support strategy execution, and having the right people are all necessary, in my opinion, to make real progress towards winning. It is not enough to say your company has only one or two of the five bases covered, or even all of the bases somewhat covered. A thorough analysis of where your company may fall short in each of these areas, and how to address those shortcomings, may also be required.

Sunday, February 24, 2008

Building Trust


I haven't updated in a while, so I'm going to cheat and publish a couple of things I wrote a while back. Hope you don't mind.

The most effective leaders, in my experience, have an ability to build trust with the people around them, most importantly the people they lead. They have an ability to personally connect with the people they lead, and through that, they are able to build an environment where the team works more effectively together. The team spends less time questioning what needs to be done and more time doing it. They spend less time passing responsibility and more time supporting one another. The team learns faster as well, because feedback from the leader and other team members are carefully considered instead of dismissed.

But how to do it? Unfortunately (or fortunately, depending on how you look at it) there is no systematic way to do it. Building trust is an art, not a science. This is because people are people, and individuals are individuals. In some far distant future we may have enough of an understanding of human behavior to deterministically predict how people act and react to the point where we can reliably design a process to build trust. But that will probably come after some of the easier problems are first solved, such as the Grand Unified Theory, world peace, and the meaning of existence.

Until then, all we have are some guidelines, and the dependency on people to learn, practice, and improve. Just as there is no formula to make you a great musician, there is no formula to teach you how to build trust. You start with some guidelines, practice them, see the results, adjust, and repeat. How fast you learn depends on how consistently you practice and how well you observe the results and learn from them.

Guidelines for Building Trust as a Leader

The following guidelines are ones that have worked for me in my experience. I do not claim them to be the only way or the best way, only that I’ve gotten good results with them. Your results will vary depending on your personality and experience, the people you are leading, and how you well apply the guidelines.

They are listed as follows
  1. Sincerity and Honesty
  2. Have the best interests of your people in mind
  3. Strength as a leader
  4. Real trust in your people
  5. Fairness
It is difficult, if not impossible, to build trust without these qualities. Absence in any one of them severely compromises your peoples’ ability to trust you.

1. Sincerity and Honesty
It should be common sense that if you are dishonest and insincere, people will have a tough time trusting you. But for many people, there are degrees of sincerity and honesty. And that’s the problem. You can’t really be selectively sincere or honest just some of the time. You’re either sincere all the time or you’re not really a sincere person. You’re either honest all the time or you’re not really an honest person. With a person who is truly sincere and honest all of the time, I can trust him whenever I interact with him, even when I don’t find the interaction to my liking (e.g. disagreement or conflict). With a person who is sincere/honest 95% of the time, I will have no problems trusting him when I agree with him. But when I don’t like what I hear, I will wonder if this is the 5% of the time he’s being dishonest.

With that being said, just what exactly is sincerity? What does it really mean to be honest?

In my opinion, sincerity is truly meaning what you say. It means everything you tell another person is heartfelt and not manufactured. It means saying something because you believe in it, and not just saying something to get people to like you better or just to make them respond to you a certain way. It also applies to listening to people. Feigning interest is not sincerity. Being only 50% involved in a conversation is not sincerity. If someone believes you to be sincere, they will trust that you are not bs-ing them. They trust that you really care about what they are saying and that they aren’t wasting their time with you.

Honesty means not lying of course, but it also means being truthful. What’s the difference? A person who makes a mistake but doesn’t admit it isn’t technically lying, but he also isn’t being truthful. Not giving honest feedback to someone who needs it isn’t lying either, but it also isn’t being truthful. Honesty means the pursuing the truth, no matter when, where, or how. This also means actively stamping out dishonesty. If you know someone in your team who is being dishonest, and you allow it, or if you allow yourself to be dishonest (especially if you allow yourself to be dishonest), you are not really being honest.

2. Have the Best Interests of Your People In Mind
As a leader, your job is to lead people. Another way to look at it is that your job is defined by how well your people execute. It’s never about how great you are. It’s about how great your people are. It’s not about you delivering. It’s about your people delivering. A person can deliver by micromanaging every aspect of their people’s work, apply constant pressure to get them to work harder, and makes sure everything goes her way. But she is not really being a leader. She is being a slave driver. She can be highly effective at doing what she does and even consistently deliver on time, but she is still a slave driver.

No, a leader is someone who sets up the conditions so that her people can deliver to the best of their potential. This means that she makes sure that her people have the tools, the skills, and the opportunities to learn so that they can execute and deliver, both near and long term. It means she proactively removes those obstacles that prevent her people from learning, improving, and delivering. In the end, her people deliver, not her. Note that delivery is still key. You are not a very effective leader if your people cannot deliver.

People come first. Not sometimes. Not only under certain circumstances. They always come first. What we’re talking about here is building trust with your people, and in order to do that, they have to trust that you will always put their best interests first. Even when you don’t (more on this later). If their needs come second to anything else, trust will suffer. When you make a decision they don’t like, they will begin to wonder who’s side you’re really on.

This may raise a few eyebrows because shouldn’t it be the company that comes first? Certainly the execs and most managers think it should be, but if we’re talking about building trust, maybe not. First of all both the company’s needs and your people’s needs are important. You really can’t focus on one and ignore the other. If you only spend time on your people’s needs and let the company’s needs suffer, pretty soon your ability to meet your people’s needs will suffer as well (no money to hire more help, give raises, etc.). Similarly, if you only address the company’s needs and ignore the needs of your people, your people will be less productive (or leave) and then the company suffers. So really both the company’s needs and your people’s needs have to be met. The only question is which is more important. Look at it this way: If you prioritize your company’s needs first, the company gets the benefit of quicker response time, but the trust with your people will not be as strong as it can be. It might not be the end of the world, but consider the other way around. If you prioritize your people’s needs first, you can build much stronger bonds of trust with your people. With this trust you can help your team operate better and become more productive. They will respond more quickly to you when you need them to. In the end, the company still benefits.

Finally a quick note about putting your people’s needs first, “even when you don’t.” You will on occasion encounter scenarios where you cannot put the need of an individual first, because doing so will hurt the team. You may have to make a decision that will sacrifice the needs of that person for the greater good of the team (such as removing a poor-performer). How is this different from putting the needs of the company before your people? Well, you don’t manage the company, that’s the CEO’s job. You manage your people. It’s the needs of your people first, not the need of a particular person first.

3. Strength as a Leader
Regardless of what you think of his politics, former US President Bill Clinton made an astute observation during the 2004 presidential campaigns. He said that people prefer a leader who is strong and wrong to a leader who is weak and right. Whether it is because people desire a clear sense of direction from their leaders, or perhaps genetics (nowhere in the animal kingdom will you find a pack led by a weak leader, or not for long anyway), we innately respect those who are strong, and have a low tolerance for people who are supposed to lead us, but are weak.

Many people mistakenly think that a strong leader is one who is loud, or stubborn, or always insists on getting his way no matter what. Actually, all it really takes to be a strong leader is for you to provide security to the people you lead. People want to follow a leader who knows what he’s doing and knows where he’s taking the team. They want to be able to know that, as long as they trust their leader, that success is assured and they will not have to worry about fending for themselves. Now if you have a leader that isn’t confident in himself, who constantly second guesses decisions, who doesn’t inspire people, who doesn’t have a clear sense of direction, who doesn’t know what he wants, how can you put your trust in him? In the wild, you and your pack will be eaten by hyenas before long. People tend to better respect leaders who are confident, decisive, and will stand up for their principles.

Don’t take this to mean that as long as you’re strong and provide security to your people, you’re automatically a great leader. Confidently leading your people off a cliff doesn’t say too much about your leadership abilities. You still need wisdom, intelligence, and the other 4 guidelines. But you need to be strong as well.

4. Real Trust in Your People
Trust is reciprocal. If you want people to trust you, you have to be able to trust them. Can you imagine trusting someone who distrusts you? This is a very simple concept, and not difficult to grasp, but it’s surprising how often people’s behavior contradicts this. The reason why micromanagers have such a difficult time with their people trusting them is because the micromanager doesn’t trust his people. By micromanaging his people’s work, he is essentially saying “I don’t trust you to deliver this on your own without my help. You are so incompetent, I have to lead you every step of the way to make sure you do your job correctly.” If you want to foster a culture of trust, you have to trust your people to do their work. If you don’t trust a person to do a piece of work, don’t assign it to him in the first place. Assign it to someone else. If you don’t trust any of your people to do work without your interference, then maybe you have a problem with trust.

That being said, there are times when you have to take a more active involvement in a piece of work. If the work is very important and the cost of failure is high, then you may not be able to afford mistakes. You may be forced to manage more tightly. But not all of the work that your people do is like that. There are plenty of projects or tasks where your people can make mistakes that won’t mean the end of the world for your company. Even within a critical project, there are non-critical-path tasks that you can afford occasional mistakes. What you lose is the time it takes to correct those mistakes. What you gain is what your people learn from those mistakes, their personal growth as a result, and their trust in you for giving them the freedom to make mistakes.

“Real” trust in your people means that you trust them enough to put your reputation on line in delivering something. They understand that if they fail, you fail as well. Good people will work harder to make sure you don’t suffer as a result of their work. They will try to reward your trust by putting in the extra effort to make you look good. If you don’t trust them and they don’t trust you, you are on your own.

5. Fairness
Fairness is like sincerity and honesty. You’re either fair or you’re not. You can’t be selectively fair or only part-time fair. Almost everyone has a very strong negative reaction when they perceive that they are being treated unfairly. If people perceive that you are playing favorites, or that you are inconsistent with your praises and admonitions with different people, then they have no reason to believe you when you say things like “results are important”, or “quality is important”, or “working hard is important”. Those things may or may not be true, depending on how well you like the person.

Note that how people perceive fairness is key. It makes no difference if you think something is fair from your perspective if they think it is unfair from theirs. If their perception tells them that they are not being treated fairly, then they are not being treated fairly. What this means is that as a leader, you have to make the extra effort to align your two perspectives (if she is resentful about being treated unfairly, it is unlikely that she will make the effort to understand your point of view). In order two align the two perspectives, you must understand her perspective first. If you just try to force your perspective on her, what you’re really saying is that your perspective is more important than hers, by which you are being, well, unfair. Many people, leaders or not, make the mistake of assuming that the pristine logic of their viewpoints will be automatically evident to all those who hear it, as if you’d have to be stupid not to come to the same conclusions they’ve come to. But this is a huge fallacy. You draw your conclusions based on your personal experience, your personal understanding, and your personal “mental model.” Other people who have different experiences, understanding, and mental models can come to entirely different conclusions given the same situation. This is why what is perceived as fair from one perspective can be completely unfair from another. Don’t make the mistake of assuming your own perspective is the correct one. Work with the other person to really understand their perspective as well, and what the root cause of the misalignment is. You may both learn a thing or two.

If someone perceives you as fair, all the time, to everyone, then they can begin to trust you. It is your integrity that they trust. When you give a person constructive feedback, she will trust that you are being honest with her and not just singling her out because you two don’t get along as well as with others. Similarly if tell her that she’s doing a good job, she can have confidence that you really mean it and are not just saying so because you like her better.

Conclusion
Building an environment of trust with your people is not easy, and nothing is guaranteed. You can follow all of the guidelines to the best of your ability and there may still people that you won’t be able to connect with easily. But that’s why it’s important to view them as guidelines and not rules or a 5-step process. To be successful, you must continually practice, experiment, and learn. Sincerity, putting your people’s interests first, strength in leadership, trusting your people, and being fair are all critically important ingredients to building trust, but you still must use your judgment and wisdom in applying them.

My Phone Screen Process



Here's a description of my phone screen process that I wrote a while ago.

Situation
  • Hiring people into an established team is different from hiring people to start a team. With an established team, the new hire can rely on the team to provide the coaching, the training, and any other general help. On the other hand, people hired to start teams will need to be much more independent, be able to think on their feet, and be able to solve problems on their own.
  • The eventual team will be a reflection of the intial team member(s). If you have medicore initial team members, chances are the team will be mediocre. Ideally, proven, experienced people should "seed" the team, to increase the chances of building a solid team. Without this seed, it will be a gamble, even if you find really good candidates to hire (they won't be proven yet).
  • Given the situation, we still have to build the team up with good people. Never start from anything other that "A" people.
Goals of Phone Screening
  • Figure out whether you like this person
  • Briefly figure out if the person is genuine, or is just listing a bunch of buzz words on the resume
  • Figure out if the person knows the basics
  • Determine if you would like to work with this person, and if his/her personality would be a good fit with the team
  • Weed out the obvious fakes, prima donna's, unmotivated, low energy, etc. people
NOT the Goals of Phone Screening
  • The purpose is NOT to do a thorough evaluation of how good the candidate is
  • The purpose is NOT to come to a decision on whether or not you should hire based on the phone screen
  • The purpose is NOT to spend too much time on anything that could be done better face to face
The main purpose of a phone screen is to figure out if the person is interesting enough to bring in to do an actual interview. Nothing more.

Because of the cost in time of doing interviews (not only your time, but the team's time, HR, upper management, etc.), I usually don't like to bring people in unless I think they are interesting. If I'm not sure whether a person is interesting enough, I will usually pass. One might argue that we'd be letting potentially good candidates fall through, but if you look at the % of people that we interview in this company that we actually want to send offers to, it is a very low %. On the other hand, if you bring someone in (because you didn't do a good enough job at the phone interview or if you are not confident enough in your own judgement), then you end up spending much of your team's time and HR's time that day on a low percentage gamble.

Guidelines
  • Pay as much attention (if not more) on how the candidate answers a question as the answer itself. The level of responsiveness and confidence will reveal a lot about his/her intelligence and maturity
  • Try to find out what is important to a candidate, what he/she is passionate about. But don't ask it directly because you will get prepackaged answers. If you can figure it out, you'll have a much better sense of whether or not the candidate will be motivated when working in your group. If her passion is aligned with your group's work, she will be motivated. If not, she won't.
  • Pay attention to how ambitious this person is. The more ambitious the person is, the less you'll have to do drive the person to improve.
  • Do not spend more than 1/2 and hour total on the phone with the person. It should not take you longer than that to figure out if the person is interesting enough to bring in. Sometimes it takes longer because the candidate takes too long to answer questions, in which case you should cut the candidate early anyways.
  • For basic engineering questions, pick 2 or 3 that will give you a good feeling of how "senior" this person is. Do not attempt to scope out the breadth or depth of his knowledge.
  • Ask them how much they want. No sense in spending more time with this candidate if you cannot meet his minimum requirements. (only if you're the hiring manager!)
Normal Flow
  1. Introduction, tell each other about yourselves
  2. Get to know the person a little better, what's important to him/her, etc. (if feeling not good, wrap up early)
  3. Quiz (briefly) on the basics (if feeling not good, wrap up early)
  4. Sell the company, sell the team, get the candidate more interested in working with us
  5. Answer questions
  6. If you're pretty sure you want the person to come in for an interview, ask for salary expectations (only if you're the hiring manager!)
Common Questions
  • What interests you about working in this field?
  • Where do you see yourself 1, 3, and 5 years from now?
  • What is the most important thing to you in a work environment? (If they ask you to be more specific, just ask them to tell you the first thing that pops into their head when you asked the question)
  • What is the difference between a good engineer and an exceptional engineer? A lot of people will interpret this as a question of the difference between an average engineer and a good engineer, but that's not what we are looking for

Saturday, January 12, 2008

No Time to Do It Right, But Plently of Time to Fix What's Wrong

Do you take the time to test your code adequately? Do you write unit tests? Do your unit tests cover a majority of your code? Well, why not? Oh right, right. No time. The project is due in 3 days and you have 10 days worth of work. You're working nights and weekends as it is and your manager is breathing down your back. I mean, how can anyone be expected to spend time on writing unit tests under these conditions right? If quality was so important to them, they'd give you enough time to do things properly. Hey, you care about quality, but what can you do, right?

First of all, no, not right. Secondly, if you care enough about something, you'll find a way to do it regardless. So the question is, do you care enough about the quality of your work to stand up to management pressure and peer pressure? Or are you just content to keep your head down, do mediocre work, and not rock the boat like everyone else? If it's the latter stop reading and go away. For those of you who are tired of sacrificing your personal principles, and want to be able to look yourself in the mirror every day, maybe I can help.

By now, it should go without saying that the additional time it takes to do quality work always pays off. You should know through your experience that every defect caught early (say in development) is less costly to fix than if it were caught late (say QA or after release) by a factor of 10 to 100, or possibly more. Furthermore you should realize by now that the reason you have to crunch at the end of every single damn project to fix those remaining high priority bugs is a direct result of you and your team's sloppy work in the first place. And you won't even be able to fix all the bugs, only the "high priority" ones. Finally, you are missing out on one of the most rewarding aspects of doing quality work. Being known by your peers for doing quality work.

Ok, ok, so how do you fight "the man"? What can you do when management is pressuring you with an unrealistic time line that will compromise the quality of your work? Here are some thoughts:
  • Be real. If you know in your heart that you can't deliver that feature in 2 days that you are confident in, don't commit to it. If it will take 4 days, it will take 4 days. Don't compromise. Don't succumb to peer pressure. Seriously, grow a spine.
  • Ok, so they're asking you to work overtime to compensate for it, what do you do? First of all, did you previously agree on the unrealistic schedule? Or maybe the additional work is a result of a mistake you made? If so, man up and do what you promised. That should teach you a lesson. But if you have been honest an forthright with your work estimates throughout the project, and especially if you've done your share of pointing out the potential risks in the project, then it's your project manager that has screwed up, not you. Should you work overtime to cover his ass? Depends. If you do, he owes you big time (and make sure he knows it). If he's the kind that returns favors, then your hard work is worth it. This is how bonds of trust are built. If not, well, sucks for you, but at least you know who not to work with in the future.
  • What if he's pulling rank? Then you have to pull out the big guns as well. Simply say this, "If you want me to do this in X days, I will. But I will not have time to test it and there's a strong possibility that it will be crap. So I will not be able to stand by it. But if you want it in X days, it's the best I can do." If your manager is even half-way competent, he'll either back off or try to find another way to work around it, such as getting you additional help or off loading you some other way. If he insists anyway, then watch out. Not only is he not even half-way competent, he is also lacking integrity and will likely blame you anyway when something goes wrong. Weather the storm and avoid working with the person in the future. If that's not an option, I'd look for another job, but that's just me.
People who stick to their principles will find that life is often harder for them than if they were just to go with the flow. But it's only the people who stick to their principles who can do quality work. Any lesser person will be dragged down by the mediocrity that seemingly surrounds them.