Have you always been fundamentally correct in the software designs you proposed? When you give out some design that was fundamentally wrong, you tend to lose the respect of your fellow team members. No matter what you do after that you end up being crosschecked for everything thing you propose after that incident. This is especially worse when you are new to a team and they don't know your past where you have had some good success stories. 

Maybe the reason you gave a bad design was because of lack of experience or knowledge or both in that area. How have you who have faced such a situation dealt with it? Is this like a one time thing in your career or does it happen on and off? Does one put this behind or does one in such a situation need to look for a new line of work? Some honest feedback please...

Thank you.

Once, the vp of a fortune 500 cost the company 1 million dollars with a bad business decision. When he turned in his resignation to the C.E.O the response he was given was, "I just invested One Million dollars in your education and now you are trying to leave? I do not accept."

I grow tired of managers and other workers who are quick to blame a mistake on someone being a rookie or assuming that they are incompetent. There is only one way to become a good designer and that is to f@$% a few up. I don't care if my employees make a mistake, I care if they make the same one multiple times. The question is, how humble and how teachable are you? When someone presents your error to you, do you defend yourself first, or hear them out? If you are one of the rare guys who can swallow his pride and learn from it, then you are worth hanging on to. Anyone who you lose respect from for making an error once, is not someone who deserves your respect.

I personally had to rewrite the first two projects I designed at least twice, but you know what? I learned a ton, and though my employers were perturbed at the time, that was quickly offset by the efficiency I gained over time by being willing to learn from my mistakes.

As to the humiliation aspect and how to recover, I have two pieces of advice. First, people forget over time. Also, when someone else has the spotlight on them, they will screw up too. Then all will be equal again. Second, don't be an asshole to others when they make honest, learning, mistakes. In fact, you should encourage them unless they just really need a firm kick in the ass. You can over time help change the culture of your team by remembering how you felt when you made an honest mistake. You will eventually inspire people to be better programmers, designers, and human beings.
