<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>I. M. Wright’s “Hard Code”</title><link>http://blogs.msdn.com/b/eric_brechner/</link><description>An opinion column for developers.Brutally honest, no pulled punches.</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Permanently high plateau</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/06/01/permanently-high-plateau.aspx</link><pubDate>Fri, 01 Jun 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10312988</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10312988</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/06/01/permanently-high-plateau.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/5086.Ponytail.jpg" /&gt;&amp;nbsp;A friend asked me recently about one of his reports. He had a few concerns going into annual review calibration. His employee was a smart, strong, consistent contributor, well beyond entry level and independence (see &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;Level up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt; for reference), but he had plateaued. My friend was concerned that his employee didn&amp;rsquo;t recognize he had plateaued, and that he might calibrate poorly against his peers who still have growth potential.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Managers and employees frequently fret about plateaus and growth potential&amp;mdash;especially around review time. At what level is it safe to plateau, if any? Does a lack of growth potential mean a 4 or 5 review? Are people who&amp;rsquo;ve plateaued delusional if they don&amp;rsquo;t see it? Allow me to clear this up&amp;mdash;growth potential is a fairy tale and plateaus are nothing more than places to regroup. Think I&amp;rsquo;m delirious? I think you&amp;rsquo;re clueless.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;In Microsoft&amp;rsquo;s current rating system for reviews, a 1 means an employee rates in the top 20 percent relative to peers in the same discipline and level band, a 2 indicates the next 20 percent, a 3 is the middle 45 percent, a 4 is the lower 10 percent, and a 5 indicates the employee is in the bottom 5 percent. Rewards are directly determined by an employee&amp;rsquo;s rating (with the very top 5 percent receiving extra). Reviews happen once a year during the summer, though many divisions have a midyear calibration to help determine promotions and recognize performance issues.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What... what seems to be the problem?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;There are two different issues revolving around my friend and his employee: the nature of plateaus and the value of growth potential. Let&amp;rsquo;s take them one at a time.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Are plateaus permanent?&lt;/b&gt; Nope. Sure, everyone has limitations, and a man&amp;rsquo;s got to know his (just ask &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Magnum_Force"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;Hal Holbrook&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;). However, put the right people in the right situations and they can surprise you. When people plateau, that simply means they need to regroup, consider their situation, and either accept the plateau because they love their work or pursue a different situation that better suits their gifts&amp;mdash;even if that situation isn&amp;rsquo;t at Microsoft.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Is growth potential valuable?&lt;/b&gt; Nope. Growth potential is an intoxicating fantasy born of those who remind you of people you admire from long ago who became great (like yourself, I&amp;rsquo;m guessing). You know what is valuable? Actual growth. Actual results. We should hire people who show potential, but only reward them for realizing it.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Microsoft&amp;rsquo;s review system used to place value on growth potential. Thankfully, since 2011 that is no longer the case. The review system is now solely based on demonstrated results over time (both what and how).&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;I can't go any further&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What should my friend do about his employee who doesn&amp;rsquo;t realize he&amp;rsquo;s plateaued? Treat him like he hasn&amp;rsquo;t. Give the employee assignments appropriate for his continued growth. Either the employee will do well, proving the plateau was temporary, or the employee will fail to excel, sending both of you a clear message that you can discuss.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Mercurial managers might mention, &amp;ldquo;But what if the employee fails miserably? We can&amp;rsquo;t risk our business on someone who&amp;rsquo;s clearly not capable of reaching the next level!&amp;rdquo; First of all, cut the assumptions&amp;mdash;they&amp;rsquo;re bad for you and your employees. Second, any high risk assignment should have a mitigation plan. If you don&amp;rsquo;t have one, stop being a manager&amp;mdash;you&amp;rsquo;re incompetent (worse than plateauing).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;They expect results&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Will my friend&amp;rsquo;s employee calibrate poorly against his peers who still have growth potential? That depends&amp;mdash;what did his employee accomplish this fiscal year? How does that compare to his perky peers?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;People with stalled career growth can still achieve more than their current peers&amp;mdash;much more at times. Their perky peers may be less experienced and make more mistakes, technically and interpersonally. We shouldn&amp;rsquo;t reward perky people for their poor judgment, poor behavior, and poor results. Ignorance is a reason, but not an excuse. Our current rating system values proven results, not postulated potential.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;But if we don&amp;rsquo;t pay them extra, how do we retain people who have growth potential?&amp;rdquo; Help them grow! Give them stretch assignments to challenge their abilities and accelerate their learning. Give them mentors to teach and guide them through all the twists and turns of real experience. Give them thoughtful, constructive, and actionable feedback that hones their skills. Treat them with the respect and dignity that rewards people for exceptional work, not hotness.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Are we there yet?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;What if you are the employee who has plateaued? What&amp;rsquo;s your next move? That depends. What do you want to accomplish&amp;hellip;with your life? What role best puts you on the path to achieving your goals?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Knowing what you truly wish to do with your life is critical to happiness and true success. The trick is knowing which &amp;ldquo;you&amp;rdquo; to follow&amp;mdash;ego, heart, or spirit.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Following your ego means chasing your perception of success through others&amp;rsquo; eyes. This path may lead to fame and fortune, but people can end up feeling isolated, lonely, and hollow.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Following your heart means pursuing what makes you happy at your core. This may not lead to western culture&amp;rsquo;s vision of success or even a steady paycheck, but it does lead to happiness.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Following your spirit means seeking a higher calling for your life and serving a greater purpose beyond yourself. This path yields powerful feelings of connection and meaning for your life. It can also lead to cults and sappy memoirs.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;As with all things, you want a balance: ego to help you earn a living, heart to make you happy, and spirit to provide meaning in your life. Too much of any one of these can lead to trouble.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;One thing I&amp;rsquo;ve learned after a long career is that when you need to make a choice, and the options are balanced with no clear favorite, go with your heart. Your ego is insatiable and your spirit is with you wherever you go and whatever you choose. Your heart knows what truly makes you happy.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;I wrote about being fulfilled at a plateau in &amp;ldquo;When the journey is the destination&amp;rdquo; (&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;chapter 7&lt;/span&gt;&lt;/a&gt;) and &lt;/span&gt;&lt;span style="font-size: x-small;" size="2"&gt;how to best use your heart (gut) to help you make decisions in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/04/01/you-have-to-make-a-decision.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;You have to make a decision&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;It takes all kinds&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What advice did I give my friend with the plateaued employee? Don&amp;rsquo;t assume the employee has plateaued. Give him assignments appropriate for his continued growth, mitigating in case he falls short (true for any employee assignment). Discuss his strong results at calibration&amp;mdash;ensure he&amp;rsquo;s alongside those with similar proven results (not imagined). If the employee falters, take time with him to discuss his true aspirations as a balanced, complete human being. Help the employee choose a career path in line with his unique skills and personal vision.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;We don&amp;rsquo;t give up&amp;mdash;we evolve. We don&amp;rsquo;t reward potential&amp;mdash;we shape it. Great people come together at Microsoft to change the world. We need every talent and every insight. Instead of fretting about plateaus, we should be helping each other realize our dreams. When we do, we turn those dreams into a reality for the world.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10312988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Adventures+in+Career+Development/">Adventures in Career Development</category></item><item><title>Hired helpers</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/05/01/hired-help.aspx</link><pubDate>Tue, 01 May 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10298912</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10298912</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/05/01/hired-help.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/2678.Long-hair.jpg" /&gt;&amp;nbsp;There are never enough resources to complete our ambitious plans, so Microsoft is constantly hiring help&amp;mdash;vendors and contingent staff (CSG). Full-time employees (FTEs) are hired too, but the relationship is different&amp;mdash;at least it&amp;rsquo;s supposed to be.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Ever since the $97 million December 2000 settlement of the &amp;ldquo;permatemps&amp;rdquo; case, Microsoft has been very careful to treat vendors and CSG differently than FTEs. These days, processes and policies prevent permatemps. However, that hasn&amp;rsquo;t wiped out stupidity on this front. FTEs are still asked to do work with little growth potential that is far better assigned to vendors or CSG. Vendors and CSG are still asked to cover work that, if restructured, could yield far better results at a lower cost when accomplished by FTEs.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Why are FTEs doing vendor and CSG work? Why is work that is better accomplished by FTEs left to vendors and CSG? Two reasons: people are lazy and people are ignorant. Let&amp;rsquo;s expose the lazy and cure the ignorant.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;FTE doesn&amp;rsquo;t actually stand for full time employee; it means full time equivalent. Go figure. CSG stands for contingent staff g-something (group?). CSG is used at Microsoft to refer to individual temporary employees (&amp;ldquo;give that to the CSG&amp;rdquo;) and all contingent staff, although officially vendors are a form of contingent staff.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What am I supposed to do?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;First and foremost, the ignorant must learn the difference between FTEs, vendors, and CSG and understand which assignments they should be given.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;FTEs are employees&lt;/b&gt; managed and paid directly by Microsoft.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Vendors are companies&lt;/b&gt; contracted by Microsoft to do a specific statement of work (SOW). The vendor company selects which vendor employees are involved, with input from Microsoft, and the work can be ongoing (janitorial service) or fixed length (a marketing campaign).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;CSG are temporary workers&lt;/b&gt; employed by an outside agency. They are contracted by Microsoft to do a specific assignment over a limited timeframe (365 days or fewer). Microsoft selects the individuals involved from resumes provided by the agency, and Microsoft oversees the individuals, providing feedback to the agency.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Here&amp;rsquo;s a set of rules to help you assign work. Treat these rules as strong suggestions&amp;mdash;every situation is unique.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Primary assignment is super-secret.&lt;/b&gt; Use FTEs. At the very least, your VP should be involved in setting the policy of who works on what.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Primary assignment is ambiguous or open-ended.&lt;/b&gt; Use FTEs. Vendors and CSG should only be used for well-defined work.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Primary assignment does not provide career growth at Microsoft. &lt;/b&gt;Use vendors or CSG. Don&amp;rsquo;t assign FTEs to dead-end roles.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Primary assignment is ongoing.&lt;/b&gt; Use FTEs or vendors. CSG folks, also known as temps, should be used for temporary assignments.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Primary assignment is short and must be filled within days.&lt;/b&gt; Use CSG. FTEs and vendors take a minimum of a few weeks to hire. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are many other policies and guidelines for hiring and using vendors and CSG, and those policies vary by region. This list above helps you decide what sort of people should be assigned to what work, particularly within the United States. Let&amp;rsquo;s consider some examples.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Within Microsoft, you can tell who are FTEs, vendors, or CSG by their email aliases&amp;mdash;an alias starting with &amp;ldquo;a&amp;ndash;&amp;rdquo; indicates a CSG, an alias starting with &amp;ldquo;v-&amp;rdquo; denotes a vendor, and an alias with no dashes signifies an FTE. There are other dash prefixes, but a&amp;rsquo;s and v&amp;rsquo;s are the most common.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;In addition, the Microsoft badges people use to gain access to company buildings and resources are colored differently for different workers. FTE badges have a blue outline around the photo, while vendor and CSG badges have an orange outline. This has led to the FTE nickname &amp;ldquo;blue badge.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;No future for you&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The first two rules are basic&amp;mdash;highly confidential, ambiguous, or open-ended roles are for FTEs. What about the third rule&amp;mdash;jobs with limited growth potential? Receptionists, gardeners, and the janitorial staff play important roles at Microsoft, but they aren&amp;rsquo;t growth roles at the company. They are done by vendors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What about folks who send the daily build mail, localizers, or event planners? Those jobs could be designed to be entry level roles that lead to careers in engineering or marketing, but if that&amp;rsquo;s not the plan, then FTEs shouldn&amp;rsquo;t do them.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you as a manager can&amp;rsquo;t describe how a role is leading an FTE toward his or her career aspirations, then that role needs to transition to a vendor or CSG. The fourth rule often determines the selection. If the role is ongoing, it should be filled by a vendor; otherwise, a CSG could probably handle it (the exception being highly specialized vendor work).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;A strong indicator of an ongoing dead end role that should be vended out is an uncommon, yet low-level role. An example is localization. Microsoft used to have localizers on staff. These were low-level jobs that served an ongoing need, yet didn&amp;rsquo;t have much of a growth path. Our localization leadership reexamined our business model and decided to use a combination of vendors and crowd sourcing for our localization needs, with FTEs continuing to guide the overall process.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;This is just temporary&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Looking at the list of rules, most seem to point to FTEs or vendors. When are CSG folks the right choice? When it&amp;rsquo;s a temporary assignment for a specific purpose that requires oversight or must be filled quickly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For example, let&amp;rsquo;s say you need to hire three people immediately to code and/or test a straightforward new feature to meet one of those random requirements that crops up from time to time. You could pull FTEs off their current assignments to handle this fire drill, but they are working on other critical work items. Hiring three temps to code and/or test the feature makes sense.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Let&amp;rsquo;s say an engineer on your team suddenly needs to leave for a few months to care for a family member. You can&amp;rsquo;t afford to scope back the engineer&amp;rsquo;s work, but you can hire a temp for a few months until your engineer returns. The temp probably won&amp;rsquo;t replace your engineer&amp;rsquo;s skill set precisely, but between the temp and the rest of your team, you can handle all the loose ends.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are many other examples, but they all have the same basic structure&amp;mdash;you&amp;rsquo;ve got a temporary assignment for a specific purpose that requires oversight or quick action. Otherwise, you&amp;rsquo;d use FTEs or vendors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What now?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Your temp does a great job on the new feature or covering for an employee on leave. Now the feature is done or the employee returns. What&amp;rsquo;s next for this great CSG? Surely you don&amp;rsquo;t let her go&amp;mdash;there&amp;rsquo;s plenty of other work to do! Wrong. You let her go.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Temporary employees are, well, temporary. They have a specific purpose. When that purpose is served, the CSG contract is over and the person leaves. Perhaps at a later date you&amp;rsquo;d hope to hire the CSG into another temporary assignment or even into an open FTE position. However, for now, temporary means temporary, and a contract is a contract.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What are we doing?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What happens when you&amp;rsquo;ve got vendors or CSG doing work that does have Microsoft career growth? Work that is ongoing and requires frequent oversight? Perhaps the work started out specific and temporary, but grew in scope. This sounds like work better suited for FTEs, but you don&amp;rsquo;t have the headcount. What should you do? You should reexamine your business.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What are you trying to accomplish? How has it changed? How should you operate going forward? Business changes all the time, yet people don&amp;rsquo;t often reexamine the way they operate their business. Why not? Because they are lazy. Because they get caught up in the day-to-day work. Because the changes come slowly enough to go unnoticed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;This is a test&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;For example, say you used to hire CSG to test your service at release time. You didn&amp;rsquo;t need as many testers during the long product cycle, but hired a bunch for the crunch at the end. Over time, competition and enlightenment moved you to a monthly or even weekly release cycle for your service. Now you&amp;rsquo;ve got CSG testers on staff all the time, rotating through (no permatemps). It doesn&amp;rsquo;t make sense anymore. What do you do?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;You&amp;rsquo;ve got a few options:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Continue to use a rotating crew of CSG testers because you are a lazy, backward fool who enjoys release cadence disruption caused by turnover.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Convert your CSG dollars to FTE dollars and hire full-time testers. Yes, this can be done and is often cheaper when designed well. You do need to think carefully about your hiring ramp so as not to be left with periods of reduced capacity.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Change how you test your service to use a combination of instrumentation, statistical methods, testing in production, and increased unit and component pair testing by developers. This allows you to reduce the size of your test staff over time, while increasing its statistical and strategic capability. However, this is a big technical and people change that takes time and patience to implement.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Business changes are business opportunities. You can ignore them, or use them as a catalyst to remake your team to be more competitive. The opportunities do require you to embrace change, break old habits, and rethink your business.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Doing it well&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Do you have the right people doing the right work? Has your business environment changed, yet you and your team haven&amp;rsquo;t? Get off your butt, and take a close look at how your business is run.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Have you got some folks in dead-end jobs? Fill those roles with vendors instead. Got a quick job to do right away, but you need extra staff to do it? If it can be done offsite, hire a vendor; otherwise, hire some CSG. Are you using CSG for work that has now become commonplace? Convert them to FTEs or adapt to a more competitive approach.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Don&amp;rsquo;t be lazy&amp;mdash;be proactive. Don&amp;rsquo;t be ignorant&amp;mdash;be informed. Use the right folks for the right jobs. Keep your team growing, competitive, and attuned to your business and customers. Make your staff your means to win.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10298912" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Cross+Disciplines/">Cross Disciplines</category></item><item><title>Don’t be a tool</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/04/01/don-t-be-a-tool.aspx</link><pubDate>Sun, 01 Apr 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10289547</guid><dc:creator>ericbrec</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10289547</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/04/01/don-t-be-a-tool.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/4403.Lightbulb.jpg" /&gt;&amp;nbsp;A recent flood of build breaks triggered a wave of tool suggestions to plug the cracks in our code. Some argued for faster builds. Some argued for deeper branching. Some argued for a &amp;ldquo;gauntlet&amp;rdquo; service that simulates official builds and blocks problem code submissions. All of these suggestions are awash in the seeping sewage of the flood&amp;mdash;none of them address the root cause, and many would only pressurize the leak until it truly exploded in a tsunami of stifled stench.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Build breaks and other quality issues aren&amp;rsquo;t created or resolved by tools any more than the code is.&amp;nbsp; Problems are created by people, and they are resolved by people. Misguided, well-meaning nitwits protest, &amp;ldquo;Of course people create and resolve problems, but tools can have a huge impact.&amp;rdquo; Heck yeah! Tools can have an enormous impact&amp;mdash;they can make checkins slower, costlier, and less frequent; they can frustrate engineers to the point of leaving the project and company; and they can remove all creativity, agility, and pride from development until our code is a mindless mush molded to match the meaningless mechanisms of our monochromatic, masochistic machine.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Tools serve us, not the other way around. Before you suggest a tool, before you jump to a solution, before you make mayhem with mechanism, start with the human problem. What are people trying to accomplish? What&amp;rsquo;s getting in the way of success? What alternatives are available for the range of situations? Once you understand the true goals, then you can ask how tools might help. Don&amp;rsquo;t start with a tool. Don&amp;rsquo;t be a tool.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What are you trying to do?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The problem in this case is a bunch of build breaks. Actually, the problem is that you need your product to build or you can&amp;rsquo;t deploy it or sell it&amp;mdash;so you build it all the time (a best practice). When someone checks in code that breaks the build, then no one on the team can retrieve the current code and build it. That can slow down value being added to your product in the form of code enhancements.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What are you really trying to accomplish? You&amp;rsquo;re trying to maintain the pace of value being added to your built product. Bad code checkins slow that pace for the individual and the team.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;He looks to me to make things right&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;What alternatives are available to avoid bad code checkins and maintain the pace of value being added to your built product?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Block checkins that don&amp;rsquo;t build.&lt;/b&gt; This is known at Microsoft as a &amp;ldquo;gauntlet&amp;rdquo; system. Every checkin is built and tested by the system. Checkins are only submitted if they pass.&lt;br /&gt;&lt;b&gt;Pros:&lt;/b&gt; Build never breaks when the system is working properly.&lt;br /&gt;&lt;b&gt;Cons:&lt;/b&gt; Can significantly slow the pace of any value being added to the product, and these systems often don&amp;rsquo;t work properly so build breaks still occur.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Gauntlet systems only succeed when their results match official build and test results. Of course, the gauntlet system can&amp;rsquo;t be identical to the official build system (different queuing mechanism, different code signing, different build machines and environment, different publishing, and different performance optimizations). Maintaining identical results for separate systems isn&amp;rsquo;t feasible, thus gauntlet systems often don&amp;rsquo;t work properly&amp;mdash;in addition to often adding hours to checkins to perform their validation.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Work in a private branch.&lt;/b&gt; Checkins are not submitted to the main branch. Instead, small groups of engineers work in private branches off the main branch. Sets of changes are integrated into the main branch only when they build properly on the private branch. &lt;br /&gt;&lt;b&gt;Pros:&lt;/b&gt; Bad checkins only slow down a small group of engineers. &lt;br /&gt;&lt;b&gt;Cons:&lt;/b&gt; Slows value being added because product changes must travel from the private branch to the main branch to reach the built product. The pain and disruption of build breaks becomes the pain and disruption of integrations. When many teams integrate their private branches during the same week (a common occurrence), conflicts and breaks are common.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Work against the last known good (LKG) build.&lt;/b&gt; When a build succeeds, it is labeled as an LKG along with its source code. Instead of using the latest checkins, engineers sync to the LKG, and thus their builds are never broken. &lt;br /&gt;&lt;b&gt;Pros:&lt;/b&gt; The team can continue adding value to the product even when someone submits a bad checkin. &lt;br /&gt;&lt;b&gt;Cons:&lt;/b&gt; The longer the time between LKG builds, the more the LKG gets out of sync with the current code. This leads to all the problems you have with private branches, without the convenience of isolating them to a private branch. You can alleviate the problem somewhat by continuously creating LKGs with a rolling build, but when that rolling build breaks, you&amp;rsquo;re almost back to where you started.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;b&gt;Validate work before checkin.&lt;/b&gt; Engineers perform their own validation, using build and test tools to check their work before checkin. Often this means having two enlistments&amp;mdash;one for development and one for running clean builds. You can also build on a buddy&amp;rsquo;s machine or have some form of shared buddy build service. &lt;br /&gt;&lt;b&gt;Pros:&lt;/b&gt; Easy and catches issues at the source before they become team problems.&lt;br /&gt;&lt;b&gt;Cons:&lt;/b&gt; Trusts engineers to be diligent. Forces engineers to use their own machines for validation or a shared buddy build service, which can be slow and seriously deplete storage and CPU resources on work machines. Breaks inevitably get through.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Each alternative has its strengths and weaknesses. Which one is right? Ah, we haven&amp;rsquo;t considered the range of situations.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;The complexity of your build system itself could be causing breaks. Many of these systems evolved slowly over time and haven&amp;rsquo;t received the engineering rigor we take for granted with modern production software. Investing in build systems isn&amp;rsquo;t sexy work, but it has a huge force multiplier when every engineer gains an hour or more of productivity per day. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;You got something for me?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are three general categories of changes that can cause build breaks. Each has a different risk profile.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Trivial code or resource change. &lt;/b&gt;The checkin alters minor logic or resources, like a change to an existing string or icon. (Adding or deleting a resource is more significant.) While these changes can lead to build breaks, the occurrence is quite rare. Yet often these changes are valuable to the business or customer&amp;mdash;you want them added quickly. A simple build should do. Waiting for a buddy build, let alone a gauntlet pass or an integration period, seems disproportionate to the risk. People hate disproportionate risk responses&amp;mdash;engineers especially.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Isolated change confined to a known area. &lt;/b&gt;The checkin alters code within a relatively small and well-defined scope, like refactoring a single class while leaving its interface the same. These changes can break builds, but rarely beyond their defined scope. Local builds and testing should be sufficient to catch a break.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Interface or behavioral change to shared components.&lt;/b&gt; The checkin impacts written or unwritten contracts between components. These changes often lead to build breaks, impacting the entire project. Great care must be taken to perform clean builds on buddy machines for all build configurations followed by a broad spectrum of build verification tests.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;A gauntlet system can protect you from all three categories, but it&amp;rsquo;s only worth it for the last category, and it&amp;rsquo;s prone to failure. A private branch helps the last two categories, but it&amp;rsquo;s overkill for the first category and just moves the pain around. LKG builds and trusting engineers to be diligent work for all three categories, but will let build breaks through. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Wow, what do you do? Oh wait, that&amp;rsquo;s right&amp;mdash;it&amp;rsquo;s a people problem, not a tool problem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Power to the people&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Tools can help, but you start with people. Too much reliance on tools quickly makes them a crutch, causing people to shut off their brains and hit the button instead of applying discretion.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;How do you best avoid bad code checkins and maintain the pace of value being added to your built product? Allow and expect people to use engineering discretion.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For a trivial change, let them check code in after a simple build check.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For an isolated change, give them solid local build and testing tools to run, and then let them checkin.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For changes to shared components, give them a buddy build service with full build verification checks to run before checkin. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For a nice combination of protection and speed, use an LKG system on a private branch with a fast rolling build that integrates every single good build into the main branch.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;How do you keep people from breaking the LKG? You don&amp;rsquo;t. As long as breaks are rare, the pace of value being added to your built product will be high. So you trust engineers to be professionals and to apply the appropriate level of verification for their changes.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;When you make the impact and choices clear to people, and you publicly expect and trust them to make the right decisions, they feel empowered and responsible for their work. The right example is set and folks fall in line&amp;mdash;for each other as teammates. The risk is minimized, build breaks are rare, and value to customers is maximized. That&amp;rsquo;s what happens when people are the solution.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Many teams highlight the trust placed with engineers by conferring a lighthearted, embarrassing token to folks who fall short of earning that trust. My old team used a big stuffed bear called &amp;ldquo;Buster, the Build Break Bear.&amp;rdquo; The last person to leave the build broken for an hour had to keep Buster on display in his office. As long as it&amp;rsquo;s not mean spirited, this kind of token is an effective reminder.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;For enormous teams, the sheer number of engineers causes even rare events to become common. To protect the LKG, you&amp;rsquo;ll need separate private branches and LKGs for each large subgroup. You&amp;rsquo;ll want rolling build integrations in both directions to keep the private branches in sync.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;How large should subgroups be? You want as few private branches as possible because each extra branch slows down code movement. So you want subgroups as large as you can make them and still have only a few LKG breaks a week (100 to 500 people each has been my experience).&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10289547" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process+Improvement_2D002D00_Sans+Magic/">Process Improvement--Sans Magic</category></item><item><title>Out of focus</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/03/01/out-of-focus.aspx</link><pubDate>Thu, 01 Mar 2012 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10274189</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10274189</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/03/01/out-of-focus.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/0172.Glasses-with-Wolverine.jpg" /&gt;&amp;nbsp;Are you sensing a rush coming as we complete midyear career discussions at Microsoft and head into the stretch toward annual reviews? Worried about keeping up with your peers when you already have far too much to do and far too little time in which to do it? Feeling lost already? Please. Get a grip and get a map.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;When you have to take an urgent trip somewhere, you don&amp;rsquo;t drive off without knowing where you&amp;rsquo;re going as if you are on a carefree vacation. So why the heck are you overwhelming yourself with tasks without having a personal plan?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;But my manager says I&amp;rsquo;ve got to do all this stuff!&amp;rdquo; Grow up! Think! What really matters? What will your manager talk about in calibration this summer? Focus on the few things that matter most, and manage everything else so it doesn&amp;rsquo;t get in the way. How? Read on.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Focusing on the few things that matter most is one of those principles that apply to everyone and every project regardless of level or scope. It&amp;rsquo;s just as important to an individual engineer as it is to an engineering director or division president.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;But that&amp;rsquo;s not important&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Step one for knowing where to focus is to differentiate between what&amp;rsquo;s urgent and what&amp;rsquo;s important. Urgent tasks can fill up your day if you let them. A year will go by and you&amp;rsquo;ll have accomplished nothing important. That&amp;rsquo;s a problem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Work with your manager to scope your responsibilities so that you have time for what&amp;rsquo;s important as well as what&amp;rsquo;s urgent. Naturally, your manager will want urgent work completed promptly, but it doesn&amp;rsquo;t have to all fall on you. Usually, urgent work can be shared across the team. Important work demands ownership and responsibility. That&amp;rsquo;s where you want your focus to be. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Not much to say&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;How do you determine what&amp;rsquo;s important? That&amp;rsquo;s easy. What business are you in? Who are your customers? What portion of the business does your team own? Tie those things to what your leadership team, your manager, and your skip-level manager care about, and you&amp;rsquo;ve got what&amp;rsquo;s important.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Let me put it another way. During review calibration, you are compared to 50 to 100 peers in similar roles across your organization. Even in a four- to eight-hour calibration meeting, managers only have about five minutes on average to talk about each employee&amp;mdash;not a lot of time. Your manager can only discuss a few things you&amp;rsquo;ve focused on in your work.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Keep in mind, your manager will prepare and take your entire year into account. Out of that, she will pick out key work you&amp;rsquo;ve accomplished and how you accomplished it. What are the few items you want her to bring up that best represent your efforts&amp;mdash;that will stand out as valuable among your peers? That&amp;rsquo;s what&amp;rsquo;s important. That&amp;rsquo;s what you focus upon.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;For more on calibration, please read &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/06/12/out-of-calibration.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" size="2" face="Times New Roman" color="#0000ff"&gt;Out of calibration&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Trust, but verify&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;But what about all the other work that needs to get done? I can&amp;rsquo;t get away with doing just a few things all year.&amp;rdquo; Actually, you can if those few things are important, but I know what you mean. There&amp;rsquo;s a ton of work that comes across your desk and inbox each day. People count on you to be responsive and a good partner. You don&amp;rsquo;t want to let them down, and sometimes small items can turn out to be important.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;First and foremost, know what few important things you are focused on currently&amp;mdash;don&amp;rsquo;t lose sight of them. Never let noisy urgency distract you away from being laser-focused on what really matters.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"&gt;As for the rest of what gets thrown your way, you&amp;rsquo;ve got a few options that I described in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2009/12/01/don-t-panic.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman" color="#0000ff"&gt;Don't panic&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You can ask for clarification&amp;mdash;this delays the task and sometimes causes it to resolve itself.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You can do it or defer it based on priority&amp;mdash;this keeps you focused on your important work.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You can entrust it to someone else&amp;mdash;this gets the task off your desk and quite possibly to someone better positioned to handle it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What do you do if an important request arrives, but you can&amp;rsquo;t prioritize it ahead of your other important work? Entrust it to someone else, but keep track&amp;mdash;stay on the mail thread and verify the request is being resolved. (I keep a special email folder for work I&amp;rsquo;m tracking.) Trust, but verify. That way, you ensure the important work gets done and you are able to scale.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Two to tango&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you only need to have a few important accomplishments per year, plus be responsive to day-to-day requests, how many important things should you work on at once? Two.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"&gt;As I mentioned in &amp;ldquo;Time enough&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman" color="#0000ff"&gt;chapter 8&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;), people are most productive when they are working on precisely two projects: a primary project, where they focus most of their time, and a secondary project to fill-in when the primary project is stalled or they need a change of pace.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You should handle mail and ad hoc requests as you reach nice stopping points during the day. Don&amp;rsquo;t disrupt your flow.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Eyes on the prize&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;As you consider what you&amp;rsquo;ll be working on for the next six months, clarify which important projects you&amp;rsquo;re responsible for delivering&amp;mdash;the ones you own. At any given time, know which project is primary and which is secondary.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;It may sound strange to focus only on a few important projects, but that&amp;rsquo;s what makes the difference between busy work and achievement. Focus delivers experiences instead of disjointed sets of features. Focus keeps people aligned and in sync instead of falling into dysfunctional chaos. Focus achieves your goals instead of simply keeping you occupied.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;It&amp;rsquo;s never too late to get focused. Understand your business (that&amp;rsquo;s the purpose of those all-hands meetings). Know your customer. Work with your manager to determine where you and your work fit. Then focus on a few important deliverables. Achieve that and you&amp;rsquo;re sure to give your managers something good to talk about at calibration&amp;mdash;something that makes you proud.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10274189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Project+Mismanagement/">Project Mismanagement</category></item><item><title>Software engineering—what’s missing?</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/02/01/software-engineering-what-s-missing.aspx</link><pubDate>Wed, 01 Feb 2012 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10261475</guid><dc:creator>ericbrec</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10261475</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/02/01/software-engineering-what-s-missing.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/5086.Ponytail.jpg" /&gt;&amp;nbsp;To start the new year, my boss gave an all-hands speech to a large group of developers about being an engineer. &lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;He equated being an engineer with taking responsibility for quality and using methods that ensure high quality at checkin (&lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2008/09/01/nailing-the-nominals.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;Nailing the nominals&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;). Naturally, a developer in the crowd took issue with calling software developers &amp;ldquo;engineers.&amp;rdquo; He claimed, &amp;ldquo;Engineers assemble parts out of tables and charts of proven components. Developers create something new and unproven every time.&amp;rdquo; Some disputes never get old.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;Is software development engineering or craft? I&amp;rsquo;ve already argued that it&amp;rsquo;s pointless to argue. Developers must act like engineers or we all lose our jobs. No one bets his company or health on well-crafted software&amp;mdash;it had better be engineered. As I claimed in &amp;ldquo;A software odyssey&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;chapter 5&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;), developers need to know instead of guess. They need to use instrumentation data from their products and engineering systems to guide decision making and drive quality and improvement.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;But what about all those handy tables and charts &amp;ldquo;real&amp;rdquo; engineers use to assemble parts? Does software have an equivalent? Why do new language paradigms claim to solve the reuse problem, only to later fail? Can we be engineers without repositories and reuse? Hey, control yourself! We do have code warehouses, language paradigms are misguided, and we are engineers. Quit waving your rationalization crutches around, hang up your cowboy hat, and be a professional.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;I had an email conversation with the guy who asked the question. He was interested in setting up a repository, which got me thinking.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;If at first you don&amp;rsquo;t succeed&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Since the 1960s, there have been numerous attempts to establish software repositories and reuse. Many of the advances in object-oriented languages were accompanied by sincere claims that they finally solved the reuse problem, and soon software development would take on more of the character of other engineering disciplines. Unfortunately, those claims haven&amp;rsquo;t been realized.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;At Microsoft, there have been many failed attempts to establish code repositories. The most recent internal attempt is CodeBox. It enjoys great success as an internal &amp;ldquo;open-source-like&amp;rdquo; collaborative development environment for tools, but it&amp;rsquo;s not a reusable code repository beyond copy/paste (a separate subject I address later). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Why have these attempts failed? Is there no hope? Oh, please. Folks have been thinking about the problem the wrong way. Imagining parts as class instances failed as an analogy&amp;mdash;engineering reuse is quite alive and well in software.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;I got what you need&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are two proven instances of code repositories and reuse that work and work well&amp;mdash;libraries and design patterns.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Software libraries, including DLLs, interfaces, platforms (like .NET), SDKs, web services (mashups), and even JavaScript libraries like jQuery, have been wildly successful. They have achieved broad adoption, driven tremendous savings in development effort, and resulted in significant quality and security improvements to software systems.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Design patterns have also been highly successful, though not quite as broadly adopted as libraries. They provide proven design approaches for common engineering problems that result in more robust and reliable code that is easier to explain and understand. Design patterns are an old idea used in many other engineering disciplines. They aren&amp;rsquo;t reusable parts&amp;mdash;they are approaches to common engineering challenges.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Something borrowed, something blue&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There is a third, broadly utilized example of code reuse&amp;mdash;copy/paste. Code &amp;ldquo;borrowed&amp;rdquo; from another engineer is prevalent in every significant codebase ever studied. Borrowing code responsibly can save you time and effort by using the best accumulated knowledge available. Borrowing code irresponsibly can cost you your career and your company millions of dollars. The specifics of who owns the code and how it is licensed are critical, but that&amp;rsquo;s a discussion for a different time.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Microsoft is extremely restrictive about borrowed code. Even internal efforts like CodeSearch are secured so that only people working on the same product can search their product code. The areas with the most code &amp;ldquo;sharing&amp;rdquo; are engineering tools and appropriately licensed code samples from SDKs.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Look, I love &amp;ldquo;sharing&amp;rdquo; and &amp;ldquo;borrowing.&amp;rdquo; My kids were taught these concepts in toddler group. &amp;ldquo;Borrowing&amp;rdquo; responsibly is part of being a professional, but it shouldn&amp;rsquo;t be confused with reusing documented, measured, tested, and published libraries and patterns from an established repository. Those proven repositories provide predictability and repeatability to engineering&amp;mdash;the attributes that guy was seeking when he questioned whether or not developers are engineers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;A tremendous sense of isolation&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Why do libraries and design patterns succeed where other repositories and reuse fail? I think the key is isolation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Libraries are isolated from the rest of the code. They form a separate logical layer that developers can program against almost as a black box. There&amp;rsquo;s no need for the vast majority of developers to change the library, and most never even see the library code. This makes for stable libraries and clear separation of responsibilities&amp;mdash;quite sustainable.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Design patterns are isolated from code by their very nature&amp;mdash;they aren&amp;rsquo;t code. They are abstractions of code structure that defy fixed implementation, which also makes them stable and sustainable in their own way.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Note that while both libraries and design patterns provide abstraction, abstraction isn&amp;rsquo;t enough&amp;mdash;you need isolation. If the developer ever has to mess with the repository for a typical project, then the isolation fails, and the repository becomes unstable and unsustainable for reuse. It&amp;rsquo;s a bummer, but that&amp;rsquo;s how things have gone over the past 50 years.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Note that copy/paste succeeds as a reuse approach for the same reason&amp;mdash;isolation. Copying code from another source does not impact the source in any way. This is a blessing and a curse. Should the original source have a serious error, such as a security vulnerability, that error is propagated. However, unlike libraries, a fix to the original code does not propagate to where the code was copied. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What are we doing here?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If software libraries are the only form of proven code repositories (like charts and tables for other engineering disciplines), does software engineering fall short of engineering? No, software development is just like every other form of engineering practice.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you are an electrical engineer designing circuit boards, each new circuit board is unique. You determine what the circuit board&amp;rsquo;s inputs and outputs are and what it needs to do. You look through your tables and charts of circuit board components to find the ones that meet your specs. You then use common electrical design patterns, along with your own best judgment and creativity, to uniquely arrange and connect the components on your new board.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you are a mechanical engineer designing transmissions, each new transmission is unique. You determine what the transmission&amp;rsquo;s inputs and outputs are and what it needs to do. You look through your tables and charts of gears, shafts, and clutches to find the ones that meet your specs. You then use common mechanical design patterns, along with your own best judgment and creativity, to uniquely arrange and connect the components in your new transmission.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you are a software engineer designing an application or interface, each new piece of software is unique. You determine what the software&amp;rsquo;s inputs and outputs are and what it needs to do. You look through your online documentation of software libraries to find the ones that meet your specs. You then use common software design patterns, along with your own best judgment and creativity, to uniquely arrange and connect the software components in your new application or interface.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Living the dream&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;There are a few lessons to be learned about being a software engineer from analyzing software repositories and reuse.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;We can encourage reuse by designing well-isolated architectural layers, creating robust libraries and interfaces that reflect how developers use them, and communicating effective design patterns that propagate engineering expertise.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Having great software repositories isn&amp;rsquo;t enough. We must follow other essential engineering practices, such as basing our decisions on data as well as experience, investigating applicable design patterns and libraries we can use, and taking responsibility for quality by having our designs and code peer reviewed, our code analyzed, and our units and components tested.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Put those pieces together and there&amp;rsquo;s nothing missing from being an engineer other than demanding that minimum quality bar from each other and exceeding it ourselves as professionals.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You can be an engineer and you should be an engineer. Stand proud. Be strong. Win the hearts, minds, and well-earned capital of our customers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;This is my 100&lt;sup&gt;th&lt;/sup&gt; column. I love that it&amp;rsquo;s about quality and engineering&amp;mdash;two things I really care about.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Many thanks to all the readers who&amp;rsquo;ve spent a little of their valuable time reading my cathartic rants each month. Ranting to you sure beats talking to myself.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10261475" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Software+Design+If+We+Have+Time/">Software Design If We Have Time</category></item><item><title>Who’s in charge here?</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2012/01/01/who-is-in-charge-here.aspx</link><pubDate>Sun, 01 Jan 2012 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10252241</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10252241</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2012/01/01/who-is-in-charge-here.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/2744.Kungfu.gif" /&gt;&amp;nbsp;I was talking with a friend from another Microsoft division. He complained about gridlock on his team because &amp;ldquo;no one can make a decision.&amp;rdquo; He lamented, &amp;ldquo;We discuss issues and come to some conclusions, but rarely get a resolution that sticks.&amp;rdquo; I bit my tongue. He is a friend.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Later in that same conversation, my friend asked if he should switch groups since he didn&amp;rsquo;t think there were opportunities to be promoted to the principal band. &amp;ldquo;There aren&amp;rsquo;t any broad challenges on my team,&amp;rdquo; he said. I shot back, &amp;ldquo;What, are you kidding? There&amp;rsquo;s nothing but opportunity on team mollusk. All you have to do is act like a vertebrate. Assume authority, you wuss!&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Okay, I didn&amp;rsquo;t call him a &amp;ldquo;wuss.&amp;rdquo; He is a friend. But he was also being a wuss. He said, &amp;ldquo;I can&amp;rsquo;t just assume authority. Why would they listen to me?&amp;rdquo; Let me let you in on a secret. People are sheep. Folks are afraid to risk taking responsibility and all that comes with it. If you step forward, people will follow.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;I assume so&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;It can&amp;rsquo;t be that easy.&amp;rdquo; Yup, it is. If you are willing to take responsibility, to stick your neck out, then people will gladly give you that responsibility. After all, if they were desperate to have it, they would have stepped forward.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;How do you assume authority in a situation where others hesitate? Three steps:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Choose your battles.&lt;/b&gt; You must first decide if this issue is worth putting your reputation at stake. Wise people choose their battles carefully. You should assume authority over issues you own and issues that matter to you. Every other issue is a charity case that you should only champion out of the goodness of your heart.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Choose your direction. &lt;/b&gt;You must next decide for yourself in which direction to move forward. Your decision should be based on the best information at hand and be reasonable to those around you. For advice on making decisions with incomplete information, read &lt;/span&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/04/01/you-have-to-make-a-decision.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;You have to make a decision&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;State the direction.&lt;/b&gt; You then take responsibility by laying out the decision as plainly as possible&amp;mdash;no embellishment. It&amp;rsquo;s not, &amp;ldquo;I think we should go north,&amp;rdquo; or &amp;ldquo;Everyone okay with going north?&amp;rdquo; It&amp;rsquo;s, &amp;ldquo;Let&amp;rsquo;s go north.&amp;rdquo; Speak with confidence. Speak with authority. Off to the north you go.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;When other people are willing to take responsibility, you can&amp;rsquo;t just assume authority. In that situation, authority is shared, and you need to negotiate. Read my columns &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2005/08/01/august-1-2005-controlling-your-boss-for-fun-and-profit.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Controlling your boss for fun and profit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; and &lt;/span&gt;&lt;a href="http://msblogs/hardcode/Lists/Posts/Post.aspx?ID=30"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;My way or the highway&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; for more on persuasion and negotiation.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Follow you, follow me&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;Will anyone follow me north?&amp;rdquo; Absolutely. Remember, we are talking about situations in which others aren&amp;rsquo;t willing to make the decision&amp;mdash;after all, making a decision risks failure. By taking responsibility, you are relieving others of that burden. They are happy about that. They are also happy to have a direction. The only price you ask for all this happiness is to follow. Of course they&amp;rsquo;ll follow.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;&amp;ldquo;But what if I&amp;rsquo;m wrong?&amp;rdquo; Then take responsibility for the mistake, move on, and try again. Iterate. Be willing to absorb a little failure for a lot of learning. The experience will help you long term, and no one is perfect. At least you made a decision, and the team made progress in some direction. As I discussed in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/04/01/you-have-to-make-a-decision.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;You have to make a decision&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;, that&amp;rsquo;s far better than deadlock.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;For more on what to do when you make a mistake, read &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/08/01/i-messed-up.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;I messed up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Who do you think you are?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;But what if my boss or some high-level leader is in the meeting? I can&amp;rsquo;t assume authority then, right?&amp;rdquo; Oh yes, you can! Sometimes that&amp;rsquo;s the best time for you to act&amp;mdash;assuming no one else seems willing to step forward.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If your boss or a high-level leader is present and he makes the decision, then you should respect that and follow his guidance. However, leaders often don&amp;rsquo;t have enough information to make a decision. If you own the area or simply feel you know the best direction and no one else is taking responsibility, then go ahead and state the direction.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&amp;ldquo;But I&amp;rsquo;m not the boss!&amp;rdquo; Look, there&amp;rsquo;s a big difference between deference and respect. You should respect your management, but you shouldn&amp;rsquo;t defer to it to the point of inaction. You have an opinion. You have knowledge and experience. Your management pays you to use your head. Respect that and use it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;We&amp;rsquo;ve gone too far&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Once you build up your confidence and get accustomed to taking responsibility, you might get overzealous. Be careful. Not every battle is worth fighting. Stay focused on what you own, what role you play, and what&amp;rsquo;s important to you and your team.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you take on too much responsibility, you&amp;rsquo;ll be taking it away from others. If they object, you&amp;rsquo;ll create unconstructive conflict. If they acquiesce, they will lose confidence and the capability to act with conviction. Know your boundaries. Exceeding them will eventually hurt yourself and your team.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;With great power&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Who&amp;rsquo;s in charge? You are. Remember when you were young and thought the president ran the government, CEOs ran companies, and the principal ran the school? You were misguided. It&amp;rsquo;s ordinary people who make the decisions and drive what happens.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are no special qualifications to be a decision maker. All you need to do is decide to decide, and then be thoughtful using the best data available. Be willing to take responsibility, and people will gladly hand it over.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Assuming leadership is like assuming power&amp;mdash;it can be intoxicating and hazardous. With great power comes great responsibility, so know your limits. Understand the situation, choose your battles, speak from confidence and conviction, state the direction, and people will follow.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You can do it. It helps your team and your career. Choose to lead. Our company depends upon you.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10252241" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Project+Mismanagement/">Project Mismanagement</category></item><item><title>That's not funny</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/12/01/that-s-not-funny.aspx</link><pubDate>Thu, 01 Dec 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10242106</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10242106</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/12/01/that-s-not-funny.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/1731.Eyebrows.gif" /&gt;&amp;nbsp;Tension fills the conference room a few weeks before the Client release. The Client team wasn&amp;rsquo;t told that the Database team had added a parameter to the AddClient API. The Client broke spectacularly&amp;mdash;the latest in a series of miscommunication and miscues by both teams. Only now were the Client and Database teams meeting to discuss the breaking change. Contempt oozes over the conference room table.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The Database lead program manager (PM) opens the meeting with, &amp;ldquo;As you know, the Client team requested the new parameter for AddClient a couple of months ago. [Uproar.] We realize now that the change came in too late. We&amp;rsquo;ve rolled back the AddClient API and removed the new parameter. We&amp;rsquo;ve got a build running and should have the fix for the Client team later today.&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;After a moment, the Database lead PM adds, &amp;ldquo;By the way, did we tell you about the other new API function?&amp;rdquo; The room gets quiet. Everyone stares at the Database PM. The PM looks around the table and then says, &amp;ldquo;It&amp;rsquo;s called &amp;lsquo;BlindsideClientTeam.&amp;rsquo; We&amp;rsquo;re thinking of adding a parameter called &amp;lsquo;lastMinute.&amp;rsquo;&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;This opening doesn&amp;rsquo;t follow the usual I.M. Wright rant, because the column is about using humor to diffuse rants. It&amp;rsquo;s a holiday meta topic for &amp;ldquo;Hard Code.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;It&amp;rsquo;s a funny thing&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;How do you show a partner that you&amp;rsquo;re sorry for a mistake, understand the trouble you&amp;rsquo;ve caused, and rebuild trust between your teams?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You could apologize, though apologies alone sound hollow when people and schedules are compromised.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You could show your understanding by recounting the situation, though that often seems patronizing.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You should take steps to fix the problem and avoid it going forward, but those take time, and you need to repair relationships now.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Humor in these situations works wonders. You can&amp;rsquo;t lead with humor&amp;mdash;it&amp;rsquo;s a serious situation. You lead with taking responsibility and outlining steps to fix the problem. But then, to repair hurt feelings and regain trust, nothing works quite like humor.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;For more on handling a bad mistake, read &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/08/01/i-messed-up.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;I messed up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;No one understands me&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Building and maintaining trust between people is difficult. Mistakes happen. When trust breaks down, relationships become dysfunctional. Teams that don&amp;rsquo;t trust each other tend to duplicate work or break ties entirely to mitigate risk. Individuals that don&amp;rsquo;t trust each other can&amp;rsquo;t compromise and resolve issues.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;To build trust, you must understand each other&amp;rsquo;s situation&amp;mdash;what&amp;rsquo;s important and what&amp;rsquo;s scary&amp;mdash;and you must empathize. Otherwise, people won&amp;rsquo;t believe you&amp;rsquo;ll take care of their interests and concerns.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;However, showing empathy is tricky. You don&amp;rsquo;t want to sound like some new-age life coach: &amp;ldquo;So you&amp;rsquo;re saying that if I repeat how you feel one more time you&amp;rsquo;ll slit my throat? You must feel angry.&amp;rdquo; This is where humor can make a big difference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;That is illogical&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;When it comes to issues people care about, like their time, effort, and future earning potential, people aren&amp;rsquo;t rational. They assume others will ruin their plans and cause them to fail at every turn. That&amp;rsquo;s why people resort to hyperboles like, &amp;ldquo;They change direction every day.&amp;rdquo; They ask contrived questions like, &amp;ldquo;Would it be possible for you to share your schedule?&amp;rdquo; Of course it&amp;rsquo;s possible, especially for partner teams&amp;mdash;are we children?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You might think that responding to irrationality with a calm and rational response would be enough to quell fears. It often solves the immediate problem, but the underlying distrust still lingers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;To change the dynamic of a relationship, you must expose the distrust and address it. However, doing so is like exposing an open wound&amp;mdash;it&amp;rsquo;s ugly and sensitive. You need to ease the pain, release the tension, and allow everyone to relax. Humor, when used judiciously, provides just the right laughing gas to reduce the pain.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;The fab five&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;There are five general categories for humor in the workplace. Each has its purpose (breaking tension) and pitfalls (not everyone or everything is funny). Let&amp;rsquo;s break them down.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Self-deprecation.&lt;/b&gt; Making fun of yourself is one of the easiest and least risky forms of humor to use at work to diffuse tension. &lt;b&gt;Purpose: &lt;/b&gt;acknowledge bad behavior or weaknesses without being mean. The Database lead PM used self-deprecation to admit his team&amp;rsquo;s culpability to the Client team. &lt;b&gt;Pitfalls:&lt;/b&gt; appearing insincere by not acknowledging true weaknesses. The classic example is when someone admits to &amp;ldquo;caring too much&amp;rdquo; (not funny).&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Absurd contradiction. &lt;/b&gt;Denying a request or fact that is not remotely in dispute can make all disputes appear silly. &lt;b&gt;Purpose: &lt;/b&gt;expose distrust or disagreement in a nonthreatening manner, and encourage your peers to feel at ease. A disarming response to &amp;ldquo;Would it be possible for you to share your schedule?&amp;rdquo; is &amp;ldquo;No.&amp;rdquo; Wait for your partner to be startled, and then follow with &amp;ldquo;I&amp;rsquo;d be happy to send you the URL.&amp;rdquo; &lt;b&gt;Pitfalls:&lt;/b&gt; appearing passive aggressive or even sincerely aggressive. You can seem passive aggressive if your denial appears sarcastic instead of absurd (don&amp;rsquo;t embellish). You&amp;rsquo;ll seem sincerely aggressive if the issue is so emotionally charged (perhaps a bad history) that everyone thinks your denial is serious regardless of how crazy you make it.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Broad exaggeration.&lt;/b&gt; Making a significant overstatement or understatement can be funny while providing perspective. &lt;b&gt;Purpose: &lt;/b&gt;draw attention to something important without sounding whiny. An overstatement, like &amp;ldquo;The build broke 57 times yesterday,&amp;rdquo; draws attention to build problems without being too particular or placing blame. An understatement, like listing &amp;ldquo;future earning potential&amp;rdquo; among lighter things people care about, actually adds more weight to the area than saying &amp;ldquo;it&amp;rsquo;s so important.&amp;rdquo; &lt;b&gt;Pitfalls:&lt;/b&gt; appearing serious and thus whiny, uninformed, or uncaring. Don&amp;rsquo;t exaggerate a little&amp;mdash;people might miss it. Don&amp;rsquo;t make a big show of your exaggeration&amp;mdash;people might think you&amp;rsquo;re not joking. Large overstatements and understatements work best with a straight face and solemn delivery.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Outrageous ideation. &lt;/b&gt;Suggesting radical ideas during a brainstorming session to enhance creativity. &lt;b&gt;Purpose: &lt;/b&gt;get people thinking &amp;ldquo;outside the box.&amp;rdquo; Say you are brainstorming ideas for driving resiliency of a service. One idea could be &amp;ldquo;Blow up the datacenter.&amp;rdquo; That&amp;rsquo;s a ridiculous idea, but could lead to people considering testing random service shutdowns and geo-distribution that they might not have otherwise considered. &lt;b&gt;Pitfalls:&lt;/b&gt; appearing dumb, flippant, or unconstructive. Outrageous ideation can be overdone easily. Be sure to have a number of pragmatic ideas as well and start with some of those.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;b&gt;Deliberate dissonance.&lt;/b&gt; Intentionally breaking the flow of an interaction to shift direction (a generalization of absurd contradiction and outrageous ideation). &lt;b&gt;Purpose: &lt;/b&gt;relieve tension and change the dynamic of the conversation. When people are introducing themselves and mentioning the important jobs they&amp;rsquo;ve had as if it were a contest, you can lower the pompous pretense with &amp;ldquo;I&amp;rsquo;m a former McDonald&amp;rsquo;s fry cook.&amp;rdquo; &lt;b&gt;Pitfalls:&lt;/b&gt; appearing foolish, unprofessional, and even offensive. &lt;strong&gt;Dissonance is strongly based on cultural norms and personal background. Your witty comments can easily fail to amuse the wrong audience.&lt;/strong&gt; I usually have serious things to add in case people miss the joke. I then treat my witticisms like a dog whistle that only a few may hear.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;As you can see, humor has many pitfalls, and not everyone has the timing and delivery to make people laugh. However, most people can find ways to break tension and take themselves a little less seriously. Use your best judgment, practice among friends, and find what works best for you.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Tell the truth&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The magic of humor is how it serves unadorned truth in palatable portions. It&amp;rsquo;s inappropriate to call someone crazy, especially in front of a group. It&amp;rsquo;s awkward to acknowledge someone&amp;rsquo;s fears in a professional setting. It&amp;rsquo;s incendiary to rehash failure when people are frustrated and fuming. However, a little respectful silliness can expose irrationality, break through barriers, and show some remorse without humiliation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Of course, humor can be overdone or overused. We are professionals in a work environment&amp;mdash;there are limits to what is appropriate. Knowing this, there are times when it&amp;rsquo;s important to tell the truth clearly and candidly. Humor can provide a bridge that enables us to speak openly and honestly about difficult issues when we need to most. Doing so resolves problems, builds trust, and permits us to move forward as one team to solve the real problems facing our customers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;You can read more about humor in the workplace from the write-up of a little known &lt;/span&gt;&lt;a href="http://www.microsoft.com/education/en-us/Training/Competencies/Pages/humor.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Microsoft Engineering Competency: Humor&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; that includes a recommended reading list.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10242106" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Cross+Disciplines/">Cross Disciplines</category></item><item><title>Destabilization</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/11/01/destabilization.aspx</link><pubDate>Tue, 01 Nov 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231470</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10231470</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/11/01/destabilization.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/8688.Goatee.jpg" /&gt;&amp;nbsp;It breaks my heart and sickens my stomach to witness the tremendous productivity and quality gains of Lean Software Development practices at Microsoft:&amp;nbsp; feature crews in Office, scrum teams in Xbox, and improvement teams in SQLServer, to name a few. These Lean approaches yield less-incomplete work, higher-quality builds throughout the product cycle, earlier feedback on features, and timelier cross-discipline communication.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Feature crews are small, cross-discipline teams each tasked with a single feature, or closely related small features, to design, spec, develop, and test together from start to finish. Improvement teams are quite similar to feature crews, but have a different name to emphasize their work on infrastructure improvements, as well as features.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Why is my heart broken by greater Lean productivity? Why is my stomach in knots over higher Lean quality? Because there&amp;rsquo;s an insidious, deceptive, soul-crushing beast lurking in many of Microsoft&amp;rsquo;s Lean Software Development efforts, slowing them down, driving poor engineering practices, lengthening our ship cycles, and reducing the feature set we deliver to customers. What is this horrifying, hellacious, heathen of a heartbreaker? It goes by the name &amp;ldquo;stabilization.&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Stabilization periods &lt;i&gt;between development milestones &lt;/i&gt;don&amp;rsquo;t just add superfluous time to schedules. Stabilization periods also make products worse with fewer features and lower quality, while also dragging down morale and encouraging crappy code. Oh, my forlorn heart. Oh, my aching stomach.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;We don't need you anymore&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;Legacy McLoser says, &amp;ldquo;You&amp;rsquo;ve lost it this time, Mr. Wright. Stabilization periods are essential for integration quality.&amp;rdquo; No, they&amp;rsquo;re not&amp;mdash;at least not when using Lean methods, like feature crews, improvement teams, scrum, or &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Kanban"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;kanban&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;In traditional Waterfall methodology, the codebase isn&amp;rsquo;t functional or complete during development periods. Stabilization between development periods provides an opportunity to run integration and system testing, fix bugs, and get the codebase close to a shippable state. Without stabilization periods, integration and system issues build up to the point that past Microsoft projects have failed or slipped years. Thus, stabilization is required when running traditional Waterfall.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;In Lean methods, a cross-discipline team works on a feature from start to finish. The feature enters the codebase integrated, complete, and fully tested (or at least it should&amp;mdash;more on this later). The codebase is always kept close to a shippable state.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Integration issues that occasionally arise in Lean projects resemble sustained engineering issues far more than the sustained insanity of cleanup during Waterfall stabilization. Teams should deal with sustained engineering issues as they go. Therefore, stabilization for Lean methods is unnecessary and quite harmful, as I describe below, because it demoralizes your best teams and encourages your worst.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;For more on the basics of Lean Software Development, please read my 2004 column on the subject, &amp;ldquo;Lean: more that good pastrami&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;chapter 2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Shake and bake&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Note that I&amp;rsquo;m only talking about stabilization periods between development periods. I&amp;rsquo;m not talking about the lengthy stabilization time at the end of a long product cycle. That &amp;ldquo;bake time&amp;rdquo; for release candidates is necessary for traditional, packaged products like Office and SQLServer to catch edge cases that take time to emerge, regardless of whether projects use a Waterfall or Lean approach.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Properly designed services can be gradually rolled out, instantly rolled back, and iteratively improved after they are released. Thus, properly designed services don&amp;rsquo;t need &amp;ldquo;bake time&amp;rdquo; at the end of a project.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Packaged products have limited opportunity to roll out gradually, instantly roll back, or iteratively improve once they are released to a wide audience. Thus, packaged products (and critical trust services, like handling credit cards) need &amp;ldquo;bake time&amp;rdquo; to minimize risk. &lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;I talk about properly designing services with gradual rollout and instant rollback in my column, &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/12/01/there-s-no-place-like-production.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;There's no place like production&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Get a clue&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Stabilization periods between development milestones aren&amp;rsquo;t just unnecessary, they are harmful. Why? Imagine a feature crew committed to delivering every feature completed and fully tested. We&amp;rsquo;ll call this feature crew &amp;ldquo;the clue crew.&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What does the clue crew do during stabilization? Sure, there might be a few integration issues, but certainly not enough to keep the clue crew busy the whole time. Mostly, the clue crew fixes other team&amp;rsquo;s bugs and works secretly on more features.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Meanwhile, there&amp;rsquo;s another feature crew, &amp;ldquo;the poo crew,&amp;rdquo; which is sloppy. This crew takes on too much work and doesn&amp;rsquo;t deliver completed and fully tested features. Instead, its features are full of bugs and lack fleshed-out tests. The poo crew uses the stabilization period to clean up its mess&amp;mdash;with the help of the clue crew.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What happens next? Naturally, management notices how the poo crew ended up completing more officially booked features than the clue crew&amp;mdash;even though the poo crew could only finish its features with the extra few weeks and the help of the clue crew. Management chastises the clue crew for its lack of ambition and encourages it to book more work, like the poo crew, the following development period.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;What&amp;rsquo;s the matter here?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Maybe you think the poo crew is the smart one. After all, it appears to be more productive than the clue crew. If you are that superficial and stupid, please take your way-back machine to the 1990s, and get back to wasting valuable time and effort producing buggy products using traditional Waterfall.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Hopefully you recognize that the poo crew wouldn&amp;rsquo;t have completed as much over the entire development and stabilization period if it had been forced to fix its own bugs and produce tested, sustainable features. Likewise, the clue crew could have produced more tested, sustainable features had it not needed to spend time fixing poo crew bugs, and instead used the stabilization time to complete more official features.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;However, as long as there is a stabilization period, poo crews will have permission to leave their features incomplete and clue crews will be punished for writing quality code by being slapped with poo crew bugs and chastised for lacking ambition. In other words, stabilization periods provide the means to demoralize your best teams and encourage your worst. Soon every team is writing poo, and stabilization periods become essential in a self-fulfilling, Waterfall way.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Why is the Lean clue crew consistently more productive with higher quality than the poo crew?&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;Because they test their features early, before bad designs are baked into the code.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;Because they fix bugs early, while the code is still fresh.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;Because they work tightly across disciplines, while designs are still iterating, improving communication and causing less rework.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Are we done yet?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;What&amp;rsquo;s the alternative to stabilization periods? Hard definitions of &amp;ldquo;done&amp;rdquo; for features, enforced by strong release management. I talked about &amp;ldquo;done&amp;rdquo; definitions for features in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/02/01/cycle-time-the-soothsayer-of-productivity.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;Cycle time&amp;mdash;the soothsayer of productivity&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;. Here they are again:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;All updated designs and code are reviewed (includes security, etc.).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;All automated tests are written and passed (includes security, etc.).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;No ship-stopping bugs exist (includes unacceptable fit-and-finish).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;All monitoring and feedback is in place.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Typically, feature crews, infrastructure teams, and scrum teams will develop in a branch off the release code branch and not integrate back into the release branch with the new feature until the done definitions are met. There are two rules for working in branches:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Never be more than one branch away from the release branch, unless you enjoy waiting weeks for fixes to integrate up and down the branches. There are several variations on being one branch away&amp;mdash;a branch per feature, per crew, per team, or per group. Any can work if you forward integrate daily from the release branch, build your branch at least daily, and never create branches of branches. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Never stay on a branch for more than a month, unless you enjoy merge conflicts and integration hell. If your feature is larger than a month&amp;rsquo;s worth of effort, break down the feature into a series of smaller, testable pieces, satisfy the &amp;ldquo;done&amp;rdquo; definitions for each piece, and then reverse integrate back into the release branch.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;An easy way to avoid missing key concerns like security or accessibility is to use checklists. I discuss them in detail in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2009/04/01/your-world-easier.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Your World. Easier&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; and &amp;ldquo;Bad specs: Who is to blame?&amp;rdquo; (both in &lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;chapter 3&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Being in a stable relationship&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;With proper enforcement of &amp;ldquo;done&amp;rdquo; and smart use of branches, the poo crew can&amp;rsquo;t integrate its unstable, unfinished, unsustainable ugliness into the release branch. It doesn&amp;rsquo;t get credit for features it didn&amp;rsquo;t really finish.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;Meanwhile, the clue crew integrates its features regularly and spends its time adding value to the release branch instead of stabilizing some other team&amp;rsquo;s poo. There&amp;rsquo;s no need for stabilization in this model because the release branch is always stable with the latest completed features. If there is an integration issue, it&amp;rsquo;s handled like any other issue with released code: the crew responsible stops work as needed and fixes the issue (see &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2009/01/01/sustained-engineering-idiocy.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;Sustained engineering idiocy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt; for details).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What happens to all those weeks of stabilization time between development milestones? You can either cut them from the schedule and ship earlier or use the time to create and deliver more customer value.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Hasta la vista, baby&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Teams still need to plan regularly, coordinate, and synchronize. Packaged products still need significant &amp;ldquo;bake time&amp;rdquo; for release candidates at the end of a product cycle. However, stabilization&amp;rsquo;s days are numbered.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you haven&amp;rsquo;t switched to a Lean approach, do so today. Lean is far more efficient and yields higher quality than Waterfall, it scales to huge organizations, and there are enough variations of Lean that one is sure to fit your team.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you have switched to a Lean approach, do away with stabilization periods. By removing this ugly old vestige of inefficient, low-quality development, and by insisting on only completed features in the release branch, you make your product better, your team better, and your customers happier. May stabilization rest in peace.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231470" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Inefficiency+Eradicated/">Inefficiency Eradicated</category></item><item><title>Master of your domain</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/10/01/master-of-your-domain.aspx</link><pubDate>Sat, 01 Oct 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10217500</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10217500</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/10/01/master-of-your-domain.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/4810.Skipolls.jpg" /&gt;&amp;nbsp;If you had to choose between hiring an outstanding candidate with only related domain knowledge and a solid candidate with specific domain knowledge, who would you select? At Microsoft, we generally select the outstanding candidate, figuring a talented employee can quickly learn a domain. That is, unless the employee already works here.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If the outstanding candidate is already a Microsoft employee, then specific domain knowledge generally trumps capability (aside from poor performers). Why are we this stupid? Because we know there are dysfunctional managers who don&amp;rsquo;t always use the review system properly, so we give candidates the benefit of the doubt, and because we are obsessed with domain expertise. It&amp;rsquo;s wrong.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;A bunch of Microsoft readers are riled up now, denying Microsoft favors domain knowledge over capability for roles. Really? Think back to your last reorganization. Did the most capable or the incumbents get slotted into positions? That&amp;rsquo;s right&amp;mdash;we&amp;rsquo;re idiots.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;There are many factors for slotting people into roles during reorganization. You must consider continuity, growth potential and opportunity, and a general fairness and morale. There are difficult trade-offs and mistakes are inevitable. Feel better? Good, because those are all noble reasons, but poor excuses.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;My boy's wicked smart&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For all the Microsoft readers who&amp;rsquo;d deny we favor domain expertise over capability, there are other Microsoft readers who support that bias. After all, we&amp;rsquo;re all smart, and deep domain knowledge isn&amp;rsquo;t easily transferred. An engineer with specific domain expertise for the job will be more productive. Right? Wrong.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Deep domain knowledge is frequently transferred. It takes a little while, but a team&amp;rsquo;s existing experts are usually pleased to instruct an outstanding new team member. If they aren&amp;rsquo;t or an area is far too complex for even sharp people to comprehend, then you&amp;rsquo;ve got other serious problems.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Yes, the company consistently hires smart people, but being smart isn&amp;rsquo;t enough to make someone outstanding. Outstanding engineers who make difficult tasks look easy can do more than write great specs, code, or tests. They know how to understand, influence, collaborate, and get things done. They multiply the performance of those around them. Yet in a reorg or job change, these people are eschewed in favor of those with more domain knowledge.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;How do outstanding employees multiply the performance of those around them?&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;They seek first to understand&amp;mdash;the problem, the people, the system, past solution attempts, and proven solutions from inside and outside Microsoft.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;They use their understanding of the entire situation to reassure their partners and construct an approach in which everyone is engaged and committed to the successful outcome.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;They nurture that partner commitment with inclusive decision making, transparency, and trust-driven collaboration.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;With their group of dedicated partners, aligned behind shared goals, they work together to make achieving the impossible a regular occurrence.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;You can call it my ghoulish obsession&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"&gt;How does Microsoft culture come to perpetuate an obsession of being masters of our domains instead of overall capability? My educated guess is that it starts with how engineers initially differentiate themselves from their peers and influence their teams&amp;mdash;they become &amp;ldquo;go-to&amp;rdquo; people for some area. (&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2011/01/01/individual-leadership.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;" size="3" face="Times New Roman" color="#0000ff"&gt;Individual leadership&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt; describes this in detail.) We are conditioned to value subject matter expertise from the beginning.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;In addition, outstanding engineers differentiate themselves by how they go about their business. Yet Microsoft is primarily a results company&amp;mdash;it&amp;rsquo;s about what, not how. Subject expertise is about what. Thus, expertise has become king.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Domain knowledge is important&amp;mdash;you can&amp;rsquo;t put just anybody in any job. In addition, specialization is necessary at the group level for complex software projects, as I argue in &amp;ldquo;Undisciplined&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: x-small;" size="2" face="Times New Roman" color="#0000ff"&gt;Chapter 4&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;). However, your overall team productivity and capability depends upon more than domain knowledge alone.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;That is quite logical&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Clearly, we don&amp;rsquo;t need outstanding engineers in every position&amp;mdash;there&amp;rsquo;s plenty of everyday work that solid engineers can do. However, we do need outstanding engineers in key technical and organizational leadership roles. One division that has figured this out is Office.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;For years, Office tried to find ways to challenge and reward its best performers by giving them what they wanted&amp;mdash;pet projects, incubation labs, and the opportunity to introduce new applications. Then as Office 2007 was wrapping up, the executive leadership of Office decided to try a radical new approach&amp;mdash;what if we put our best people on our most critical projects?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;In hindsight, the decision to put your top people on your top projects seems absurdly obvious. Of course, it had been done in isolated situations many times before, but Office was breaking new organizational ground at Microsoft by deliberately applying this approach across the entire division. Windows and Windows Phone have done something similar to Office, but in other divisions the practice of actively managing your top talent is still working its way down from the executive ranks to group levels.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Microsoft has long had a talent management process for top employees called &amp;ldquo;People Review.&amp;rdquo; Executives discuss how top performers are progressing, their current assignments, and their potential future assignments. However, actual slotting of key jobs is usually left to the divisions to occur within their release cadences, which typically don&amp;rsquo;t line up with People Review. This relegates People Review to a status report rather than a Microsoft-wide talent management exercise.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;How bad is it?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;How bad can it be to put perfectly solid domain experts, rather than outstanding employees, into technical and organizational leadership roles? Obviously, it&amp;rsquo;s not catastrophic. Microsoft has been operating this way for decades and has done quite well.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Many outstanding employees rise into key technical and organizational leadership roles without the intervention of a deliberate talent management strategy. We generally hire strong people, so solid folks do fine and ship successful products.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;There are two problems: opportunity cost and abandonment.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;How much better would our products and execution have been if our top people were actively selected for our critical projects? Of course, there&amp;rsquo;s no way to know. However, I do love my Windows Phone, and the newer versions of Office and Windows. I guess it&amp;rsquo;s a lost opportunity.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;How do outstanding employees feel when they lose assignments to solid everyday employees due to a lack of specific domain knowledge? How do they feel when their talents are squandered, even though they&amp;rsquo;ve quickly picked up new domains in the past? I have many such friends&amp;mdash;enough that this feeling is almost clich&amp;eacute;. They feel abandoned and unappreciated&amp;mdash;not the way you want your best employees treated.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Strong employees tend to pick up expertise in multiple domains, but often at Microsoft only the primary domain is valued. Skills in collaboration, influence, vendor management, open source, distributed development, talent management, agile development, and other important but secondary domains tend to be marginalized&amp;mdash;a tragic loss of opportunity, value, and appreciation.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Tell me what I must do&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;There are a few things Microsoft employees can do to ensure our best people are taking on our most critical roles:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you&amp;rsquo;ve got an open position on your team, consider the leadership requirements. If leadership is critical, value how candidates influence, collaborate, and get things done over what technologies they last mastered.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If one of your current technological or organizational leaders is knowledgeable, but not particularly gifted at leadership, demand better from whoever will listen. If a position opens, reach out to great leaders you know&amp;mdash;they may not feel appreciated where they are.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If you&amp;rsquo;re undergoing reorganization, write to your executives and demand that leadership trump domain knowledge. Don&amp;rsquo;t accept excuses for less than the best available.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Domain knowledge is important. Every employee within a division should be a master of his domain. However, when slotting people for key roles, domain knowledge should not be the primary deciding factor, as long as candidates have a track record of picking up new domains. Instead, leadership skills should take precedence and guide us to greater productivity, greater customer value, and greater leadership in the marketplace.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Unfortunately, Microsoft does little to evaluate or track leadership competence, aside from a fairly superficial, midyear manager appraisal that isn&amp;rsquo;t formally part of our review or reward system. In addition, our engineering interview process has traditionally focused on domain knowledge and only recently started adding clear guidance on other areas of capability. Perhaps this will improve as our HR systems continue to be revamped.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10217500" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Microsoft_2D002D00_You+Gotta+Love+It/">Microsoft--You Gotta Love It</category></item><item><title>Production is a mixed blessing</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/09/01/production-is-a-mixed-blessing.aspx</link><pubDate>Thu, 01 Sep 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10201966</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10201966</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/09/01/production-is-a-mixed-blessing.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/0172.Glasses-with-Wolverine.jpg" /&gt;&amp;nbsp;There is one service design flaw that engineers repeat day after day, month after month, year after year. Scalability? Nope, though it&amp;rsquo;s popular. Security? Happens, but not that frequently. Serviceability? Getting warmer. Give up? Don&amp;rsquo;t care because you don&amp;rsquo;t work on services? You will, and when you do, you&amp;rsquo;ll care.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The pervasive service design flaw is incompatibility. Service neophytes might wonder how this could be. After all, a wonderful thing about services is that you own the machines and versions of software running on them. If there was ever a situation where you could finally escape legacy software and control your environment, it would be services. Right? Wrong. Dead wrong.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Production services are a mixed blessing.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A blessing because you control much of the environment, including the versions of software and hardware running.&lt;/li&gt;
&lt;li&gt;Mixed because those versions are always mixed, even if it&amp;rsquo;s just for a few minutes at a time. Thus, your services need to work in mixed environments&amp;mdash;new versions need to be compatible with old versions. Not scared yet? Just wait.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;The horror&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re unfamiliar with services, perhaps you&amp;rsquo;re familiar with Windows applications. In particular, you may remember what used to happen when you installed two applications, each with a different version of the same shared dynamic linked library (DLL). The applications would often get confused as to which version to load, causing one or both applications to fail.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This problem was compounded by poorly written installers (that is, nearly all installers), which would overwrite a new version of a DLL with an old version. Uninstalling applications was even worse since you needed to reference count shared DLLs to avoid removing them prematurely, which only the best installers did well (that is, almost none).&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The net result was that installing a PC game or utility would break a completely unrelated productivity application, and vice-versa. Many DLLs were shared by multiple applications, so there might be only one install sequence that could make all the applications work, or perhaps no sequence would work if one of the applications used a new version of one DLL and an old version of another. We had a name for this situation: &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/DLL_hell"&gt;DLL Hell&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;These days Windows prevents installers from overwriting shared DLLs and runs different versions of DLLs at the same time, giving each application the version it wants. Thank goodness we&amp;rsquo;ll never see DLL Hell again&amp;mdash;right?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;I&amp;rsquo;m only giving a brief overview of DLL Hell. Follow the Wikipedia link if you&amp;rsquo;re interested or a masochist.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Synchronicity&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Most services run on multiple machines&amp;mdash;some run on thousands of machines. When you deploy a new version of a website or service to production, the update isn&amp;rsquo;t instantaneous. There will always be a time when some clients will be using the new version and some will be using the old version, unless you shut down your service during deployment (yuck!). What&amp;rsquo;s more, your website or service probably depends on other services that also independently update in a mixed way. Is this problem sounding familiar?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Unlike Windows, no one controls the World Wide Web operating system. There&amp;rsquo;s no one protecting old services you depend on from being overwritten or rolled back. There&amp;rsquo;s no one insisting that services run multiple versions side-by-side.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Wait, what if you use a virtual IP address in front of a load balancer? You can take machines out of rotation, update them, and then put them back in.&amp;rdquo; Clever, but what about the first set of machines you put back? Unless you shut down your service and let all the connections drain, there will be several minutes when both the new and old versions of the service are in use. The same problem happens when using Azure&amp;rsquo;s DNS flip. So, what can you do?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Forward and back&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Mixed environments mean you must design new versions of your service to work with old clients (backward compatibility) and old versions of your service to work with new clients (forward compatibility). Shared resources must be forward and backward compatible as well&amp;mdash;images, media, xap files (Silverlight), JavaScript, and CSS&amp;mdash;because they will all be shared between old and new versions. If that sounds a bit subtle or tricky, then you&amp;rsquo;re beginning to understand why incompatibility is such a pervasive service design flaw.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Luckily, most modern services use versioning in the service contract to ensure the right version of interfaces is invoked and/or run multiple versions of services side by side using exposure control. If you use exposure control as I described in &lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/12/01/there-s-no-place-like-production.aspx"&gt;There's no place like production&lt;/a&gt;, it&amp;rsquo;s relatively easy to direct traffic to the right version of your service. Then you can deploy new versions of your service without worrying about breaking old clients. That is, if you forget about the data. Oh yeah, that&amp;rsquo;s right&amp;mdash;the data.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Commander Data&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Many services manipulate data&amp;mdash;client data, application state, and shared settings. Naturally, this data is shared across all roles within a web service or application&amp;mdash;it provides the context and persistence to allow clients to do meaningful work with a service. Purists will tell you that services shouldn&amp;rsquo;t carry application state and shared settings should never change. That&amp;rsquo;s nice, but not always practical. Even if it were, there&amp;rsquo;d still be client data.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Remember that production is a mixed blessing. There&amp;rsquo;s always a time when a mix of old and new versions of a service is running. That means new versions of a service will run against old data, and old versions will run against new data. Don&amp;rsquo;t see the problem yet?&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s say you update your data schema. Your old code doesn&amp;rsquo;t understand the new schema, so first you deploy your new code, which you&amp;rsquo;ve written to understand both the old and new schemas. (You&amp;rsquo;re so clever!) Next you update the data schema and let your service run, until you realize there&amp;rsquo;s a horrible bug in the new code. So you must roll back to the old code. Uh oh. The old code doesn&amp;rsquo;t work against the new schema. You can&amp;rsquo;t roll back the database because you&amp;rsquo;d lose data that changed since the update. Updating your data schema has resulted in either having a horrible bug in production or losing client data.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s say you have a setting that disables an incomplete or malfunctioning service feature&amp;mdash;such settings are typically shared and dynamic in order to kill features that unexpectedly misbehave. Your new code has a fix for the feature, so you&amp;rsquo;ve changed the setting to re-enable it. Your team has also added other settings for other new features. Naturally, you deploy the new settings first&amp;mdash;otherwise the new code wouldn&amp;rsquo;t have its needed settings. (You&amp;rsquo;re so clever!) The old code grabs the new settings, re-enables the broken feature, and yowsa!&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;Many thanks to Alexey Kouzmitch, who broke down these scenarios for my team.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;The double switch&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The issue of a setting change impacting old code is easy to fix&amp;mdash;either always use new settings (basically version your settings), always deploy settings with roles (don&amp;rsquo;t make them shared), or always enable features as a post-deployment step.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The issue of updating your service data schema is slightly more complex. Schema changes must be forward and backward compatible&amp;mdash;they work with the new code and work with the old code should a rollback become necessary. How do you do this? Either don&amp;rsquo;t make breaking changes to schemas (don&amp;rsquo;t edit/delete columns or stored procedures, only add them) or spread the schema change over two deployments.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If you must make breaking schema changes, first deploy new code that can handle the old and new schemas. Let it run a while to ensure it&amp;rsquo;s stable and functional. Later, install the schema changes in the next deployment. If that new deployment is faulty, a rollback will take you to the previous deployment, which works with the new schema.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;You can handle service API changes in similar ways. Instead of versioning the service contract, you just add parameters to interfaces using backwardly compatible default values. If you must edit or delete parameters, you do so in a new interface and keep the old interface around. If you must make breaking changes to existing interfaces, you do so using two deployments, just like the case of the breaking schema change.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;A plan comes together&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Even with the best of plans, there are times when a new service version can&amp;rsquo;t be compatible with the old version. An example of a recent disaster was when a third party made a breaking schema change to its service that also contained a security fix. We had to take the change right away, so naturally the service was down as soon as the schema was updated.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In cases where downtime is unavoidable, let operations and all other stakeholders know at least a week beforehand. That way, you can brainstorm ways to minimize the impact and properly communicate that impact to clients in advance.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Get in the mix&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Production is a mixed blessing. You can control nearly every aspect of production, but we live in a rapidly changing world, and those changes mean old and new software are frequently intermingled. Thus, your service changes need to be forward and backward compatible.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The good news is that service changes don&amp;rsquo;t need to be backward or forward compatible for more than two or three revisions, and there are straightforward mechanisms for ensuring your service continues running smoothly during new deployments. However, if your development and test teams only focus on the new version, your next deployment is likely to create widespread panic.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t just be smart&amp;mdash;be smarter. Think ahead and behind two deployments. Test strange configurations as necessary. Patiently deploy data changes. And always put the customer first. After all, when the customer isn&amp;rsquo;t first, neither are we.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10201966" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Software+Quality_2D002D00_More+Than+a+Dream/">Software Quality--More Than a Dream</category></item><item><title>A change would do you good</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/08/01/a-change-would-do-you-good.aspx</link><pubDate>Mon, 01 Aug 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10191441</guid><dc:creator>ericbrec</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10191441</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/08/01/a-change-would-do-you-good.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/2678.Long-hair.jpg" /&gt;&amp;nbsp;Few Microsoft engineers change positions between mid-May and mid-August&amp;mdash;they don&amp;rsquo;t want a role change to adversely impact their annual performance ratings, which lock around mid-August. Of course, managers shouldn&amp;rsquo;t allow position changes to unduly impact ratings. Then again, eating a taco from a roadside stand should not result in dysentery, but sometimes it does.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Once ratings are locked in mid-August, there&amp;rsquo;s usually a spike in people transferring amongst teams. Should you transfer? Don&amp;rsquo;t be a fool. Determine if it&amp;rsquo;s worth it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Transferring jobs costs you career momentum, especially cross-division transfers (details below). If you hate your boss and your team, a change may be due. If you&amp;rsquo;re stuck at the same level with no growth in sight, a transfer may be necessary. If you just want to try something new or play with some cool technology, then I hope you like your current level because you&amp;rsquo;re staying there a while.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Transferring jobs costs you career momentum&amp;mdash;it had better be worth it. If you like your current team and manager, and you&amp;rsquo;re making good progress on your career goals, stay put! Enjoy! Don&amp;rsquo;t transfer arbitrarily&amp;mdash;it will set you back. How much? When is it worth it? Glad you asked.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;How long will it take?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Job searches take about a month, maybe two, for entry and intermediate engineers. Senior engineer searches can take a few months, and principal engineer searches can take four months or more. Likewise, it usually takes longer for principal engineers to acclimate and return to full productivity (six to nine months) than senior engineers (three to six months) or entry-level engineers (one to three months). That&amp;rsquo;s because principal engineers are expected to impact the entire group, and it takes longer to learn the entire group&amp;rsquo;s social and technological dynamics.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;You can read all about these Microsoft career stages in my &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Level up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; column. The times I give are rough based on ranges I&amp;rsquo;ve seen with friends, colleagues, and personally over the past 15 years.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Adding up these time spans, a job transfer can cost up to five months for an entry-level or intermediate engineer, nine months for a senior engineer, and a year or more for a principal engineer&amp;mdash;and that doesn&amp;rsquo;t count the potential impact on annual review rating. Surprised? Wake up! Transfers aren&amp;rsquo;t free.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3"&gt;If you are a senior engineer and transfer in February, you may not be adjusted to your new team by June, when annual calibration is done. You may need an additional six months to regain your momentum after a poor rating. I talk about how to establish yourself quickly on a new team in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2010/04/01/the-new-guy.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: small;" face="Times New Roman" size="3" color="#0000ff"&gt;The new guy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;, but timing of transfers is an important consideration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Transfers within your division or, better yet, your current group cut search and acclimation times significantly. People are more likely to know you, and you&amp;rsquo;re more likely to be familiar with the people, their engineering methods, and their technology. All of this makes landing a role and attaining full productivity faster. The basic rule is, &amp;ldquo;The further away you travel, the longer it takes.&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Quit stalling&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Hopefully, you are enjoying your current role and have a supportive manager who&amp;rsquo;s helping you meet your career aspirations. If not, you&amp;rsquo;ll want to compare the transfer cost I just outlined with the cost of staying put. If you are in hell, then you probably want to transfer at nearly any cost&amp;mdash;but what if your career is stalled?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;You&amp;rsquo;re stalled if you&amp;rsquo;re not achieving your career goals in terms of level, skills, or role&amp;mdash;whatever is important to you. Will your stall last longer than the search and acclimation of a transfer? That depends on the kind of stall: a crowded elevator, out in the void, or a caged animal.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Crowded elevator&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;If you&amp;rsquo;re seeking a senior or principal promotion at the same time as several other members in your team, your elevator to the next level is pretty crowded. You may not be able to get in.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;A team with 20 members will promote roughly six people a year. This rate is based on a bunch of variables, like promotion budget (typically around 2 percent) and the size of promotion raises (typically around 6 percent, but can vary widely based on current salary). Out of those six available promotions, you&amp;rsquo;d expect perhaps one or two senior promotions, zero or one principal promotions, and the rest entry-level or intermediate promotions. Thus, if you and three peers are due for a senior promotion at the same time, two of you are likely to be stalled for six months at least. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;Even if only two people are due for promotion, they may not both be promoted&amp;mdash;budget is a necessary but not sufficient condition. There also needs to be a business need and readiness of the people involved.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;If you are stalled due to a crowded elevator, you can&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Work with your manager to ensure a spot for you on the elevator (fast, but risky).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Wait a year for the elevator to clear out (costs six to 12 months, and others could take your place).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Hope other people transfer, leaving space in the elevator (risky, and may cost a year).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Transfer to a group with a larger or less-crowded lift (risky, and costs search and acclimation time).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Your best choice is the option most likely to get your career moving in the least amount of time. Be honest with yourself about the risks, and choose wisely.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Concentrate on one promotion stage at a time. If you&amp;rsquo;re looking for a senior promotion, don&amp;rsquo;t worry about the principal stage elevator being full. That&amp;rsquo;s far enough away for many factors to change by the time it&amp;rsquo;s your turn.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Also consider how important promotion velocity is for you. If you have unrealistic expectations, you may never be satisfied. If you enjoy your current role, you may not want to rush into a larger one. Either way, talk to your manager about your goals. At the very least, you&amp;rsquo;ll find out what your manager is thinking. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Out in the void&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;If your team is working on a fringe project&amp;mdash;one that isn&amp;rsquo;t part of a major product line, doesn&amp;rsquo;t ship, seems like a pet project, or involves unusual work for Microsoft engineers&amp;mdash;you&amp;rsquo;re out in the void, and career growth may be limited. Basically, there&amp;rsquo;s only so much investment Microsoft puts into fringe projects&amp;mdash;you don&amp;rsquo;t want to be caught unaware.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Being out in the void isn&amp;rsquo;t necessarily bad. Often these projects provide unique growth experiences that can accelerate your career. However, if you stay too long, you might find yourself stalled or your project canceled. Usually, a two- to three-year stay is enough to gain experience without significant risk.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Caged animal&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The worst situation is when your manager prevents your career growth&amp;mdash;you become a caged animal. While this is relatively rare, it can happen. Sometimes it&amp;rsquo;s not intentional.&amp;nbsp; Perhaps you&amp;rsquo;ve outgrown your current role, but you and your manager don&amp;rsquo;t realize it until it&amp;rsquo;s too late. Now you&amp;rsquo;re stuck.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;&lt;span style="font-size: small;" size="3"&gt;While transferring out of your cage may seem like the obvious solution, consider your situation carefully first.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Is your manager about to leave? If he leaves in less time than a search and acclimation would take, you might be better off staying. Who knows? You might help fill the leadership void.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Was the cage unintended? If so, you and your manager can probably identify opportunities opening up in the near future on your current team.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Was the cage one of your own making? If so, transferring won&amp;rsquo;t help. You need to deal with your own demons directly before throwing them at someone else. Remember, focus on your strengths and mitigate your weaknesses in order to grow.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Do you work for a filthy barnyard animal that plays favorites, lacks integrity, and garners little trust or respect? If so, by all means, leave as soon as possible&amp;mdash;involving HR as appropriate.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;No one should remain a caged animal. Release yourself and get your career back on track.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Leaving on a jet plane&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;What about transferring outside of Microsoft? Putting aside my belief that, even with all its faults, Microsoft is an awesome place where you can truly change the world, transferring to another company is an option that will certainly impact your search and acclimation times. Your search takes longer because interviews are tougher to schedule, there&amp;rsquo;s often travel involved, and there&amp;rsquo;s more paperwork. Your acclimation takes longer because you may need to move to a new city, the corporate culture will be quite different, and the technology may be quite different. Be prepared for your transfer time to be as much as double what it would within Microsoft. I hope that new job is twice as good.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Personally, I&amp;rsquo;ll never leave Microsoft for another software job. Allow me to quote from my introduction to the last chapter of my book, &lt;/span&gt;&lt;a href="http://www.amazon.com/I-Wrights-Hard-Code-Microsoft/dp/0735661707"&gt;&lt;i&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Hard Code&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;i&gt;&lt;span style="font-size: x-small;" size="2"&gt;I love Microsoft. Having worked for academia (RPI), the government (JPL), small business (GRAFTEK), mid-size business (SGI), and large business (Boeing), Microsoft is by far the best place I&amp;rsquo;ve been. For all its faults and gaffes, Microsoft has three amazing strengths:&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size: x-small;" size="2"&gt;The people in charge earnestly want to make the world a better place&amp;hellip;through software. At every other company I&amp;rsquo;ve known, the approach is the opposite: be successful in a field and hope it improves the world. &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size: x-small;" size="2"&gt;The people in charge hire the best and then fundamentally trust them at the lowest levels to make decisions and run the business. Naturally, this has led to some problems over the years and forced checks to be put in place, but empowerment is more than a nice buzzword. &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-size: x-small;" size="2"&gt;The people in charge embrace and encourage change and then have the patience and perseverance to see it through. So many companies fight to keep their comfortable status quo. Microsoft fights its size and legacy to constantly improve and adapt to the world it helped shape. &lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;span style="font-size: large;" size="5"&gt;Keep moving&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;The bottom line is that you never want your career to stall for long. If you are stuck with little chance for growth due to a crowded elevator, being out in the void, or being caged, take action to open your opportunities.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Sometimes creating opportunities means transferring jobs. Sometimes it means altering the situation in your current role. You might also consider a discipline change or change in area ownership. Keep your options open and your career moving.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Since many divisions are now functional organizations where movement within discipline is easy, the perfect time to recharge your career may be at the end of a ship cycle. Often divisions encourage people movement at the end of a cycle, so take advantage of the short search and acclimation times available.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Times New Roman;" face="Times New Roman"&gt;Take charge of your career. Avoid chasing the latest trends or mimicking your peers. Instead, be thoughtful about your career. Choose to be around people you respect, trust, and enjoy. Choose a path that leads toward the growth you seek. Prepare for success, and it will be yours.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;&lt;span style="font-size: x-small;" size="2"&gt;Eric Aside&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;&lt;span style="font-size: x-small;" size="2"&gt;If you decide to transfer, be sure to check out &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2007/09/01/get-a-job-finding-new-roles.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;Get a job&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; for advice on finding the right role and &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2010/04/01/the-new-guy.aspx"&gt;&lt;span style="color: #0000ff; font-family: Times New Roman; font-size: x-small;" face="Times New Roman" size="2" color="#0000ff"&gt;The new guy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;" size="2"&gt; for advice on establishing yourself in your new group.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10191441" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Adventures+in+Career+Development/">Adventures in Career Development</category></item><item><title>Out of calibration</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/06/12/out-of-calibration.aspx</link><pubDate>Sun, 12 Jun 2011 11:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10173731</guid><dc:creator>ericbrec</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10173731</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/06/12/out-of-calibration.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/7041.Justice.jpg" /&gt;&amp;nbsp;It&amp;rsquo;s calibration time at Microsoft. Time for managers to rank everyone in your peer group (same discipline, same career stage, same division) into five (and a half) ranges: the top 20 percent (and top 5 percent), the near top 20 percent, the middle 40 percent, the lower 13 percent, and the bottom 7 percent.&lt;/p&gt;
&lt;p&gt;Calibration brings out the best in us&amp;mdash;the best in our acidic, reproachful disdain. Engineers hate calibration because it&amp;rsquo;s not fair to great teams, in which everyone deserves high ratings, and because it discourages teamwork, since team members compete against each other for rewards. Managers hate calibration because it forces them to make hard choices, it punishes them for having a great team while rewarding their peers for having poor teams, and it creates uncomfortable conversations with their employees.&lt;/p&gt;
&lt;p&gt;Well, I love calibration. That&amp;rsquo;s right, I love it! You weenies and whiners can go join some puritan, petite startup, while I count our billions and continue working with a top-notch staff. Hey, I&amp;rsquo;m huge on rewarding strong teams and teamwork. The fact that you think calibration discourages teamwork shows your ignorance. It&amp;rsquo;s time you got a clue.&lt;/p&gt;
&lt;h2&gt;Wisdom of crowds&lt;/h2&gt;
&lt;p&gt;There are teams and then there are divisions. They are not the same. A division has thousands of engineers. A team has between one and 12. You are calibrated against your peers in your division, not your team.&lt;/p&gt;
&lt;p&gt;Yes, the few engineers on your team that are in your discipline career stage are among the hundreds in your calibration group. So what? That&amp;rsquo;s rounding error. You&amp;rsquo;re not competing against your teammates&amp;mdash;you&amp;rsquo;re being compared across your division.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yeah, but my boss says every team has to fit the curve!&amp;rdquo; Typically, group managers like their entire teams to fit the percentages as a starting point. I used to misunderstand this, thinking it applied within career stage and would persist in calibration. Now that I&amp;rsquo;ve been through many calibrations, I realize it&amp;rsquo;s like the initial guess in a root-finding algorithm. You&amp;rsquo;ve got to start somewhere, but it&amp;rsquo;s rarely where you end up. By starting with teams roughly meeting the percentages, you at least cover the common cases quickly. Nonetheless, managers still talk about everyone in the calibration group.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;Employees often complain that the HR text descriptions of each rating range don&amp;rsquo;t match the actual definitions&amp;mdash;the percentages. True, but those definitions are a handy guide for managers to determine a starting point for calibration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;What are you trying to say?&lt;/h2&gt;
&lt;p&gt;A common concern is, &amp;ldquo;Instead of rating teams against their results, we&amp;rsquo;re rating engineers against each other! Doesn&amp;rsquo;t that discourage teamwork?&amp;rdquo; No, it doesn&amp;rsquo;t. Remember, you&amp;rsquo;re compared against all the engineers in your discipline and career stage across your division&amp;mdash;not just the few on your team. If you and your teammates perform better than others in your division because you collaborate well, then you and your teammates will rank higher.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t get me wrong&amp;mdash;managers can certainly use calibration to create a competitive environment within their teams, making them dysfunctional. But managers can create competitive, dysfunctional environments any number of ways. I discussed this at length in &amp;ldquo;Beyond comparison&amp;rdquo; (&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Pro-Practices/dp/0735624356/"&gt;Chapter 9&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Calibration doesn&amp;rsquo;t discourage teamwork. However, calibration does have a message for employees&amp;mdash;Microsoft pays for performance.&lt;/p&gt;
&lt;p&gt;If you are not performing as well as other engineers in your discipline at your career stage, then you will not be paid as well as your peers. If you perform better than other engineers in your discipline at your career stage, then you will be paid extra&amp;mdash;sometimes a great deal extra. True, &amp;ldquo;perform better&amp;rdquo; is subjective, and any subjective system can be abused, but managers are calibrated too. In the end, Microsoft seeks to reward sustained excellence.&lt;/p&gt;
&lt;h2&gt;We must prepare&lt;/h2&gt;
&lt;p&gt;How does the actual calibration meeting work? How do managers decide who is &amp;ldquo;performing better&amp;rdquo;? It starts with preparation. HR provides a standard spreadsheet that has tabs for every employee and a main table to capture the calibration results. Because it&amp;rsquo;s a spreadsheet, metrics are automatically calculated to help groups understand the distribution of performance.&lt;/p&gt;
&lt;p&gt;The tab for each employee in the spreadsheet is filled out in advance of the calibration meeting. HR puts in the employee&amp;rsquo;s past review results and basic information (such as the employee&amp;rsquo;s name, level, discipline, and date of last promotion). The employee&amp;rsquo;s manager adds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;What&lt;/b&gt; the employee accomplished against and beyond his or her commitments.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;How&lt;/b&gt; the employee accomplished those results. (Did the employee make friends or enemies along the way?)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Proven capability&lt;/b&gt; the employee has demonstrated in the past (for context).&lt;/li&gt;
&lt;li&gt;Feedback the employee has received from peers.&lt;/li&gt;
&lt;li&gt;A promotion indicator with explanation.&lt;/li&gt;
&lt;li&gt;The recommended choice out of the five ranges.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Naturally, these tabs are easier to fill out after employees have submitted their own assessments and after the manager has received peer feedback. That&amp;rsquo;s why everyone is encouraged to fill out assessments and feedback at least a few days before calibration. Yes, I know that doesn&amp;rsquo;t always happen. (That&amp;rsquo;s another reason to talk to your manager regularly.)&lt;/p&gt;
&lt;h2&gt;Getting to know you&lt;/h2&gt;
&lt;p&gt;The actual calibration meeting is usually six to eight hours long (no joke). Typically, names of employees are put on 3x5 cards or Post-it notes. For each career stage, the cards of employees in that career stage are placed in one of the five ranges as a starting point.&lt;/p&gt;
&lt;p&gt;One range at a time (typically highest first), managers talk about every employee in that range. In addition to describing what, how, proven capability, and feedback for each employee, the managers talk about why they feel those aspects align with the selected range. Other managers typically ask questions, particularly if the reasoning doesn&amp;rsquo;t align with their own. In cases where employees clearly don&amp;rsquo;t fit the initial choice of range, they are moved up or down accordingly, regardless of percentages.&lt;/p&gt;
&lt;p&gt;Once everyone in a range is discussed, the number of employees in the range is compared to the target percentage. If there are too few in the range, managers discuss who might move up as they review the next range. If there are too many in the range, managers go back and further question the employees that seemed to fit least solidly in the range. This all continues until every range is discussed and the calibration model is complete.&lt;/p&gt;
&lt;h2&gt;That's a bit extreme&lt;/h2&gt;
&lt;p&gt;A na&amp;iuml;ve manager exclaims, &amp;ldquo;But I&amp;rsquo;ve worked hard to create a high-functioning team. They should all be in the top range!&amp;rdquo; Congratulations! Is there no room for improvement? I&amp;rsquo;ll bet there is.&lt;/p&gt;
&lt;p&gt;Remember, you aren&amp;rsquo;t comparing teammates to each other&amp;mdash;you are comparing employees to their peers across the division. Usually, you&amp;rsquo;ve got a mix of engineers that work well together. Reward each accordingly, and help every engineer become the best employee possible.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;But what about lame managers and lame teams? They all should suffer!&amp;rdquo; That&amp;rsquo;s harsh&amp;mdash;calm down. But there are bad managers who hire bad people, yet present them as average or good people. These managers manipulate the system until they are caught.&lt;/p&gt;
&lt;p&gt;Even the best of the worst managers get caught within a few years&amp;mdash;usually faster. They are replaced or their teams are disbanded. No system is perfect, but ours does get things right, given time, and my experience is that the process has gotten better since Microsoft started focusing more on management excellence.&lt;/p&gt;
&lt;h2&gt;That's not fair at all&lt;/h2&gt;
&lt;p&gt;The na&amp;iuml;ve manager laments, &amp;ldquo;But what do I tell a solid employee who was in the bottom 7 percent? He completed all his commitments.&amp;rdquo; Perhaps the commitments were too easy for his level&amp;mdash;but what&amp;rsquo;s done is done. The employee is still in the bottom 7 percent. He is not getting a bonus, a raise, stock, or a promotion. Instead, he is getting a tough message about moving up or moving out.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;But he&amp;rsquo;s a solid employee. How is that fair?&amp;rdquo; You&amp;rsquo;ve got a solid employee who&amp;rsquo;s not nearly as good as other engineers in the same division, in the same discipline, at the same career stage. That means you can replace that employee and likely achieve better long-term performance. So, either your employee can substantially improve, or he can find another place to be successful. &amp;nbsp;I describe this in detail in &amp;ldquo;The toughest job&amp;rdquo; (&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Pro-Practices/dp/0735624356/"&gt;Chapter 9&lt;/a&gt;).&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;It&amp;rsquo;s important to have appropriate commitments for your career stage&amp;mdash;achievable yet challenging enough to meet expectations for growth. Some divisions calibrate commitments within career stages by having managers review the commitments of their staff with their leads and with their peers. You can read more about writing great commitments in &amp;ldquo;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2010/03/01/i-m-deeply-committed.aspx"&gt;I'm deeply committed&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;I&amp;rsquo;m still here&lt;/h2&gt;
&lt;p&gt;Yes, Microsoft compares employees against other employees in similar roles at the same career stage. Microsoft pays for individual performance. But why not pay for team performance instead, or at least in addition?&lt;/p&gt;
&lt;p&gt;Personally, I&amp;rsquo;d like an element of my pay to be based on my team&amp;rsquo;s performance. Perhaps it will someday. However, I wouldn&amp;rsquo;t want all my pay to be team-based. I work for Microsoft, not my team. When I switch teams, I&amp;rsquo;m still working for Microsoft. My pay needs to be at least partly based on my own performance, not my associates&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;I also believe Microsoft could better recognize and reward the wide range of personality types and skill sets needed to create a high-functioning team. We need to find more ways to ensure that teamwork is recognized when it enables as well as when it produces.&lt;/p&gt;
&lt;p&gt;Even with its imperfections, Microsoft&amp;rsquo;s system of pay for performance sustains the top-notch engineering workforce that I have the pleasure and privilege to collaborate with every day. That quality wouldn&amp;rsquo;t exist if calibration didn&amp;rsquo;t force us to have hard conversations and value the best among us. I love it.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid"&gt;The percentages ranges I mention at the start of the column are part of the new review model introduced this year. In my 16 years with the company, I&amp;rsquo;ve seen three review models:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2.5 &amp;ndash; 4.5/A &amp;ndash; C:&amp;nbsp; The model when I started in 1995. A 2.5 meant you were done&amp;mdash;up or out within 6 months. A 3.0 was a warning&amp;mdash;you&amp;rsquo;re off your game. A 3.5 was standard goodness. A 4.0 was great, and a 4.5 was wow! The stock ratings (A best, C worst) were hidden and unknown unless you were a group manager. Large divisions had a discipline calibration. All organizations had a cross-discipline calibration (in large divisions it followed the discipline calibration). &amp;nbsp;The approach varied by vice president, and your rewards were determined separately from your ratings. Reviews happened twice a year.&lt;/li&gt;
&lt;li&gt;Underperformed, Achieved, Exceeded/20-70-10:&amp;nbsp; The model we&amp;rsquo;ve had since 2006. Theoretically, the commitment ratings were not subject to percentages, but in actual practice they did conform to rough percentages in order to differentiate bonus amounts within a fixed budget. The contribution rankings were transparent and directly corresponded to percentages&amp;mdash;top 20 percent, middle 70 percent, and bottom 10 percent. All divisions had a calibration based on discipline and career stage. Some organizations followed with a second cross-discipline calibration by career stage. The approach varied by vice president, and your rewards were determined separately from your ratings. Reviews happened once a year.&lt;/li&gt;
&lt;li&gt;1 &amp;ndash; 5:&amp;nbsp; The new system starting this summer. A 1 means the top 20 percent, 2 is the next 20 percent, 3 is the middle 40 percent, 4 is the lower 13 percent, and 5 is the bottom 7 percent. There is no separate stock/contribution ranking. All divisions have a calibration based on discipline and career stage. The approach is dictated by HR (though I imagine different vice presidents will introduce small variations), and your rewards are directly determined by your rating (with the very top 5 percent receiving extra). Reviews happen once a year.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="Readeraid"&gt;Personally, I like the new system. We&amp;rsquo;ll have to see how it works out, but initially I like the simplicity of a single rating, that it&amp;rsquo;s on a curve that better matches historic percentages, that there&amp;rsquo;s no cross-discipline calibration (made no sense), and that there is a the standard approach across divisions. &amp;nbsp;And I am overjoyed with the direct, fixed, and transparent tying of rewards to ratings.&lt;/p&gt;
&lt;p class="Readeraid"&gt;I can think of three more improvements beyond the ones I mention in the column.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Have six ratings (a separate one for the top 5 percent). With everything else so transparent, why hide the top 5 percent?&lt;/li&gt;
&lt;li&gt;Get credit toward your bottom 7 percent if you worked with HR to dismiss or implement a career change for struggling employees during the past review cycle. You can&amp;rsquo;t claim people who simply transferred or left&amp;mdash;HR has to have been actively engaged regarding these folks who would have otherwise gotten a 5 rating. This would encourage managers to connect with HR and actively manage performance issues.&lt;/li&gt;
&lt;li&gt;Do calibration twice a year, and share the midyear calibration rating (perhaps tied to a semi-annual bonus, as it used to be, or used just as a tracking number). As a manager, I hate that I can&amp;rsquo;t provide my employees an unambiguous message about their calibrated performance at midyear. I can tell people they are in jeopardy, but psychologically that&amp;rsquo;s not the same as giving them a number.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10173731" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Being+a+Manager_2D002D00_and+Yet+Not+Evil+Incarnate/">Being a Manager--and Yet Not Evil Incarnate</category></item><item><title>Quality is in the eye of the customer</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/06/01/quality-is-in-the-eye-of-the-customer.aspx</link><pubDate>Wed, 01 Jun 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10169773</guid><dc:creator>ericbrec</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10169773</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/06/01/quality-is-in-the-eye-of-the-customer.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/7041.Justice.jpg" /&gt;&amp;nbsp;Not every bug is the same. A bug that frequently freezes an app gets more attention than an extra line of green pixels in a border. An embarrassing typo in a prominent feature is more urgent to fix than an inappropriate exception thrown by a misused API. Customer data loss or compromise requires instant attention, while a rare app crash can be fixed later. We adjust our approach to bugs based on the bug.&lt;/p&gt;
&lt;p&gt;Engineers get bug priorities, so why are they clueless about test priorities? We approach testing credit card transactions the same way we approach testing web page layout. Of course, we spend more time scrutinizing credit card flows&amp;mdash;we&amp;rsquo;re not complete idiots&amp;mdash;but we go through the same test planning, test case development, test automation, and test triage for both. That&amp;rsquo;s crazy.&lt;/p&gt;
&lt;p&gt;Not all features are viewed by customers the same way. Some are critical to quality&amp;mdash;like those protecting customers or ensuring a smooth customer experience. Some are what my dad calls &amp;ldquo;fruit salad&amp;rdquo;&amp;mdash;nice to do well, but not as important. In these days of the Internet and cloud services, there&amp;rsquo;s no reason to continue testing everything the same way.&lt;/p&gt;
&lt;h2&gt;You've only got one shot&lt;/h2&gt;
&lt;p&gt;It used to be that we got one shot at releasing a quality product. Even then, our packaged product releases would have numerous issues that wouldn&amp;rsquo;t receive attention until the first service pack was released six to nine months later.&lt;/p&gt;
&lt;p&gt;These days, our packaged products are much better. They are of higher quality from the start thanks to instrumentation, early bug fixes, and integration of only those features that are complete and tested using practices like Scrum and feature crews. Packaged products now go through multiple layers of internal and external previews and betas that resolve most issues before final release. These products also integrate with services that can be updated and improved after release.&lt;/p&gt;
&lt;p&gt;Our websites and cloud services are even more flexible. Many of them update monthly or even daily. This rapid iteration and release cadence unveils new approaches to quality and testing that previously were not practical. But we have to break with the past before we can embrace our future.&lt;/p&gt;
&lt;h2&gt;I'm a beta unit&lt;/h2&gt;
&lt;p&gt;Customers aren&amp;rsquo;t shocked when a beta is less than perfect. Some imperfection here and there is fine, as long as those imperfections don&amp;rsquo;t compromise customer trust and don&amp;rsquo;t disrupt the overall customer experience.&lt;/p&gt;
&lt;p&gt;Customers take the same &amp;ldquo;beta&amp;rdquo; attitude toward the Web in general. Connectivity is shoddy and browsers are finicky, so customers expect Web properties and applications to be a little flaky. That&amp;rsquo;s fine as long as websites add value, perform quickly, and protect customers from hackers or misuse.&lt;/p&gt;
&lt;p&gt;Customers are particularly enamored with betas and Web properties that improve regularly in response to customer needs&amp;mdash;spoken and unspoken. You see this all over forums and customer feedback.&lt;/p&gt;
&lt;p&gt;There lies the opportunity to change our approach to quality and testing for betas, websites, and cloud services.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Focus on protecting trust and overall customer experience rather than specific features.&lt;/li&gt;
&lt;li&gt;Focus on repeatable issues rather than flaky issues.&lt;/li&gt;
&lt;li&gt;Focus on being responsive to customer needs rather than one-time perfection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;My experiment worked!&lt;/h2&gt;
&lt;p&gt;We can&amp;rsquo;t compromise on security, privacy, or reliability (trustworthy computing areas), so we must continue their thorough, in-depth, pre-release testing. The overall customer experience must be delightful and compelling, so end-to-end scenario testing is critical. &lt;/p&gt;
&lt;p&gt;Therefore for rapidly updated products and services, the test team should focus its in-depth work on trustworthy computing and the overall customer experience&amp;mdash;including penetration testing, injection testing, stress testing, and end-to-end scenario testing. All other areas can rely on design and code reviews, code analysis (like compilers and FxCop&amp;reg;), unit and component testing, and system sanity checks. &lt;/p&gt;
&lt;p&gt;Yes, this puts more responsibility for initial quality on developers. That&amp;rsquo;s good. Testers should be focused on critical areas and overall quality assurance, and developers should take more direct responsibility for quality. This change is not a big risk for betas and Web properties because customers prefer that we be responsive to what they truly care about rather than perfect about everything. Now we can ship more frequently and actually experiment with different solutions for customers&amp;mdash;just like Amazon has been doing for years.&lt;/p&gt;
&lt;p&gt;Microsoft old-timers might ask, &amp;ldquo;But what about those nasty bugs that take so long to find?&amp;rdquo; That&amp;rsquo;s why we differentiate between flaky issues (Heisenbugs) and repeatable issues (Bohrbugs). Heisenbugs are the nasty ones because they are so unpredictable. However, they are also the issues that customers dismiss and that websites and cloud services can easily retry and resolve.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;The terms Bohrbug and Heisenbug date back to Jim Gray&amp;rsquo;s 1985 paper, "Why Do Computers Stop and What Can Be Done About It?"&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;So instead of dragging every feature through test planning, test case development, test automation, and test triage, we focus on being responsive to customer needs, protecting customer trust, and assuring an overall great experience. We ship frequently with constantly improving customer solutions that are well instrumented, so the product team can analyze usage patterns and continue the virtuous cycle.&lt;/p&gt;
&lt;h2&gt;There&amp;rsquo;s no place like production&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s the old-timers again: &amp;ldquo;Wait a minute! You can&amp;rsquo;t be serious about releasing untested code!&amp;rdquo; First of all, it&amp;rsquo;s not untested. It&amp;rsquo;s design and code reviewed, code analyzed, unit and component tested, and sanity checked. The trustworthy computing areas are fully tested pre-release and the end-to-end scenarios are validated. That&amp;rsquo;s more testing than most of our competitors do.&lt;/p&gt;
&lt;p&gt;However, the old-timers are right. There is still significant functionality being released without the traditional heavily planned, managed, and executed test pass. Shouldn&amp;rsquo;t we be worried? No, we should be embarrassed to think all that extra overhead was worth it. Our test labs aren&amp;rsquo;t the same as customer systems. As I wrote last year, &lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/12/01/there-s-no-place-like-production.aspx"&gt;There's no place like production&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We roll out changes to only part of the whole customer base at a time through betas or exposure control. We validate that features are working in real-world scenarios. We roll back if there&amp;rsquo;s a serious issue. And we focus on continuously improving, using the real customer feedback and usage data that would otherwise be guesswork.&lt;/p&gt;
&lt;h2&gt;Have you decided to join the 21st century?&lt;/h2&gt;
&lt;p&gt;We can&amp;rsquo;t change our testing approach for all products. The change works best for betas, websites, and cloud services. However, we owe it to our customers to utilize modern, feedback-based, rapid iteration methods; grow our testers into quality assurance, trustworthy computing, and experimentation experts; and put more responsibility on our developers for quality.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time Microsoft joined the modern era of software development. With all our years of enterprise experience, we can lead the industry with quality, while delighting our customers with rapid updates that address their every spoken and unspoken need.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10169773" width="1" height="1"&gt;</description></item><item><title>Test don’t get no respect</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/05/01/test-don-t-get-no-respect.aspx</link><pubDate>Sun, 01 May 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10159826</guid><dc:creator>ericbrec</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10159826</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/05/01/test-don-t-get-no-respect.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-89-01/4810.Skipolls.jpg" /&gt;&amp;nbsp;I love Microsoft&amp;reg;. We&amp;rsquo;ve been together happily for many years. If you&amp;rsquo;ve been in a healthy long-term relationship, then you know what this means&amp;mdash;there are things about Microsoft that make me curse, stomp, and spit. I&amp;rsquo;ve learned to tolerate them, but they still make me cringe.&lt;/p&gt;
&lt;p&gt;A prime example is our disrespect for critical disciplines like testing. The test discipline is one of the two largest engineering disciplines at Microsoft and one of three key engineering triad disciplines. How can we not grant testers the same respect and opportunities we give the other two engineering triad disciplines&amp;mdash;program managers (PMs) and developers? Perhaps our history provides the answer.&lt;/p&gt;
&lt;p&gt;Microsoft was started by developers and run by developers for years. We&amp;rsquo;re now run by a former program manager of sorts, so PMs receive begrudging respect. Developers can&amp;rsquo;t draw and have no sense of style, so designers are becoming appreciated. Developers hate writing, so content publishing is at least considered necessary. Localization and media are magical things that just appear in the build. But test? Developers believe testing is easy, if not remedial, so developers think testers are beneath them.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;Please note that I&amp;rsquo;m not giving any of these disciplines proper credit for all the work they do. I&amp;rsquo;m merely listing the superficial ways they are often viewed by developers.&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;It&amp;rsquo;s a different kind of flying altogether&lt;/h2&gt;
&lt;p&gt;Since developers think testing is easy compared to development, they think they can do a tester&amp;rsquo;s job. After all, isn&amp;rsquo;t that the cool, agile way? Aren&amp;rsquo;t we all just software engineers? Yeah, and everyone would get along if we just gave peace a chance. Don&amp;rsquo;t be na&amp;iuml;ve.&lt;/p&gt;
&lt;p&gt;Developers can verify that their individual components work as specified in isolation (unit testing). They have much more trouble verifying that their components work as a system, outside of isolation and spec. Why? Tunnel vision. Developers design and write their code for a certain purpose. That&amp;rsquo;s the way developers think about it&amp;mdash;as they should.&lt;/p&gt;
&lt;p&gt;Real-world testing must verify that the code works appropriately when used in ways that defy all logic and purpose. To test code properly, you need to completely forget how and why it was written and instead think about how it might be used in arbitrary and even insidious ways. Developers don&amp;rsquo;t think that way&amp;mdash;they can&amp;rsquo;t think that way and still develop with purpose. Testers do think that way. That&amp;rsquo;s why we need testers.&lt;/p&gt;
&lt;h2&gt;That's easy!&lt;/h2&gt;
&lt;p&gt;Even though the test discipline is essential for high quality software, some groups still consider converting all their testers to developers, expecting the combined development team to write all tests&amp;mdash;it&amp;rsquo;s a great way to get more developer headcount! The teams that actually go through with this change experience the following problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;They lose their test leads and leaders.&lt;/b&gt; The former development leads tend to lead the combined engineering teams. (I talk about why in the next section.) This relegates the former test leads to individual contributor roles (ICs), who usually don&amp;rsquo;t take this reduction in responsibility well and leave. The former top test ICs also tend to leave&amp;mdash;after all, clearly their skill set is not appreciated, no matter what sparkly purple lipstick the management team might put on this pathetic pig of a plan.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;They lose their testers.&lt;/b&gt; After the test leads and leaders go, the former test ICs gravitate toward a development mindset. They gravitate there because testers get no respect, they are calibrated against developers even if they continue to work differently as testers, and they can see there&amp;rsquo;s no career growth in test. After all, their role models left the team. Now the only path up is through development.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Team morale drops, especially among the testers.&lt;/b&gt; Losing team members and team leaders impacts morale. The most impacted are the testers still clinging to their discipline who lose their role models, their self-identity, and their solid reviews. (Even great apples get bad reviews in an orange grove.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Their code quality is initially higher and then gradually drops.&lt;/b&gt; The quality improves initially because developers suddenly realize they&amp;rsquo;ve lost their safety net and actually start writing unit tests, doing design and code reviews, and paying attention to those build warnings. (Of course, developers should have been doing this all along.) However, after a while, the system and boundary errors start creeping in and building up. No one is looking for them, so they are discovered by the wrong kind of testers&amp;mdash;customers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Combining development and test makes sense at the unit level (such as Test-driven Development). This practice can also work at the component level for well-understood and well-factored components on teams that also have strong QA. However, combining development and test doesn&amp;rsquo;t make sense at the system level. I talked about this at length in &amp;ldquo;Undisciplined&amp;rdquo; (&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356"&gt;chapter 4&lt;/a&gt;).&lt;/p&gt;
&lt;h2&gt;I just can&amp;rsquo;t get enough&lt;/h2&gt;
&lt;p&gt;The lack of respect for testers is most apparent in leveling and career development. Depending on where they work in the company, testers are ranked one to three levels below developers and PMs. In other words, the test counterpart to a PM and developer who are all working on the same project with the same scope will tend to be a full career stage below his or her peers. Unbelievable!&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yeah, but testing isn&amp;rsquo;t as difficult as development and program management,&amp;rdquo; says the dim developer. Really? Try it sometime. Try writing automation that works every time, even as developers alter configurations and data. Try performing penetration testing that closes gaps that foil sophisticated hacks. &amp;nbsp;Try producing injection testing that discovers failure modes, system testing that finds sneak conditions, or end-to-end scenario testing that validates the billion-dollar bets we make. And I&amp;rsquo;m just scratching the surface.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yeah, but our test team isn&amp;rsquo;t that advanced&amp;mdash;they don&amp;rsquo;t do all those things.&amp;rdquo; Exactly! We don&amp;rsquo;t value the test discipline enough to advance our testing capability to the same levels as PM and development.&lt;/p&gt;
&lt;p&gt;Testing is frigging hard! We need great people to do it well, and then we need to pay, develop, and expect them to be world class. Our treatment of the test discipline is astonishing and pathetic. Believe or not, it used to be even worse until senior test leaders from across the company started tracking the numbers and driving promotions.&lt;/p&gt;
&lt;p&gt;Yes, it&amp;rsquo;s true that testers do different jobs from PMs and developers. But we can&amp;rsquo;t design and construct complex systems and think that testing those systems will be any less complex. You get what you pay for, and by spending less on testing, we create imbalance. We sacrifice quality, productivity, and efficiency as a result. The sacrifice in quality is obvious. The sacrifice in productivity and efficiency comes from incomplete and fragile testing that results in higher error rates, more rework, and higher support and sustained engineering costs.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;The refrain I hear when I complain about our commitment to testing is, &amp;ldquo;Yeah, but Google and Amazon have far fewer testers.&amp;rdquo; Amazon carefully tests the systems that matter, like billing and account management. Google does endless analysis of its search results.&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;As for Microsoft, we are in a broader business than Amazon or Google. We are a platform company and an enterprise company. Our customers expect more from us. Quality is a differentiator and a necessity. While we don&amp;rsquo;t need perfection in all things, we do need the right quality in the right products. &lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;The world just wants us to fit in&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s bad enough to give up quality, productivity, and efficiency by expecting less from our testers than we do from their PM and developer counterparts. What&amp;rsquo;s worse is that lowering expectations sends a clear message that to get ahead, a tester needs to become something else. This philosophy is nothing short of irresponsible and tragic.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lowering expectations for testers is irresponsible because some of our most challenging engineering problems involve testing&amp;mdash;testing in production, testing many-core highly-parallel systems, testing 1000+ machine services, testing globally distributed cloud services, testing secure and private cloud systems, testing hybrid procedural and functional languages, testing natural user interfaces, and on and on.&lt;/li&gt;
&lt;li&gt;Lowering expectations for testers is tragic because we send a message that testing is not a legitimate career path, when in fact it is a robust career path to the highest engineering stages for both test managers and test ICs. Instead of following this path, testers abandon their discipline to do something else, often with mixed results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By expecting less from our testers, we are encouraging them to move away from a career they love&amp;mdash;one that is essential to Microsoft&amp;rsquo;s success and offers tremendous opportunity&amp;mdash;and toward a career not of their choice that may inhibit their growth. It is a travesty.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;Microsoft recently announced changes to its compensation plans that increase the base salary for most engineers, including testers. That&amp;rsquo;s wonderful and I&amp;rsquo;m grateful. Investing in our test discipline is a separate matter. It is choosing to be just as sophisticated in testing as we are in program management and development.&lt;/p&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;Executives might reasonably ask, &amp;ldquo;Why would we increase our spending in testing? What&amp;rsquo;s the return on investment?&amp;rdquo; While I believe a strong financial return exists, I&amp;rsquo;d turn that statement around. If we want to save money, why don&amp;rsquo;t we decrease how much we pay developers by a couple of levels? Because our quality and innovation would suffer. Why would they suffer? Our products are platforms with wide and varied usage that require sophisticated engineering to orchestrate and improve&amp;mdash;and test.&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;Tell me what it means to me&lt;/h2&gt;
&lt;p&gt;At a time when we should be investing in test, we continue to demean the discipline. We have great leadership at the highest levels within the test discipline, but far too few testers join these ranks each year.&amp;nbsp; Even though test is far behind PM and development, they receive a smaller promotion budget. (The promotion budget is equal in proportion to the other disciplines, but that proportion is a distortion due to the higher salaries in PM and development.) Only a handful of test ICs and test managers reach the principal and partner stages to serve as role models.&lt;/p&gt;
&lt;p&gt;How can we allow a critical and central engineering discipline to be so disrespected and damaged? Are we that vain or foolish to think testers aren&amp;rsquo;t really needed or the problems aren&amp;rsquo;t really that difficult?&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time we put our money where our priorities are and push testing to the next stage. We hire the best&amp;mdash;let&amp;rsquo;s challenge them accordingly. Let&amp;rsquo;s lay out the test career path all the way through to vice president and technical fellow. Let&amp;rsquo;s start aggressively recognizing the talent we have and developing the talent we need. Testing deserves our respect&amp;mdash;our customers, our partners, and our business depend upon it.&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;&lt;b&gt;Eric Aside&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;What can you do to help if you aren&amp;rsquo;t a test or multidisciplinary leader?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accept and appreciate that the test mindset and skillset are different from development, yet their problems are equally complex and critical to our product quality.&lt;/li&gt;
&lt;li&gt;Write high quality code from the beginning using design and code reviews, code analysis (like PREfast and FxCop), and thorough unit testing, all of which allow testers to focus on their unique value of providing quality assurance and exposing system issues developers wouldn&amp;rsquo;t normally detect.&lt;/li&gt;
&lt;li&gt;Encourage your test team to hire great fulltime testers that focus on the truly challenging test problems we face&amp;mdash;problems that when solved will improve the quality of our products, our testing, and our testers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="Readeraid" style="padding-left: 30px;"&gt;BTW, I could write a similar column on service engineers, who are even less understood than testers.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10159826" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Cross+Disciplines/">Cross Disciplines</category></item><item><title>You have to make a decision</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/04/01/you-have-to-make-a-decision.aspx</link><pubDate>Fri, 01 Apr 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10148725</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10148725</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/04/01/you-have-to-make-a-decision.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/7041.Justice.jpg" /&gt;&amp;nbsp;What&amp;rsquo;s worse&amp;mdash;a flawed decision or no decision? That&amp;rsquo;s easy. Decisions keep a business moving. An imperfect decision might move your business slightly in the wrong direction, but at least it will be moving. Make a few adjustments, and you&amp;rsquo;re back on track.&lt;o:p&gt;&lt;/o:p&gt;
&lt;p class="MsoNormal"&gt;Making no decision brings business to a halt. Even if you make a great decision during the delay, the time needed to regain momentum will leave you far behind. Like boulders and trains, groups of people have inertia. It takes great effort to get them going, so it&amp;rsquo;s better to keep them moving forward and adjust, rather than halt progress and restart.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Unfortunately, leaders often don&amp;rsquo;t have enough information to make a clear decision. What do you call leaders who are indecisive when dealing with ambiguity? Incompetent, ineffective imposters. They are losers, not leaders. If you want to lead, you better know how to make good decisions with partial data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;I&amp;rsquo;m the decider&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;Before discussing making decisions with incomplete data, I should point out that being a decisive dunce is no better than being an ineffective imposter. Decisive dunces make decisions quickly (good), but without clear thinking or cause (bad). This results in random or backward progress and an exasperated team. Having too little information is no excuse for being arbitrary or clueless.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Instead, you want to inform yourself as much as time will allow, and then make your decision based on context and experience. How much time do you have? Only until the point your team becomes blocked. How do you apply context and experience? Develop a consistent framework for making your decisions that helps you spot patterns, and then rely on your well-informed intuition to make the best choice.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This is easier to describe with examples. Let&amp;rsquo;s talk about hiring decisions, product tradeoffs, and triage decisions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you want more time to make decisions, then plan ahead. Map your business rhythm to a calendar, and begin your decision making early in anticipation of events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you want better data to make decisions, then put measurements in place, utilize business intelligence, and be better informed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Both strategies for better decisions require forethought. Don&amp;rsquo;t like a vacuum? Fill it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;To hire or not to hire&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;I&amp;rsquo;ve been an &amp;ldquo;as appropriate&amp;rdquo; for a decade, meaning that I am the last interviewer on an interview loop. My role is to make the final hiring decision about the candidate. Sometimes that decision is very easy because the prior interview comments are compelling in one direction or another and they fit my personal assessment of the candidate well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;However, the hiring decision is often difficult. The prior interview feedback is mixed and inconclusive. For an interview, I have at most one hour to gather information directly from the candidate. In addition, the recruiting team and hiring manager are blocked immediately after my interview, so I have only an hour or two to decide.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;To make the best possible decision, I follow the same routine each interview. I prepare before the interview by reading the candidate&amp;rsquo;s resume, checking out any online content it references, and reading the prior interview feedback. I look for patterns in the comments that might indicate the root cause(s) of concerns. Then I interview the candidate with the goal of confirming the root cause(s) and whether or not the concerns can be overcome.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Now, I&amp;rsquo;ve collected all the facts I possibly can without significantly delaying the offer. I&amp;rsquo;ve done the analysis, and my intuition is informed. How do I put this all together? I step back and let my intuition guide me. After all the analysis, and all my years of experience, what decision seems right?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;As Malcolm Gladwell points out in &lt;a href="http://www.gladwell.com/blink/index.html"&gt;&lt;span style="color: #0000ff;"&gt;Blink&lt;/span&gt;&lt;/a&gt;, an informed intuition is an exceptional instrument. I&amp;rsquo;m not talking about judging a candidate from a quick glance. I&amp;rsquo;m talking about learning all I can and then, instead of focusing only on the individual details, I take a step back and looking at the candidate as a whole with everything I know about her and the other candidates I&amp;rsquo;ve met. That&amp;rsquo;s hard to do consciously&amp;mdash;your informed intuition can be your guide.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Even if I did take time to call every reference, bring the candidate back for more interviews, and do a background search online, my decision might not be much better. As Gladwell also points out, sometimes the extra analysis and second guessing is worse because you start to ignore your overall assessment and cumulative experience in favor of individual facts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If I&amp;rsquo;m still undecided about a candidate, the decision is easy&amp;mdash;don&amp;rsquo;t hire the candidate. You always want to feel confident about the candidate&amp;rsquo;s potential for success for the sake of the candidate, the team, and the company.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Now consider the alternative&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;Product tradeoffs can be very difficult to make. There are often many opposing viewpoints and rarely conclusive data. Great data from telemetry and web services can make a huge difference, but data informs&amp;mdash;it doesn&amp;rsquo;t decide (necessary, but not sufficient). You must make the call quickly based on the data and your collective experience or risk losing your market position.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The individual decision may be about a user story, an architectural approach, or even a development tool. Regardless, there will be pros and cons for each choice. First, use your value proposition, architecture principles, or other relevant framework to clarify your options. If you still have a number of valid choices, you can quickly analyze your tradeoffs using one of my favorite tools, Pugh Concept Selection&amp;mdash;a fancy name for a simple technique. (I described it briefly in &lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2008/08/01/my-experiment-worked-prototyping.aspx"&gt;&lt;span style="color: #0000ff;"&gt;My experiment worked!&lt;/span&gt;&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;In Pugh Concept Selection, you make a table where the rows are choices and the columns are decision criteria. (Excel&amp;reg; is perfect for doing this.) The result is like a pros and cons table with a twist. Instead of indicating which choices meet the criteria best on some absolute scale, you pick one choice as your default and give it zeros for all criteria. Then you rate all the other choices &lt;i style="mso-bidi-font-style: normal;"&gt;relative&lt;/i&gt; to your default choice. If a choice is better than the default for a criterion, you put a +1 in that row and column. If a choice is worse, you fill in -1, and if it&amp;rsquo;s about the same, you fill in 0. Add up all the columns, and you have the rating for each row. Now you can see how all the choices compare.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;You can weight criteria (columns) differently to indicate what&amp;rsquo;s most important. Typically, people use power series for weights (1, 3, 9). To determine the sum a row, you multiply its ratings (-1, 0, +1) by their associated weights and add them together. The Excel SUMPRODUCT function does this nicely. Click &lt;/span&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/5633.Pugh-Concept-Selection-Example.xlsx"&gt;&lt;span style="color: #0000ff; font-size: x-small;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt; for a sample spreadsheet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;Filling out the table of choices as a group can be fun and insightful. You learn a great deal about what the tradeoffs between choices really are and what you care about most. However, Pugh Concept Selection won&amp;rsquo;t make your choice for you (though it could reject a bunch). While one option might get the best score, there are likely several top options worth considering.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Once the table of choices is complete and you&amp;rsquo;ve talked through the results and insights gained, it&amp;rsquo;s time to make a decision. That&amp;rsquo;s when you throw out the table and rely on your newly informed intuition. The analysis is necessary and instructive, but it&amp;rsquo;s your experience and overall context&amp;mdash;your intuition&amp;mdash;that can take that analysis and sense the right decision.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Tell me why&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;When you are managing product issues toward the end of a cycle, there are many issues to cover, so decisions must be made quickly. In addition, you are usually making those decisions in a group of at least three people representing different interests, so you must reach a consensus in which no one objects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;At Microsoft&amp;reg;, this decision-making process is called triage. It can be one of the most divisive activities in the development cycle if done improperly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;How can you quickly convince three or more people to agree with confidence about important issues? You need three things:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&amp;sect;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;The root of the issue&lt;/b&gt;&amp;mdash;without knowing the root cause, you can&amp;rsquo;t apply your past experience to the problem with confidence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&amp;sect;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;The scope of the issue&lt;/b&gt;&amp;mdash;without knowing how many customers and partners are impacted and how are they impacted, you can&amp;rsquo;t judge the benefit of acting.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&amp;sect;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;The risk of the issue&lt;/b&gt;&amp;mdash;without knowing the risks involved, you can&amp;rsquo;t balance the costs against the benefits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Once you&amp;rsquo;ve understood these three things, which every late-stage issue report should contain, you&amp;rsquo;ve informed your collective intuition. Now, the group decision makers can depend upon their visceral reaction to a suggested resolution. Of course, that&amp;rsquo;s no guarantee you&amp;rsquo;ll agree. For more on my framework for these kinds of tense group decisions, read my column &amp;ldquo;Are we having fun yet?&amp;rdquo; (&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356"&gt;&lt;span style="color: #0000ff;"&gt;chapter 1&lt;/span&gt;&lt;/a&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Wait, there&amp;rsquo;s more&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&amp;ldquo;But what if more information arrives later that significantly changes your thinking?&amp;rdquo; No problem. We want to make a decision that lets us move forward, not a perfect decision, necessarily. The way we gain insight and experience is to try, receive feedback, adjust, and try again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;That&amp;rsquo;s no reason to change decisions constantly, however. To maintain your forward momentum, you should iterate, making slight adjustments as you go. Yet, occasionally there are enough new internal insights or external expectations to suggest a substantial course correction. That&amp;rsquo;s okay&amp;mdash;it&amp;rsquo;s what makes our lives interesting and our business engaging.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;
&lt;p class="MsoNormal"&gt;Each time you analyze new information, your intuition becomes smarter. You get more experience and a better perspective. You make better decisions. Keep an open mind, listen well to customers and contrarians, apply a consistent framework, and trust your well-informed instincts. Don&amp;rsquo;t wait to be certain. Decide, iterate, and constantly lead your team closer to its goals.&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10148725" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Inefficiency+Eradicated/">Inefficiency Eradicated</category></item><item><title>You're no bargain either</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/03/01/you-re-no-bargain-either.aspx</link><pubDate>Tue, 01 Mar 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10134687</guid><dc:creator>ericbrec</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10134687</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/03/01/you-re-no-bargain-either.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/1715.Bruised.jpg" /&gt;&amp;nbsp;&amp;ldquo;Can I talk to you about Bozo? He gets on people&amp;rsquo;s nerves. His communication style causes trouble. He&amp;rsquo;s bringing the whole team down. He&amp;rsquo;s a freaking clown.&amp;rdquo; If you&amp;rsquo;re a manager, you&amp;rsquo;ve probably heard this before. Every team seems to have its share of Bozos. What do you do about Bozo? Discipline him? Move him to another team? Fire him? No, don&amp;rsquo;t be a fool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Bozo needs to reconsider his behavior&amp;mdash;no doubt. If you&amp;rsquo;re Bozo&amp;rsquo;s manager, you need to evaluate the situation and take appropriate action. But make no mistake, the problem isn&amp;rsquo;t just Bozo. The problem is with the whole team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Let me make it perfectly clear. You are a Bozo. We are all Bozos. No one is perfect. Nobody always says the right thing and behaves the right way. Even if you did, someone would take offense.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Bozo the Clown was the host of a famous children&amp;rsquo;s show when I was young and dinosaurs ruled the earth.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;The good, the bad, and the ugly&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;Sure, but not all Bozos are created equal. The Bozo on my team is completely useless&amp;mdash;a disaster. He&amp;rsquo;s got to go.&amp;rdquo; Really? Why was he hired? What is his review history? Has he been a Bozo from the start?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Sometimes we do make bad hiring decisions and need to send our clowns to a new circus. I designate such truly troublesome teammates as &amp;ldquo;negative headcount.&amp;rdquo; If you were to remove Bozo from his team and not replace him, how would his team perform long-term with one less person? If you believe productivity would be higher and stay higher, because Bozo just adds work to everyone else, then Bozo is negative headcount&amp;mdash;he subtracts instead of adds to his team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Most of the time, however, Bozo is a good employee who&amp;rsquo;s made some mistakes. Unfortunately, his coworkers aren&amp;rsquo;t sufficiently patient, understanding, or accommodating when dealing with him.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;&amp;ldquo;&lt;/span&gt;&lt;a href="http://www.amazon.com/Dynamics-Software-Development-Michele-McCarthy/dp/1556158238"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Dynamics of Software Development&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;rdquo; is one of my favorite books on its subject. It&amp;rsquo;s written by Jim McCarthy, a former Microsoft employee. Jim&amp;rsquo;s &amp;ldquo;Don&amp;rsquo;t flip the Bozo bit&amp;rdquo; essay stresses the importance of giving people a chance. The key is understanding the root cause of the trouble and addressing it with Bozo and the team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Take all of me&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Remember, everyone is a Bozo. We are all package deals. You can&amp;rsquo;t take the benefits of people without also taking their faults. You can fight this notion at your peril, or you can embrace it and accept people as they are.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why do people &amp;ldquo;flip the Bozo bit&amp;rdquo; on others, instead of accepting them as they are? Because it&amp;rsquo;s so easy and natural to project your opinion of people onto them, instead of seeing them as complete individuals. You believe a coworker, a lover, or a celebrity is wonderful, and you see that person as wonderful. That is, until she disappoints you. Then the bit is flipped and she is intolerable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Stop projecting. Take a look in the mirror. You aren&amp;rsquo;t wonderful and neither is anyone else. You are a real, whole, human being&amp;mdash;a marvelous complex package of positives and problems. So is everybody else. Accept it, embrace it, and move on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;I'll accommodate you&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;How do you deal with all of life&amp;rsquo;s imperfections? You make accommodations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Certainly, you should talk candidly and courteously to your teammates one-on-one about their weaknesses. In response, they should try to improve or at least help you both adapt. Remember, you can&amp;rsquo;t fix everything about everybody as hard as you might try. Instead, know yourself and know your coworkers&amp;mdash;adjust accordingly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;I&amp;rsquo;ve had inventive teammates who were flakey, brilliant teammates who were arrogant, and insanely productive teammates who were uptight. I could have admonished the flakiness, but then lost the creativity. I could have browbeaten the arrogance, but then lost the brilliance. I could have completely unwound the uptightness, but then lost the productivity. Instead, I provided structure for the inventive flakey folks, tolerance and coaching for the brilliant arrogant folks, and safe places to work and vent for the productive uptight folks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;For myself, I can&amp;rsquo;t keep any details in my head for long, so I write myself emails and tell others to write me emails. Everyone has a way of working and dealing with his weaknesses. Ask and learn what works well for your teammates and your management. Then get over yourself and accommodate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;As a manager, it&amp;rsquo;s important to recognize when the best accommodation for an employee is to switch teams. Sometimes you&amp;rsquo;ve got a good person who fits poorly with the team. That&amp;rsquo;s not very common, but it happens. Instead of a diversity of ideas, you get a clash of styles. After understanding the root cause, encourage your employee to seek a new role. Help your employee find and attain a happier and more successful future.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;We've gotta play to your strengths&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why should others compromise and make accommodations for your weaknesses? Let&amp;rsquo;s say you corrected all your problems, as if that were possible. What would the result be? You&amp;rsquo;d be ordinary in every area, with no improvement to the strengths that truly differentiate you. You&amp;rsquo;d certainly get along better with everyone, and that&amp;rsquo;s quite valuable. However, that&amp;rsquo;s not why you were chosen for your role. Accommodate and defuse your weaknesses? Absolutely! Focus on weaknesses while starving your strengths? Never!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Your value as an individual rests in your unique strengths. Those are the areas you want to develop and deploy the most. To the extent that your weaknesses inhibit exploiting your strengths, you must correct or accommodate those weaknesses. However, remember who you are and the core of your success. Adapt, and then accelerate your growth by doing what you do best.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Warts and all&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Everyone can be a Bozo at times to people in his work life and home life. Give yourself a break. Accept your faults. Do what you can about them, and accommodate the rest. Help your coworkers, your friends, and your family to do the same.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;When talking honestly and respectfully to teammates one-on-one about their shortcomings isn&amp;rsquo;t enough, make accommodations. Tolerate their weaknesses, utilize their strengths, and they&amp;rsquo;ll likely do the same for you. Yeah, you could argue and complain instead, and sometimes that&amp;rsquo;s cathartic, but it&amp;rsquo;s rarely beneficial to anyone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Swallowing your pride and getting along is healthy for you, your team, and your loved ones. There are always areas where you can&amp;rsquo;t compromise, but typically they are few. Your life will be less stressful, your relationships will be stronger, and you will be happier and more successful if you embrace others as the whole human beings they are.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10134687" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Personal+Bug+Fixing/">Personal Bug Fixing</category></item><item><title>Cycle time—the soothsayer of productivity</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/02/01/cycle-time-the-soothsayer-of-productivity.aspx</link><pubDate>Tue, 01 Feb 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10122188</guid><dc:creator>ericbrec</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10122188</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/02/01/cycle-time-the-soothsayer-of-productivity.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/2744.Kungfu.gif" /&gt;&amp;nbsp;Nothing infuriates me more than wasted time and wasted effort. I&amp;rsquo;m not talking about training, reorgs, moves, morale events, or vacations. Those at least have the potential to be valuable in your life. I&amp;rsquo;m talking about build time, integration time, unused specs, incomplete features, blocking issues, excessive and persistent bugs, and over-engineered code and processes. You know&amp;mdash;hours and days you&amp;rsquo;ll never get back.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;I broke down all this real waste years ago in my column &amp;ldquo;Lean: More than good pastrami&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;chapter 2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;). While I provided examples and suggested solutions for individual areas, I didn&amp;rsquo;t really map the path to a better life for your particular team. Every situation is different. You need a path that discovers your most harmful waste, drives your team to resolve it, and rewards your team with a visceral sense of relief.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;In manufacturing, the secret path to success is reducing inventory. Inventory hides your manufacturing issues. As you reduce inventory, problems appear. You fix the issues, and then reduce inventory further. Gradually, your waste is eradicated, and your efficiency soars. In software development, the secret path to success is reducing cycle time. The shorter you make the time between concept and completion, the more roadblocks you face that have little to do with actual engineering. Fixing those problems unleashes productivity. Let me show you the way to free your engineering soul.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;What&amp;rsquo;s done is done&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The first step to shortening your development cycle time is determining how long your cycle takes. For services, it&amp;rsquo;s the time between releases. However, for packaged products, shortening time between releases often can&amp;rsquo;t be supported by the market. Thus, a better definition of a cycle is the time between starting detailed specification of a feature and having that feature completed. What does it mean to complete a feature? There&amp;rsquo;s the rub.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You&amp;rsquo;ve got to define &amp;ldquo;done&amp;rdquo; for your features and for release of your services. Below are the definitions my team uses. We insist the first four are done for every feature and the second four are done for every release. We release the Xbox.com sites every four weeks&amp;mdash;and we LOVE IT!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;Done&amp;rdquo; for every feature:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All updated designs and code are reviewed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All automated tests written and passed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;No ship-stopping bugs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All monitoring and health checks in place (feedback tools for packaged products)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&amp;ldquo;Done for every release:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo3;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All localization and world readiness completed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Full test pass completed successfully&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All quality areas signed off and partners signed off (including LCA)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;All necessary release documentation completed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As you attempt to shorten the time between starting and finishing work, it&amp;rsquo;s these eight &amp;ldquo;done&amp;rdquo; criteria that expose issues. Let&amp;rsquo;s briefly discuss the common problems that arise and how to respond.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you build it&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;This first requirement for &amp;ldquo;done,&amp;rdquo; reviewing updated designs and code, only saves time, so let&amp;rsquo;s talk about automated tests&amp;mdash;unit tests, component tests, stress tests, acceptance tests, system tests, fault injection tests, and so on. Developers and testers should share in writing these tests. Who writes which tests varies by team. As they attempt to shorten cycle time, most teams struggle with their test harnesses and the time it takes to run the tests.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;When it comes to reducing cycle time, you&amp;rsquo;ve got to distinguish between tests that run quickly and often and tests that run slowly and infrequently. Any tests that fall in the middle need to pick a side and be rewritten or refactored.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;While it&amp;rsquo;s nice to have one test harness, you can get away with two&amp;mdash;one for fast and reliable check-in tests and one for full test passes. If you&amp;rsquo;ve got such a big team that even quick check-in tests take more than 10 to 20 minutes, then you&amp;rsquo;ve probably got a large enough team to invest in test prioritization and parallelization technology.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Likewise, if you&amp;rsquo;ve got such a large codebase that it takes more than 10 to 20 minutes to rebuild, then you&amp;rsquo;ve probably got a large enough team to invest in a highly parallelized build lab and build dependency logic. Remember, build, test, and check-in form software development&amp;rsquo;s inner loop. Anything done to speed up your development inner loop creates a huge multiplier to overall productivity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As for code branches, you never want to be more than one branch deep from the main branch. Integration is expensive, and each branch level adds another integration layer. Think about it. Say you were building personalized laptops. Having the distinctive components go through customs would crush your delivery schedule. Every branch level is like another customs station between your fixes and features and the main branch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Roaches check in, but they don't check out!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Cleaning up a large bug backlog before release can really slow down cycle time. Bugs take &lt;/span&gt;&lt;a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=962984"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;progressively longer to fix&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt; the longer you wait. Design and code reviews plus automated testing will help (as will refactoring spaghetti code and switching to test-driven development). Regardless, what really matters is finding and fixing bugs early. Short cycle times demand immediate bug fixing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;No matter what you do, you&amp;rsquo;ll still have bugs&amp;mdash;we are human. Some of those bugs will be very difficult to find and fix, which will slow you down. The good news is that an architecture that is resilient to failure can alleviate the need to fix the toughest bugs&amp;mdash;the intermittent ones. Resilient architectures allow you to collect data on these stubborn, sporadic slipups and fix them once they are finally understood.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;I wrote more about resiliency in one of my more controversial columns, &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2008/05/01/crash-dummies-resilience.aspx"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Crash dummies: Resilience&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;How am I doing?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Monitoring and health checks are often treated as afterthoughts. This amateur-hour action increases the time needed to track down customer issues, which lengthens cycle time. This is just as true with designing and implementing customer feedback tools for packaged products.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Monitoring and health checks need to become forethoughts, designed in from the start. Consider why you are building your feature, and ask how you&amp;rsquo;ll know if it is performing as envisioned. That will tell you exactly how to monitor its use and inquire about its health.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;All this data and your quick cycle times enable fast feedback loops and constant improvement. Be sure to spend time during every cycle reflecting on what you can do better in your product and your engineering team. My feature teams and leads do this twice every release (every two weeks).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Making monitoring and health checks a forethought is my team&amp;rsquo;s most recent addition to the &amp;ldquo;done&amp;rdquo; list. Poor monitoring and insufficient health checks caused us to stumble in the fall, while we watched a partner team of ours shine in the same area.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Sign me up&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;We already talked about automation for full test passes, and localization processes are quite refined and fast at Microsoft, so the next area that typically causes trouble is sign-off. Quality areas (security, privacy, and so on) should be addressed and bugs fixed by all engineers as part of normal feature work. However, sign-off on these areas, as well as partner sign-off, can really slow down cycle time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Even though quality is the responsibility of every engineer, sign-off works best if one engineer is assigned to shepherd each quality area through its process. Those engineers become the team specialists in their areas, a nice career opportunity for them that provides cross-group scope.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Since team specialists deal with their quality areas all the time, sign-off requirements and activities are far faster and easier for them than for other team members. In addition, team specialists develop relationships across the team and with corporate specialists in their area, which also speeds the process and provides growth for the entire team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;How about a few more details&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Using many of the techniques I&amp;rsquo;ve described, my team has managed to reduce the cycle time for our production releases from a few times a year to every four weeks. It&amp;rsquo;s fantastic! Before I get into all the advantages we are seeing, let me cover two topics people often question.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;How do you develop features or architecture changes that take longer than four weeks? &lt;/b&gt;There are two basic approaches: horizontal and vertical.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;The horizontal approach is to work on the large change a layer of the stack at a time. For example, first make the schema change, then ship the new service, then write the new model, then the new controller, and finally the new view. Each layer can ship within a four-week cycle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;The vertical approach is to break the large change into smaller slices of functionality. You then complete each vertical slice end-to-end within a four-week cycle. If the slices lead to a disjointed user experience, you hide the slices from users until enough of them are complete.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;People often use a combination of horizontal and vertical techniques. Unfortunately, the horizontal approach often leads to over-engineering of layers and hampers iterative feedback. I much prefer the vertical technique, using the horizontal approach only as a last resort.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;How do you handle sustained engineering? &lt;/b&gt;Sustained engineering fixes usually take about a month from identification through testing and release. Since we ship every four weeks, sustained engineering is just part of our regular work. &lt;b style="mso-bidi-font-weight: normal;"&gt;There are no sustained engineering releases except in the most unusual of cases, and more importantly, there is no special sustained engineering team.&lt;/b&gt; We are in it together&amp;mdash;we all feel the pain of our mistakes and the joy of our advances.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Life is good&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Now that we&amp;rsquo;ve been releasing every four weeks for the last six months, we&amp;rsquo;re really feeling the benefits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Much of the overhead that engineers complain about is gone&lt;/b&gt;&amp;mdash;we had to remove it to succeed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Slipping is manageable&lt;/b&gt;&amp;mdash;if a feature misses a release by a week or two, it still goes out within a month.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Releases aren&amp;rsquo;t scary or crazy anymore&lt;/b&gt;&amp;mdash;we do them all the time, and you can cause only so much trouble in four weeks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Our team gets more done in less time&lt;/b&gt;&amp;mdash;we&amp;rsquo;re faster due to the streamlining that frequent releases demand.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;We serve our customers well, and they notice&lt;/b&gt;&amp;mdash;our dramatically improved response times to issues and feedback is greatly appreciated by our customers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;While there is pain involved in any change, shortening cycle time provides the immediate gratification of less overhead and quicker results. The team loves it, and I love it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;In the future, we want to be able to ship in one or two days, like some of our competitors (who are probably laughing at my team&amp;rsquo;s long, four-week cycles). We don&amp;rsquo;t plan to release that quickly all the time, but being able to do so will mean being even more streamlined. Once you start down this path, you get hooked on having so little between you and your customers, and that is a great place for everyone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Why did we move push the Xbox.com team to four-week cycles? Because several members of the leadership, including me, knew it was the best way to improve our team&amp;rsquo;s productivity and customer quality. Trimming cycle time and work-in-progress is an old technique from &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Lean_manufacturing"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: x-small;"&gt;lean manufacturing&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;, which dates back to the 1930s.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10122188" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process+Improvement_2D002D00_Sans+Magic/">Process Improvement--Sans Magic</category></item><item><title>Individual leadership</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2011/01/01/individual-leadership.aspx</link><pubDate>Sat, 01 Jan 2011 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10110342</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10110342</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2011/01/01/individual-leadership.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/7041.Justice.jpg" /&gt;&amp;nbsp;Want to create a noxious gas? Combine ambitious yet clueless engineers, a flat functional organizational structure, and the upcoming midyear career discussions. Soon toxic fumes will emanate from individual contributors (ICs) in response to impotent explanations of upward mobility by overwhelmed managers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why the wanton whining from wishful workers? Because the technical leadership path is poorly understood, and the organizational leadership path is narrowing. The flat functional structure of most of Microsoft&amp;rsquo;s divisions today reduces the number of engineering managers and tends to up-level those positions. So now a developer can reach the level of vice-president within discipline, but it&amp;rsquo;s tougher for that developer to start out in a lead position.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Functional organizational structures tend to drive most engineers into the IC ranks. The good news is that Microsoft&amp;reg; has a robust growth path for IC engineers. At the time of this post, most senior and principal band developers are ICs. It&amp;rsquo;s not until you reach the partner band that most developers are managers. The trouble is most ICs and their managers have trouble describing technical leadership. How do you get started? How do you reach the senior band as an IC? Glad you asked.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;There are many ways of going forward&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;I covered the Microsoft career stages and how to generally move up in my column &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Level up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;. I covered how to get from senior to principal as an IC in my columns &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2007/12/01/lead-follow-or-get-out-of-the-way.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Lead, follow, or get out of the way&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt; and &amp;ldquo;Get yourself connected&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;chapter 7&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;). The question remains, &amp;ldquo;How do you first establish your technical leadership and become a senior IC?&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;For completeness and clarity, there are three ways to reach the senior band:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Become an organizational leader (boss), typically an engineering lead. As I mentioned earlier, these positions are dwindling, especially among the developer ranks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Become a technical leader (guru), typically an expert in some area. This is the focus of the rest of this column.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList" style="margin: 6pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Become a historical resource (sage), typically a longtime team member. This path takes the longest and has the most limited growth potential.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;In each case, you are influencing the work of other engineers&amp;mdash;as a manager, as a thought leader, or as a resource. Of course, many engineers are combinations of bosses, gurus, and sages. However, being assigned a position as a boss is getting tough, and becoming a sage is a very slow process, so let&amp;rsquo;s focus on becoming a guru.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Ask the expert&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Being an effective technical leader means influencing the opinions and actions of other engineers. In science fiction, that influence is accomplished through mind control. In real life, that influence typically starts with expertise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Basically, you want to become the &amp;ldquo;go-to&amp;rdquo; person for some area. The area could be&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;A technology, like LINQ&amp;reg;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;A performance area, like power consumption.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;A functional area, like copy/paste.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l1 level1 lfo2; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;A quality area, like accessibility.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The key is that when someone on your team has a problem in that area, he goes to you for a solution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Most senior and principal engineers have at least two or three areas of expertise, but are typically known for only one or two.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;I know I&amp;rsquo;ve got a bad reputation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Once you&amp;rsquo;ve picked an area, you must convince your peers to see you as the area expert. You need to build your reputation around that area&amp;mdash;also known as your personal brand. You want to be known as the &amp;ldquo;LINQ legend&amp;rdquo; or &amp;ldquo;power pro.&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Your first step is to become well-versed in your desired area of expertise. It helps to pick an area you are passionate about and already know fairly well. You can read books and attend talks on the subject, join related distribution lists, seek out other experts around the company, and volunteer to take on significant problems in that area for your group.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Support from your manager can make a big difference. Your manager can help you get the right assignments, approve the right training and conferences, and generally help you to establish yourself. Of course for any of this to happen, you must tell your manager about your interest in becoming an expert in your chosen area.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;The next step is being opportunistic. When your area of expertise comes up in conversation (written or verbal), have something intelligent to say that is supported by evidence. &amp;ldquo;Yeah, Eric Meijer talked about that in his LINQ webcast. The right approach is to &amp;hellip;&amp;rdquo; You can do this in a code review, on your blog, on a distribution list, in a wiki, on &lt;/span&gt;&lt;a href="http://stackoverflow.com/"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Stack Overflow&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;&amp;reg;, &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;reg;, or some other forum&amp;mdash;wherever or whenever expertise is needed. The more you contribute in a helpful&amp;mdash;not showy&amp;mdash;manner, the more people your expertise will influence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Quality is job one&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;But what area should I choose?&amp;rdquo; Some people naturally migrate to particular areas of interest, but many engineers like technology in general. In addition, often all the &amp;ldquo;good&amp;rdquo; areas already have experts on your team. So what&amp;rsquo;s a fledgling expert to do?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you&amp;rsquo;d really like to be an expert in an area already taken by another engineer, you can always become the backup for that area. Ask the current expert to be your mentor. Participate in all the design and code reviews for that area. Fix bugs in that area. Cover that area when the current expert is away. Eventually, when the current expert moves on, you&amp;rsquo;ll become the new team expert.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Go for quality! There are plenty of &amp;ldquo;-ilities&amp;rdquo; that don&amp;rsquo;t get enough love&amp;mdash;maintainability, manageability, accessibility, compatibility, sustainability, availability, interoperability, reliability, traceability, scalability, survivability, testability, and usability, not to mention the big three: world readiness, security, and privacy. Heck, I&amp;rsquo;ve probably missed some. Surely, there&amp;rsquo;s an -ility for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The great thing about being a guru in a quality area is that the knowledge is transferable to other teams. Many quality areas don&amp;rsquo;t get the attention they deserve, and quality is important to every product. You can continue developing your expertise your entire career, and your personal brand will stick with you wherever you go.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;That&amp;rsquo;s a stretch&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There are a few pitfalls on the path to expertise. You want your choice of expertise to be your own. Your lead or co-worker might suggest a work area to you that appears challenging, but really doesn&amp;rsquo;t hold your interest or seems like a death trap. Stay away from that area. Remember, if you are going to be the point person for an area, you&amp;rsquo;d better like it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;There are some areas, like setup and compatibility, that aren&amp;rsquo;t sexy but are quite complex and particularly valuable. Before you dismiss an area, learn more about it. You may find it&amp;rsquo;s a place you like and can really shine.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Even if you like the area suggested, you need to watch out for stretch assignments. Stretch assignments are terrific&amp;mdash;they can really accelerate your career. However, nothing comes for free. If you fail at a stretch assignment, then you fail. You don&amp;rsquo;t get an exceptional review for failing, no matter how much time you put into the assignment. Instead, your reward is extra experience.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why do stretch assignments? Because the extra experience you receive is extremely valuable. Your career will move forward faster in the long term. In addition, if you are lucky enough to succeed (and there is always an element of luck), then you can get an exceptional review. Regardless, you want to accept a stretch assignment knowing the risks and as well as the potential rewards. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;What?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Your success in being a respected expert depends greatly upon your ability to effectively communicate your expertise and influence the work of others. If you don&amp;rsquo;t listen well in order to understand people&amp;rsquo;s problems and communicate well in order to describe your solutions, then your vast knowledge is for naught. People might as well consult a brick.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;For pointers on listening and providing feedback, try reading &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2009/03/01/i-m-listening.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;I&amp;rsquo;m listening&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;. For pointers on general communication, try &amp;ldquo;You talking to me?&amp;rdquo; (&lt;/span&gt;&lt;a href="http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;chapter 8&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;). The point is smarts will only take you so far. Think of all the successful experts you know&amp;mdash;they are all good communicators. Think of all the expert wannabes you know&amp;mdash;they all have something in common too.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;You can do it&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You&amp;rsquo;ve got to be a smart, capable engineer to reach the brink of the senior band at Microsoft. The next step as a technical leader is available to everyone. It requires hard work, but it&amp;rsquo;s not especially complicated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Choose an area you are passionate about. Learn all you can about it. Tell your manager about your interest. Work in that area and on your communication skills. Advise others in that area. Socialize with experts in that area. Become the go-to person for your team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Soon you&amp;rsquo;ll be spreading your influence across your team and turning heads in the process. It&amp;rsquo;s rewarding, it&amp;rsquo;s fun, and it provides real meaning and value to your work. It&amp;rsquo;s your road to individual leadership&amp;mdash;time to buckle up and drive!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10110342" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Adventures+in+Career+Development/">Adventures in Career Development</category></item><item><title>There's no place like production</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/12/01/there-s-no-place-like-production.aspx</link><pubDate>Wed, 01 Dec 2010 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10098687</guid><dc:creator>ericbrec</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10098687</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/12/01/there-s-no-place-like-production.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/5383.Tropical.jpg" /&gt;&amp;nbsp;As much as I love Microsoft&amp;reg;, and as many advantages as we have as a company in the intelligence of our people, the breadth of our products, and the boldness of our vision, there are times when people here are frigging clueless. It&amp;rsquo;s not everyone&amp;mdash;Microsoft is a wildly diverse company. But there&amp;rsquo;s just enough ignorance to drive you insane.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;A great example of nerve-racking naivet&amp;eacute; surrounds our service environments. My current team has separate environments for development, check-in testing, scenario testing, stress testing, cross-division integration, partner integration, certification, and production. That&amp;rsquo;s eight different environments&amp;mdash;and we&amp;rsquo;re planning to build out a preproduction environment next year. Here&amp;rsquo;s the punch line of this pathetic joke: even with all these environments, there are a ton of issues and scenarios that can only be exposed in production.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why are we being so witlessly wasteful? Because we can afford it (good situation but bad reason), and because there are so many old-school enterprise engineers who don&amp;rsquo;t understand the most basic truth about services: there&amp;rsquo;s no place like production. These engineers conjure requirements for testing and integration environments based on hard-won lessons from business software, yet they fail to fathom their folly. Close your eyes, tap Ctrl-Alt-Delete together three times, and think to yourself, &amp;ldquo;There's no place like production. There's no place like production. There's no place like production.&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;How did I get here?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;What kind of fools build out and maintain useless environments? The kind who got burned building enterprise software.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Large businesses rely on enterprise software&amp;mdash;it&amp;rsquo;s got to work or they won&amp;rsquo;t buy it. Once they buy it, they own it. You don&amp;rsquo;t get to fix enterprise software anytime you want. That&amp;rsquo;s right, not even with security patches.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Remember, enterprise paychecks depend on having the software run smoothly. Software changes represent risk to an enterprise business. If the software doesn&amp;rsquo;t work, work well, and continue working well, enterprises businesses aren&amp;rsquo;t buying it. And they&amp;rsquo;ll tell you when they are darn well ready to accept a patch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;An entire generation of Microsoft engineers learned the hard way that you can&amp;rsquo;t release software until the code is fully tested. There are no &amp;ldquo;retries&amp;rdquo; in enterprise software.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Enterprise engineers heave at the thought of releasing code that hasn&amp;rsquo;t been fully vetted into production environments. They&amp;rsquo;d burst into convulsions if they understood the real truth about services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Surely, you can&amp;rsquo;t be serious?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What is the real truth about software services? There&amp;rsquo;s no place like production.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Let&amp;rsquo;s break down these myths about testing and integration environments one at a time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;If your check-in tests pass in one environment, they&amp;rsquo;ll pass in all environments.&lt;/b&gt; Okay, that one obviously is wrong, but here&amp;rsquo;s what&amp;rsquo;s worse. It&amp;rsquo;s not difficult to write critical check-in tests that pass in production, but fail everywhere else (like tests of broad fan-out or database mirroring). Instead of kidding yourself, write a small set of automated sanity checks that developers can run quickly in their development environment before they check in.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;You need a separate environment to test scenarios before integrating code with partners. &lt;/b&gt;There are two reasons people believe this&amp;mdash;they don&amp;rsquo;t want unstable code to break their partners, and they don&amp;rsquo;t want their partners&amp;rsquo; unstable code to block testing. The first reason is perfectly rational&amp;mdash;you need a test environment to do preliminary acceptance and stress testing, especially for critical components. The second reason is laughable&amp;mdash;like your partners are actually going to maintain your test environment in some working state. They won&amp;rsquo;t. They can&amp;rsquo;t. (More below.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;You can&amp;rsquo;t use production for stress testing. &lt;/b&gt;Why not? Are you worried production will fall over? Wouldn&amp;rsquo;t you want to know? Isn&amp;rsquo;t that the whole point? Wouldn&amp;rsquo;t it be great to watch that happen in a controlled way and back off as needed? Hello?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;You need integration environments to check cross-division scenarios prior to release and provide preproduction access to external partners.&lt;/b&gt; Assume cross-division scenarios worked perfectly prior to production. Assume external partners signed-off in a separate environment before release. Do you now have quality assurance? No. None. Scenarios don&amp;rsquo;t work the same in production, where there are more machines, different load conditions, different routing and load balancing, different configurations, different settings, different data and certificates, different OS setups and patches, different networking, and different hardware. You&amp;rsquo;ll catch some integration issues, but not enough to make this enormous expense worthwhile.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Does a virtual cloud environment, like Azure&amp;reg;, take care of these issues? No, it only resolves the different OS setups and patches and different hardware. It helps a bit with the other issues, but only production is production. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;You need a protected certification environment. &lt;/b&gt;Why do you certify products in advance? Because you want to ensure they&amp;rsquo;ll work in production. Oh wait.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Let&amp;rsquo;s recap. There&amp;rsquo;s no place like production. You need a development environment to run a small set of automated check-in tests, a test environment to run preliminary acceptance and stress testing to help avoid catastrophic failures, and production. Anything more is superfluous.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Eric Aside&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;It&amp;rsquo;s nice for your partners to provide &amp;ldquo;one-boxes&amp;rdquo; for you to use with your dev and test environments. One-boxes are preconfigured virtual machines that run the services you depend upon in a compressed image. Of course, one-boxes are nothing like production.&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Then it&amp;rsquo;s hopeless&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;Wait a minute! We can&amp;rsquo;t throw untested code at customers. They&amp;rsquo;ll plotz! And don&amp;rsquo;t get me started about exposing prerelease, uncertified, partner code. Have you lost your mind?!&amp;rdquo; Shut up and grow up. There&amp;rsquo;s no place like production. The problem becomes configuring production to permit the testing and certifying of prerelease code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The solution is called &amp;ldquo;continuous deployment.&amp;rdquo; The concept is simple: deploy multiple builds to production, and use custom routing to direct traffic as desired. It&amp;rsquo;s like a source control system for regulating services instead of source files. That it isn&amp;rsquo;t built into Azure and other cloud systems is inconceivable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There are a variety of different approaches to continuous deployment, which basically differ in regard to the sophistication of the deployment system and custom routing. However, continuous deployment can be quite simple to achieve.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The toughest part is dealing with data, which must function properly across multiple builds. However, if a service is designed to handle at least one rollback after a new build is deployed, even if that new build introduces new data, then that service will function well in a continuous deployment environment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;You also need to worry about variations of settings across builds. This is a little tricky, but not too bad. Hopefully, your settings aren&amp;rsquo;t changing all the time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If new builds depend on new versions of the .NET&amp;reg; framework or operating system, those have to be hosted on new machines&amp;mdash;just as you&amp;rsquo;d have to do without continuous deployment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;How do I work this?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How can you use continuous deployment for integration testing, partner testing, stress testing, and certification? Let&amp;rsquo;s run through those.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Integration testing.&lt;/b&gt; You deploy your new build to production, but set the custom routing to direct traffic only from your engineering team to the build. (The default is no routing at all.) The rest of the world continues to see your last release. This technique is called &amp;ldquo;exposure control.&amp;rdquo; Now, your team can test against real production with real production data and real production load using a build not exposed to customers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Eric Aside&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;You&amp;rsquo;ll need good diagnostics to analyze any failures you see in production. That&amp;rsquo;s true with or without continuous deployment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Partner testing.&lt;/b&gt; Partners deploy their new builds to production, but set the custom routing to only direct traffic from their engineering teams to their builds. The rest of the world sees no change. Now, partners can test against your production services without anyone seeing their new work, including their competitors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Stress testing.&lt;/b&gt; You deploy your new build to production and test it out. Once verified, you use exposure control to increase the live traffic to your new build by increments&amp;mdash;first one percent, then three percent, then 10 percent, then 30 percent, then 100 percent. You monitor service health throughout the process. If your services ever show signs of trouble, you capture the data and route traffic back to your last release (instant rollback).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Certification.&lt;/b&gt; Partners deploy their new builds to production and test them. Once verified, they use exposure control to direct the certification team to their new builds. The certification team certifies their builds in production, before customers or competitors see their new work. Once certified, partners can choose when to direct live traffic to their new builds.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Beta bonus!&lt;/b&gt; You deploy a beta build. Once verified, you use exposure control to direct beta users to the beta build.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Experimentation bonus!&lt;/b&gt; You deploy a variation of your current build. Once verified, you use exposure control to direct half the live traffic to your current build and half to the new variation. You utilize the differences you see in usage patterns to improve your services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt; mso-list: l0 level1 lfo1; tab-stops: .5in;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Auto-rollback bonus!&lt;/b&gt; After you direct all live traffic to your new build, you leave the previous release in place. You connect your health checks to the exposure control. Now if your health checks ever indicate trouble, your exposure control automatically and near instantly redirects traffic back to your previous release&amp;mdash;day or night.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;We&amp;rsquo;re not in Kansas anymore&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Microsoft engineers learned a great deal from our move into enterprise software a decade ago. Unfortunately, those lessons have misdirected our recent service efforts, driving us to build out extraneous environments in the name of service quality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Maintaining extraneous environments drains our bandwidth, power, and hardware budgets, and dramatically burdens our engineers, without providing real quality assurance. This needs to stop, and thankfully it is stopping as teams adopt continuous deployment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;With continuous deployment, you get service quality without the added costs. You also bag a bunch of bonus benefits to help you improve your services and better serve your internal and external partners.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There was a time when software development was done without source control systems. Now such a notion is not only laughable, it&amp;rsquo;s unconscionable. Continuous deployment provides a similar capability for services. Hopefully, we&amp;rsquo;ll soon look back and wonder how anyone ever worked without it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Currently, Bing and the Ads Platform have the only production implementations of continuous deployment I&amp;rsquo;m aware of at Microsoft. Amazon has one of the best known systems in the industry.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;My team is currently building a very simple form of continuous deployment. It uses an on-machine IIS proxy to provide exposure control to multiple versions of the same roles on the same machine.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;From the perspective of the engineering team, we still deploy the same roles to the same machines as we always have. The difference is that those machines now host multiple versions of the roles, with exposure control directing the traffic we want to the version we want. Sweet!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10098687" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process+Improvement_2D002D00_Sans+Magic/">Process Improvement--Sans Magic</category></item><item><title>Am I bugging you? Bug Reports</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/11/01/am-i-bugging-you-bug-reports.aspx</link><pubDate>Mon, 01 Nov 2010 07:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10083564</guid><dc:creator>ericbrec</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10083564</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/11/01/am-i-bugging-you-bug-reports.aspx#comments</comments><description>&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/0172.Glasses-with-Wolverine.jpg" /&gt;&amp;nbsp;Some developers hate seeing bugs. They think bugs indicate a failure on their part&amp;mdash;that their code seemed perfect until bugs were found. These developers are called &amp;ldquo;amateurs.&amp;rdquo; Real developers know the only reason you haven&amp;rsquo;t found bugs is that you haven&amp;rsquo;t looked.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;I love seeing bugs. It&amp;rsquo;s better for me to see them than for my customers to see them. What I hate seeing are poorly written bug reports&amp;mdash;misleading or generic titles, unclear or missing reproduction steps, exaggerated priority, overstated severity, and inappropriate, cowardly, and poorly documented resolutions.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Why can&amp;rsquo;t people write decent bug reports? It&amp;rsquo;s not like a decent report is longer or much harder to write than a lame report. It&amp;rsquo;s not like clear definitions for everything in a bug report don&amp;rsquo;t exist. Ah, but those definitions do vary and sometimes conflict from team to team. What are the right definitions to use for everything in a bug report? I&amp;rsquo;m glad you asked.&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Every piece of software ever written has hundreds or thousands of bugs, depending on its size and complexity. Some bugs are innocuous, like &amp;ldquo;I&amp;rsquo;d prefer the close button to be wider.&amp;rdquo; Some bugs are misunderstandings, like &amp;ldquo;It wouldn&amp;rsquo;t let me use an obscene name for my gamer tag.&amp;rdquo; And some bugs are nasty issues that must be fixed no matter what, like exposing personal information. Since bugs are often found by people outside of the development team, bug reports must be written and tracked to closure&amp;mdash;typically using a work item tracking database, like Product Studio&amp;reg; (legacy MS tool) or Team Foundation Server&amp;reg;.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Bug dissection&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;All bug reports have the same basic set of information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Title&amp;mdash;a short description of the issue&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Assignment&amp;mdash;who&amp;rsquo;s taking care of the issue at the moment&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Repro steps&amp;mdash;the steps necessary to reproduce the problem&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Priority&amp;mdash;the urgency and importance of the issue&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Severity&amp;mdash;the fallout from the issue&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Resolution&amp;mdash;how the issue was resolved&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;There are a bunch of other fields that are helpful in reproducing the issue and understanding the root cause, but the basic set is short and simple. Let&amp;rsquo;s cut through the controversy and lay out the rules for each field.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Title and assignment&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;The title of a bug should be a terse one-line description of the issue that is specific enough to identify that issue uniquely, making bug report searches and identification easy. &amp;ldquo;The screen blanks when you hit the Cancel button&amp;rdquo; is a poor title. &amp;ldquo;Blank screen after canceling avatar editor&amp;rdquo; is a great title. The second version is shorter, yet provides more specific context around where and when the issue occurs.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;When you create a new bug report, you must assign it to someone to resolve. However, unless you are part of the development team, you shouldn&amp;rsquo;t assign the bug to an individual, even if you know the whole team personally. Instead, assign the bug to the team. This is typically done by specifying the area or team in the bug report and accepting the default assignment. The default assignment is typically &amp;ldquo;Active&amp;rdquo; or &amp;ldquo;Triage.&amp;rdquo; You don&amp;rsquo;t know better. Trust the team to know who should work on the issue.&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;There are some groups who want all bugs assigned to individuals. This ensures no bugs are ignored. However, even those teams must check for bugs assigned to Active or Triage to ensure they aren&amp;rsquo;t missed. After all, people outside the team don&amp;rsquo;t know what other values to use.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;As a general rule, all bugs should be assigned to individuals or groups who will check them regularly. Since most triage teams meet daily, I&amp;rsquo;ve always liked the idea of assigning bugs to Active or Triage as a default.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Repro steps&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;There is nothing more frustrating than a bug report without a decent repro (reproduction steps). It&amp;rsquo;s like your significant other telling you, &amp;ldquo;You know what you did!&amp;rdquo; with no further explanation. Now I know I messed up and have no way to correct it. Terrific.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Repro steps should be short and sweet&amp;mdash;the minimal set that triggers the issue. You should also include the build number (typically a separate field), the environment you used (the version of the operating system, browser, and any other relevant details), and any preparation necessary (like signing into Xbox.com with a gold account).&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Sometimes you aren&amp;rsquo;t sure how you triggered the bug because it&amp;rsquo;s intermittent or associated with a weird state. In this case, provide the build number, environment, and set up, then describe the circumstances, acknowledging that precise repro steps aren&amp;rsquo;t clear.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;After describing the minimal repro, you must indicate what you expected to happen (&amp;ldquo;Expected&amp;rdquo;), followed by what actually happened (&amp;ldquo;Actual&amp;rdquo;). All repro steps should have these three sections&amp;mdash;the setup, the expected results, and the actual results. That way someone reading the bug report knows exactly what went wrong and how to reproduce it.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Often a picture or video tells a thousand words. There are many tools to create screen captures of both stills and compressed videos. Attaching these files to a bug report can be the difference between a properly fixed issue and an elusive one.&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;It&amp;rsquo;s annoying to see a bug report with 15 repro steps when the issue can be reproduced in four steps. Not only are four steps shorter and easier to understand, but they also allow the developer and the tester to close the bug far faster. It takes less time to reproduce the bug, less time to determine the cause (fewer possibilities), and less time to verify the issue has been fixed.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Priority&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;There are endless arguments over the meaning of the priority field, a value that typically ranges from 0 to 3. Surely you have better ways to spend your time. Instead, let&amp;rsquo;s lay out a few simple rules then define priority based on those rules.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Priority should never have to be adjusted once properly set, unless the bug itself changes character. If priority 1 means &amp;ldquo;fix this sprint or milestone&amp;rdquo; and priority 2 means &amp;ldquo;fix next sprint or milestone,&amp;rdquo; then you&amp;rsquo;ve got to change the priority of bugs at the end of every sprint or milestone. Not only is that a waste of time, but it updates the &amp;ldquo;last changed date&amp;rdquo; on the bug, an act that causes the loss of important information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Priority should be easy to assign and differentiate. You don&amp;rsquo;t want the team spending a bunch of time arguing over the priority of every bug. It should be obvious, both when writing the bug report and when reading it.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Priority should be memorable and actionable. No one should have to ask, &amp;ldquo;What was pri 2 again?&amp;rdquo; No one should have to question what needs to be done for each priority level.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Based on these three rules, here are priority definitions that serve well.&lt;/span&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="margin: auto auto auto 40.3pt; width: 741px; border-collapse: collapse; mso-border-alt: solid black .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"&gt;
&lt;td width="89" valign="top" style="padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 53.5pt; padding-right: 5.4pt; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Priority&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="393" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 235.6pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 155.4pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Timeframe&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1;"&gt;
&lt;td width="89" valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 53.5pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Pri 0&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="393" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 235.6pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;A CRITICAL failure that requires URGENT attention that doesn&amp;rsquo;t have a known WORKAROUND. This is a blocking bug.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 155.4pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;You can use the bathroom after you resolve the issue or find a workaround.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2;"&gt;
&lt;td width="89" valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 53.5pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Pri 1&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="393" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 235.6pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;A CRITICAL failure that requires URGENT attention.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 155.4pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Must be resolved in the current sprint or milestone.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 3;"&gt;
&lt;td width="89" valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 53.5pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Pri 2&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="393" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 235.6pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;A CRITICAL failure.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 155.4pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Must be resolved before release.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"&gt;
&lt;td width="89" valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 53.5pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Pri 3&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="393" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 235.6pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;A failure or suggestion.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 155.4pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Should be resolved before release.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Pri 0 issues typically block testing, deployment, or some other time-sensitive work. Given the seriousness of pri 0 bugs, you can&amp;rsquo;t submit them and expect something to happen. You must send mail to the individual or team, and then call or walk over and talk to them until someone is actively working on resolving the issue. If a viable workaround is found, pri 0 bugs should be changed to pri 1.&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Teams do vary their definitions of priority. Some start at pri 1 instead or pri 0. Some break the rules I listed at the start of this section or have a separate field to indicate a blocking bug.&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;If you open a bug in a different team&amp;rsquo;s work-item database, be sure to use their definitions. The definitions typically pop up in a tooltip or help screen.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Severity&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Severity is even simpler than priority, yet it&amp;rsquo;s also often misused. Severity refers to the fallout of the issue, NOT how important it is. The definitions are:&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Severity 1&amp;mdash;the issue causes a CRASH or customer data LOSS&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Severity 2&amp;mdash;the issue causes a MALFUNCTION that inhibits action&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Severity 3&amp;mdash;the issue causes an INCONVENIENCE or unfinished LOOK&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Please note that severity is independent of priority&amp;mdash;in other words, severity has nothing to do with priority. A priority 1 bug is more important than a priority 2 bug, regardless of severity. Displaying offensive content is severity 3 but priority 1. Crashing when a user does a forced reboot is severity 1 but priority 3. Nothing makes you the subject of engineer ridicule like claiming a non-crashing bug is severity 1 just because it&amp;rsquo;s high priority. You sound like an idiot.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Resolution&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;One of the most important and most often misused fields in a bug report is &amp;ldquo;Resolution&amp;rdquo;&amp;mdash;the indicator of what was done to resolve the issue. Resolving a bug means you are no longer concerned about the issue and you don&amp;rsquo;t plan any further work once the bug originator verifies that the resolution closes the bug.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;If the issue requires more work before you release, even if it&amp;rsquo;s not the responsibility of your team, then the bug should remain active and assigned to one of your team members to track.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Here are the possible values for the resolution field in alphabetical order:&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;By Design&amp;mdash;the bug report describes the intended behavior. It works as designed.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Duplicate&amp;mdash;the bug has the same cause and nearly the same user experience as an earlier reported bug. Never resolve an older bug as a duplicate of a newer bug&amp;mdash;regardless of how much nicer the newer bug report is&amp;mdash;unless you like making enemies of the originator and losing the &amp;ldquo;first seen&amp;rdquo; date.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;External&amp;mdash;the bug is caused by something outside of your control AND you can release without the bug being fixed.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;If you can't release without having someone outside your group fix the issue, then the bug should remain active and assigned to someone in your group to track, linking to the issue on the other team.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Fixed&amp;mdash;the bug is fixed. My favorite resolution.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Not Repro&amp;mdash;you couldn&amp;rsquo;t get the bug to recur in the build and environment noted. Saying &amp;ldquo;It works on my machine&amp;rdquo; doesn&amp;rsquo;t cut it&amp;mdash;check with the originator first whenever possible.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Postponed&amp;mdash;you won&amp;rsquo;t fix this bug in this release. Postponed is for the same gutless slackers who say they&amp;rsquo;ll start writing unit tests tomorrow. Real engineers leave the bug active and use a &amp;ldquo;Fix By&amp;rdquo; field in the bug report to indicate a future release when they truly intend to fix the issue.&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList" style="text-indent: -0.25in; margin: 3pt 0in 6pt 58.3pt;"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Won't Fix&amp;mdash;you won&amp;rsquo;t fix the bug ever. My second favorite resolution&amp;mdash;it shows you have enough experience to know when a bug simply isn&amp;rsquo;t worth fixing, usually because the fix causes more trouble than the bug itself.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;When you resolve a bug, you must provide a description as well as fill in the resolution field. That description is important. You get fewer arguments about resolutions, understand the issue better upon recurrence, and protect yourself and the company if the issue later makes headlines. This happened to an old team of mine once&amp;mdash;we saved the company millions in penalties when our resolution description for an offensive content bug proved our lack of malice.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;When a bug is resolved, it is automatically assigned to the person who opened it. If that person isn&amp;rsquo;t on the team, the bug should be assigned to another team member who can verify the resolution with the originator of the bug. You can&amp;rsquo;t always count on people outside the team to validate a resolution in a thorough and timely manner. Of course, if the resolution isn&amp;rsquo;t satisfactory, the bug should be reactivated.&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1" style="margin: 3pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;I first defined resolutions for my development team ten years ago. Looking back at that mail, the definitions here still stand.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: large;"&gt;Keep it simple&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;There are many other fields in a bug report. I mentioned using the build and environment fields to capture reproduction information and the &amp;ldquo;Fix By&amp;rdquo; field to indicate when a bug will be addressed. There are also fields to track root cause, how the bug was discovered, area of the product or service where the bug occurred, potential security impact, and countless other variations of information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;When setting bug report requirements, demand no less than what you need and no more than what you&amp;rsquo;ll use. Requiring more than necessary will cause people to complain and stop submitting bug reports&amp;mdash;neither of which serves you or your customers well.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 3pt 0in 6pt 40.3pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;By keeping bug reports easy to write and easy to read, you encourage people to submit clear bug reports for the issues they find. Using bug templates that prefill some fields also helps. There&amp;rsquo;s no better gift to our engineers and the customers we care about than a well-written bug report that averts an issue before it ever reaches our users&lt;/span&gt;&lt;a name="_GoBack"&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10083564" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process+Improvement_2D002D00_Sans+Magic/">Process Improvement--Sans Magic</category></item><item><title>You can depend on me</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/10/01/you-can-depend-on-me.aspx</link><pubDate>Fri, 01 Oct 2010 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10070164</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10070164</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/10/01/you-can-depend-on-me.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/4810.Skipolls.jpg" /&gt;&amp;nbsp;We&amp;rsquo;re getting into the end game before a big release, and I&amp;rsquo;m already tired of people whining about unstable and overdue dependencies. Of course they are unstable and overdue, what planet are you from?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Yeah, yeah, a package should only depend upon packages that are more stable than it is (the &lt;/span&gt;&lt;a href="http://www.objectmentor.com/resources/articles/stability.pdf"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Stable Dependencies Principle&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;). I&amp;rsquo;ve pushed this principle countless times. Yet when you work for a big ambitious technology company like Microsoft&amp;reg;, no one wants to wait for cool technology to stabilize before coding against it&amp;mdash;at least no executive I&amp;rsquo;ve ever met.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;That means your dependencies are unstable and likely running late. It&amp;rsquo;s not the fault of the teams you depend upon, and it&amp;rsquo;s not going to be much better next time. Tough luck&amp;mdash;quit whining and deal with it. Don&amp;rsquo;t know how? I figured.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Amongst our weaponry are&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There are five methods of dealing with unstable dependencies.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Convert them from hard dependencies to soft dependencies or knowledge dependencies.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Over-communicate and project manage the heck out of them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Get as close as possible to them personally, physically, logistically, and logically.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Automate ingestion of their work for you and testing of their work for them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;5.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Create multi-release plans, stable interfaces, realistic schedules, and a vision that leads instead of chases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Hold on, that last method is a pipedream&amp;mdash;there are four plausible methods of dealing with unstable dependencies. Let&amp;rsquo;s break them down.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Unstable and overdue dependencies are avoidable by creating multi-release plans, stable interfaces, realistic schedules, and a vision that leads instead of chases. The teams at Microsoft (and elsewhere) that have figured this out live better lives and deliver great, dependable experiences on a predictable schedule.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;These thoughtful teams sacrifice a little bit on timely innovation. However, keep in mind that Apple is widely considered a highly innovative company, yet Apple&amp;rsquo;s innovations don&amp;rsquo;t utilize bleeding-edge technology. Instead, they craft innovative new experiences from proven technology.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;I think your brain is going soft&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;A hard dependency is one that you literally can&amp;rsquo;t ship without. If it fails, you fail. A soft dependency is a dependency with a fallback position. If it fails, you can still ship with reduced functionality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Unstable hard dependencies are a recipe for panic followed by disaster. You want to convert them to soft dependencies by agreeing to a fallback plan. Typically, fallback plans involve shipping with a previous version of the dependency, reducing functionality, taking ownership of the dependency&amp;rsquo;s module, or some combination.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Fallback plans are wonderful psychologically. They remove the fear and uncertainty around failure. Everyone knows what will happen, and it doesn&amp;rsquo;t involve bloodshed&amp;mdash;only lackluster reviews and a less compelling release. Everyone is still motivated to deliver something great. With raw fear off the table, people collaborate and problem solve far better.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Taking a snapshot of your partner&amp;rsquo;s code converts a hard or soft dependency to a knowledge dependency. You aren&amp;rsquo;t actually dependent on the other team for anything but its knowledge and past experience.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Knowledge dependencies are underutilized&amp;mdash;they don&amp;rsquo;t get the respect they deserve. Just because your team may not want to take on any hard or soft dependencies doesn&amp;rsquo;t mean you can&amp;rsquo;t take advantage of the knowledge and experience of people who&amp;rsquo;ve done something similar before. I talked about this in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2008/11/01/nihilism-and-other-innovation-poison.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;NIHilism and other &lt;span style="mso-bidi-font-style: italic;"&gt;innovation&lt;/span&gt; poison&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Failure to communicate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;When you are dealing with overlapping and overcommitted schedules, like when you&amp;rsquo;re working on almost any project ever, you need to over-communicate to your partners and project manage them. It doesn&amp;rsquo;t matter how reliable they are or how well-coordinated you appear to be. Assumptions will be made, and important details will get missed. You need to you say everything to everyone regularly and repeatedly, and track every deliverable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;You&amp;rsquo;d think all this extra communication would become noise, but it doesn&amp;rsquo;t when handled properly&amp;mdash;with regular face-to-face meetings, item tracking (think Product Studio or TFS&amp;reg;), and formal email for plan changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Regular face-to-face meetings (once a week or so) are great for coordinating small changes, fixing issues that arise, and doing all-important sanity checks. A sanity check is five minutes spent validating high-level assumptions. (&amp;ldquo;We&amp;rsquo;re still getting these key deliverables in two weeks, right? You&amp;rsquo;re still gainfully employed, right?&amp;rdquo;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Item tracking in a work-item database, like Product Studio, TFS, or any number of other commercial packages, is perfect for tracking resolution of bugs and work items across teams. Share the database queries you use with your partners so that everyone sees the same status.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;When your or your partners&amp;rsquo; plans change, everyone needs to know. Start with a formal email to everyone involved (scrum masters, leads, managers, and directly impacted team members). If any work items have been dropped, changed, or added, update the work item database accordingly. Follow up at the next face-to-face meeting with a full description of what changed and why it changed. This would appear to be obvious, but one person&amp;rsquo;s big change is another person&amp;rsquo;s minor detail. That&amp;rsquo;s why you also do sanity checks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Clearly this extra communication and project management is extra work. So is everything else in this column. The extra work typically hits program managers and testers the hardest, but developers are also impacted. The amount of extra work is proportional to the type of dependency (hard, soft, or knowledge) and the level of associated chaos. Plan accordingly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;We two are one&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;The easiest way to stay in close contact and resolve issues quickly is to practically join teams.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Personally&amp;mdash;get to know your partners personally. Meet together, socialize together, and truly understand each other. A good working relationship helps in all sorts of ways. You become committed to each other&amp;rsquo;s success.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Physically&amp;mdash;sit with your partners physically. The whole team probably won&amp;rsquo;t fit, but having one or two individuals spending significant time in your partners&amp;rsquo; space will do wonders for catching issues early on both sides.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Logistically&amp;mdash;tie yourself to your partners logistically. When they deploy, you deploy. When they beta, you beta. When they ship, you ship. Staying in sync will save you oodles of trouble&amp;mdash;trust me on this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Being flexible and agile really pays off in this case. Using short iterations and always being ready to ship not only helps you minimize work in progress and reduces technical debt, it also helps you stay synchronized with your partners&amp;rsquo; releases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Logically&amp;mdash;engage with your partners&amp;rsquo; tools, work item databases, and source code. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;The deeper you know what&amp;rsquo;s really going on in their work, the better you&amp;rsquo;ll foresee, understand, and resolve issues.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Even if your partners haven&amp;rsquo;t finalized their interfaces, a starter interface can often help you get an early jump on development and testing. You can write your own emulator, use an early drop from your partners, and otherwise code and test against the upcoming interface in advance of receiving the final version.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;It&amp;rsquo;s totally automatic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;One critical engagement with your partners&amp;rsquo; tools is around handoffs. Before they deploy a new version, they should run a set of build verification tests YOU WROTE&amp;mdash;only you know what you are expecting from your partners. After they deploy a new version, you should run a set of ingestion tools THEY WROTE&amp;mdash;only they know all the moving parts, tricky ordering, and special steps necessary.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The build verification tests you wrote should quickly check that the new version works the way you intend to use it. Writing these tests can be a bit tricky, because you have to understand your usage patterns, and you have to author the tests in their test system. Of course, all that effort is well worth it when every handoff works as expected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The ingestion tools they wrote should give you all you need to use the new version. This should include setup, libraries, content, configuration, and validation. Writing these ingestion tools shouldn&amp;rsquo;t be wasted effort since they help your partners as much as they help you. That said, all the effort is well worth it when they don&amp;rsquo;t spend two days after every handoff getting your systems functioning again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;No whining!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Even in the best of circumstances, there are always surprises in any development cycle. Being flexible, using short cycles to react faster, and communicating well with partners, customers, and within your own team does wonders for dealing with the unexpected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;What isn&amp;rsquo;t constructive is blaming your partners for costly mistakes, even if they were at fault. We&amp;rsquo;re all human and mess up occasionally. We win and lose together. If you can&amp;rsquo;t handle the problem or didn&amp;rsquo;t know about it in time, then you&amp;rsquo;re at fault too. You all can improve your communication and issue management next time&amp;mdash;the issue will recur.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;For all the headaches and heartaches that unstable dependencies can cause, they also can be exciting, build a larger sense of team, and bring faster, broader, and bolder innovation to customers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Don&amp;rsquo;t play the victim. Create fallback plans, over-communicate, integrate your teams, and automate quality handoffs. You can be part of something big if you embrace the challenge.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10070164" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process/">Process</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Process+Improvement_2D002D00_Sans+Magic/">Process Improvement--Sans Magic</category></item><item><title>Making the big time</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/09/01/making-the-big-time.aspx</link><pubDate>Wed, 01 Sep 2010 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10056468</guid><dc:creator>ericbrec</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10056468</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/09/01/making-the-big-time.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/1731.Eyebrows.gif" /&gt;&amp;nbsp;Review time is almost over. Maybe you got promoted. Maybe your head is filled with thoughts of making it to the big time&amp;mdash;calling the shots, getting paid, and having everyone hang on your every word. For entry and independent ICs, that means being a senior or principal engineer (manager or architect). For senior ICs and leads, that means being a principal or partner engineer. For principal and partner ICs and managers, it means being a vice president (VP) or technical fellow (TF).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;From the time we are young, western society drowns us with images and icons of successful, powerful, and connected executives controlling their enterprises and living the good life. You grow up wanting that life for yourself&amp;mdash;the life you see in movies and media. Your families groom you for that life&amp;mdash;telling you to study, sending you to good schools, and encouraging you to be ambitious. Get a grip. Life isn&amp;rsquo;t a movie.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There are great things about being in charge and crappy things about being in charge. Before you go chasing some fantasy, you should know the pitfalls as well as the perks. You should be ready and willing to deal with the crud in order to taste the cream.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;It&amp;rsquo;s a question of time&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;As you increase your scope of influence as an organizational or technical leader, there are many changes. However, there&amp;rsquo;s one dynamic that trumps all the others&amp;mdash;the time it takes for your decisions to make an impact grows longer. This is a subtle, yet critical point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;When you are a college hire, your manager tells you to do something and you do it. The time between articulating what needs to happen and having that happen is usually measured in hours or days.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;When you are a lead telling your reports to complete a project, the time between articulating what needs to happen and having that happen is measured in days or weeks. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;When you are a discipline manager delegating work to leads, the time expected for results increases to weeks or months.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;By the time you are a VP or TF, the time between making any substantial change in direction and seeing the result is six months to three years.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There is nothing you can do about this slowing of sway. Even flattening an organization doesn&amp;rsquo;t help because communication is so imperfect. The more people you influence, the more people who must understand your intent and the longer it takes for everyone to comprehend it and execute it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The best you can do is state your direction, and then state it again and again&amp;mdash;in new ways and through feedback on progress. Remember, most people hold tight to the status quo&amp;mdash;you have to continuously nudge folks and sometimes shove and drag them. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;The future&amp;rsquo;s so bright&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Lengthening the time between decision and effect impacts almost every aspect of leadership. The broader your scope gets, the further out you need to look.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;This means discipline managers and architects need to focus on issues coming next month, not next week. Then they need to direct their teams and remind them several times in advance of the change. Discipline managers who focus on controlling day-to-day issues are called &amp;ldquo;micromanagers,&amp;rdquo; also known as ineffective, limited, and despised future failures.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;For a VP or TF, telling people about what&amp;rsquo;s coming next week is useless. Executives need to be focused on next year at a minimum, while providing feedback and small adjustments to this year.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Blame Canada!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;By moving up, you trade fast results for broad impact. You can still get small things done quickly, but you aren&amp;rsquo;t paid to do small things&amp;mdash;you are paid for big impact, and that takes time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;This brings us to accountability. If an engineering lead makes a bad decision, the fallout will typically hit within a few weeks. The feedback and correction are quick. If an executive makes a bad decision, it may not have repercussions for years. Those intervening years slow feedback and weaken accountability.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Personally, I like the sweet spot of a discipline manager or architect. Your decisions show results within a few months&amp;mdash;fast enough to adjust and learn, yet you still can accomplish great things. In contrast, executives can get away with horrible mistakes for years before being held responsible, assuming they are still in the same division.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Of course, you need to find your own sweet spot. If you want instant gratification, you should probably not venture higher than the senior IC or lead role. If you want to help dictate corporate strategy and influence thousands&amp;mdash;and you don&amp;rsquo;t mind playing politics and waiting years for results&amp;mdash;being a VP or TF might suit you well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Insects don't have politics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why do VPs and TFs, as well as GMs and directors, get caught up in politics? Because when decisions are widely separated from results, the right decisions become a matter of opinion. When decisions are a matter of opinion, politics play a significant role. This dynamic is reduced at an engineering company, like Microsoft&amp;reg;, since many executives are former engineers and insist upon the support of fact, data, and logic. However, the further you get from actual engineering, the more the door opens to personalities, gamesmanship, and alliances.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;But what about history&amp;mdash;you know, case studies and best practices?&amp;rdquo;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The applicability of the past to the unique situation in the present is subjective. There are always exceptions and counterexamples. If you are going to be a successful executive, you need to learn to play politics. You must know who trusts whom, who influences whom, who has what agenda, who owes whom favors, who is likely to support or oppose you and why, and what are the hot button issues for the key stakeholders.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;It&amp;rsquo;s politics, plain and simple. It appears in every company and government once you get to a certain level of abstraction, where nothing is definitive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Even worse than politics, delayed accountability can create opportunities for corporate psychopaths&amp;mdash;pathological liars with little empathy or conscience. In chapter 8 of their book &amp;ldquo;&lt;/span&gt;&lt;a href="http://www.amazon.com/gp/redirect.html?ie=UThttp://www.amazon.com/Snakes-Suits-When-Psychopaths-Work/dp/0060837721?ie=UTF8&amp;amp;s=books&amp;amp;qid=1173801956&amp;amp;sr=8-2"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: x-small;"&gt;Snakes In Suits&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;,&amp;rdquo; Drs. Babiak and Hare claim in working with almost 200 high-potential executives they found about 3.5% of fit the profile of a psychopath (around 1 in 30). That&amp;rsquo;s significantly higher than the 1% incidence of psychopathy they found in the general public.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Make it so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Of course, making the big time has plenty of advantages. In addition to the pay, prestige, and perks, you gain enormous influence. Your vision becomes the entire organization&amp;rsquo;s vision&amp;mdash;all the more reason to create, articulate, and drive a clear direction. However, even the powerful advantage of influence has its drawbacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As a leader, anything you say&amp;mdash;no matter how slight&amp;mdash;will be taken as direction. Discipline managers soon realize this when they step into their roles. The most minor opinion becomes gospel. It&amp;rsquo;s like a macro version of the Heisenberg Uncertainty Principle&amp;mdash;you can&amp;rsquo;t observe a discussion without impacting its dynamic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Unintended influence becomes a bigger problem as your influence grows. An executive&amp;rsquo;s casual comment often results in person-months of effort. You must be very careful about what you say, when you say it, and to whom you say it. Ideally, you should say the minimum needed in order to guide those around you in the right direction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Prefacing your words with &amp;ldquo;This is just my offhand opinion&amp;rdquo; or &amp;ldquo;As an ordinary customer, I think &amp;hellip;&amp;rdquo; doesn&amp;rsquo;t help. People still take everything you say seriously. There is no cure&amp;mdash;people take things out of context and like to please leaders. All you can do is say what you mean and mean what you say.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Otherwise, close your mouth.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;If they are supposed to focus on a year out and not talk about much else, how do executives spend their time?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;The bulk of time is spent providing feedback, resolving issues, and directing the work in progress associated with reaching their vision. They conceive a vision and then drive it, and drive it, and drive it. Remember, people hold tight to the past.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;The next large chunk of time is spent building and sustaining relationships with partners, peers, superiors, and the staff. Relationships make everything else possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Of course, any plan a year out will need to adjust to changing conditions. Re-planning is a regular activity, as is preparing for the next big push.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Finally, there&amp;rsquo;s the minutia associated with any large role&amp;mdash;budgets, resources, busy work, random requests from superiors, events, and personal projects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;It&amp;rsquo;s alright for you&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Now you should have a balanced view of making the big time. Everyone has his or her own limits and views of success. The key is to know yourself and understand what makes you feel happy and fulfilled. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;As I talked about in &amp;ldquo;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2010/06/01/level-up.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Level up&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;,&amp;rdquo; being ambitious means doing whatever it takes to achieve your goals. The higher you want to go, the more of your personal life you will likely sacrifice to get there. It&amp;rsquo;s a choice you should make before you the choice is made for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;I know many executives, and I&amp;rsquo;m quite thankful they&amp;rsquo;ve made the choice to devote themselves to the leadership of our company. I know many senior ICs and leads, who love the jobs they do so well and feel no need to advance further. Now you know both sides. Strive to make the right choice for you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10056468" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Adventures+in+Career+Development/">Adventures in Career Development</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Being+a+Manager_2D002D00_and+Yet+Not+Evil+Incarnate/">Being a Manager--and Yet Not Evil Incarnate</category></item><item><title>I messed up</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/08/01/i-messed-up.aspx</link><pubDate>Sun, 01 Aug 2010 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10044554</guid><dc:creator>ericbrec</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10044554</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/08/01/i-messed-up.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://my/sites/ericbrec/Hard%20Code%20Thumbnails/Goatee.jpg" /&gt;&amp;nbsp;Ever make a bad mistake? One that makes you feel like there&amp;rsquo;s a hollow in your chest&amp;mdash;you know you&amp;rsquo;ve messed up badly. Maybe you were even trying to do the right thing, but it just ended up wrong unintentionally. This happens to me regularly. It recently happened to a friend of mine&amp;mdash;I feel for him.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The worst part of making a bad mistake is the panic that ensues. Your stress level skyrockets. You desperately seek a way to make it better. You can&amp;rsquo;t sleep. You feel guilty and responsible. The panic can last for days. Or you could be indifferent and dismissive because you are pond scum.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Make it right&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;For those of us with a soul, who care about rectifying our mistakes, the thing we want to know most is, &amp;ldquo;How do I make this right?&amp;rdquo; I&amp;rsquo;m glad you asked. Here&amp;rsquo;s what you do, in order.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Take responsibility&amp;mdash;you made the mistake, you need to admit it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Deeply understand the fallout&amp;mdash;don&amp;rsquo;t make it worse by fixing the wrong problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Invite help to repair the damage&amp;mdash;acknowledge the problem isn&amp;rsquo;t yours alone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="NumList"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-fareast-font-family: 'Times New Roman';"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;Ensure it doesn&amp;rsquo;t happen again&amp;mdash;talk about the way forward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;This can be a tough time to stay calm and in control of your emotions. However, staying calm is essential to rectify the situation. You made a big mess&amp;mdash;there are no shortcuts to cleaning it up. Let&amp;rsquo;s talk through each step.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Whatever you did or said wrong is done, so don&amp;rsquo;t bother trying to &amp;ldquo;take it back.&amp;rdquo; Email recall only attracts attention to your mail. Hiding mistakes only makes them far worse. Be an adult and a professional&amp;mdash;own your mistakes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Take responsibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;You&amp;rsquo;ve made a mistake, proving once again that you are human. Being human is a reason, but not an excuse. You really did mess up. The first thing to do is fess up.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Don&amp;rsquo;t blame others, even if you think they are more at fault. Have some integrity. You acted and others suffered. Admit it plainly. &amp;ldquo;I made a mistake,&amp;rdquo; is all you need to say.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;For a mistake at work, &amp;ldquo;I&amp;rsquo;m so sorry&amp;rdquo; and &amp;ldquo;Please forgive me&amp;rdquo; can be unnecessary and even be legally damaging in particularly sensitive circumstances. Why is saying you&amp;rsquo;re sorry unnecessary in some work situations?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;You aren&amp;rsquo;t sorry in a legal sense&amp;mdash;claiming responsibility for everything that happened. You regret making the mistake, but it wasn&amp;rsquo;t malicious.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;You want to inspire confidence in your ability to handle the problems you&amp;rsquo;ve caused&amp;mdash;not sound weak and helpless.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You want to focus on the future, when the problems are corrected and don&amp;rsquo;t happen again&amp;mdash;not dwell on the past.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Of course, in personal situations it&amp;rsquo;s often important to say you&amp;rsquo;re sorry. However, this is not your personal life. This is business. The best forgiveness comes when you&amp;rsquo;ve competently and confidently acknowledged the issue and rectified it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There&amp;rsquo;s no need to belabor the point. Simply say, &amp;ldquo;I made a mistake,&amp;rdquo; and move forward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Deeply understand the fallout&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;The biggest blunder people make after a mistake is suggesting or implementing a quick solution. Take a breath and reconsider. You never would have made the mistake in the first place if you fully understood the problem. Don&amp;rsquo;t pretend that botching something makes you an expert.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;You need to deeply understand the trouble you caused.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Who was impacted?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Did your mistake impact different people in different ways?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What was the nature of the trouble (personal, schedule, resource, or something else)?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What solution do people really desire?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How can you help, if at all?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;How can this kind of mistake be avoided going forward?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Only after listening carefully to everyone impacted, asking questions, and truly understanding what happened, can you possibly know how to make it right.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Invite help to repair the damage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The second biggest blunder people make after a mistake is fixing it alone, out of guilt, hubris, or desire for pity. &amp;ldquo;I made the mistake&amp;mdash;I&amp;rsquo;ll suffer the cost of fixing it&amp;rdquo; is the rationale. Get over yourself and quit wallowing. Sure, the mistake was yours, but the problem belongs to everyone involved.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Once you know what needs to happen to rectify the situation, ask for help. If you&amp;rsquo;ve acted with integrity and listened with care, people will be happy to assist you. Repairing the damage together will rebuild relationships and ensure the solution meets everyone&amp;rsquo;s needs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Please note the word &amp;ldquo;relationships.&amp;rdquo; That&amp;rsquo;s what this is all about. When you make a mistake, the lasting harm is damaged relationships between you and your partners and customers. Trust is what you are working hardest to recover.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;By asking for help, you aren&amp;rsquo;t trying to avoid responsibility or work. You still own the brunt of the effort and are accountable to see the problems resolved. However, to bring the event to a conclusion that satisfies your partners, they need to be engaged and will want to be included.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Of course, your partners may suggest solutions you don&amp;rsquo;t like&amp;mdash;all the more reason to deeply understand the fallout. That analysis will either help you successfully convince your partners to apply an alternate solution or help you accept the solution they desire. After all, you are in no position to dictate to those you&amp;rsquo;ve harmed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The stronger your relationships were before the mistake, the better you will work through the situation together, and the stronger your relationships will be when the trouble is long forgotten. Relationships are everything.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you run into trouble, contact Human Resources (HR) or Legal and Corporate Affairs (LCA) as needed. Remember, solving things yourself doesn&amp;rsquo;t make you a hero or martyr, it makes you an idiot.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If someone else runs into trouble, forgive mistakes and help your peers recover. The relationships you support may be the relationships you need in the future.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Ensure it doesn&amp;rsquo;t happen again&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Once you&amp;rsquo;ve taken responsibility, understood the issues, and worked toward a broad solution, the only thing left is to avoid any chance of recurrence. People understand the occasional error. It&amp;rsquo;s when an error is repeated that people question your true intentions and the value you put on your relationships.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As I mentioned earlier, you must deeply understand how this kind of mistake can be avoided in the future. Then you must clearly articulate that intention. There are two magic words you should use, &amp;ldquo;going forward.&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&amp;ldquo;Going forward I will confer with our stakeholders before finalizing a decision.&amp;rdquo; &amp;ldquo;Going forward I will run the entire automated test suite before checking in a global change.&amp;rdquo; &amp;ldquo;Going forward I will ask others before taking the last donut.&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Going forward is far better than looking backward. Forget the blame. Stop the whining. Move toward the future. Everyone will appreciate it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-border-alt: solid windowtext .75pt; mso-element: para-border-div; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;As I mentioned in &amp;ldquo;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2009/04/01/your-world-easier.aspx"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Your World. Easier&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;,&amp;rdquo; people tend to repeat certain mistakes, which is why checklists are so handy. Keep track of your personal patterns, and put procedures in place to prevent problems.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;All better&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Sometimes people simply need to hear you acknowledge a mistake. They&amp;rsquo;ll fix the problem or be happy to help. They only want to know that you realize your error, appreciate the problem you caused, and know how to avoid it going forward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Sometimes there is no way to repair the tangible damage, or the damage lingers for years. However, you can still repair relationships by taking responsibility and ensuring the ruckus is not repeated. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why are people so forgiving? Because everyone makes mistakes. We&amp;rsquo;ve all experienced the horror of realizing we&amp;rsquo;ve messed up. We are here for each other. Trust others to understand. Work hard to understand them. One day, this too shall pass.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10044554" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Tools+and+Techniques/">Tools and Techniques</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Personal+Bug+Fixing/">Personal Bug Fixing</category></item><item><title>Culture clash</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/07/01/culture-clash.aspx</link><pubDate>Thu, 01 Jul 2010 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10032277</guid><dc:creator>ericbrec</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10032277</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/07/01/culture-clash.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-01/0243.Bruised.jpg" border="0" /&gt;&amp;nbsp;Culture is management&amp;rsquo;s boogeyman&amp;mdash;a monster that can&amp;rsquo;t be controlled, an immoveable object that can&amp;rsquo;t be overcome. If you ever want to see managers become whiny, petulant infants, ask them to challenge an issue ingrained in the corporate culture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;When managers say, &amp;ldquo;That&amp;rsquo;s a cultural issue,&amp;rdquo; they mean, &amp;ldquo;There&amp;rsquo;s nothing I can do about it.&amp;rdquo; When managers say, &amp;ldquo;You&amp;rsquo;d have to change the culture,&amp;rdquo; they mean, &amp;ldquo;I&amp;rsquo;m wimping out on this issue.&amp;rdquo; Culture is a manager&amp;rsquo;s favorite excuse to maintain the status quo and avoid confronting change. That is not only lame&amp;mdash;it is na&amp;iuml;ve and indefensible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Culture as concept seems interwoven into the very fabric of our lives. What hope would anyone have to change such a thing? Yet corporate culture doesn&amp;rsquo;t arise in a vacuum. It is instilled by the people who founded the company and changes gradually as the people change. Therefore, you can affect culture, and it can change. You simply need to know how to do it, and stop being a wimp.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;You see the whole culture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Countless books, articles, blogs, and commentaries discuss what drives and sustains culture. It basically comes down to expectations, modeling, and rewards.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Your parents, peers, neighbors, and friends expect you to behave a certain way. They model it for you. They correct or shun you when you fail to comply. They applaud and encourage you when you set the &amp;ldquo;right&amp;rdquo; example. This is how culture perpetuates itself.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Can you change culture? Sure&amp;mdash;simply expect, model, and reward different behavior. Really, it&amp;rsquo;s that easy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Ever notice how the culture of a group or organization changes when the leader changes? That&amp;rsquo;s what&amp;rsquo;s happening&amp;mdash;the new leader expects, models, and rewards different behavior.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 6pt; PADDING-LEFT: 16pt; PADDING-RIGHT: 16pt; MARGIN-LEFT: 58.3pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0.25in; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;The behaviors a new leader expects, models, and rewards aren&amp;rsquo;t necessarily the ones the leader intends. The leader may say one thing, but actually expect, model, and reward another. The old saying, &amp;ldquo;Do as I say, not as I do&amp;rdquo; is pretty ineffective at driving cultural change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Back off, man. I'm a scientist.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Is there a science to driving behavioral change in organizations? Of course there is&amp;mdash;it&amp;rsquo;s called &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Human_performance_technology"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Human Performance Technology (HPT)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;. You&amp;rsquo;d think every manager would know about it, but few do.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Maybe they prefer whining and impotence. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;The basis of HPT is &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/B.F._Skinner" title="B.F. Skinner"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;B.F. Skinner's&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt; model of &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Operant_conditioning" title="Operant conditioning"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;operant conditioning&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;. Basically, this model says that voluntary behavior breaks down into stimulus, response, and reinforcement. You receive a stimulus, like your manager telling you to start coding. You respond by coding. You receive reinforcement, like pizza.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;a href="http://en.wikipedia.org/wiki/Thomas_Gilbert_(engineer)"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Thomas Gilbert&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt; analyzed the types of stimulus, response, and reinforcement in his book on &lt;/span&gt;&lt;a href="http://www.amazon.com/Human-Competence-Engineering-Performance-Essential/dp/0787996157"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Human Competence&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;, differentiating between the environment and the person.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;The environment refers to workplace influences, like expectations which stimulate a response (such as instructions and metrics), tools and processes that shape the response (such as build systems), and incentives that reinforce the response (such as bonuses and recognition).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The person refers to individual influences, like knowledge to interpret a stimulus, capacity to respond, and motivation to receive the incentives. (If you&amp;rsquo;re not hungry, pizza isn&amp;rsquo;t an incentive. Hunger is the motivation.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;To drive behavioral change, you need to consider and potentially shift the environmental and individual elements of stimulus, response, and reinforcement, known as the &amp;ldquo;Six Boxes.&amp;rdquo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div sizset="0" sizcache="13" align="center"&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: auto auto auto 0.5in; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid black .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184"&gt;
&lt;tbody&gt;
&lt;tr style="height: 1pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes;"&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1; mso-border-bottom-alt: solid black .5pt; mso-border-right-alt: solid black .5pt;"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b&gt;Stimulus &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b&gt;Response &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b&gt;Reinforcement &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height: 1pt; mso-yfti-irow: 1;"&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b&gt;Environment &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Expectations &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Tools &amp;amp; Process &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Incentives &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height: 1pt; mso-yfti-irow: 2; mso-yfti-lastrow: yes;"&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b&gt;Individual&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Knowledge &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Capacity &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td valign="top" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; padding-right: 5.4pt; height: 1pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNoSpacing"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Motivation &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 6pt; PADDING-LEFT: 16pt; PADDING-RIGHT: 16pt; MARGIN-LEFT: 58.3pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0.25in; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;The concept of putting Gilbert&amp;rsquo;s six areas into plain language as &amp;ldquo;Six Boxes&amp;rdquo; comes from &lt;/span&gt;&lt;a href="http://www.binder-riha.com/sixboxes.html"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Carl Binder&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Expectations&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Suppose you want your software development team to focus more on unit testing, perhaps even adopt &lt;/span&gt;&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Test-driven development (TDD)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;. From the environment side, you need to ensure that writing unit tests is expected by management and the team. It would be helpful to have metrics that indicate how much of the code has unit tests in place. However, that&amp;rsquo;s not enough.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Tools &amp;amp; Process&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The team will need to have a good unit testing framework in place&amp;mdash;one that is easy to run, easy for developers to add tests to, and easy to use for measuring results. Of course, that&amp;rsquo;s not enough.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Incentives&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If group managers reward developers for checking in code quickly, with or without unit tests, developers will stop writing the unit tests. To drive unit testing, only developers who write thorough unit tests should be chosen for recognition and rewards. But that&amp;rsquo;s not enough.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 6pt; PADDING-LEFT: 16pt; PADDING-RIGHT: 16pt; MARGIN-LEFT: 58.3pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0.25in; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Which reward works best? Typically, it&amp;rsquo;s not salary. Salary can actually demotivate when people aren&amp;rsquo;t paid fairly. Also, recent studies show that salary doesn&amp;rsquo;t align well with what people truly desire when doing difficult work&amp;mdash;autonomy, mastery, and purpose (check out &lt;/span&gt;&lt;a href="http://www.youtube.com/watch?v=u6XAPnuFjJc"&gt;&lt;span style="font-family: Arial Unicode MS; font-size: x-small;"&gt;Dan Pink's talk&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt; on the subject).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Instead of more money, offer more responsibility and opportunity to improve, and tie people&amp;rsquo;s work to outcomes that matter. These rewards better target engineers&amp;rsquo; motivations and also naturally lead to raises and promotions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Individual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Knowledge&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Developers will need to know what the different kinds of unit tests are and how to write them well. They will need to know how to use the unit testing framework, how to get metrics on their progress, and what targets they are expected to reach. Now, we&amp;rsquo;re almost there.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Capacity&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Naturally, the developers will need to be capable of writing unit tests. Hopefully, in this particular case that&amp;rsquo;s not a problem. However, you might also expect your test team to unit test its automation. If your test team is using an automation tool, the team members may not be capable of scripting it or writing external code to test it. You might need to hire testers who have that capacity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Motivation&lt;/b&gt;:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Finally, your developers need to care about meeting these new expectations and receiving the recognition and rewards you offer. If your developers are completely apathetic or entrenched, they won&amp;rsquo;t be motivated sufficiently to make the change.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Is it deliberate?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;I&amp;rsquo;ve outlined a whole bunch of system thinking for a simple cultural change. You might say that&amp;rsquo;s overkill. However, look back. If any one of the six boxes isn&amp;rsquo;t properly addressed, the change won&amp;rsquo;t happen properly, if at all. &amp;ldquo;I know&amp;mdash;we&amp;rsquo;ll just train everyone&amp;rdquo; isn&amp;rsquo;t enough.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;The environment impacts everyone and thus is more potent than any individual. No amount of training will overcome the wrong expectations, tools, and incentives. However, clueless, incapable, and apathetic engineers are also quite debilitating.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Review all six boxes. In the unit testing example, you&amp;rsquo;ll see we need clear manager expectations, metrics, targets for those metrics, a unit testing framework, a change to rewards and recognition agreed upon by all the group managers, training for the team, and the right team members in place&amp;mdash;both from a capacity and motivation perspective.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;How do you think all that through in advance? Easy&amp;mdash;know where you are today, know what you want to accomplish, and then go through the six boxes with that gap in mind.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You must avoid jumping to the first sexy solution (&amp;ldquo;I know&amp;mdash;we&amp;rsquo;ll use that new tool!&amp;rdquo;). You must be deliberate about your goals. You must also be deliberate about measuring progress toward achieving your goals, not just making pretty charts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;As I covered in &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/eric_brechner/archive/2007/10/01/how-do-you-measure-yourself.aspx"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;How do you measure yourself?&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;, measuring lots of values and putting them on graphs achieves little. The numbers don&amp;rsquo;t have meaning and the metrics will be gamed. You must know what you want to accomplish and deliberately measure your desired end results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;I'm going to ask you a few questions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;HPT also provides a clear framework for performance improvement in general. Before proposing a solution, HPT requires that you understand the problem, the desired result, and how to measure success. The next time someone runs into your office suggesting that the team adopt a new estimation method, patiently hear him out and then ask him a few questions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What are you trying to accomplish?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How is it done today?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How will you know when you&amp;rsquo;ve accomplished your goal?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What should managers say and do to support this direction?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;What processes and tools will the team need?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How will managers need to recognize effort and progress differently?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;How will the team learn about the new direction, tools, metrics, and targets? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Are the right people in the right roles to accomplish your goal? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Does the team care at all about this?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 6pt"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;All together now&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Remember, if you are serious about doing things differently, then you are working on changing the culture. This applies to big changes, like moving to a services model, and little changes, like using code review checklists. Of course, big changes take longer than small ones, which is why goals, metrics, and targets are so important.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Changing the culture is possible and even algorithmic. When you ask the right questions, focus on the result, and consider all six elements that drive behavior, you can move molehills as well as mountains.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10032277" width="1" height="1"&gt;</description></item><item><title>Level up</title><link>http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx</link><pubDate>Tue, 01 Jun 2010 06:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10014993</guid><dc:creator>ericbrec</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/eric_brechner/rsscomments.aspx?WeblogPostID=10014993</wfw:commentRss><comments>http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;img src="http://my/sites/ericbrec/Hard%20Code%20Thumbnails/Radio%20news.jpg" /&gt;&amp;nbsp;&lt;/span&gt;If you&amp;rsquo;re not a Microsoft&amp;reg; engineer and you&amp;rsquo;re not interested in finding a new reason to bash Microsoft, save yourself some time and skip this column. If you want to know how to build your skills and systematically grow your career as an engineer at Microsoft, read on. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;I&amp;rsquo;ve been managing Microsoft engineers for nearly 15 years. I&amp;rsquo;ve worked for eight different organizations and more managers than I can recall. While every manager and organization has its own take on promotions, there are some basics everyone follows. Those basics are documented nowhere, until now&amp;mdash;right here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why am I giving up these &amp;ldquo;secrets&amp;rdquo; to getting promoted? Because they aren&amp;rsquo;t secret. My peers all know them, and I&amp;rsquo;ve always told my employees this information. After hearing it, my employees all ask, &amp;ldquo;Why isn&amp;rsquo;t this written down?&amp;rdquo; I could speculate that HR is too scared to make it simple, that engineers are too precise to generalize, or that Microsoft organizations cling to the notion that they are each special and unique. Whatever, I don&amp;rsquo;t care. I&amp;rsquo;m just going to tell you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;The basics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;Most Microsoft engineers know there are six career stages, each with their own Career Stage Profile (CSP), but don&amp;rsquo;t know what differentiates one stage from the next.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Entry level&lt;/b&gt; (e.g., SDE I)&amp;mdash;you&amp;rsquo;re straight out of college. Your education hasn&amp;rsquo;t prepared you to work in a professional team environment with money on the line and customers that aren&amp;rsquo;t figments of your professor&amp;rsquo;s imagination. You&amp;rsquo;re clueless.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;SDE stands for Software Development Engineer. There are similar stages for the other engineering disciplines.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Independence&lt;/b&gt; (e.g., SDE II)&amp;mdash;you can code up anything your lead asks of you. Period. If you don&amp;rsquo;t know how, you know who to ask, or who to ask who to ask. This is the last time you&amp;rsquo;ll be differentiated by your coding skills. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Team leadership&lt;/b&gt; (e.g., Senior SDE)&amp;mdash;you influence the rest of your team of roughly 3 &amp;ndash; 12 engineers. You influence them as their managing lead or as their technical lead. Either way, your impact extends beyond what you can do alone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Group leadership&lt;/b&gt; (e.g., Principal SDE)&amp;mdash;you influence the entire group of roughly 12 &amp;ndash; 80 engineers. You influence them as their discipline manager, group manager, architect, or core technology guru. Regardless, you have become a key person in your organization.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;span style="font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Organization leadership&lt;/b&gt; (e.g., Partner SDE)&amp;mdash;you influence the entire organization of 80 &amp;ndash; 500 engineers. You are the discipline director, general manager, partner architect, or core technology worldwide expert. You have become a partner at the company. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="BullList"&gt;&lt;span style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;sect;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Industry leadership&lt;/b&gt; (e.g., Technical Fellow)&amp;mdash;you influence the entire division and with it the entire industry (from 500 to millions of engineers). You are the distinguished engineer, technical fellow, or vice president. Money is probably not a concern of yours anymore unless you have a serious gambling problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;How do you get promoted from one stage to the next? Let&amp;rsquo;s take that a stage at a time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Entry level &lt;span style="font-weight: normal;"&gt;(e.g., SDE I)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;To get promoted from entry level to independence, you need to become independent. Duh. It will likely take you two to three years, depending on your past experience. Don&amp;rsquo;t try to save the world. Don&amp;rsquo;t try to impress your vice president. Do your job. Do it well. When something is broken, fix it. Show your manager and your peers that you can handle assignments and get past roadblocks on your own.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Handling assignments on your own doesn&amp;rsquo;t mean doing so in isolation. It means knowing what questions to ask, who can answer them, and how to get the answers. Even the Lone Ranger had Tonto. (I&amp;rsquo;m dating myself.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Often career stages are divided into two levels (in Redmond, SDE I has levels 59 and 60). You&amp;rsquo;ll get promoted to the second level (level 60) after a year or two if you show progress toward independence. You&amp;rsquo;ll get promoted to the next stage (level 61) when you actually are independent, assuming your team hasn&amp;rsquo;t run out of promotion budget.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;A common failing at the entry level is complaining instead of solving, aka whining. The world is a messed up place. The workplace is no different. No one else is going to fix your problems. If you&amp;rsquo;ve got an issue, then propose a solution to your manager and peers and, ideally, implement it. Otherwise, live with the problem and quit your whining.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Independence &lt;span style="font-weight: normal;"&gt;(e.g., SDE II)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Now you are independent. You can handle any individual assignment with little direction. You still ask plenty of questions and keep your manager informed, but you are the initiator. No one has to tell you what to do.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Why must you be independent before you get promoted into the independence stage? Microsoft wants you to be successful. If you are promoted and fail at the next stage, Microsoft has lost a valuable employee at the previous stage. Demotion is not an option because it kills morale and motivation. So, &lt;b style="mso-bidi-font-weight: normal;"&gt;you only get promoted when Microsoft knows you&amp;rsquo;ll be successful at the next stage, which is when you&amp;rsquo;re behaving as if you have already been promoted&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Microsoft expects every engineer to become independent and a team leader, either organizationally or technically. That means you are expected to make it to the team leadership stage, typically after three to five years of independence. If you don&amp;rsquo;t, you&amp;rsquo;ll likely be managed out of the company. You can&amp;rsquo;t plateau as an independent engineer at Microsoft&amp;mdash;you need to influence your peers at least at the team level.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;When you have established that you are fully independent, regardless of the assignment, you&amp;rsquo;ll get promoted to the second level within independence. When you are influencing your peers and demonstrating sustained leadership (for 6 &amp;ndash; 12 months), you&amp;rsquo;ll likely get promoted to the team leadership stage.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Switching managers and groups often impacts time between promotions because your new manager will not know how long you&amp;rsquo;ve been displaying leadership skills. There are a couple of actions you can take to avoid resetting your promotion timetable every time you switch groups or managers:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;&lt;span style="font-size: x-small;"&gt;Ask your old manager and new manager to discuss your current leadership skills and how long you&amp;rsquo;ve been demonstrating them. This is different than asking for a promotion&amp;mdash;you are simply encouraging a smooth personal development transition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;If you are going to switch groups and managers, do so within a year or two after being promoted, ideally with the blessing of your current manager. Switching then won&amp;rsquo;t likely impact your next promotion. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Team leadership &lt;span style="font-weight: normal;"&gt;(Senior)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Sweet! You&amp;rsquo;ve made it to team leadership. That doesn&amp;rsquo;t necessarily mean you&amp;rsquo;re a people manager. It means your impact extends beyond yourself and your own work. Your influence guides the work of your teammates (for example, mentoring, setting the example others follow, making broad design decisions that stick, and establishing quality practices that stick).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;From here on out, your coding skills no longer differentiate you from your peers. Everyone has great coding skills when they reach the independence stage. Now, your encouragement and influence skills set you apart. Soft skills. There, I&amp;rsquo;ve said it. You&amp;rsquo;ve got to apply all that written and oral persuasion crap you reluctantly muddled through in high school and college.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Microsoft&amp;rsquo;s ranking of the future potential contribution of employees&amp;mdash;the top 20% of potential, the middle 70%, and the bottom 10%&amp;mdash;changes its character at this stage. That&amp;rsquo;s because team leadership is the first stage where you can plateau, though Microsoft would prefer that you make it to the group leadership stage. The following table shows the differences:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" style="margin: auto auto auto 0pt; width: 600px; border-collapse: collapse; mso-border-alt: solid black .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184;"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"&gt;
&lt;td width="96" style="padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 71.85pt; padding-right: 5.4pt; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; border: black 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Potential&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="245" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 184.05pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Entry Level &amp;amp; Independence Stages&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 2.7in; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Team Leadership Stages and Above&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1;"&gt;
&lt;td width="96" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 71.85pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Top 20%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="245" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 184.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Likely to reach team leadership stage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 2.7in; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Promotable depending on progress&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2;"&gt;
&lt;td width="96" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 71.85pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Middle 70%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="245" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 184.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Promotable depending on progress&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 2.7in; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Promotable, but increasingly difficult to justify due to fewer high level positions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;"&gt;
&lt;td width="96" style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 71.85pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Bottom 10%&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="245" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 184.05pt; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;In jeopardy of dismissal unless there is substantial improvement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="259" style="border-bottom: black 1pt solid; border-left: #f0f0f0; padding-bottom: 0in; background-color: transparent; padding-left: 5.4pt; width: 2.7in; padding-right: 5.4pt; border-top: #f0f0f0; border-right: black 1pt solid; padding-top: 0in; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small; mso-bidi-font-size: 10.0pt;"&gt;&lt;span style="font-family: Times New Roman;"&gt;In jeopardy or reached a plateau&amp;mdash;ask your manager to clarify&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As for promotions, when you show occasional broad influence within the entire group, you&amp;rsquo;ll likely be ready for advancement to the second level within team leadership. When you regularly and sustainably (for 6 &amp;ndash; 12 months) influence the entire group, you&amp;rsquo;ll be ready to reach the group leadership stage. Both promotions can take many years. There is no longer an expected timeline, and no guarantee of a promotion. It now depends on business need and ambition, as well as ability.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-bottom: 6pt; padding-left: 16pt; padding-right: 16pt; margin-left: 58.3pt; margin-right: 0.25in; padding-top: 6pt; mso-element: para-border-div; mso-border-alt: solid windowtext .75pt; border: windowtext 1pt solid;"&gt;
&lt;p class="Readeraid1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Eric Aside&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="Readeraid1"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;What about managing cross-team and cross-division dependency relationships? Isn&amp;rsquo;t that group leadership? No, it&amp;rsquo;s not. Managing relationships across teams and divisions is part of your regular job. Even entry level engineers need to become good at it. However, when you start influencing strategy and systems of other teams and divisions, you have graduated to group leadership.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Group leadership &lt;span style="font-weight: normal;"&gt;(Principal)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Wow, you&amp;rsquo;ve made it to the group leadership stage as a discipline manager, group manager, architect, or core technology guru. Congratulations, that&amp;rsquo;s a big, difficult step. You got here by thinking and influencing outside the confines of your team.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt;Influencing a large group necessarily means influencing strategy and systems. I&amp;rsquo;ve written many columns on each, in particular &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2005/08/01/august-1-2005-controlling-your-boss-for-fun-and-profit.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Controlling your boss for fun and profit&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Times New Roman; font-size: small;"&gt; and &lt;/span&gt;&lt;a href="http://blogs.msdn.com/eric_brechner/archive/2007/12/01/lead-follow-or-get-out-of-the-way.aspx"&gt;&lt;span style="font-family: Times New Roman; color: #0000ff; font-size: small;"&gt;Lead, follow, or get out of the way&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;. It means thinking big and setting a vision. It means less following, less critiquing, and less complaining. Instead, you step out in front and lead toward your vision. It&amp;rsquo;s scary to stick your neck out, with no one else to cover you. That&amp;rsquo;s what makes you a leader.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You can be promoted to the second level within the group leadership stage simply by establishing yourself as a strong group leader. However, getting to the organization leadership stage is far more difficult. The company doesn&amp;rsquo;t need many organization leaders. Very few engineers make it past the group leadership stage, so ambition begins to affect your continued advancement. This is true of any sizable company.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;There will be peers of yours who have ambition. They&amp;rsquo;ll be willing to live overseas, work on unattractive projects with difficult people, travel frequently and at a moment&amp;rsquo;s notice, be on-call at all hours, and make other sacrifices that you may not be willing to make. All other things being equal, an ambitious person will win because of this willingness to do whatever is asked to reach the next stage. If that doesn&amp;rsquo;t sound like you, be prepared to plateau at the group leadership stage. You might make it further, but ambition is a key element. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Organization and industry leadership &lt;span style="font-weight: normal;"&gt;(Partner or higher)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;As an organization leader&amp;mdash;a discipline director, general manager, partner architect, or core technology worldwide expert&amp;mdash;you have become a partner at the company. You have special meetings with Steve Ballmer and the executive staff. You get special stock plans and perks because you are responsible for business results as well as work results.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;You also are expected to give back to the company. This can mean being moved onto projects that need your expertise, even if you&amp;rsquo;d prefer to stay where you are physically and organizationally. It can mean being involved in leadership development programs for group leaders, other partners, and new senior hires. It can also mean bumping up against other leaders just as ambitious as you. At this point, you are a grown up. You should be able and willing to handle the politics.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Things only get more competitive to become an industry leader&amp;mdash;a distinguished engineer, technical fellow, or vice president. You must be world-famous and the voice for a major business that you helped create. Clearly, ambition and business opportunity play key roles in reaching this stage. It&amp;rsquo;s not just about being smart. Everyone who reaches the team leadership stage is smart. You&amp;rsquo;ve really got to persist and persevere, doing whatever is necessary, if you plan to be an industry leader.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="margin: 12pt 0in 6pt;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: Arial Unicode MS;"&gt;Set your course&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;If you haven&amp;rsquo;t realized it by now, career development is a series of choices&amp;mdash;choosing to work independently, to influence your peers, to think strategically, and to be willing to make sacrifices. How far do you want to go and what are you willing to do in order to achieve your goals? Those are the key questions you need to answer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Times New Roman;"&gt;Your career is yours. It belongs to you. Mentors can guide you. Loved ones can support you. But in the end, you own your career. Decide what you want to be. Decide what makes you happy and fulfilled as a whole human being. Accept those choices, set your course, and pursue your dreams. Make it so.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10014993" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/People/">People</category><category domain="http://blogs.msdn.com/b/eric_brechner/archive/tags/Adventures+in+Career+Development/">Adventures in Career Development</category></item></channel></rss>
