In the Real World: Shame is the feeling that associates with failure to adhere to community norms. Some communities have norms around clothing. Shame informs people's decisions to wear clothes to work and, conversely, no clothes to public showers. Individuals who try to block shame may end up with too few or too many clothes on. English spakers call people who block shame, "shameless."
In Software: Other communities have norms around coding practices, exception handling, input validation, or naming conventions. An engineer who tries to avoid shame may refuse to let his peers review his code. He may resist source control and unit testing. He may resist criticism and suggestions from his managers or users. His component gets less auditing and testing then others. It is more likely to fail in production, bringing big-time shame to its author.
Who's with it: Pair programming and open source celebrate shame and thrive on it. Engineers who follow these practices welcome peer review and criticism. They have strong sense of community norms and don't hesitate to shame those who violate them.
In the Real World: Rejection associates with incompatible relationships. It guides people away from relationships that don't work and towards ones that do. A man who is willing to feel rejection learns quickly who "his type" of woman is. A man who is unwilling to feel rejection may continue proposing relationships to women who have no interest in him. If he persists in ignoring rejection, he can experience it big-time from the criminal justice system.
In Software: Feature creep is the engineering manifestation of rejection blockage. The engineer who is unwilling to feel rejection can never say "no" to a feature request. The product that attempts to please everybody ultimately pleases no one, and the engineer gets to feel big-time rejection from the marketplace and the company's shareholders.
Who's with it: Henry Ford famously writes of the Model T, "Any customer can have a car painted any color that he wants so long as it is black." Ford is willing to experience rejection from customers who want more features than he is willing to provide. Ford experiences over 15,000,000 customer acceptances of the Model T.
In the Real World: Disappointment associates with breaking commitments. It helps people assess the level of commitment a counterparty brings to a relationship, and manage their own commitment proportionally. A woman who blocks the feeling of disappointment may overlook her fiancé's lack of commitment during courtship. She may experience disappointment big-time if he breaks his commitment and abandons her at the altar.
In Software: The engineer who blocks disappointment may indiscriminately introduce third-party dependencies into his software. He may experience big-time disappointment when a vendor drops support or releases an incompatible upgrade to the library, program or platform that the software now depends on.
Who's with it: Paul Graham funds angel-stage startups. He likes to experience disappointment early, preferably before giving money to founders without enough commitment: "If you look at the YC application, there are more questions about the commitment and relationship of the founders than their ability." (quote source)
In the Real World: Fear associates with risk. Experiencing fear helps people bring their risk exposure to a level they are comfortable with. A driver who celebrates fear keeps his vehicle roadworthy and his speed safe. A driver who blocks fear buys extra insurance instead. The fear-less driver gets to experience fear big-time when he wrecks the car, though he's OK because his insurance eventually pays for the damage.
In Software: An engineer who blocks fear may wish to buy insurance against errors. He may favor ornate specifications, static typing and formal verification. His compiler ensures that max_safe_speed and current_speed are both double precision floats. He gets to experience fear big-time when he finds that one value is in kilometers per hour, the other in miles.
Who's with it: Test-First development celebrates fear and controls risk. Unit tests can verify aspects of program behavior that are subjectively important to the user, instead of arbitrary aspects that are easy to check by textual analysis. The engineer who celebrates his fear can write unit tests that cover risk-critical areas to bring the risk of failure to a level that he is comfortable with.