<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Data Driven Quality</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kenj/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kenj/feed.xml</link>
    <description>Several of the older posts come from when I was writing on testing, SOA, and Testing in Production (TiP).  I am currently writing on Data Driven Quality (DDQ).</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:17:14 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>The future of quality is easy with EaaSy and MVQ</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/the-future-of-quality-is-easy-with-eaasy-and-mvq</link>
      <pubDate>Mon, 19 May 2014 16:01:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2014/05/19/the-future-of-quality-is-easy-with-eaasy-and-mvq/</guid>
      <description><![CDATA[Introduction to EaaSy and MVQ

Last fall (2013), I published two papers internally to Microsoft. I...]]></description>
      <content:encoded><![CDATA[<h2><span style="font-family: Segoe UI">Introduction to EaaS<em>y </em>and MVQ
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">Last fall (2013), I published two papers internally to Microsoft. I wrote them to challenge the status quo and paint a vision of where I felt the future of software testing was headed. The papers have resonated across Microsoft and some elements have leaked out to the Internet. The first paper, and the more heretical, was about Minimum Viable Quality (<strong>MVQ</strong>) and the other was on my personal perspective that every software and even devices project should be developed like a service. This second concept I call Everything as a Service “<em>yes!</em>” (<strong>EaaS<em>y</em></strong>). The “<em>yes!</em>” is there to both make the acronym easier to remember but also to signify that it’s about time. This is my first public post on the concepts of MVQ and EaaS<em>y</em>. I did present the concepts in a talk at the <a href="http://www.alm-forum.com/links">ALM Forum in Seattle April of 2014</a> and the slides are currently available on the event site.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">There are several other individuals writing about moving to lean data driven quality. All of these bloggers I have worked with and shared ideas back and forth. <a href="http://en.gravatar.com/testerbrent">Brent Jensen</a> wrote a post where he commented on MVQ in March of 2014. In his post however he was focusing not just on MVQ but also on “<a href="http://testastic.wordpress.com/2014/03/02/in-pursuit-of-quality-shifting-the-test-mindset/">Shifting the Tester Mindset</a>.” <a href="http://angryweasel.com/blog/about-alan/">Alan Page</a> focuses on a similar aspect of tester culture with his calls for testers to stop writing automation. See Alan’s May 2014 post, “<a href="http://angryweasel.com/blog/stop-if-you-want-to/">Stop If You Want To</a>.” <a href="http://www.setheliot.com/blog/">Seth Eliot</a> highlights rich fast data and the many uses of it in his writings and speeches on <a href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/http:/www.setheliot.com/blog/2014/04/15/create-your-roadmap-to-data-driven-quality-stpcon-april-2014/">Data Driven Quality</a> (DDQ) and <a target="_blank" href="http://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/http:/blogs.msdn.com/b/seliot/archive/2013/05/01/do-it-in-production-testbash-video-now-available.aspx">Testing in Production</a> (TiP).
</span>

<span style="font-family: Segoe UI;font-size: 10pt">DDQ goes much deeper into all the ways that data is changing all approaches to testing and quality. Seth and I have plans to write more on the topic of DDQ later this summer. Those are all great posts that I recommend you also read.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">So, let’s dive in.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Minimum Viable Quality (MVQ) was born out of my frustration at being a speed bump. Early in my career I thought my job was to stop bad bits from getting to end users. I was there to stand in the gap and when an evil senior manager wanted to ship a product that wasn’t ready for prime-time. I would raise my staff over my head, strike the tip of it on the ground and yell, “You shall not pass!” Down would go the evil Balrog along with the bad code. Or at least that’s what I thought would happen. What really happened was that despite having great test results showing the problems with the code, quite often the decision was made to ship anyway.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Well, after getting run over a few times and squashed flat like an ice-cream cone dropped onto a busy freeway, I realized my job wasn’t to stand in the gap, but rather to help the team figure out how we could ship the product on time with good enough quality. MVQ is just another way of saying the quality of the product is good enough for the target audience and well, no more than that either. You could consider MVQ to be lean testing. Just enough testing and no more than is needed at that point in time.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">EaaS<em>y</em> is actually a framework that stems from my fifteen plus years developing and shipping online services and applying those lessons to developing and delivering all software products and even devices. To really adopt an MVQ approach to quality you need to implement the EaaS<em>y</em> framework. With that in mind I’ll introduce EaaSy and MVQ and then dive into each in more detail.
</span>
<h2><span style="font-family: Segoe UI">EaaSy and MVQ are the future of software quality
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">In the future I don’t think we will call what we do to ensure software is of the right quality “software testing.” As we trend toward everything as a service, quality will shift toward being a data driven service itself. What are these trends that are driving us toward EaaS<em>y</em> and MVQ? Well they all stem from a set of very dominant industry trends.
</span>
<ul>
 	<li><span style="font-family: Segoe UI;font-size: 10pt">First and foremost <strong>the business model for software has changed.</strong> With the cloud people really won’t be buying software much going forward. Not even an operating system will be purchased. Consumers and businesses are buying services for communication, storage, data processing and many more. Consumers do buy Apps when they want or need them or want to enjoy a game but those apps are serviced through an online store and even in that space the revenue model is trending toward in-app purchases and ads. Consumers and businesses devices that come with an operating system that they expect to be updated with bug fixes and cool newness on a fairly regular basis. People don’t stand in line for the next release of Windows but they do stand in line for the cool new device that has a friendly operating system and cool apps. So the days of standing in line at a big box retailer for software are gone and so the business model for software is changing.
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt">The large and competitive <strong>consumer technology market has demonstrated that users demand more rapid innovation</strong> and are willing to purchase new technology at a rate far greater than just a few years ago. That means there is more demand and more expectation for rapid innovation. They have also demonstrated a greater tolerance for minor regression, especially if they are fixed quickly.
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt">All <strong>across Microsoft and the rest of the software industry we are seeing teams increase their rate of release. </strong>Not all are doing this with a services model in mind but the mere fact that we ship more frequently for devices, apps, operating systems and even server products, everything looks and behaves a lot more like a service.
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>Everything is now connected and thus updatable.</strong> Whether it is a new “smart” TV or even my FitBit, smart things are eventually connected to the internet and thus all software on them is updatable with some level of reliability. Some sectors like critical medical devices will not be on this rapid update pace but that is simply early adopters vs business segments that due to compliance and other factors must lag.
</span></li>
</ul>
<span style="font-family: Segoe UI;font-size: 10pt">The market dynamics mean that we must think of new ways of shipping software at a lower cost, ship it more frequently, and maintain an acceptable level of quality. To help frame that discussion I created EaaSy as the foundational capabilities for enabling this new faster iteration cycle and then created MVQ as a way of aligning the goals of the quality engineers with the new business imperatives.
</span>
<h2><span style="font-family: Segoe UI">The EaaSy 5 key capabilities
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">EaaS<em>y</em> is my framework for communicating a set of five key capabilities <em>(see Figure 1)</em> required to allow just about any product to look like and be managed like it was a service. They are all geared around reducing risk when developing and releasing software products. Managing Risk is essential when building complex products.
</span>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside –</strong> It occurred to me some number of years ago that my role in test was less about finding and fixing bugs but more about producing a signal for management to better understand risk to quality. Think about it, if you have a complex product that has not yet been released to the public you will have very little data available to you for assessing if the product is of acceptable quality. Test results are a proxy for real information. Of course with Testing in Production we now have real data so test results are becoming a bit less valued.
</em></span></p>
<span style="font-family: Segoe UI;font-size: 10pt">When in place, they allow any software engineer to ship faster with well-reasoned and managed risk in terms of catastrophic bugs impacting large numbers of users. In fact, as the math will bear out, it is safer to ship faster with EaaS<em>y</em> in place than it is to invest in significant up front testing.
</span>
<p style="margin-left: 36pt"><img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof1.png?w=625" alt="" /><span style="font-family: Segoe UI;font-size: 10pt">
</span></p>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI;font-size: 10pt"><em>Figure 1: there are five key capabilities required to adopt EaaSy.
</em></span></p>
<span style="font-family: Segoe UI;font-size: 10pt">There are five key capabilities required to successfully implement EaaSy and to make your product look like and behave like a service. Those five capabilities are:
</span>
<ol>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>Componentization</strong> allows the product to ship in independent modules
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>Continuous Delivery</strong> of small changes by components
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>User Segmentation</strong> based upon risk tolerance
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>Flighting </strong>both for evaluating quality and for experimentation
</span></li>
 	<li><span style="font-family: Segoe UI;font-size: 10pt"><strong>Rich fast data</strong> for Quality of Service (QoS) and Quality of Experience (QoE) analysis
</span></li>
</ol>
<span style="font-family: Segoe UI;font-size: 10pt">With these capabilities in place a product should be able to be updated with new code on a daily basis. Now getting all these capabilities in place on your product team won’t be easy and they won’t happen overnight but when you arrive, you will be able to ship updates much more easily than ever before.
</span>
<h2><span style="font-family: Segoe UI">EaaS<em>y</em> Capability #1: Componentization
</span></h2>
<span style="color: black;font-family: Segoe UI;font-size: 10pt">I want to start diving into EaaSy at the foundation. To me, componentization is the foundation of moving into a services architecture. One thing we learned early on in the services world was that you couldn’t stand up all the pieces of a large scale service all at the same time. This forced us to define and maintain contracts between service components. The canonical example of this is authentication. Most online services today do not run their own authentication service but instead trust other cloud services such as Twitter, Facebook, Google, and Microsoft.
</span>

<img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof2.png?w=625" alt="" /><span style="color: black;font-family: Segoe UI;font-size: 10pt">
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>Figure 2: Example of common components (sometimes called layers) of a service
</em></span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">In the software, apps, and devices world it is common to think in terms of getting something on a retail store shelf. That leads toward a philosophy of sim-shipping all components at once and tends to break down component boundaries. The product ships as one unit so it should just all work together as one SKU. Componentization and backward compatibility are often lost in this release model.
</span>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside –</strong> Every time I think of sim-shipping I think of the Titanic. I think of a massively complex product with hundreds of passengers all betting that the voyage will be a fabulous success. The problem is that when that ship hits an iceberg, the entire product is now in jeopardy. Things start to flood, fall apart, the ship (a metaphor for our software product) is sinking. Ship together and sink together as one.</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>The antithesis of sim-ship is to launch a hundred self-sustaining little boats. Together those boats can get all the passengers across the ocean with much less total risk. If one of them or even a dozen hits an iceberg and sinks the relative impact to the overall customer experience is less than the big ship going down. Now I’m not saying a hundred little boats is the same experience as a big grand ship like the Titanic. No, I’m using this as a metaphor for relative risk. From a pure engineering perspective it would be less risky to have more boats than fewer.
</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>Think about it.</em>
</span></p>
<span style="color: black;font-family: Segoe UI;font-size: 10pt">From a tester perspective componentization is nothing more than problem decomposition, something we do all the time. I see a bug, let me figure out where the root of the bug is by isolating factors. The most common type of bug I find in a service is a regression and those are caused by some sort of change either in the code or the environment in which the code is running. With a regression we often focus on what changed when and how that led to the bug. Problem decomposition.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">With services when we would ship updates to any one of the service layers we would need to ensure we were both forward compatible with the new features and that we maintained backward compatibility. Each service component could be updated independently and the integration points as well as the end to end experience validated.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">Componentization and asynchronous releasing is actually easier than trying to get one version of all the parts of a product to work relatively bug free in a single release. The reason it is easier is because componentization that is reinforced with asynchronous release processes teaches us to design better for forward and backward compatibility and to code for it up front. Risk reduction become built into the engineering processes.
</span>
<h2><span style="font-family: Segoe UI">EaaS<em>y</em> Capability #2: Continuous Delivery (CD)
</span></h2>
<span style="color: black;font-family: Segoe UI;font-size: 10pt">Continuous Delivery (CD) is quite simply less risky and it leads to better componentization. Let me start with the impact CD has on componentization and then get back to the risk part.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">While componentization sounds great, I have rarely seen it work unless it was combined with Continuous Delivery. The reason for this, I think, is simply repetition. The more experience a team can gain with a new practice the stronger and quicker it will grow. When I was working on MSN in the late 90s we would aim to release the MSN client CDs once a year just before back to school season. AOL followed a similar model.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">Throughout the year the different service component would work on their features and continually validate they were working in a test environment we called the Integrated Test Environment (INT). Near the end of the yearlong cycle we all started upgrading the production services. We did this in pieces but we kept breaking each other. The reason for this, in my opinion, was that while we created contracts between the layers, we engineered and tested as if we were one cohesive unit. The INT environment was actually our downfall for componentization. It wasn’t until years later while working on Bing that I was able to observe the role continuous delivery with independent ship decision had on the success of componentization.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">Let me go back to the risk reduction side of CD.
</span>

<span style="color: black;font-family: Segoe UI;font-size: 10pt">From an Operations Engineer or a Test Engineer’s perspective change is synonymous with risk. If I get a brand new PC, take it out of the box, and turn it on, it pretty much always works. Over time new patches get applied, add-ware sneaks on and before you know it I’m better off reinstalling the operating system from scratch and starting over. Change leads to bugs. The same is true in the services world but the impact of a bad change on a large scale service can be catastrophic.
</span>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside –</strong> It’s not good to yell at your engineers when things go wrong. It creates backlash behavior that can be even worse than the original error. I have had to go through two major un-learnings over the past few years and it occurred to me that both of them were results of being unduly harangued for a problem in production.</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>The first bad decision was helping design the INT test environment. The test managers of MSN at the time felt it was possible to mimic production well enough in a lab that we could catch all the critical bugs before we shipped. INT was directly born out of the frustration of test managers being blamed when a bug would get into production.</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>The second unlearning comes from my experiences in operations. Ops engineers, more than any other type of engineer, know that change leads to issues. That is why operations is so focused on changed management processes and documentation. Why is this? Well when a bad change goes in, everyone turns to ops and asks how they let this happen. The change management system is a way to track and assign blame.
</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>The problem with both over testing in INT and excessive change management is that they slow down innovation and do not prevent bad bugs from getting through. They are counter to continuous delivery and don’t accomplish what they were designed to do.
</em></span></p>
<span style="color: black;font-family: Segoe UI;font-size: 10pt">It seems counter intuitive to say that shipping more frequently reduces risk but it does. More code into producing more quickly means less code churn per release. Changes are smaller and thus less risky. Additionally CD promotes componentization.
</span>
<h2><span style="font-family: Segoe UI">EaaS<em>y</em> Capability #3: User Segmentation
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">While I believe all five EaaS<em>y</em> capabilities are required to adopt MVQ I have to admit that <strong>user segmentation</strong> is the most important of the five. The reason for this is simply around managing risk. If you cannot divide the users of your product up into different segments and expose new code and features by user segment then by definition, when you first release your code, you must hit the release ready quality bar.  When properly implemented, the great thing about user segmentation is that you can now create pools of users with different characteristics such as heavy or light users and you can create risk pools.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">In Microsoft many teams are adopting the rings of risk model (<em>see Figure 3).</em> The rings signify that at each layer the number of users actively using the product is increasing and the tolerance for defects is decreasing. A typical model would have four or more pools of users divided across the rings.
</span>

<img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof3.png?w=625" alt="" /><span style="font-family: Segoe UI;font-size: 10pt">
</span>

<span style="font-family: Segoe UI;font-size: 10pt"><em>Figure 3: Code Quality increases as the code is exposed to different types of users with ever increasing expectations of higher quality.</em>
</span>

<span style="font-family: Segoe UI;font-size: 10pt">At the inner most ring you have the <strong>feature development team</strong> itself. These groups are actively working on the product and it’s not uncommon to even try out a buddy build from a team member. Even within Windows and Office teams do this regularly. The next ring might be a sizable <strong>product team</strong>. Think of a team say developing the Office Outlook client to say a team the size of Windows. The team as a whole is pretty tight nit and committed to shipping a great product with great final quality. There should be a high tolerance for bugs, in fact excitement to find them within the team before release, as long as there are not so many defects that productivity becomes completely blocked.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">When you go to the next ring of an entire <strong>company</strong> the quality needs to be pretty good. These individuals may be committed to building the company but that doesn’t mean they will be excited to lose their work or have to try something two or three times before it works. Still, they will understand that finding bugs in house is better than releasing them on customers.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">At the edge between the company and a public beta is a special divider. This is what we call the <strong>disclosure line</strong>. When you start to bring beta users onto a product you have to expect leaks so you will need to have a communication plan in place. Additionally if your company wants to protect its intellectual property, in most cases those patents will need to be filed before the features are shared with the beta user pool.
</span>

<span style="font-family: Segoe UI;font-size: 10pt"><strong>External public beta users</strong> are in many ways the most exciting ring of all. They are typically enthusiasts that understand they will be getting a pre-released version of a product that will likely have bugs. They are willing to take on some of this pain for the chance to be an early adopter. Perhaps the most exciting aspect of beta users is that they are not typically engineers and will likely use the product in ways none of the smaller rings every thought of trying. Going down new code paths helps discover new bugs.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">The final ring is <strong>everyone</strong> that may be interested in your technology product. At this point you should be trying to monetize your product and individuals using it will expect that it is of good quality. That is true for products they purchase and also for free products that are perhaps monetized through ads.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Many companies use similar models to manage how they release features. Google is known for running hundreds of experiments a day on their search portal. <a href="http://en.wikipedia.org/wiki/History_of_Gmail">Gmail</a> was labeled a beta for years. When Facebook rolled out their new <a href="http://www.facebook.com/about/timeline">timeline</a> UX early adopters could opt into the new experience. Similarly when Microsoft re-launched Hotmail as <a href="http://www.electronista.com/articles/12/07/31/new.look.sports.metro.influence/">Outlook.com</a> users had a very long period to opt into the new look.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">In the AppStore model you are also seeing the adoption of user segmentation. These features for identifying and managing pools of users for Alpha and Beta releases are becoming common place in all the major AppStores.
</span>

<img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof4.png?w=625" alt="" /><span style="font-family: Segoe UI;font-size: 10pt">
</span>

<span style="font-family: Segoe UI;font-size: 10pt"><em>Image 1: Article from <a href="http://support.google.com/googleplay" rel="nofollow">http://support.google.com/googleplay</a> touting the beta and alpha features of the Google Play store platform</em>.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">User segmentation isn’t just for services. There are countless examples of products shipping on CDs and DVDs that have leveraged user segmentation. There have been Beta releases of Windows since before the very first version was ever released. This method of segmentation was usually fairly manual and often spread out over long periods of time. The difference with EaaSy is that we are now taking products like Office and Windows and XBOX and building and releasing them like services. This requires a fully automated way of managing user pools and the versions of the code they receive.
</span>
<h2><span style="font-family: Segoe UI">EaaS<em>y</em> Capability #4: Flighting
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">Inside of Microsoft we use a term Flighting to mean something similar to the industry terms experimentation and A/B Testing and the associated capability of turning code paths on and off via configuration settings in a cloud service. In this case flighting also integrates with user segmentation (EaaSy capability 4) such that we can ship code to users within a particular ring and then configure the new code on and off at a later time. Some groups inside Microsoft call this shipping dark. The code is out there but it is not turned on until the configuration change is made in the cloud.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">All of these capabilities come from lessons learned from A/B testing. In the case of A/B testing it is common to have the ability to dynamically route users to different experiences or different code paths. This is typically done to experiment on a UX treatment to determine which one has better engagement with end users.
</span>

<img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof5.png?w=625" alt="" /><span style="font-family: Segoe UI;font-size: 10pt">
</span>

<span style="font-family: Segoe UI;font-size: 10pt"><em>Image 2: Example of A/B testing routing users to different code paths. Image from “<a href="http://www.smashingmagazine.com/2010/06/24/the-ultimate-guide-to-a-b-testing/">The Ultimate Guide to A/B Testing</a>” by Paras Chopra
</em></span>

<span style="font-family: Segoe UI;font-size: 10pt">Examples of A/B tests for a service might be a new treatment for where Ads are placed on a portal page. The goal of the experiment would be to answer the question of whether or not users will click more often or if the page is now so obnoxious users will stop using the service. With cloud based flags, users are routed to the control and the experiment. These two treatments are different code paths living side by side in production.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">With flighting this same dynamic routing capability is leveraged by quality to roll out new code in the dark state and then have real users hit the new code path. In this way you can control the number of users hitting a new code path while answering the basic question of whether or not the new release is good enough or too buggy.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">This technique of flighting as a way to manage new code exposure to real users is a variation on what services call rolling upgrade. The difference here is that access to the new code is managed via a configuration. This improves rollback because removing the new code from production use is simply an undo on the configuration management service.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">This technique is being used by all types of technology. Apps acquired in app stores are actively using this technique. In the following article snipped I was reading how Facebook developed and released their iOS 7 app through the Apple AppStore but they managed to implement their own ability to flight and test different UX experiences (see references). It seems they value the capabilities they have with their online presence so much that they built those capabilities into the app and supported it from their own service infrastructure. <span style="color: black">
</span></span>
<p style="margin-left: 36pt"><a href="http://www.theverge.com/2013/9/18/4744904/how-facebook-secretly-redesigned-its-iphone-app-with-your-help"><span style="font-family: Segoe UI;font-size: 10pt"><strong>How Facebook secretly redesigned its iPhone app with your help</strong></span></a><span style="font-family: Segoe UI;font-size: 10pt"><strong>
</strong></span></p>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI;font-size: 10pt">To get around these issues, Facebook built an entire system for creating alternate versions of the native app within the native app. The team could then turn on certain new features for a subset of its users, directly, and measure the results. Starting in early 2013, the team put together a system of “different types of Legos — that we can reconfigure really easily … and see the results on the server in real time.”
</span></p>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI;font-size: 10pt"><em>From article on The Verge by Dieter Bohn September 18, 2013.
</em></span></p>

<h2><span style="font-family: Segoe UI">EaaS<em>y</em> Capability #5: Rich-Fast-Data (RFD)
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">One of the things we discovered early on in the world of services is that data is the life blood of quality. With services the ability to get telemetry off of the servers vastly increased our ability to detect problems and fix them. We also learned how to mine data for a better understanding of how users were trying to interact with features.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">I’m referring to this as Rich-Fast-Data (RFD) because to really have your product work like a service you need a lot of good quality data and you need some of it in near real time. With RFD all sorts of systems can be put in place to automate risk mitigation. RFD works with user segmentation, with componentization, and with Flighting and the configuration managements systems. It is the final element to enable a team to move fast and safely with EaaSy.
</span>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI"><em><strong>Ken aside –</strong> User behavior and engagement are the ultimate arbiter of quality. If you ship new code and your monitors and your telemetry tell you everything is fine but you see a statistically significant negative change in user interaction (usually meaning usage tanks) then you’ve likely shipped too many bugs. These bugs may be code defects or they may simply be basic usability but either way something is wrong. If users don’t like something they will give you less of what you want and that is their time. </em>
</span></p>
<span style="font-family: Segoe UI;font-size: 10pt">The real key to success in adopting a RFD approach is how the team leverages the data to mitigate risk, quickly respond to defects in the wild, and drive continuous improvement. One thing I look at with respect to a bug in the wild is an old service metric called Time to Detect (TtD). Quite simply if TtD is high then that means there is a gap in monitoring and or instrumentation. Remember MvQ is mostly about reasonable risk in terms of user impact.  If a defect is introduced and even if it is small but the time to detect is high, then more people experience the defect.  That is symptomatic of a weakness in your RFD strategy.  You might be fast but you are not complete enough.  When you do ship that big critical bug and your TtD is long then you have a brand damaging level defect.  </span>

<span style="font-family: Segoe UI;font-size: 10pt">Now there will always be gaps in telemetry so you will need a RFD proxy that will help with roll back decisions even when the telemetry says everything is good.  I was literally in a meeting today (10/31/2016) where a team from Office was explaining how they use net star rating on any update to any app in the iOS, Windows, or Android app store as a roll back signal.  If the update goes out and the stars drop then the release is bad regardless.  </span>

<span style="font-family: Segoe UI;font-size: 10pt">One time I was working on star rating in the Windows App store and NetFlix had an outage.  Just for fun I took a look at the star rating of the NetFlix app over the time period of the service outage.  Guess what, the stars plummeted.  In the comments it was clear many individuals knew this was a service outage but they used the star rating as a way to send a signal to NetFlix.  The outage ended and several individuals changed their star rating back up.
</span>
<h2><span style="font-family: Segoe UI">Where MVQ came from
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">MVQ really builds on other lean development practices. It is in a way Lean Testing. It’s an area I’ve been thinking on for a few years now as I have seen Big Data start to enable all sorts of new capabilities across many different industries and job roles.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Back in 2012 I gave a <a href="http://www.meetup.com/seattle-software-test-talk/events/112148202/">talk</a> on software testing and the move to Big Data with my Dev Manager peer <a href="http://www.meetup.com/seattle-software-test-talk/events/112148202/">Reena Agarwal</a>. In the talk we covered how the rise of Big Data was beginning to impact the techniques of software testing of online services. I hadn’t thought of EaaSy yet so I was confining my thinking to the online space.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">During the Q&amp;A I stirred up a bit of controversy by stating that I felt we were simply testing services far too much before releasing them to production.  This thought was bubbling up in me because I’d been reading “<a href="http://www.amazon.com/Lean-Startup-Entrepreneurs-Continuous-Innovation/dp/0307887898/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1376155316&amp;sr=1-1&amp;keywords=the+lean+startup"><span style="text-decoration: underline">The Lean Startup</span></a>” and wondering how the concept of <a href="http://www.startuplessonslearned.com/2009/08/minimum-viable-product-guide.html"><span style="text-decoration: underline">Minimum Viable Product</span></a><span style="text-decoration: underline"> (MVP)</span> could be applied to my work at Microsoft.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Several attendees of the event were incensed by my suggestion to test less. It was a testing conference after all. I was even accused of suggesting we ship “crappy code.” Nothing could be further from the truth. MVQ is about shipping great software with the right level of quality and amazing features as quickly as possible at the lowest possible cost so that you can charge less and gain more users. In many ways MVQ is a lot like lean manufacturing but for software. I’m sorry but testing, especially over testing, adds cost and drives up prices.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">MVQ can be applied to all software and device projects and does not require MVP.  I want to recognize that this thinking on Lean QA was prompted by “The Lean Startup.”  It should also be noted that many others have written about just enough testing, just in time testing, and test driven development (TDD).  All of that work has influenced MVQ.
</span>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside –</strong> Satya Nadella was talking to us a few years back and he said that we “needed to be a learning organization.” In the Bing test org, this was often brought up as <strong>fail fast</strong>. The idea has its roots in industry but it became part of the lexicon of the original Live Search (pre-Bing name) test org from its earliest days and it helped drive a mind-shift change that is very powerful for any development or test org to embrace. I didn’t initially see the connection between fail fast and learning organization but now I would summarize it this way. When you can <strong>try fast</strong> with low friction, when you can <strong>discover fast</strong> through real data, and when you can take all of that and build up knowledge on how to succeed in small and big ways fast, you can become a learning organization. You <strong>learn fast</strong>!
</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>The only thing is, you must accept that you will fail, a lot, along the way. You will have to learn what good failure is and how to learn and grow from smart failures. I wouldn’t get too hung up on the quality of the failures because if you fail fast you will not have much sunk cost into any one failure. That’s a key element to fail fast. You minimize your losses and move onto the next grand idea.
</em></span></p>
<p style="margin-left: 36pt"><span style="color: black;font-family: Segoe UI;font-size: 10pt"><em>“Fail Fast” and its corollary “Learn Fast” are much deeper than even what I just summarized but that framing has helped ground me into “Learning Organization.”
</em></span></p>

<h2><span style="font-family: Segoe UI">What is MVQ
</span></h2>
<span style="font-family: Segoe UI">It’s funny, I’ve posted and talked many times now about the EaaSy capabilities and MVQ and I’m always getting asked, now what exactly is MVQ and how do I do it?
</span>

<span style="font-family: Segoe UI">Here let me just walk through the possible levels of testing:
</span>

<span style="font-family: Segoe UI"><strong>Under Tested –</strong> that means your product is below acceptable levels of quality. You will know this when you try to get individuals to user your product and they stop using it.
</span>

<span style="font-family: Segoe UI"><strong>Over Tested –</strong> At this end of the spectrum you will have massive test labs and massive suites of tests. You likely have a long stabilization phase and you have multiple week long test passes. Here’s the rub though. Of all of those tests, manual and automated, most of them find nothing wrong with the product. I would go so far as to submit that every time a test runs and doesn’t find a bug, that is wasted effort.
</span>

<img src="http://datadrivenquality.files.wordpress.com/2014/05/051914_2251_thefutureof6.png?w=625" alt="" /><span style="font-family: Segoe UI;font-size: 10pt"><em>
</em></span>

<span style="font-family: Segoe UI;font-size: 10pt"><em>Figure 2: MVQ focuses on less up front testing and more rapid releases to production.</em>
</span>

<span style="font-family: Segoe UI">MVQ Limited Release – This is your beta, your friends and family, you tech enthusiasts release. We all know that we will allow more bugs in a limited release than in the final release. In the MVQ model we would apply the EaaSy capabilities to segment this limited release user base into smaller groups and leverage automated deployment and fast roll back to test even less than normal and push bits out to the users.
</span>

<span style="font-family: Segoe UI">MVQ Final Release – Okay, here we must meet customer expectations with quality. We can’t miss the mark here or we will get negative reviews in social media and the product will fail. Even with that in mind, we don’t want to waste time and resources over testing. This is where the Rich Fast Data really helps us. Even on a V1 product, let’s say a new gaming console, you can ship with known bugs. It takes time to get that product into the channels and into the retail stores. If the device is connected then you still have time to find and fix bugs between the time it is released and users start to turn the device on. Have you recently purchased a device that made updates before you could really use it? Hmm, maybe they found bugs and fixed them.
</span>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI"><em><strong>MVQ </strong>= Minimum Viable Quality and that means that as a tester you look for every possible excuse to ship the product as quickly as possible with acceptable quality and reasonable risk.
</em></span></p>
<span style="font-family: Segoe UI">Risk, that’s the key isn’t it? Reasonable risk. In the old days with CDs and the high cost of recall class bugs, reasonable risk meant pretty darn solid quality. Also with the lack of connected users there were long delays in hearing about a bug in the wild. For those reasons we had to rely upon massive suites of tests run in labs. Not now, not in todays connected devices world.
</span>
<h2>And you’re never done shipping</h2>
<span style="font-family: Segoe UI;font-size: 10pt">What I learned from being in the services world is that you never actually ship a service.  There is just the next feature, the next scenario, the next set of performance improvements, and the never ending list of bugs to fix.  The concept of shipping comes from a time when product were developed over two and three year cycles and release on a CD. Shipping doesn’t apply in the modern world whether it’s an app, a device, an operating system, a server product, financial software, social networks and any bit of technology. If it is connected it is updatable and if it is updatable, it’s never done shipping, at least until you are ready to retire it.
</span>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside – </strong>If you release a version of your product to a set of target users and you have to roll back three times in a row then your quality bar is probably too low.  If say one out of ten daily releases has to be rolled back, then your quality bar may be just fine.    </em>
</span></p>
<span style="font-family: Segoe UI;font-size: 10pt">What is the advantage of taking an MVQ approach to software product delivery?  The bottom line is that you start to get data about how the code is functioning in production with real users more quickly.  The key aspect is to balance the minimum such that the feature set and the quality of those features within the product is not so low that the product doesn’t get used. If users aren’t using the product, no matter what segment/pool they are in, then you don’t get data. If data is too low, then you won’t discover and learn the harder to find bugs because the code won’t be exercised.
</span>
<p style="margin-left: 36pt"><span style="font-family: Segoe UI;font-size: 10pt"><em><strong>Ken aside – </strong>I would rather miss a recall class bug that gets into production with minimal real end user impact than hold a release for an extra day to find and fix three bugs that would never actually manifest in production.  While that statement may sound cavalier, it has quite a few qualifiers so don’t think I’m totally flipping the bit on quality.     </em>
</span></p>
<span style="font-family: Segoe UI;font-size: 10pt">The great thing about MVQ is that you can more quickly get into the final phase of real integration of your software, services, and devices and real usage by real users. When MVQ is implemented correctly with EaaSy, it is not only more efficient, but also less risky.
</span>
<h2><span style="font-family: Segoe UI">Final Thoughts
</span></h2>
<span style="font-family: Segoe UI;font-size: 10pt">To get to the world of less testing, shipping faster and hitting just the right level of quality you need to implement the five key capabilities of EaaSy and then change your mind set to focus on Minimum Viable Quality. The best path to EaaSy that I have seen is to allow teams to ship their components on independent schedules. That would promote both the concept of <strong>componentization</strong> and to a lesser degree <strong>continuous delivery</strong>.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">The reason this works is simple. Developers like to ship. If you let them ship faster and on an independent schedule, they will figure out how to maintain forward and backward compatibility. That is the key to componentization and the first foundational step toward making your product more like a service. The capabilities of <strong>user segmentation</strong> and <strong>flighting</strong> improve the control you will have on the levers of risk. If you can roll back bad code quickly, pushing a bug to a small set of users becomes reasonable risk.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">The last piece is <strong>rich fast data</strong>. Some companies and even cloud platforms make this available to product developers natively. Even with the capability to have rich fast data in place, developers often under instrument their code. That is, until there is a catastrophic failure in the product and they do not have the ability to solve the issue quickly.
</span>

<span style="font-family: Segoe UI;font-size: 10pt">Yes, the path to MVQ almost always includes disaster. The reality is that all the top companies are moving in this direction. MVQ allows for lower cost and shipping more features to more users and delighting them than more traditional methods.
</span>

<span style="font-family: Segoe UI;font-size: 14pt">Research and References:
</span>

<a href="http://www.amazon.com/Lean-Startup-Entrepreneurs-Continuous-Innovation/dp/0307887898/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1376155316&amp;sr=1-1&amp;keywords=the+lean+startup"><span style="font-family: Segoe UI;font-size: 10pt;text-decoration: underline">The Lean Startup</span></a><span style="font-family: Segoe UI;font-size: 10pt">: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses (book 2011 by Eric Ries)
</span>

<a href="http://scalemybusiness.com/the-ultimate-guide-to-minimum-viable-products/"><span style="font-family: Segoe UI;font-size: 10pt;text-decoration: underline">The Ultimate Guide to Minimum Viable Products</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (blog 2013 by Vladimir Blagojevic): Mostly provides an overview of key approaches to MVP from Lean Startup
</span>

<a href="http://techcrunch.com/2012/07/13/how-to-create-a-minimum-viable-product/"><span style="font-family: Segoe UI;font-size: 10pt;text-decoration: underline">How To Create A Minimum Viable Product</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (article 2013 on Tech Crunch by Emre Sokullu): Article is mostly a list of open source technologies and SOA design ideas for launch an online MVP based upon Emre’s experiences launching Grou.ps
</span>

<a href="http://testastic.wordpress.com/2014/03/02/in-pursuit-of-quality-shifting-the-test-mindset/"><span style="font-family: Segoe UI;font-size: 10pt">In Pursuit of Quality: Shifting the Tester mindset</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (blog 2014 by Brent Jensen): Wake up testers, “fixing correctness issues on a piece of code that no one is using is a waste of time &amp; resources.”
</span>

<a href="http://angryweasel.com/blog/stop-if-you-want-to/"><span style="font-family: Segoe UI;font-size: 10pt">Stop, if You Want to…</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (Blog 2014 by Alan Page): Testers should stop writing so much automation. The world of data is changing how we can approach testing and quality.
</span>

<a href="http://www.setheliot.com/blog/wp-content/uploads/2011/03/STP2011_801_Testing_in_Production-Engaging_Customers-small.pdf"><span style="font-family: Segoe UI;font-size: 10pt">Testing in Production, Your Key to Engaging Customers</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (presentation 2011 by Seth Eliot at STP Con): Scenarios and Testing in Production produce High Quality Product Delighted Customers.
</span>

<a href="http://www.setheliot.com/blog/wp-content/uploads/2014/04/RoadmapToData-DrivenQuality_eliot_STPCon_Apr2014.pdf"><span style="font-family: Segoe UI;font-size: 10pt">Create Your Roadmap to Data Driven Quality</span></a><span style="font-family: Segoe UI;font-size: 10pt"> (presentation 2014 by Seth Eliot at STP Con): Ditch the HiPPO (Highest Paid Person’s Opinion) and shift to data from real users to gain real insights on quality.
</span>

<a href="http://www.satisfice.com/articles/good_enough_quality.pdf"><span style="font-family: Segoe UI;font-size: 10pt;text-decoration: underline">Good Enough Quality</span></a><span style="font-family: Segoe UI;font-size: 10pt">: Beyond the Buzzwords (IEEE paper 1997 by James Bach): Paper and article on reducing up front testing of product code.
</span>

<a href="http://jaoo.dk/dl/qcon-sanfran-2009/slides/NathanDye_RoadmapToContinuousDeployment.pdf"><span style="font-family: Segoe UI;font-size: 10pt;text-decoration: underline">Journey to Continuous Deployment</span></a><span style="font-family: Segoe UI"> (presentation 2009 by Nathan Dye): I couldn’t find the white paper that I originally read by Nathan but he covers all the key points in this presentation.</span>]]></content:encoded>
    </item>
    <item>
      <title>Penultimate Day of School 2011</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/penultimate-day-of-school-2011</link>
      <pubDate>Tue, 14 Jun 2011 12:18:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2011/06/14/penultimate-day-of-school-2011/</guid>
      <description><![CDATA[If it&rsquo;s June it must be time for my annual &ldquo;I love the Penultimate Day of School&rdquo;...]]></description>
      <content:encoded><![CDATA[<p>If it&rsquo;s June it must be time for my annual &ldquo;<a href="http://blogs.msdn.com/kenj/archive/2009/06/11/nothing-to-do-with-s-s-i-love-the-word-penultimate.aspx">I love the Penultimate Day of School</a>&rdquo; blog post.&nbsp; As this is now my third post on the word <a href="http://www.bing.com/Dictionary/search?q=define+penultimate&amp;qpvt=define+penultimate&amp;FORM=DTPDIA">penultimate</a> (actually the second post was on the <a href="http://blogs.msdn.com/b/kenj/archive/2010/04/30/happy-antepenultimate-month-of-school.aspx#comments">antepenultimate month of school</a>).&nbsp; &nbsp;In a sense that now makes my first post on the subject the <a href="http://en.wiktionary.org/wiki/antepenultimate">antepenultimate</a> post in the series.&nbsp;&nbsp; If you feel a bit lost, don&rsquo;t worry, I&rsquo;ll clear things up right away.&nbsp; </p>
<p>You see it all started about four years ago when we were approaching the next to last day of the school year for my children.&nbsp; In grade school it seems the last or ultimate day of school is usually a half day and is mostly filled with cleaning up, packing up, and a wee bit of <a href="http://www.bing.com/images/search?q=last+day+of+school+classroom+party&amp;qs=n&amp;sk=&amp;sc=1-34&amp;form=QBIR">partying classroom</a> style.&nbsp; </p>
<p>That just didn&rsquo;t seem right to me and my wife so we decided to have some fun the day before the last day (a.k.a. penultimate) of school.&nbsp; To that end we taught our children the definition of penultimate, made a <a href="http://www.facebook.com/#!/pages/Penultimate-Day-of-School/90667211155?ref=search&amp;sid=723772550.1381647482..1">Facebook</a> page, and sent the children of to test the vocabulary of their teachers.&nbsp; </p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/23/17/6215.PenultimateDayofSchool.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-23-17/6215.PenultimateDayofSchool.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/23/17/6215.PenultimateDayofSchool.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-23-17/6215.PenultimateDayofSchool.png" border="0" /></a></p>
<p>Let&rsquo;s face it, penultimate is a very uncommon word and not very many people know the word, let alone use it.&nbsp; I personally think it&rsquo;s a brilliant word.&nbsp; Let me provide a few examples of just how useful a word it can be.</p>
<p>The sports world is a great place to apply the word penultimate.&nbsp; Most basketball enthusiasts will by now know that the <a href="http://sports.espn.go.com/nba/recap?gameId=310612014">Dallas Mavericks</a> are the ultimate champions of the NBA for 2011.&nbsp; That of course makes the <a href="http://www.nba.com/heat/">Miami Heat</a> the penultimate champions (<a href="http://www.suntimes.com/sports/5941895-419/oops-ad-congratulates-miami-heat.html">newspaper ads aside</a>).&nbsp; It sounds like quite an accomplishment however I&rsquo;m quite certain Miami fans are not pleased with this result.&nbsp; It will be another day and a <a href="http://msn.foxsports.com/nhl/story/Boston-Bruins-crush-Vancouver-Canucks-in-Game-6-of-Stanley-Cup-Finals-061311">game 7</a> before we will know the winner of the NHL playoffs. </p>
<p>Penultimate also works well in the business world.&nbsp; If you happen to work on a web search engine like <a href="http://www.bing.com/">I do</a>, you will pay attention to the monthly <a href="http://www.comscore.com/Press_Events/Press_Releases/2011/6/comScore_Releases_May_2011_U.S._Search_Engine_Rankings">comScore</a> reports on query share.&nbsp; If you go off the absolute rankings you would end up with the table below</p>
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="154" valign="top">
<p><i>Total Explicit Core Search</i></p>
</td>
<td width="77" valign="top">
<p><b>May-11</b></p>
</td>
<td width="77" valign="top">
<p><b>Rank</b></p>
</td>
</tr>
<tr>
<td width="154" valign="top">
<p>Google</p>
</td>
<td width="77" valign="top">
<p>65.5% </p>
</td>
<td width="77" valign="top">
<p>Ultimate</p>
</td>
</tr>
<tr>
<td width="154" valign="top">
<p>Yahoo!</p>
</td>
<td width="77" valign="top">
<p>15.9% </p>
</td>
<td width="77" valign="top">
<p>Penultimate</p>
</td>
</tr>
<tr>
<td width="154" valign="top">
<p>Bing </p>
</td>
<td width="77" valign="top">
<p>14.1% </p>
</td>
<td width="77" valign="top">
<p>Antepenultimate</p>
</td>
</tr>
<tr>
<td width="154" valign="top">
<p>Ask Network</p>
</td>
<td width="77" valign="top">
<p>3.0%</p>
</td>
<td width="77" valign="top">
<p><a href="http://en.wiktionary.org/wiki/preantepenultimate">Preantepenultimate</a></p>
</td>
</tr>
</tbody>
</table>
<p>Now Bing does power all the searches for Bing and Yahoo so in my mind that of course puts Bing in the penultimate position.&nbsp; Of course we are aiming to be the world&rsquo;s ultimate search engine but that will come over time and with executions.&nbsp; </p>
<p>Arts and entertainment is a category where they don&rsquo;t even like to use the phrase winner.&nbsp; Take the <a href="http://www.oscars.org/">Academy Awards</a> for instance.&nbsp; In that environment when they announce the winner the simply say, &ldquo;and the Oscar goes to&hellip;&rdquo;&nbsp; Of course this phrasing was chosen specifically to not bruise any of the inflated Hollywood egos.&nbsp; For me this is quite frustrating because we don&rsquo;t have an actual winner and in the case of this year&rsquo;s best picture category we have quite a few penultimate winners.&nbsp; Let&rsquo;s see exactly how many there were, <a href="http://www.bing.com/movies/search/overview?q=Black+Swan&amp;id=4ce3cc8d-6d29-42b3-90ba-c1fb0d5865b6&amp;FORM=DTPMVV">Black Swan</a>, <a href="http://www.bing.com/movies/search/overview?q=The+Fighter&amp;id=097e3160-f99a-4e62-b7f9-c73a3786f352&amp;FORM=DTPMVV">The Fighter</a>, <a href="http://www.bing.com/movies/search/overview?q=The+Kids+Are+All+Right&amp;id=c9f2cccc-aff2-409f-a985-871ba3d48538&amp;FORM=DTPMVS">The Kids Are All Right</a>, <a href="http://www.bing.com/movies/search/overview?q=Inception&amp;id=3d1b22b1-8f29-4410-9f5d-01a8c2d57cd6&amp;FORM=DTPMVS">Inception</a> (my favorite), <a href="http://www.bing.com/movies/search/overview?q=127+Hours&amp;id=0adf0627-c495-41f6-9386-bbd8e991492a&amp;FORM=DTPMVS">127 Hours</a>, <a href="http://www.bing.com/movies/search/overview?q=The+Social+Network&amp;id=cacbfaac-d4b6-4d16-b94a-5ee1150a80af&amp;FORM=DTPMVS">The Social Network</a>, <a href="http://www.bing.com/movies/search/overview?q=Toy+Story+3&amp;id=2eedea16-dd4d-45d7-b423-684990c39531&amp;FORM=DTPMVS">Toy Story 3</a> (really?), <a href="http://www.bing.com/movies/search/overview?q=True+Grit&amp;id=f2ec8315-26d6-4dd8-83f5-39e577a1d230&amp;FORM=DTPMVV">True Grit</a>, and <a href="http://www.bing.com/movies/search/overview?q=Winter's+Bone&amp;id=559c7182-5230-4e28-b5ee-5cab57e93ca1&amp;FORM=DTPMVS">Winter&rsquo;s Bone</a>.&nbsp; I mean &ldquo;The King&rsquo;s Speech,&rdquo; did win, er had the Oscar &ldquo;go&rdquo; to it, so that would leave us with nine penultimate winners.&nbsp; Well clearly art is not a place where the word penultimate can easily be used.&nbsp; </p>
<p>The spirit of the Penultimate Day of School is simply to encourage young minds have fun with big words.&nbsp; There are many other great words out there that children can have fun with and in many cases stump the adults around them.&nbsp; I quickly Binged word of the day and came up with a few sites and several great words.</p>
<ul>
<li>Wordsmith.org had <a href="http://wordsmith.org/words/today.html">betide</a></li>
<li>Merriam-Webster had <a href="http://www.merriam-webster.com/word-of-the-day/">paste</a></li>
<li>Dictionary.com had <a href="http://dictionary.reference.com/wordoftheday">cosher</a> which should not be confused with <a href="http://www.bing.com/Dictionary/search?q=define+kosher&amp;qpvt=define+cosher&amp;FORM=DTPDIA">kosher</a></li>
<li>And some guy who likes to <a href="http://www.merriam-webster.com/dictionary/bloviate">bloviate</a> chose <a href="http://www.factorwords.com/">mendacious</a> for his word today.</li>
</ul>
<p>Lest I too begin to bloviate I will end by simply saying, &ldquo;Happy Penultimate Day of School.&rdquo;</p>
<p><b>Ken Johnston @RKJohnston</b><b></b></p>
<p>Bing Domains Test Manager</p>
<p>External: <a href="https://twitter.com/rkjohnston">Twitter</a> | <a href="http://www.linkedin.com/in/rkjohnston">LinkedIn</a> | <a href="https://www.youtube.com/user/ElKenster">You Tube</a>&nbsp;| <a href="http://www.rentonchristian.org/aboutus/board_of_directors.htm" title="School Board">School Board</a></p>
<p>Author: <a href="http://www.hwtsam.com/"><i>How We Test Software at Microsoft</i></a> (with Alan Page and BJ Rollison)</p>
<p>Available through <a href="http://www.amazon.com/gp/product/0735624259/ref=s9subs_c1_14_img1-rfc_p_si1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1BRKK5VXX4SFMETJA92S&amp;pf_rd_t=101&amp;pf_rd_p=463383351&amp;pf_rd_i=507846">Amazon.com</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Happy Antepenultimate Month of School</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/happy-antepenultimate-month-of-school</link>
      <pubDate>Fri, 30 Apr 2010 09:37:50 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2010/04/30/happy-antepenultimate-month-of-school/</guid>
      <description><![CDATA[“I love the word Penultimate,” and I love our family’s made up Internet holiday “The Penultimate Day...]]></description>
      <content:encoded><![CDATA[<p>“<a href="http://blogs.msdn.com/kenj/archive/2009/06/11/nothing-to-do-with-s-s-i-love-the-word-penultimate.aspx" target="_blank">I love the word Penultimate</a>,” and I love our family’s made up Internet holiday “<a href="http://www.facebook.com/#!/pages/Penultimate-Day-of-School/90667211155?ref=search&amp;sid=723772550.1381647482..1" target="_blank">The Penultimate Day of School</a>.”&#160; As we are now nearing the end of the antepenultimate month of school I felt it was time to make another post promoting our new holiday and highlighting my favorite family of words that now includes, ultimate, penultimate, and antepenultimate.&#160; I could of course add the word <a href="http://en.wiktionary.org/wiki/preantepenultimate" target="_blank">preantepenultimate</a> to the list but I think&#160; I’ll save that one for a later blog post.&#160; </p>  <p>Before I go into what has happened with respect to our Internet holiday over the past year I should probably explain exactly what the antepenultimate month of school is.&#160; Well, in the United States the official end of the school year is almost always in the month of June.&#160; Antepenultimate quite simply means, “<a href="http://encarta.msn.com/dictionary_1861585869/antepenultimate.html" target="_blank">third from last in a series</a>.”&#160; That would make April, this month, the antepenultimate month of school.&#160; This is a very simple example so perhaps I can provide a few more interesting and humorous examples of the use of antepenultimate.</p>  <div style="padding-bottom: 0px; padding-left: 20px; width: 270px; padding-right: 0px; display: inline; float: none; margin-left: 0px; margin-right: 0px; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:cbed0bab-37ae-4345-8933-9f33712e3561" class="wlWriterEditableSmartContent"><div id="4537a31f-9eaa-47b8-9b6c-a31db39b2dd1" style="margin: 0px; padding: 0px; display: inline;"><div><a href="https://www.youtube.com/watch?v=lj3iNxZ8Dww" target="_new"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/HappyAntepenultimateMonthofSchool_AE17/videoa49cda9e2246.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/HappyAntepenultimateMonthofSchool_AE17/videoa49cda9e2246.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('4537a31f-9eaa-47b8-9b6c-a31db39b2dd1'); downlevelDiv.innerHTML = &quot;&lt;div&gt;&lt;object width=\&quot;270\&quot; height=\&quot;226\&quot;&gt;&lt;param name=\&quot;movie\&quot; value=\&quot;https://www.youtube.com/v/lj3iNxZ8Dww&amp;hl=en\&quot;&gt;&lt;\/param&gt;&lt;embed src=\&quot;https://www.youtube.com/v/lj3iNxZ8Dww&amp;hl=en\&quot; type=\&quot;application/x-shockwave-flash\&quot; width=\&quot;270\&quot; height=\&quot;226\&quot;&gt;&lt;\/embed&gt;&lt;\/object&gt;&lt;\/div&gt;&quot;;" alt=""></a></div></div></div>  <p>I thought of using an example drawn from the <a href="http://en.wikipedia.org/wiki/Miss_Teen_USA_2007">Miss Teen USA 2007</a> competition but I couldn’t do that without bringing up the case of Miss <a href="http://www.imdb.com/name/nm2765864/">Catlin Upton</a> and her disastrous response to the question in the final round.&#160; </p>  <p align="center"><i>&quot;I personally believe that U.S. Americans are unable to do so because, <a href="http://en.wikipedia.org/wiki/Filler_(linguistics)">uh</a>, some people out there in our nation don't have maps and, uh, I believe that our, uh, education like such as in <a href="http://en.wikipedia.org/wiki/South_Africa">South Africa</a> and, uh, the <a href="http://en.wikipedia.org/wiki/Iraq">Iraq</a>, everywhere like such as, and, I believe that they should, our education over here in the U.S. should help the U.S., uh, or, uh, should help South Africa and should help the Iraq and the <a href="http://en.wikipedia.org/wiki/Asia">Asian countries</a>, so we will be able to build up our future, for our children&quot;</i>.<sup><a href="http://en.wikipedia.org/#cite_note-Guardian-7">[8]</a></sup><sup><a href="http://en.wikipedia.org/#cite_note-USAToday-8">[9</a></sup></p>  <p>Miss Upton has suffered through more than <a href="http://en.wikipedia.org/wiki/Caitlin_Upton">50 million views</a> on <img style="margin: 0px 5px 10px 10px; display: inline" align="right" src="http://2.bp.blogspot.com/_6NqQxWFpVHU/S2pGK5bm0lI/AAAAAAAAAhI/87Iqn-qPQUw/s320/caressa-cameron.jpg" width="125" height="151" />YouTube but has also leveraged that <a href="http://www.bing.com/search?q=define+faux+pas&amp;form=QBRE&amp;qs=n&amp;sk=&amp;sc=1-15">faux pas</a> into a dozen or more TV appearances.&#160; It would certainly be a humorous example, but there is a problem.&#160; Miss Upton ended up being the <em>preantepenultimate</em> finalist, and I promised I wouldn’t go into that word in this posting.</p>  <p>Instead let’s go with the <a href="http://en.wikipedia.org/wiki/Miss_America_2010">Miss America 2010</a> finalists.&#160; Miss America still maintains a core focus on <a href="http://www.missamerica.org/scholarships/purpose.aspx">scholarship</a> assistance for young women.&#160; I expect all of their finalists listened to and adequately responded to their questions.&#160; </p>  <table border="1" cellspacing="0" cellpadding="2" width="521"><tbody>     <tr>       <td valign="top" width="206"><strong>Contestant</strong></td>        <td valign="top" width="113"><strong>Final Result</strong></td>        <td valign="top" width="200"><strong>Penult Position</strong></td>     </tr>      <tr>       <td valign="top" width="206"><a href="http://en.wikipedia.org/wiki/Caressa_Cameron">Caressa Cameron</a> – <a href="http://en.wikipedia.org/wiki/Virginia"><img alt="Virginia" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Flag_of_Virginia.svg/22px-Flag_of_Virginia.svg.png" width="22" height="15" /></a> <b><a href="http://en.wikipedia.org/wiki/Miss_Virginia">Virginia</a></b></td>        <td valign="top" width="113"><b>Miss America 2010</b></td>        <td valign="top" width="200">Ultimate Miss America 2010</td>     </tr>      <tr>       <td valign="top" width="206">Kristy Cavinder – <a href="http://en.wikipedia.org/wiki/California"><img alt="California" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_California.svg/22px-Flag_of_California.svg.png" width="22" height="15" /></a> <b><a href="http://en.wikipedia.org/wiki/Miss_California">California</a></b></td>        <td valign="top" width="113"><b>1st runner-up</b></td>        <td valign="top" width="200">Penultimate Miss Amarica 2010</td>     </tr>      <tr>       <td valign="top" width="206">Stefanie Wittler – <a href="http://en.wikipedia.org/wiki/Tennessee"><img alt="Tennessee" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Flag_of_Tennessee.svg/22px-Flag_of_Tennessee.svg.png" width="22" height="13" /></a> <b><a href="http://en.wikipedia.org/wiki/Miss_Tennessee">Tennessee</a></b></td>        <td valign="top" width="113"><b>2nd runner-up</b></td>        <td valign="top" width="200">Antepenultimate Miss America 2010</td>     </tr>   </tbody></table>    <p>See, the second runner up is actually the antepenultimate winner.&#160; It couldn’t get any easier than that, could it?</p>  <p>What else do we have that falls into the realm of antepenultimate things?&#160; Let’s start by looking at other competitive endeavors.&#160; In this case the focus remains on winning and so antepenultimate winners would be in third best.&#160; We’ll get to third worst losers in just a bit.&#160; <img style="border-bottom: 0px; border-left: 0px; margin: 0px 40px; display: inline; border-top: 0px; border-right: 0px" border="0" align="right" src="http://onesportvoice.files.wordpress.com/2010/03/si-march-madness-cover-2010-a.jpg" width="151" height="196" /></p>  <ul>   <li>In the world of <a href="http://www.ncaa.com/sports/m-baskbl/ncaa-m-baskbl-body.html" target="_blank">NCAA Men’s Division 1 Basketball</a> if your team makes it to the “<a href="http://en.wikipedia.org/wiki/Elite_8" target="_blank">Elite 8</a>” you would be in the antepenultimate round of <a href="http://www.ncaa.com/sports/m-baskbl/ncaa-m-baskbl-body.html" target="_blank">March Madness</a>.&#160; The Elite 8 teams for the 2010 tournament were MIDWEST REGIONAL: (5) <a href="http://www.msuspartans.com/sports/m-baskbl/msu-m-baskbl-body.html" target="_blank">Michigan State</a> vs. (6) <a href="http://www.utsports.com/sports/m-baskbl/tenn-m-baskbl-body.html" target="_blank">Tennessee</a>; WEST REGIONAL: (5) <a href="http://www.butlersports.com/landing/index" target="_blank">Butler</a> 63, (2) <a href="http://www.kstatesports.com/" target="_blank">Kansas State</a> 56; EAST REGIONAL: (2) <a href="http://www.msnsportsnet.com/" target="_blank">West Virginia</a> 73, (1) <a href="http://www.ukathletics.com/sports/m-baskbl/kty-m-baskbl-body.html" target="_blank">Kentucky</a> 66; SOUTH REGIONAL: (1) <a href="http://www.utsports.com/sports/m-baskbl/tenn-m-baskbl-body.html" target="_blank">Duke</a> vs. (3) <a href="http://www.baylorbears.com/sports/m-baskbl/bay-m-baskbl-body.html" target="_blank">Baylor</a>.&#160; Of course all fans are well aware that the ultimate champions of the tournament were the <a href="http://www.utsports.com/sports/m-baskbl/tenn-m-baskbl-body.html" target="_blank">Duke Blue Devils</a> </li> </ul>  <p>&#160;</p>  <ul>   <li>In the world of <a href="http://abc.go.com/shows/dancing-with-the-stars">Dancing with the Stars</a> <a href="http://movies.msn.com/celebrities/celebrity/donny-osmond/" target="_blank">Donny Osmond</a> and his partner <a href="http://en.wikipedia.org/wiki/Kym_Johnson" target="_blank">Kym Johnson</a> were the <img style="margin: 0px 20px 0px 5px; display: inline" align="left" src="http://www.thedctraveler.com/files/2007/11/marie-osmond-and-jonathan-roberts-dancing-with-the-stars1.jpg" width="104" height="100" />ultimate or the final winners of season 9. Unfortunately for his sister <a href="http://www.marieosmond.com/" target="_blank">Marie Osmond</a> and her partner <a href="http://en.wikipedia.org/wiki/Jonathan_Roberts_(dancer)" target="_blank">Jonathan Roberts</a> they finished season 7 as the antepenultimate winners.&#160; For the current season my guess is that <a href="http://abc.go.com/shows/dancing-with-the-stars/bio/erin-andrews/400887" target="_blank">Erin Andrews</a> and <a href="http://www.imdb.com/name/nm2162024/" target="_blank">Maksim Chmerkovskiy</a> will take the antepenultimate spot.&#160; And, yes I do watch the show but not of my own free will.&#160; My wife likes the show and even my kids really enjoy it because they get to parade around the living room pretending to do tango’s and jives along with the stars on the TV.&#160; </li> </ul>  <h3>And those that didn’t really quite lose are?</h3>  <p>Personally I feel focusing just on third place winners goes against the real intent behind the word antepenultimate.&#160; I mean the definition is third from last in a long series so instead let’s now turn our attention to those finishing third to last.&#160; </p>  <ul>   <li>Of the 43 cars that qualified for the 2010 Daytona 500 <a href="http://en.wikipedia.org/wiki/Joe_Nemechek" target="_blank">Joe Nemechek</a> was the antepenultimate finisher.&#160; Unfortunately it seems that his race ended abruptly with a <a href="http://blogs.orlandosentinel.com/sports_nascar/2010/02/daytona-500-nemecheck-spins-out-wrecks.html" target="_blank">spin out and a wreck</a>.&#160; From what I found Joe is a well liked racer and was voted most popular driver in 1992 &amp; 1993. at least we can say that in this case the <a href="http://en.wikipedia.org/wiki/Nice_guy" target="_blank">nice guy</a> didn’t finish last.&#160; </li> </ul>  <p>&#160;</p>  <ul>   <li>In the case of politics it is rare to have more than two candidates on the ballot.&#160; In the 2010 Florida US Senate Race there are three finalists.&#160; According to a recent <a href="http://www.rasmussenreports.com/public_content/politics/elections2/election_2010/election_2010_senate_elections/florida/election_2010_florida_senate" target="_blank">Rasmussen Poll</a>, if the election were held today the finishing order would likely be <a href="http://www.marcorubio.com/" target="_blank">Marco Rubio</a> the presumptive Republican candidate with 37%, current Florida Governor and brand new Independent <a href="http://www.flgov.com/" target="_blank">Charlie Crist</a> is polling at 30% and 22% for the likely Democratic nominee <a href="http://www.kendrickmeek.com/" target="_blank">Kendrick Meek</a>.&#160; In this odd situation that would mean Marco Rubio be both the antepenultimate loser and at the same time the ultimate winner.&#160; Who said politics was not a <a href="http://www.merriam-webster.com/dictionary/cerebral" target="_blank">cerebral</a> pursuit.&#160; </li> </ul>  <h3>Penultimate Day of School is about fun with words</h3>  <p>This blog pose however is not about racing, politics, sports or even Dancing with Stars.&#160; This blog post is meant as a celebration of really <a href="http://www.thefreedictionary.com/gargantuan" target="_blank">gargantuan</a> <a href="http://www.urbandictionary.com/define.php?term=fandangled" target="_blank">fandangled</a> words and getting very young children to use them.&#160; </p>  <p>Why the focus on the penultimate day of school you may ask?&#160; Quite simply to give my kids and their friends something to do on the second longest day of any school year while secretly helping prepare them for future success.&#160; </p>  <p>Let’s face it, the last day of any school year is often filled with hugs, exchanges of email addresses and phone numbers, and for the younger kids they often have a class party.&#160; The next to last day, the penultimate day, teachers often force themselves to keep teaching.&#160; Outside the weather is warm, summer is breaking out, many public pools are opening up.&#160; The children can’t be expected to focus and so I submit that to a child the penultimate day of school must seem like the longest day of the year.</p>  <p>So, why not create a fun new made up holiday that helps children prepare for their future college entrance exams and life in the business world.&#160; Just search for books on improving one’s vocabulary and dozens of resources pop up.&#160; Vocabulary is big business.&#160; </p>  <h1><a href="http://bing.com"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/HappyAntepenultimateMonthofSchool_AE17/image_3.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/HappyAntepenultimateMonthofSchool_AE17/image_3.png" width="476" height="295" /></a> </h1>  <p>It really works.&#160; Just a few weeks back the weather was getting warmer and my son decided we should play a little <a href="http://www.wiffleballusa.com/" target="_blank">wiffleball</a> baseball in front of the garage.&#160; We used a pitching machine and you could keep hitting as long as you didn’t get three outs.&#160; Of course this meant the roof had to be in play and we had to use a lot of ghost runners.&#160; The problem for me was that I could never tag the ghost runners out, they always seemed to be faster than me.</p>  <p>After my son and his ghost runners outscored me about 227 to 10, long after the sun had dipped below the horizon and the sky had faded from bright orange to dark purple, and long after the outside <a href="http://www.automationdirect.com/adc/Overview/Catalog/Sensors_-z-_Encoders/Photoelectric_Sensors;jsessionid=5e30e3a3db5379e908ce306e5b2a7d14146c?source=msn" target="_blank">photoelectric sensor</a> turned the lights on, I decided it was time to go inside.&#160; If you have little ones, you know that when Dad says it’s time to do something else, they know immediately there is still time to do just a bit more of whatever is going on at the moment.&#160; </p>  <p>“Come on son, it’s time to take a bath and head off to bed,” I said.</p>  <p>“No Dad, you haven’t been up in a long time,” he replied.&#160; </p>  <p>“Okay, how about this,” I said back to him, “what if you take one more at bat and then I’ll take the last four balls from the pitching machine?”</p>  <p>“Yeah! That means I’ll have the <strong>penultimate</strong> at bat and you’ll be <strong>ultimate</strong>,” he said casually.&#160; Well you can imagine that I was quite floored that my second grader would use a word like that in casual conversation.</p>  <h3>What to do with your child on the penultimate day of school</h3>  <ol>   <li>Join the <a href="http://www.facebook.com/pages/Penultimate-Day-of-School/90667211155?ref=ts" target="_blank">Penultimate Day of School Club</a> page on Facebook </li>    <li>Post a club event with the date of your schools PDofS. </li>    <li>Pick a group of words to use with the kids that day.&#160; I would recommend using this SAT study site: <a title="http://www.majortests.com/sat/wordlist-01" href="http://www.majortests.com/sat/wordlist-01">http://www.majortests.com/sat/wordlist-01</a>. </li>    <li>Lastly make some cards or stickers with your set of words and celebrate your own Penultimate Day of School. </li> </ol>  <p>That’s it.&#160; Nothing complex, just a little fun for the next to last day of school.&#160; </p>  <p>In the spirit of fun I’ll end with this quote I found that uses the word penultimate along with one of my <a href="http://www.thefreedictionary.com/perennially" target="_blank">perennially</a> favorite comics <a href="http://comics.com/peanuts" target="_blank">Peanuts</a>, “Although Brown intellectually knew that <a href="http://en.wikipedia.org/wiki/Lucy_van_Pelt">Lucy</a> had demonstrated a repeated <a href="http://www.bing.com/search?FORM=SLVTDF&amp;PC=MSSL&amp;q=propensity&amp;src=IE-SearchBox">propensity</a> to whisk away the football at the <em>penultimate</em> moment, leaving him tumbled head over heels, he was ever hopeful that she would hold true the very next time.” </p>  <p><a href="http://blog.nrf.com/2010/02/02/lucy-the-health-reform-football-and-charlie-brown%e2%80%99s-regret/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+RetailsBigBlog+%28Retail%27s+BIG+Blog%29">Neil Trautwein Feb. 2, 2010</a></p>  <p><img src="http://www.bgtheory.com/wp-content/uploads/2009/01/charlie-brown-lucy-football.jpg" width="206" height="177" /></p>  <p><a href="http://www.schulzmuseum.org/" target="_blank">Charles Shulz</a></p>  <p>Happy penultimate day of school!</p>  <h5>Related Links</h5>  <p><a href="http://blogs.msdn.com/kenj/archive/2009/06/11/nothing-to-do-with-s-s-i-love-the-word-penultimate.aspx">Nothing to do with S+S – I Love the Word Penultimate (2009)</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Leaving Office, Joining Bing, and Planting Asparagus</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/leaving-office-joining-bing-and-planting-asparagus</link>
      <pubDate>Sat, 27 Mar 2010 10:43:13 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2010/03/27/leaving-office-joining-bing-and-planting-asparagus/</guid>
      <description><![CDATA[Sometimes it’s good to get outside, get your hands in the dirt, and plant things, especially if you...]]></description>
      <content:encoded><![CDATA[<p><a href="http://www.asparagus.org/" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_3.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_3.png" width="132" height="89" /></a> Sometimes it’s good to get outside, get your hands in the dirt, and plant things, especially if you can do it with your children. Keeps you grounded, and yes that was an intentional pun.</p>  <p>&#160;</p>  <p><a href="http://office2010.microsoft.com/en-us/office-FX101785584.aspx">Office 2010</a> is going to be great. For the past 3.5 years we’ve been working on an amazing set of features like <a href="http://blogs.technet.com/office2010/archive/2009/07/15/microsoft-office-backstage-part-1-backstory.aspx">Office Backstage</a>, <a href="http://office2010.microsoft.com/en-us/sharepoint-workspace-help/getting-started-with-sharepoint-workspace-2010-HA010379248.aspx">SharePoint Workspaces</a>, the <a href="http://blogs.msdn.com/officewebapps/">Office WebApps on SkyDrive</a>, and even slipping in late breaking new features such as the <a href="http://www.microsoft.com/office/2010/en/socialconnector/default.aspx">Outlook Social Connector</a>.</p>  <p><a href="http://blogs.technet.com/mariaj/archive/2009/11/23/outlook-social-connector.aspx" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_6.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_6.png" width="388" height="154" /></a> </p>  <p><a href="http://blogs.technet.com/mariaj/archive/2009/11/23/outlook-social-connector.aspx"></a></p>  <p>My first official day with the Office team was Nov. 1<sup>st</sup> 2006 and the ship party was later that same week. The weather wasn’t cooperating but that didn’t dampen the spirit of the revelers. Most of the action was happening in the open area between buildings 16 and 17 which some have dubbed the <a href="http://blogs.msdn.com/abhinaba/archive/2006/07/28/681393.aspx">walk of fame</a> because of the tiles embedded in the ground denoting all the products shipped by the Office organization. Walking around at that time I saw the joy and excitement of the Office 2007 team but that wasn’t my release, I was a newbie coming to hang out, I was signing up for the next wave, wave 14.</p>  <p><a href="http://blogs.msdn.com/abhinaba/archive/2006/07/28/681393.aspx" target="_blank"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_9.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_9.png" width="125" height="166" /></a> </p>  <p><a href="http://blogs.msdn.com/abhinaba/archive/2006/07/28/681393.aspx"></a></p>  <p>&#160;</p>  <p>The next logical number for Office would have been 13 but I’m guessing a few managers suffered from triskaidekaphobia and so we called the project O14. It was meant to be a targeted two milestone 2.5 year release. Well I can’t really share all the internal tribulations that added a year to our plans but we’ll simply say much of the disruption came from external European pressures.</p>  <p>&#160;</p>  <table border="1" cellspacing="0" cellpadding="2" width="400"><tbody>     <tr>       <td valign="top" width="400">         <p align="center"><a href="http://en.wikipedia.org/wiki/Triskaidekaphobia"><strong>Triskaidekaphobia</strong></a><strong> what?</strong></p>       </td>     </tr>   </tbody></table>  <p>During the development of Office 14 (that was our internal name for the project) I have had the great fortune of managing the Office Internet Platforms and Operations Team. The tool we developed to help with server diagnostics, the Unified Logging Service (ULS), is now the most popular logging tool for services with teams from <a href="http://www.officelive.com/en-us/">OfficeLive</a>, <a href="http://www.microsoft.com/online/default.mspx">MS Online</a> and potentially in the near future <a href="http://www.xbox.com/en-US/live">XBOX Live</a> implementing it in their live services. Our work to improve enterprise monitoring with deep integration to <a href="http://www.microsoft.com/systemcenter/operationsmanager/en/us/default.aspx">Microsoft System Center Operations Manager</a> has yielded significant positive feedback from early TAP partners and general surprise that we will be shipping our MOM Packs with the server products and in multiple languages. These items tend to ship months after the product. Thanks to <a href="http://www.linkedin.com/pub/eric-wong/4/444/9ba">Eric Wong</a> for leading the dev team as we took on this project years ago.</p>  <p>Office service operations was the other major aspect to my job in office. I managed a great and dynamic operations team that supported services from <a href="http://crm.dynamics.com/en-us/Default.aspx" target="_blank">CRM Online</a>, to <a href="http://www.microsoft.com/dynamics/en/us/default.aspx" target="_blank">Dynamics Online</a>, Office Live, the WebApps I already mentioned and <a href="http://Office.com">http://Office.com</a>. It is truly enjoyable to be involved in service operations because you get to see the end result of thousands of good and bad decisions. From the Ops perspective you suffer under all the bad decisions and are held to account for every production hiccup along the way.</p>  <p>&#160;</p>  <table border="1" cellspacing="0" cellpadding="2" width="400"><tbody>     <tr>       <td valign="top" width="400">         <p align="center"><strong>Ops beware; unpleasant matter tends to roll downhill </strong></p>          <p align="center"><strong>and you are near the bottom</strong></p>       </td>     </tr>   </tbody></table>  <p>.</p>  <p>Fortunately I come from a testing background and am already jaded by the blame game. My attitude about a bug that is missed by testing is that if the developer didn’t write it in the first place or if the PM hadn’t created a flawed design I wouldn’t have had to find all the other bugs that kept me from finding this one that everyone seems to be quite up in arms about today. Operations tends to feel pretty much the same as test except they are further downstream with more unpleasant matter tends to float past them than any other discipline. About two years ago I created the below joke to help my operations team know that I understood their pain.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_11.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_11.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_thumb_3.png" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/LeavingOfficeJoiningBingandPlantingAspar_96BA/image_thumb_3.png" width="511" height="317" /></a> </p>  <p>All kidding aside, developing and releasing a service on time and delighting customers is a joint proposition for all engineering disciplines. We can feel dumped on at times however we are all working toward the common goal of delighting customers and building successful businesses.</p>  <p>Given my role I spent a great deal of time connecting with and learning about service oriented architecture and services testing with colleagues from other teams. This wasn’t my first time working on server and services but I realized the world around me was pulling ahead and I needed to keep up. That drove me to dig deeper into the world of online services and cloud computing and develop strong professional connections to many individuals in the <a href="http://www.bing.com/community/">Bing</a> and <a href="http://blogs.msdn.com/windowsazure/">Azure</a> product teams.</p>  <p>Office is laying down the plans for O15 and there are even more service experiences coming along. I am truly excited about the upcoming Office 2010 release and excited to start afresh on the next release. Over the past several years I was able to move from being that individual at the ship party that was more of an observer to becoming a real member of the Office management team.</p>  <p>When it came time to announce I was moving on my friends on <a href="https://twitter.com/RKJohnston" target="_blank">twitter</a> and linked in found out before most folks in Office got the news.&#160; </p>  <p>That was why it was hard to choose to move on from Office but exciting to join Bing. I quite simply love services and well, Bing is pushing the envelope on all sorts of service design. That and I just can’t wait to turn the tide on GOOG.</p>  <table border="1" cellspacing="0" cellpadding="2" width="400"><tbody>     <tr>       <td valign="top" width="400">         <p align="center"><strong>So what’s up for me in Bing?</strong></p>       </td>     </tr>   </tbody></table>  <p>I’m a plumbing kind of engineer. One of my first services was the MSN Billing system and after it launched I really wanted to show my folks what I’d been working on so I got a copy of the past due account email template and forwarded it on to my mom. I was able to tell her that if she stopped paying her MSN dial up bill she’d get an email like this and it would be my service doing it to her J. Needless to say she was proud of her son if not a bit confused. Once you’ve gotten over the need to have the world see you elegant design it become easy to work on plumbing.</p>  <p>Testing Bing plumbing is what I’ll be up to. I’m not yet clear on how much we Bingers (I’ll have to check on what we call ourselves) share publicly before I go into any more details. In the short run though I’m back into learning mode reading <a href="http://www.battellemedia.com/" target="_blank">The Search by John Battele</a> (almost done), <a href="http://lisacrispin.com/wordpress/" target="_blank">Agile Testing by Lisa Crispin</a> and <a href="http://janetgregory.blogspot.com/" target="_blank">Janet Gregory</a>, and re-reading <a href="http://www.michaeldwatkins.com/about_michael.php" target="_blank">The First 90 days by Michael Watkins</a>. I discovered a cool feature on LinkedIn to share your reading list so all <a href="http://www.linkedin.com/osview/canvas?_ch_page_id=1&amp;_ch_panel_id=1&amp;_ch_app_id=20&amp;_applicationId=1700&amp;_ownerId=31937441&amp;osUrlHash=ucAj&amp;appParams=%7B%22view%22%3A%22readingList%22%2C%22offset%22%3A%220%22%7D">the books are posted to my page there</a>.</p>  <p>While I’ll miss the Office team I am looking forward to our Office 2010 ship party in a few weeks and equally excited to be setting of on another great adventure.</p>  <p>I’ll be presenting at the <a href="http://www.sqe.com/BetterSoftwareConf/">Better Software and Agile Development Conference</a> this June 10<sup>th</sup> and may have a few new stories to weave into my talk on Testing in Production and the demise of the traditional test lab. Stay tuned for more posts as I find time, now I have to go plant <a href="http://en.wikipedia.org/wiki/Asparagus">asparagus</a> with the kids.</p>]]></content:encoded>
    </item>
    <item>
      <title>Telemetry Myopia: The Toyota “Fail Safe” system Debacle and Google cavalier attitude toward Privacy</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/telemetry-myopia-the-toyota-fail-safe-system-debacle-and-google-cavalier-attitude-toward-privacy</link>
      <pubDate>Sun, 07 Mar 2010 12:30:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2010/03/07/telemetry-myopia-the-toyota-fail-safe-system-debacle-and-google-cavalier-attitude-toward-privacy/</guid>
      <description><![CDATA[For the past few weeks members of my team and I have been meeting with key individuals in Bing,...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT face=Calibri><FONT size=3>For the past few weeks members of my team and I have been meeting with key individuals in Bing, Microsoft Online services, and Windows.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In those meetings we have focused on rich telemetry.<SPAN style="mso-spacerun: yes">&nbsp; W</SPAN>e’ve talked about technologies to collect data, privacy concerns and how to architect to support user privacy, and the data platform needed to process terabytes of data per day.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>One of the most well known of our telemetry systems we call Watson but is known to end users and OEMs and </FONT><A href="http://en.wikipedia.org/wiki/Windows_Error_Reporting" mce_href="http://en.wikipedia.org/wiki/Windows_Error_Reporting"><FONT size=3 face=Calibri>Windows Error Reporting</FONT></A><FONT size=3 face=Calibri>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This telemetry system sends us post crash debug information when something fails in Windows.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is a key source of data for us to identify compatibility issues with applications and drivers as well as needed bug fixes in Windows and all our applications.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In </FONT><A href="http://www.bing.com/" mce_href="http://www.bing.com/"><FONT size=3 face=Calibri>Bing</FONT></A><FONT size=3 face=Calibri> we have all the ad click data and other rich logging on par with Google.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That data is vital to running and improving Bing in this hyper-competitive market of search however we also feel strongly about end user privacy and have put in place what we feel are much stronger </FONT><A href="http://privacy.microsoft.com/en-us/bing.mspx" mce_href="http://privacy.microsoft.com/en-us/bing.mspx"><FONT size=3 face=Calibri>privacy policies</FONT></A><FONT size=3 face=Calibri> than our competition.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>On this point just ask </FONT><A href="http://weblogs.mozillazine.org/asa/archives/2009/12/if_you_have_nothing.html" mce_href="http://weblogs.mozillazine.org/asa/archives/2009/12/if_you_have_nothing.html"><FONT size=3 face=Calibri>Asa Dotzler</FONT></A><FONT size=3 face=Calibri>, Mozilla’s Director of community development about his reaction to a recorded statement made by Google CEO Eric Schmidt, ""If you have something that you don't want anyone to know, maybe you shouldn't be doing it in the first place... If you really need that kind of privacy, the reality is that search engines, including Google, do retain this information for some time."<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>See the video </FONT><A href="https://www.youtube.com/watch?v=A6e7wfDHzew" mce_href="https://www.youtube.com/watch?v=A6e7wfDHzew"><FONT size=3 face=Calibri>here</FONT></A><FONT size=3><FONT face=Calibri> and read a good article here, “</FONT><EM><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"><A href="http://www.computerworld.com/s/article/9142106/Mozilla_exec_suggests_Firefox_users_move_to_Bing_cites_Google_privacy_stance?source=rss_news" mce_href="http://www.computerworld.com/s/article/9142106/Mozilla_exec_suggests_Firefox_users_move_to_Bing_cites_Google_privacy_stance?source=rss_news"><SPAN style="FONT-STYLE: normal">Mozilla exec suggests Firefox users move to Bing, cites Google privacy stance. Deal with Google provides most of Mozilla's revenues</SPAN></A>”<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></EM></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>The point of this blog however is not to explain completely about the importance of telemetry in services or to dig into privacy policies.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I saw an article a few weeks back that made me think about the risks of over-reliance on telemetry.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In February ABC news ran a story about the results of some tests by David Gilbert, an automotive technology professor at Southern Illinois University.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In this story, the professor showed not only how could the Toyota cars experience sudden acceleration but that the problem might not be logged into the car’s black box system and fail to trigger safety mechanisms.</FONT></P>
<P style="MARGIN: 0in 0.75in 0pt 0.5in" class=MsoNormal><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>Gilbert says the flaw "prevents the car's onboard computer from detecting and stopping certain short circuits that can trigger sudden speed surges." ABC News adds, "he can recreate a short circuit in the electronic throttles of Toyotas that can create a surge of acceleration but can't be detected by Toyota's electronic sensors."<o:p></o:p></FONT></FONT></I></P>
<P style="TEXT-ALIGN: right; MARGIN: 0in 0.75in 0pt 0.5in" class=MsoNormal align=right><I style="mso-bidi-font-style: normal"><A href="http://www.autoblog.com/2010/02/22/abc-news-expert-says-electronic-design-flaw-to-blame-in-runaway/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+weblogsinc%2Fautoblog+%28Autoblog%29" mce_href="http://www.autoblog.com/2010/02/22/abc-news-expert-says-electronic-design-flaw-to-blame-in-runaway/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+weblogsinc%2Fautoblog+%28Autoblog%29"><FONT size=3 face=Calibri>ABC News: Expert says electronic design flaw to blame in runaway Toyota models</FONT></A><o:p></o:p></I></P>
<P style="TEXT-ALIGN: right; MARGIN: 0in 0.75in 10pt 0.5in" class=MsoNormal align=right><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>February 22, 2010<o:p></o:p></FONT></FONT></I></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>In another article by the Associated Press that commented on Toyota’s secretive nature about their Black Box data the authors wrote.</FONT></P>
<P style="MARGIN: 0in 0.75in 10pt 0.5in" class=MsoNormal><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>SOUTHLAKE, Texas - Toyota has for years blocked access to data stored in devices similar to airline “black boxes" that could explain crashes blamed on sudden unintended acceleration, according to an Associated Press review of lawsuits nationwide and interviews with auto crash experts. <o:p></o:p></FONT></FONT></I></P>
<P style="MARGIN: 0in 0.75in 0pt 0.5in" class=MsoNormal><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>The AP investigation found that Toyota has been inconsistent - and sometimes even contradictory - in revealing exactly what the devices record and don't record, including critical data about whether the brake or accelerator pedals were depressed at the time of a crash<o:p></o:p></FONT></FONT></I></P>
<P style="TEXT-ALIGN: right; MARGIN: 0in 0.75in 0pt 0.5in" class=MsoNormal align=right><I style="mso-bidi-font-style: normal"><A href="http://www.durangoherald.com/sections/News/Business/2010/03/07/Toyota_secretive_about_black_box_data/" mce_href="http://www.durangoherald.com/sections/News/Business/2010/03/07/Toyota_secretive_about_black_box_data/"><FONT size=3 face=Calibri>Toyota secretive about 'black box' data</FONT></A><o:p></o:p></I></P>
<P style="TEXT-ALIGN: right; MARGIN: 0in 0.75in 10pt 0.5in" class=MsoNormal align=right><I style="mso-bidi-font-style: normal"><FONT size=3><FONT face=Calibri>Curt Anderson and Danny Robbins Associated Press Writers; March 7, 2010<o:p></o:p></FONT></FONT></I></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>And to be fair, Toyota has come out with a statement rebutting the findings of Professor Gilbert that you can read </FONT><A href="http://pressroom.toyota.com/pr/tms/toyota-statement-on-rebuttal-of-154775.aspx" mce_href="http://pressroom.toyota.com/pr/tms/toyota-statement-on-rebuttal-of-154775.aspx"><FONT size=3 face=Calibri>here</FONT></A><FONT size=3 face=Calibri>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In short, they say his re-wiring to create an environment with sudden acceleration that wasn’t logged in their systems was not one that could occur through regular use of a car.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In other words his results were flawed.</FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>My take away from the Toyota mess and the “Fail Safe” system is to be careful not to completely rely upon telemetry.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Don’t get me wrong, I see rich telemetry data as changing the way we develop, test and ship both software and services.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It allows us to be leaner in our processes and further enhances our ability to test in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The thing is, it is just a data stream.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>When you take your eye off the customer, when you rely too much on data and don’t hear the complaints or concerns of end users you can end up making foolish statements about privacy such as the Google CEO or you can become secretive with your data and insular like Toyota.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The measure of the success of a product is always in the hands of the customer making the purchase.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Telemetry is great as long as it does not overcome our other senses making us myopic.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3 face=Calibri>That’s it. &nbsp;I just needed to document this thought and the links.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>When I’m done with my research on Microsoft telemetry systems and we design what we are planning for Office 15, I’ll try to post again on this topic with design recommendations and personal lessons learned.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Testing in Production – It’s a living ecosystem, not a patient on a gurney</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/testing-in-production-its-a-living-ecosystem-not-a-patient-on-a-gurney</link>
      <pubDate>Wed, 10 Feb 2010 23:41:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2010/02/10/testing-in-production-its-a-living-ecosystem-not-a-patient-on-a-gurney/</guid>
      <description><![CDATA[James A. Whittaker’s (JW) recent blog post “Testing in the Data Center (Manufacturing No More),” is...]]></description>
      <content:encoded><![CDATA[<P>James A. Whittaker’s (JW) recent blog post “Testing in the Data Center (Manufacturing No More),” is a fun little ditty and it inspired me. Thank you James for sharing the testing is like an ER analogy. </P>
<P>In this post JW draws an analogy that software is moving from a manufacturing paradigm to one of a health model paradigm. Though I’m going to pick at a few pieces where the analogy falls short I have to admit up front it’s a great juxtaposition. All of his talk about the cancer of security, products that die of natural causes in the datacenter and OH the clip board of data are truly awesome. Really, I recommend reading the his blog post <A href="http://googletesting.blogspot.com/2010/02/testing-in-data-center-manufacturing-no.html?utm_source=feedburner&amp;utm_medium=email&amp;utm_campaign=Feed%3A+blogspot%2FRLXA+%28Google+Testing+Blog%29" mce_href="http://googletesting.blogspot.com/2010/02/testing-in-data-center-manufacturing-no.html?utm_source=feedburner&amp;utm_medium=email&amp;utm_campaign=Feed%3A+blogspot%2FRLXA+%28Google+Testing+Blog%29">here</A> and then continue to <A href="http://www.bing.com/" mce_href="http://www.bing.com/">Bing</A> for better results and a cooler UI with neat <A href="http://www.facebook.com/Bing?v=app_191639540074" mce_href="http://www.facebook.com/Bing?v=app_191639540074">daily pictures</A>. Sorry, but I tend to be a bit <A href="http://www.merriam-webster.com/dictionary/partisan" mce_href="http://www.merriam-webster.com/dictionary/partisan">partisan</A>.</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_2.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_2.jpg"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=UG09TheWorstCaseScenarioSurvivalCardG border=0 alt=UG09TheWorstCaseScenarioSurvivalCardG align=left src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_thumb.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_thumb.jpg" width=112 height=134 mce_src="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/UG09TheWorstCaseScenarioSurvivalCardG_thumb.jpg"></A>I’m a big proponent of blurring the line between pre-release testing and testing in production (TiP). I’m not a fan of Big up Front Test (<A href="http://blogs.msdn.com/seliot/archive/2010/01/20/building-services-the-death-of-big-up-front-testing-buft.aspx" mce_href="http://blogs.msdn.com/seliot/archive/2010/01/20/building-services-the-death-of-big-up-front-testing-buft.aspx">BuFT</A>) that my friend Seth Eliot posted on a few weeks ago. I do like what JW did with the whole ER and tesitng thing but it didn’t quite hold together for me.&nbsp; I think I need to find my own crazy metaphor for services testing.&nbsp; Perhaps, testing in the wild Amazon basin. Nope can’t use that, another competitor.&nbsp; Perhaps I should write a post on how to <A href="http://www.amazon.com/Worst-Case-Scenario-Survival-Handbook/dp/B000977ULQ/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265869899&amp;sr=1-1" mce_href="http://www.amazon.com/Worst-Case-Scenario-Survival-Handbook/dp/B000977ULQ/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1265869899&amp;sr=1-1">survive the worst case scenario</A> while testing in the <A href="http://www.bing.com/images/search?q=australian+outback&amp;form=QBIR&amp;qs=n&amp;sc=1-17" mce_href="http://www.bing.com/images/search?q=australian+outback&amp;form=QBIR&amp;qs=n&amp;sc=1-17">Wild Australian Outback</A>. Nope, I’m a bit more pedantic with a bit less flare than JW.&nbsp; I do however like this natural environment and survival angle.</P>
<P>My current focus within Microsoft services testing is all around improving release velocity while mitigating risk. Yes, a bit pedantic compared to the ER analogy but go with me for a bit here.</P>
<P>BTW, did you know there is a bit of a revolving door between Microsoft and GOOG? I have quite a few former colleagues around various companies. Some years back, I remember talking to Pat Copeland, who is currently in a very senior management position within GOOG, about the role of test as the driver of efficiency and arbiter of risk mitigation as opposed to the quality control expert. I argued that test had the data and so we had an obligation to play in the efficiency space and inform management of risk. As I remember the discussion, Pat didn’t agree with me that test was responsible for efficiency but he didn’t fully dismiss the risk piece. </P>
<P>I really like JW’s analogy to a hospital wing with patience in beds and whole wards of the hospital dedicated to really big products. It is all very visual.&nbsp; Where I find the analogy falls short is that JW seems to treats a service as a single patient in the hospital dealing with their set of symptoms. The challenge we have in the services world in interconnectedness. There is no such thing as a standalone service anymore. Put simply, “No man is an island.”</P>
<P align=center><EM>No man is an island, entire of itself; every man is a piece of the continent, a part of the main; if a clod be washed away by the sea, Europe is the less, as well as if a promontory were... Any man's death diminishes me, because I am involved in mankind; and therefore never seek to know for whom the bell tolls; it tolls for thee." </EM><A href="http://en.wikisource.org/wiki/Meditation_XVII" mce_href="http://en.wikisource.org/wiki/Meditation_XVII"><EM>John Donne, Mediation #17, 1623</EM></A><EM>.</EM></P>
<P>Every online service is becoming interconnected. Even applications such as those on various app-stores or even Microsoft Office (I’m close to shipping Office 14) on the PC are becoming reliant upon services for the complete user experience. Neither Hotmail nor Gmail can function successfully and cost effectively without a host of other services such as federated authentication, advertising, and personalization as integrated pieces of the total experience.<A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_2.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_2.jpg"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=butterfly_effect border=0 alt=butterfly_effect align=right src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_thumb.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_thumb.jpg" width=104 height=150 mce_src="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/butterfly_effect_thumb.jpg"></A></P>
<P>No service is an island, or a single patient lying on a gurney. They are interconnected. As certainly as the beating wings of a <A href="http://www.imdb.com/title/tt0289879/" mce_href="http://www.imdb.com/title/tt0289879/">butterfly</A> (see <A href="http://en.wikipedia.org/wiki/Butterfly_effect" mce_href="http://en.wikipedia.org/wiki/Butterfly_effect">butterfly effect</A>) can cause a tornado halfway around the world, each and every service can have an impact on the next.</P>
<P><STRONG><FONT size=2>So, if not the singular patient metaphor, then what?&nbsp; Let’s go environmental, shall we?</FONT></STRONG></P>
<P>I think perhaps we should apply an environmental analogy and given my encounter with Pat Copeland all those years ago I might change risk mitigation to environmental protectionism.</P>
<P>We often have clusters of services that are more interconnected than others.&nbsp; We could consider these clusters to be like little ecosystems. the are heavily dependent upon each other but they are not isolated from the impact of other services.&nbsp; I love to point out how <A href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)" mce_href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)">Mashups</A> build upon services in ways the developers never intended.&nbsp; Work by one group is consumed and distributed by another entity.&nbsp; No, this is not quite the circle of life but I am talking about layers and interconnectedness.</P>
<P>We know for certain that even the tide pools that surface at low tide do not function in complete isolation. Each tide cycle some fish come and go, sand washes in and out, and rather importantly the oxygen within the tide pool is replenished.&nbsp; The tide pool ecosystem therefore cannot exist without some level of interaction with other ecosystems.&nbsp; The beach grasslands may house predators and the coral reefs just a bit further out to sea may shelter fish when they are not in the pools.&nbsp; No service is an island unto itself.</P>
<P>Each summer my family and I go to th<A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_2.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_2.jpg"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=rock border=0 alt=rock align=right src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_thumb.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_thumb.jpg" width=297 height=207 mce_src="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/rock_thumb.jpg"></A>e Oregon Coast and stay near <A href="http://en.wikipedia.org/wiki/Haystack_Rock" mce_href="http://en.wikipedia.org/wiki/Haystack_Rock">Haystack Rock</A> in <A href="http://en.wikipedia.org/wiki/Cannon_Beach,_Oregon" mce_href="http://en.wikipedia.org/wiki/Cannon_Beach,_Oregon">Cannon Beach</A>. Each year my wife, my kids and I visit the <A href="http://friendsofhaystackrock.org/jpg/Friends%20of%20Haystack%20Rock%20Photo%20Gallery/Marine%20Garden%20Plants%20and%20Animals/index.html" mce_href="http://friendsofhaystackrock.org/jpg/Friends%20of%20Haystack%20Rock%20Photo%20Gallery/Marine%20Garden%20Plants%20and%20Animals/index.html">tide pools at Haystack Rock</A>. Every year we stop off and visit the folks in the pickup truck that sets up the telescope and brings the plastic bins with some of the sea life in them so we can see them up close and touch a few. There is always a jar out for donations to preserve the Haystack Rock natural preserve and every year we take what cash we have and let the kids make a donation. </P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_2.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_2.jpg"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; MARGIN-LEFT: 0px; BORDER-TOP: 0px; MARGIN-RIGHT: 0px; BORDER-RIGHT: 0px" title=SeaAnemone border=0 alt=SeaAnemone align=left src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_thumb.jpg" original-url="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_thumb.jpg" width=210 height=179 mce_src="http://blogs.msdn.com/blogfiles/kenj/WindowsLiveWriter/TestinginProductionItsalivingecosystemno_146C3/SeaAnemone_thumb.jpg"></A>It is an awesome vacation, but I will tell you that every year I go there, I do notice changes. This year the amount of seaweed was larger than any previous year i could remember.&nbsp; The tide pools, though a strong and vibrant ecosystem, are ever changing and evolving. More sand comes in and a pool completely fills, where there used to be a dozen starfish now there is a solid wall of them hanging onto the underside of a large rock, and sometimes where we had seen a floor of sea anemone we now see an barren hole filled with salt water.</P>
<P>Software as a Service is alive and ever changing. It requires an amount of protection and stewardship or it will decay and fail. It requires vigilance or one element of the system such as sea lions may find an easy meal by hunting wild salmon trapped up against the door of lock.&nbsp; the sea lions will let their ravenous gluttony get carried away to the point that there are not enough salmon left in the run to sustain them.&nbsp; Similarly one service may consume too many resources of another service and cause it irreparable harm.</P>
<P>In my world we still have clip boards filled with data but they are ones that have the our record counts, our observations from the field, and our assessments of risk both for my tide pools at Haystack Rock as well as the risk to our service within itself and potential risk due to encroachment or failures of other interconnected systems.</P>
<P>Yes, I’m confident in test we are still have a major role to play in the risk assessment business, just that in the world of services, with fast paced changes, we also need to show up every day and evaluate the real world, the data center and the software within, for its health.&nbsp; We need to run our tests against production, check our PH balances, count our fish, and assess our production telemetry.&nbsp; At the end of the day we file our report and get ready to do it again tomorrow because the ecosystem never stops changing.&nbsp; </P>
<P>Thanks JW.</P>]]></content:encoded>
    </item>
    <item>
      <title>Confidence is High and Feeling Feisty</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/confidence-is-high-and-feeling-feisty</link>
      <pubDate>Wed, 13 Jan 2010 22:18:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2010/01/13/confidence-is-high-and-feeling-feisty/</guid>
      <description><![CDATA[This is a bit of&nbsp;personal musing.&nbsp; Feel free to skip.
Originally I was going to tweet...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>This is a bit of&nbsp;personal musing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Feel free to skip.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Originally I was going to tweet this but then I started coming up with quite a few tweets and decided a short blog would be better.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>There is such a thing among testers on twitter as tweeting your own horn a bit too much.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>I have a test talk to give tomorrow.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It’s an internal Microsoft talk to a bunch of senior Test Manager and Architects.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It’s for this group called QTEC that we started about two or so years ago with the help of Grant George, </FONT><A href="https://twitter.com/alanpage" mce_href="https://twitter.com/alanpage"><FONT face=Calibri>Alan Page</FONT></A><FONT face=Calibri>, JW, and a few other folks.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It’s a cool group with some really great talks.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It will be my first time presenting to the group but as I know most of the members quite well I feel like it should be familiar turf.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>The talk is to be me presenting how to test services or is it S+S or Client and Cloud.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>My thinking on the subject has evolved quite a bit since I wrote on the topic in, "<A href="http://www.hwtsam.com/" mce_href="http://www.hwtsam.com">How We Test Software at Microsoft</A>."&nbsp; but that thinkin has evloved because of my interactions with other great, smart testers.&nbsp;&nbsp;</FONT><A href="https://twitter.com/Setheliot" mce_href="https://twitter.com/Setheliot"><FONT face=Calibri>@Setheliot</FONT></A><FONT face=Calibri> is top notch on experimentation.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT><A href="https://twitter.com/venkatna" mce_href="https://twitter.com/venkatna"><FONT face=Calibri>@venkatna</FONT></A><FONT face=Calibri> has taught me quite a bit in his talks about how they tested Bing.<SPAN style="mso-spacerun: yes">&nbsp; I'd mention more but they don't tweet or blog that I'm aware of.&nbsp; My conern is that I h</SPAN>ave just picked others brains and so now I get to stand in front of a crowd and </FONT><A href="http://encarta.msn.com/dictionary_1861738006/pontificate.html" mce_href="http://encarta.msn.com/dictionary_1861738006/pontificate.html"><FONT face=Calibri>pontificate</FONT></A><FONT face=Calibri> (I love that word almost as much a </FONT><A href="http://encarta.msn.com/encnet/features/dictionary/DictionaryResults.aspx?lextype=3&amp;search=penultimate" mce_href="http://encarta.msn.com/encnet/features/dictionary/DictionaryResults.aspx?lextype=3&amp;search=penultimate"><FONT face=Calibri>penultimate</FONT></A><FONT face=Calibri>).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>There must be more and I think that’s why I’m feeling feisty.<o:p></o:p></FONT></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">Why not <A href="https://twitter.com/venkatna" mce_href="https://twitter.com/venkatna">@venkatna</A>, <A href="https://twitter.com/Setheliot" mce_href="https://twitter.com/Setheliot">@setheliot</A>, or <A href="https://twitter.com/testingmentor" mce_href="https://twitter.com/testingmentor">@testingmentor</A></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>I wouldn’t be a good tester if I didn’t have opinions and if I didn’t then test those opinions out.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I mean I don’t want to get as feisty as </FONT><A href="https://twitter.com/Jamesmarcusbach" mce_href="https://twitter.com/Jamesmarcusbach"><FONT face=Calibri>@Jamesmarcusbach</FONT></A><FONT face=Calibri> and try to take on anyone that has a differing opinion on exploratory testing (apparently now referred to as ET but not the type that goes home).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I don’t want to get into the kind of back and forth as chronicled by Seth Eliot in his great blog post, “</FONT><A href="http://blogs.msdn.com/seliot/archive/2010/01/05/code-coverage-it-s-exciting.aspx#comments" mce_href="http://blogs.msdn.com/seliot/archive/2010/01/05/code-coverage-it-s-exciting.aspx#comments"><FONT face=Calibri>Your Software Has Bugs</FONT></A><FONT face=Calibri>,” in which he chronicles the debate on Code Coverage by a few more public testing luminaries.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>I’m feeling feisty though.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>I do belive that I will spice things up a bit.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I really do strongly believe certain things about services testing and Microsoft’s approach to it.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I believe we have a great chance to beat our major competitors and that test can be a key asset in helping us move our company forward.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I believe quite a few things about services testing.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>The traditional on premises test lab is dead and we should move all equipment to data centers and VMs<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>All load testing should be done in production and if you’re a v1 service just order production hardware or VMs 6 months early and conduct your load tests on that hardware.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Buying test equipment for load testing is a waste.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Ship into production more often and finish your testing there.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Test lab results are good for unit and basic functional testing but integration testing needs to happen in production.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>The OneBox is the key to agility for services testing<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>5.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Emulation is the second key to agility for services testing<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>6.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Test automation needs to run against production<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>7.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Deployment break = build break<o:p></o:p></FONT></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpFirst align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">If you want a regular dose of feisty check out <A href="http://blogs.msdn.com/eric_brechner/" mce_href="http://blogs.msdn.com/eric_brechner/">I. M. Writes</A> blog<o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Yep, I’m feeling feisty. <o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>I think that’s got to be the why me part.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’ve got red hair and at times a hot temper.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I have opinions and I don’t mind ruffling a few feathers when the mood strikes.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I don’t quite know what I’m going to say tomorrow.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’ve got some time to work on my slides.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If </FONT><A href="http://angryweasel.com/blog/" mce_href="http://angryweasel.com/blog/"><FONT face=Calibri>Alan Page</FONT></A><FONT face=Calibri> reads this post before tomorrow he’s going to be nervous.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Related Blog posts<o:p></o:p></FONT></SPAN></B></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpFirst><SPAN class=MsoHyperlink><SPAN style="FONT-FAMILY: Symbol; TEXT-DECORATION: none; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; text-underline: none"><SPAN style="mso-list: Ignore"><U><FONT color=#0000ff><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></U></SPAN></SPAN></SPAN><A href="http://blogs.msdn.com/kenj/archive/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary.aspx"><FONT size=3 face=Calibri>TIP-ING SERVICES TESTING BLOG #1: THE EXECUTIVE SUMMARY</FONT></A><SPAN class=MsoHyperlink><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN class=MsoHyperlink><SPAN style="FONT-FAMILY: Symbol; COLOR: windowtext; TEXT-DECORATION: none; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; text-underline: none"><SPAN style="mso-list: Ignore"><U><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></U></SPAN></SPAN></SPAN><A href="http://blogs.msdn.com/kenj/archive/2009/04/22/1-1-redundancy-should-be-banned-from-use.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/04/22/1-1-redundancy-should-be-banned-from-use.aspx"><FONT size=3 face=Calibri>1+1 Redundancy Just Isn't Good Enough</FONT></A><SPAN class=MsoHyperlink><SPAN style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"><o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l1 level1 lfo1" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN class=MsoHyperlink><A href="http://blogs.msdn.com/kenj/archive/2009/11/18/the-demise-of-the-test-lab-an-ode-to-when-testers-worked-in-test-labs.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/11/18/the-demise-of-the-test-lab-an-ode-to-when-testers-worked-in-test-labs.aspx"><FONT size=3 face=Calibri>The Demise of the Test Lab</FONT></A></SPAN><o:p></o:p></P>]]></content:encoded>
    </item>
    <item>
      <title>Stupid Service Oriented Architecture (SSOA) #1 – The 50/50 upgrade</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/stupid-service-oriented-architecture-ssoa-1-the-5050-upgrade</link>
      <pubDate>Sat, 26 Dec 2009 12:17:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2009/12/26/stupid-service-oriented-architecture-ssoa-1-the-5050-upgrade/</guid>
      <description><![CDATA[In the web services world I’ve heard a lot of really stupid things said by a lot of really smart...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>In the web services world I’ve heard a lot of really stupid things said by a lot of really smart people.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I will admit, without details, that I have been guilty of saying some of those stupid things myself.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I like to believe that I am learning and evolving though as I now recognizes those previous statements as being less than wise. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>One area ripe with absurdity is web service’s deployment.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I could go on and on for pages on the number of foolhardy things I have heard, seen, and done with respect to service’s deployment.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For today, however, I choose to pick on just one, the 50/50 upgrade. <o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>I have heard this one time and again, and even last week.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is often said with perfunctory conviction, a puffed up chest and a broad beaming confident smile by the engineers that have finally implemented it.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That statement goes like this, “We finally have a great deployment solution, we can do 50/50 upgrades across two datacenters.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Yuuuck!!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Every time I hear this, I wrench handfuls of hair out of the pitiful amount remaining about my head, and run screaming from the conference room.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It is perhaps the most pathetic-neanderthalic-misanthropic <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>statement an engineer could make.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>What really gets me is how it is always said with such bravado, such confidence, such unthinking belief that this is a great idea, that you suddenly realize the engineer saying it and those nodding their head like little Chihuahua bobble heads, really believe it.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN><o:p></o:p></FONT></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">We have a great deployment solutions</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">we do 50/50 upgrades</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin">So what is 50/50 upgrade you ask?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It works essentially like this.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin">A web service is built out with all the components needed to function and often this includes a set of web front end servers, maybe a middle tier server and a database of some sort on the very back end. Separating out component of a web service is a common architecture both in the enterprise, traditional online services and even within cloud computing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It allows for improved utilization of hardware resources, improved security by cordoning off critically sensitive customer data, and when done correctly allows for more rapid development on each sub-component.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Even the Microsoft Azure service works on this model.<SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-spacerun: yes"><IMG style="WIDTH: 439px; HEIGHT: 152px" title=Azure alt=Azure src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/94/13/52/Azure.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9941352/original.aspx" width=439 height=152 mce_src="http://blogs.msdn.com/photos/kenj/images/9941352/original.aspx">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-no-proof: yes"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape style="WIDTH: 329.25pt; HEIGHT: 114pt; VISIBILITY: visible; mso-wrap-style: square" id=_x0000_i1027 type="#_x0000_t75" alt="Description: The Cloud Computing and Services Platform Diagram"><v:imagedata mce_src="file:///C:\Users\kenj\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg" src="file:///C:\Users\kenj\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg" o:title="The Cloud Computing and Services Platform Diagram"></v:imagedata></v:shape></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin">A v1 “new” service may make the mistake of speed to market over maintenance features and thus launch with an architecture that is tightly coupled and in massive flux.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This will force the development team into many rapid releases that cause the entire stack to change.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Applying upgrades to every server in production flows from the service pack mindset of the enterprise where a poor operations engineer has been assigned the task of apply the new service pack or security patch to every machine in production by the end of the weekend.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Apply the upgrade everywhere, innovate everywhere in tandem, upgrade to the new version of the service all at once so we know where we are...</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin">By the way, I really can’t stand tight coupling and all or nothing architectures.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Perhaps I’ll get to another post on general SOA concepts as opposed to this one about SSOA.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin">This is a bad approach for web services and leads toward tight coupling and monolithic upgrades.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Monolithic upgrades of a service often result in the well know, “Sorry, our website down for maintenance.” sign being put up for the world to see.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These kinds of signs range from somewhat cutsie to downright ugly.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-spacerun: yes"></SPAN><o:p><IMG style="WIDTH: 243px; HEIGHT: 159px" title="maintenance 1" alt="maintenance 1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/94/13/53/maintenance1.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9941353/original.aspx" width=288 height=188 mce_src="http://blogs.msdn.com/photos/kenj/images/9941353/original.aspx"><IMG style="WIDTH: 158px; HEIGHT: 154px" title="Maintenance 2" alt="Maintenance 2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/94/13/54/maintenance2.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9941354/original.aspx" width=206 height=223 mce_src="http://blogs.msdn.com/photos/kenj/images/9941354/original.aspx"></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>The maintenance window is actually an acceptable option.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Many major web services have used this concept.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Everyone from parts of MSN, eBay, and even SalesForce.com has used the maintenance window concept of a weekly or monthly basis.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The problem is, it is a crutch and the web service really needs to focus on how to have zero downtime deployments.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>The decision making process on how to move to a 50/50 upgrade model tends to go something like this:<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpFirst><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>We can’t keep taking these maintenance downtimes.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Our competition isn’t down, why are we?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Get me one of those zero downtime deployment solutions and get it now!<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Oh, and we should also become geo-redundant.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I hear that is a great think in case we get hit by one of those earthquake things.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Let’s build out a duplicate in a new data center so we can do a 50/50 upgrade!<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All we need is an expensive network load balancer at the edges and a bunch of virtual IPs.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Great, but we’ll need to build it out with enough capacity to handle all the user load<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>5.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>That’s right and our peak loads usually come right around the holidays, back to school, or yearend accounting, or federal tax day, or Valentine’s Day.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This last example probably only affects </FONT><A href="http://hallmark.com/" mce_href="http://hallmark.com/"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri>http://<SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">hallmark.com</SPAN></FONT></SPAN></SPAN></A><FONT face=Calibri> (see Hallmark case study slides among these TiP slides </FONT><A href="http://rkjohnston.com/Documents/Testing%20in%20the%20Cloud%20for%20Benchmark%20QA%20and%20TwinSpin%20final.pptx" mce_href="http://rkjohnston.com/Documents/Testing%20in%20the%20Cloud%20for%20Benchmark%20QA%20and%20TwinSpin%20final.pptx"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri>here</FONT></SPAN></SPAN></A><FONT face=Calibri>), but you get the point that most services have a peak utilization that is calendar or event driven.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>6.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>This will be great because if the upgrade doesn’t work well we can always fail back to the half that hasn’t been upgraded.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>7.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>We’ll need to build out with some buffer too because we don’t want to have a service performance slow down because we have a really big spike.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I recommend 125% of peak.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>8.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Perfect, we don’t want any risk with this new 50/50 upgrade architecture.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-add-space: auto; mso-list: l0 level1 lfo2" class=MsoListParagraphCxSpLast><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT face=Calibri>9.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Great let’s build out another duplicate cluster.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>At this point the meeting ends and everyone goes their separate ways feeling quite pious about the great decisions they just made.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The move to a 50/50 upgrade is underway.<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Let me briefly explain some of the mechanics of a 50/50 upgrade.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The way it is accomplished is that a service will build out a duplicate infrastructure, often in a different data center but it could be in the same data center, but it will involve new hardware.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This mistake can be made within cloud computing by creating duplicate VMs as well.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This new build out will need to be at scale as the maintenance window might become twenty-four or forty-eight hours.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Each of these units is often called a cluster or a scale unit.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Fortunately with modern network load balancers, <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>such as those build by F5 Networks, it is easy to fail over from one cluster to the other, thus allowing you to take one cluster out of rotation for maintenance.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Upon completion of maintenance the upgraded cluster is put into production while the other half is taken off-line for the upgrade.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>With teams I’ve run we typically put the upgraded servers back into production overnight to see how they perform.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>We want ensure the users are able to connect and use the service as expected. We also watch to see if the servers suddenly start to throw lots of errors or crash.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Once we are sure the new service is running as expected we can begin to upgrade the remaining machines.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This gives us our rapid roll-back plan in case the new version has a major flaw and cannot be released.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>50/50 upgrades as a tool for rapid rollback is the first stupidity, but not the most significant, I want to call out.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">We have great roll back plan if the deployment fails<o:p></o:p></SPAN></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-size: 10.0pt">we just fall back to the non-upgraded servers.</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">RANT:</SPAN></B><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"> If I design an upgrade that is so invasive it takes by 25 hours to upgrade a cluster of say 100 servers, I then put it into production and it fails, and so my roll back plan is to fail back over to the non-upgraded machines, then what the heck am I to do with the mess I created on the first half?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Does anyone have an automated tool for me to get them back to the previous version, nooo.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Does anyone have a plan on how to fix the bug in the new version so I can move safely and easily forward, noooooo.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All I have is a net to land in when the service falls over, but unfortunately there is no way out of this net.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’m stuck halfway between flying seamlessly through the air with the greatest of ease, and smashing my server guts all over the concrete floor.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If a trapeze artist falls every other time thy try to jump from one bar to the other, it isn’t much of a show.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Proper practice to get the transfer right is the way to go, the net is there for only the worst of incidents.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Teams that fall into the 50/50 upgrade trap and point to their rollback plan as failing back to the un-touched servers, are cutting corners and hoping the net will never snap.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>In the words of one of my favorite news commentators from </FONT><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri><A href="http://abcnews.go.com/2020/story?id=126119" mce_href="http://abcnews.go.com/2020/story?id=126119">ABC New<SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"> 20/20</SPAN></A></FONT></SPAN></SPAN><FONT face=Calibri> </FONT><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri><A href="http://en.wikipedia.org/wiki/John_Stossel" mce_href="http://en.wikipedia.org/wiki/John_Stossel">John Stoss<SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">el</SPAN></A></FONT></SPAN></SPAN><FONT face=Calibri>, “</FONT></SPAN><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-size: 10.0pt"><FONT size=3>Give me a break</FONT></SPAN></B><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>John has a new blog <SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><A href="http://stossel.blogs.foxbusiness.com/" mce_href="http://stossel.blogs.foxbusiness.com/">here</A></SPAN></SPAN>.<o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>So, that’s the first stupidity.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The second stupidity is the one that really chaps my hide and that’s the one around frivolously adding massive cost to an online service.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In fact because of this one factor, I would rather a service stick with maintenance windows than move to the 50/50 upgrade option. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Table 1 shows just how expensive a 50/50 upgrade can be and how quickly the cost drops if you simply move to a smaller scale for upgrades such as a ¼ upgrade.</FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>
<TABLE style="MARGIN: auto auto auto 5.4pt; WIDTH: 387pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184" class=MsoNormalTable border=0 cellSpacing=0 cellPadding=0 width=516 class="MsoNormalTable">
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Upgrade %</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"># of units to upgrade</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=114>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Minimum capacity for peak load</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 81pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=108>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">% capacity for entire service</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 94.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=126>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt">% wasted capacity</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 1">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">50/50</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>2<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=114>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>100% + 25% or more buffer<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 81pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=108>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>~250%<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 94.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=126>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt">150%</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN></I></B></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 2">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">1/3</B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">, 1/3, 1/3<o:p></o:p></SPAN></B></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>3<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=114>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>50% + 12.5% buffer<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 81pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=108>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>~182.5%<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 94.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=126>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt">82.5%</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN></I></B></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT size=3><FONT face=Calibri>1/4, 1/4, 1/4, 1/4<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 63pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=84>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>4<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 85.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=114>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>33.33% +8.33% buffer<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 81pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=108>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><FONT size=3><FONT face=Calibri>~166.5%<SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #f0f0f0; PADDING-BOTTOM: 0in; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 94.5pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #f0f0f0; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0in" vAlign=top width=126>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 10pt" class=MsoNormal align=center><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>66.5%</FONT></SPAN></I></B><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN></I></B></P></TD></TR></TBODY></TABLE></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Table 1:</SPAN></B><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"> % of wasted capacity moving from a 50/50 upgrade to a minimum of four clusters with shared redundancy.<o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>With a typical 25% capacity buffer a 50/50 upgrade scenario will push a team to build out a minimum of 150% extra capacity.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Remember that this is 150% wasted capacity above peak utilization that might come just once a year.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For Microsoft Office we know our biggest peak is right around back to school in the early fall and so we have extra capacity available at </FONT><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri><A href="http://www.office.com/" mce_href="http://www.office.com">http://www.office.com</A></FONT></SPAN></SPAN><FONT face=Calibri> for this huge spike but don’t do 50/50 upgrades.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The real waste in terms of such capital is probably great that 200% and then add in the operational expense of powering and maintaining that much extra capacity, a service can easily go from being cost effective to cost prohibitive.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>This is the stupidity I really loath as it is so obvious and yet never really considered up front.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For a little extra effort a team can often engineer their deployment scenario to the point they can move from a maintenance window model to a N cluster deployment option where N is great than four.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>That is what I point out to ever team I work with that falls for the 50/50 trap.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Still many ignore me and take the easier route of throwing hardware at the problem.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The problem is that this bad decision when made, will sink capital and actually limits the team’s ability to be more innovative through lose coupling and more dynamic and automate deployments.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>I’m planning or writing a few more blogs on Stupid SOA and other Stupid things about services.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If you have some to share, I’d love to hear yours.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I’ve also tweeted some gems on my twitter account at </FONT><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT face=Calibri><A href="https://twitter.com/rkjohnston" mce_href="https://twitter.com/rkjohnston">https://twitter.com/rkjohnston</A></FONT></SPAN></SPAN><FONT face=Calibri>. Tweet, comment, send me email, but whatever you do, if you have a good one, please send it to me.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><FONT face=Calibri>Ralated Blog posts</FONT></SPAN></B></P>
<UL>
<LI>
<DIV style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"></SPAN></B><SPAN class=MsoHyperlink><SPAN style="FONT-FAMILY: Symbol; COLOR: black; TEXT-DECORATION: none; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%; text-underline: none"><SPAN style="mso-list: Ignore"><U><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;</SPAN></U></SPAN></SPAN></SPAN><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT size=3><FONT face=Calibri><A href="http://blogs.msdn.com/kenj/archive/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary.aspx">TIP-ING SERVICES TESTING BLOG #1: THE EXECUTIVE <SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">SUMMARY</SPAN></A></FONT></FONT></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN>&nbsp;</SPAN></DIV></LI>
<LI>
<DIV style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><A href="http://blogs.msdn.com/kenj/archive/2009/04/22/1-1-redundancy-should-be-banned-from-use.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/04/22/1-1-redundancy-should-be-banned-from-use.aspx">1+1 Redundancy Just Isn't Good Enough</A></SPAN></SPAN></SPAN></DIV></LI></UL>]]></content:encoded>
    </item>
    <item>
      <title>Bing Outage exposes Testing in Production (TiP) Hazards</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/bing-outage-exposes-testing-in-production-tip-hazards</link>
      <pubDate>Fri, 04 Dec 2009 10:28:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2009/12/04/bing-outage-exposes-testing-in-production-tip-hazards/</guid>
      <description><![CDATA[I have been a big proponent of shipping services into production more frequently and conducting more...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><FONT face=Calibri>I have been a big proponent of shipping services into production more frequently and conducting more testing on the code once it is in production.&nbsp; Those of us that support this methodology tend to call it TiP (Testing in Production).&nbsp; Find links to previous blog posts on this subject below.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><FONT face=Calibri><SPAN style="mso-spacerun: yes"><IMG style="WIDTH: 319px; HEIGHT: 191px" title="Bing During Outage" alt="Bing During Outage" align=middle src="http://whatwillweuse.com/wp-content/uploads/2009/12/dontbingthat.png" width=319 height=191 mce_src="http://whatwillweuse.com/wp-content/uploads/2009/12/dontbingthat.png"><IMG style="WIDTH: 319px; HEIGHT: 191px" title="Bing back up and working" alt="Bing back up and working" align=middle src="http://whatwillweuse.com/wp-content/uploads/2009/12/bingthat.png" width=319 height=191 mce_src="http://whatwillweuse.com/wp-content/uploads/2009/12/bingthat.png"></SPAN></FONT></SPAN></P><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><FONT face=Calibri><SPAN style="mso-spacerun: yes"></SPAN><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">After the recent Bing outage (evening of 12/3/2009), I find myself thinking about the Hazards of TiP and thought I might make a post about some lesson's I have drawn from this production outage and what has been written about it so far. ZD Net posted a bit of a sarcastic blog with the title "<A href="http://blogs.zdnet.com/BTL/?p=28050&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+zdnet%2FBTL+%28ZDNet+Between+the+Lines%29&amp;utm_content=Twitter">Microsoft is making progress on search: You noticed Bing's glitch</A>."<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>According to the official blog post by the Bing team (<A href="http://www.bing.com/community/blogs/search/archive/2009/12/04/a-note-about-today-s-outage.aspx">here</A>) the outage was, “The cause of the outage was a configuration change during some internal testing that had unfortunate and unintended consequences.”<o:p></o:p></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'">Internal testing that had unfortunate</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'">and unintended consequences</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Despite this black mark, I still believe TiP is the right direction to go for services testing but clearly there are some hazards and lessons we can extrapolate.</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">These two posts imply that the outage was wide spread, noticed by a lot of individuals, and caused by an errant configuration change in support of a test.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>My assessment is that while there was clearly an attempt to run a test configuration in production, the test did not cause the outage.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The challenge came where the test configuration change somehow went to all of production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">The core concept of TiP is to minimize risk through TiP-ing.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In order to accept the risk of less stable code into production in order to run tests, the less stable code must be easily sandboxed.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Whatever happened here was likely a configuration management mistake not a testing error.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">I have an axiom for my operations team, and that is that all manual processes will eventually fail, unless they don’t.<o:p></o:p></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'">I like Bing, but half-an-hour downtime is unacceptable these days. Do you guys not have failover systems? </SPAN></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; LINE-HEIGHT: normal; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle align=center><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 16pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'"></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'"><FONT size=3>Comment on Bing Blog by</FONT></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 18pt; mso-bidi-font-size: 10.0pt; mso-fareast-font-family: 'Times New Roman'"> </SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: #525051; FONT-SIZE: 15pt; mso-ansi-language: EN" lang=EN><A title=b.dylan.walker href="http://www.bing.com/community/user/Profile.aspx?UserID=274220"><SPAN style="COLOR: #0033cc; FONT-SIZE: 11pt">b.dylan.walker</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P></DIV>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">The reality is that the Bing system is very automated.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The team has shared some information about their infrastructure so I won’t go into details here less I share something not disclosed.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In outage like this from a test configuration change impacting production is clearly a case of fast moving automation.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">In order to enable TiP and to take more risk into production, the change management system of a service must be rock solid and fully automated.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Clearly though from what has been shared they have a state of the art system.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In fact it is likely this state of the art system that allowed the errant change to propagate so quickly and require a full roll back. <o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Therefore the gap must be in the safety mechanisms to prevent such a mistake in combination with how fast the mistake rolled out to all environments.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Another factor in successful TiP is metering of change in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This change just moved too fast and while the bing system is highly automated it still takes a long time to undo a change across so many servers.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">My takeaway from this outage is to remember that TiP does work but you need solid change management.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: auto auto auto 0.5in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle><FONT face="Times New Roman"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">1.</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 7pt; mso-fareast-font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">A fully automated deployment system<o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: auto auto auto 0.5in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle><FONT face="Times New Roman"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">2.</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 7pt; mso-fareast-font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Rock solid controls on change management approval<o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: auto auto auto 0.5in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle><FONT face="Times New Roman"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">3.</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 7pt; mso-fareast-font-family: 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Every change must be a metered change so when a mistake does happen it doesn’t affect every server in production.<o:p></o:p></SPAN></FONT></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: auto auto auto 0.5in; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormalCxSpMiddle><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p><FONT face="Times New Roman">&nbsp;</FONT></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Those are the lesson’s I’ve drawn so far.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>What do you think?<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Other Blogs on TiP<o:p></o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN" lang=EN><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="mso-ansi-language: EN" lang=EN><A href="http://blogs.msdn.com/kenj/archive/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary.aspx"><FONT size=3>TIP-ING SERVICES TESTING BLOG #1: THE EXECUTIVE SUMMARY</FONT></A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1; mso-add-space: auto; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><A href="http://blogs.msdn.com/kenj/archive/2009/06/03/ship-your-service-into-production-and-then-start-testing.aspx">Ship your service into production and then start testing!</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Images from a blog post on WhatWillWeUse.com</SPAN></B><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"> - <A href="http://whatwillweuse.com/2009/12/03/hold-on-40-minutes-while-i-bing-that/">http://whatwillweuse.com/2009/12/03/hold-on-40-minutes-while-i-bing-that/</A></SPAN></o:p></FONT></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>TIP-ING SERVICES TESTING BLOG #1: THE EXECUTIVE SUMMARY</title>
      <link>https://docs.microsoft.com/archive/blogs/kenj/tip-ing-services-testing-blog-1-the-executive-summary</link>
      <pubDate>Tue, 24 Nov 2009 14:28:00 GMT</pubDate>
      <dc:creator><![CDATA[R.K.Johnston]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kenj/2009/11/24/tip-ing-services-testing-blog-1-the-executive-summary/</guid>
      <description><![CDATA[For some time now I’ve been promising to lay out all my thinking on Testing in Production...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3 face=Calibri>For some time now I’ve been promising to lay out all my thinking on Testing in Production (TiP).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I first introduced the topic in a blog post in June 2009 titled “</FONT></SPAN><SPAN style="COLOR: black; mso-bidi-language: EN-US; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT size=3 face=Calibri><A href="http://blogs.msdn.com/kenj/archive/2009/06/03/ship-your-service-into-production-and-then-start-testing.aspx" mce_href="http://blogs.msdn.com/kenj/archive/2009/06/03/ship-your-service-into-production-and-then-start-testing.aspx">Ship your service into production and then start testing!</A></FONT></SPAN></SPAN><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>” Over the summer I had some family commitments, late summer I finished up my internal Microsoft <A href="http://online.wsj.com/article_email/SB111196625830690477-IZjgYNklaB4o52sbHmIa62Im4.html" mce_href="http://online.wsj.com/article_email/SB111196625830690477-IZjgYNklaB4o52sbHmIa62Im4.html">ThinkWeek</A> (full article in Seattle Times <A href="http://seattletimes.nwsource.com/html/businesstechnology/2002223020_gatesthink29.html" mce_href="http://seattletimes.nwsource.com/html/businesstechnology/2002223020_gatesthink29.html">here</A>) white paper on the subject (5 five star reviews so far), and had to prepare a couple of talks on the subject for <A href="http://www.sqe.com/stareast/" mce_href="http://www.sqe.com/stareast/">STARWest</A> and the <A href="https://www.swiftpage2.com/speasapage.aspx?X=2U0N3UQQDX5Q3N3S00Y9WW" mce_href="https://www.swiftpage2.com/speasapage.aspx?X=2U0N3UQQDX5Q3N3S00Y9WW">TwinSPIN &amp; Benchmark QA</A> SIG in Minneapolis.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All those excuses are over and now I’m ready to get back to the blog.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<OBJECT width=425 height=344><PARAM NAME="movie" VALUE="https://www.youtube.com/v/dsBGo10RsgQ&amp;hl=en_US&amp;fs=1&amp;"><PARAM NAME="allowFullScreen" VALUE="true"><PARAM NAME="allowscriptaccess" VALUE="always">
<embed src="https://www.youtube.com/v/dsBGo10RsgQ&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></OBJECT>
<DIV>
<DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; FLOAT: none; PADDING-TOP: 0px" id=scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:a7f7c3f4-865e-4b6b-a351-2ed91e8a79f1 class=wlWriterSmartContent>
<DIV style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px" id=dd15002d-543b-4cc5-8221-22d73a8262f7></DIV>
<DIV>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri></FONT></FONT></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>What follows is an updated version of the executive summary of the ThinkWeek paper that I co-authored with <A title="Seth Eliot" href="http://blogs.msdn.com/seliot/" mce_href="http://blogs.msdn.com/seliot/">Seth Eliot</A> (Seth's new blog can be found <A href="http://blogs.msdn.com/seliot/" mce_href="http://blogs.msdn.com/seliot/">here</A>) and Ravi Vedula on TiP-ing Service Testing.<SPAN style="mso-spacerun: yes">&nbsp; The paper did quite well as we recieved numerous 5 star reviews and the chair gave us a four start review with a must read comment.&nbsp; The paper has seen over five hundred views so far, so I'd call it a success.&nbsp; Ithant is&nbsp;</SPAN></FONT></FONT></SPAN><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>is my best overview of the subject and makes the case for why TiP is an important framing concept for evolving our approach to services testing.&nbsp; For more on ThinkWeek check out the&nbsp;youtube video or news article links above.</FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in" class=MsoNormal align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 16pt; mso-bidi-language: EN-US; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>“How could Test have <o:p></o:p></FONT></SPAN></B></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in" class=MsoNormal align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 16pt; mso-bidi-language: EN-US; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>missed this bug?”<o:p></o:p></FONT></SPAN></B></P></DIV>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 0pt" class=MsoNormal align=center><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>When it comes to services testing there are two diametrically opposed perspectives.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The most common perspective is the one that is focused on making test environments in the lab as close to production as possible.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This approach grows out of the oft expletive laden post RTW (Release to Web) admonishment, “how could test have missed this bug,” and the equally common retort, “our test environment isn’t enough like production so we couldn’t catch it.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>Many a tester has been burned by the bug that was missed and when this happens they often become defensive and more risk averse.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>They tend to drift into the first school of thought that attempts to continually increase the precision with which their test environment matches production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All sorts of techniques are used from purchasing the exact same servers for testing as production, purchasing load balancers and even taking sanitized dumps of production data into the test lab.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>After all, it is the job of testing to make certain bugs don’t get away and if even a single bug is missed in test because there was a missing network device or we only had one SQL Database instead of mirrored databases like production, then we must close that gap and stop the bugs from getting out into the wild. </FONT></FONT></SPAN></P><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 1pt; mso-element: para-border-div; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt">
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in" class=MsoNormal align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 16pt; mso-bidi-language: EN-US; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>“Test is the gate keeper, the champion of the customer,&nbsp;<o:p></o:p></FONT></SPAN></B></P>
<P style="BORDER-BOTTOM: medium none; TEXT-ALIGN: center; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in; mso-border-top-alt: solid windowtext .5pt; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 0in 1.0pt 0in" class=MsoNormal align=center><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 16pt; mso-bidi-language: EN-US; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>and must stop all bad code from escaping!”<o:p></o:p></FONT></SPAN></B></P></DIV>
<P style="TEXT-ALIGN: center; MARGIN: 0in 0in 0pt" class=MsoNormal align=center></FONT></FONT></SPAN><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>The funny thing is, whether it is a game, a desktop application or a web service, if you are a tester that has shipped a product, you have missed a bug.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I know I have missed a lot of bugs in my career, and yet I remain employed.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>While I too work to find all the bugs in a product, when I hear a manager ask that same tired question, “How could test miss this bug,” I tend to take a deep breath and just let it pass.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri></FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri></FONT></FONT></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>Personally I am always confident that my team and I have done a good job and so my advice to others is to just let the comment pass.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Think of it this way, it’s not your fault.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If the bug hadn’t been designed in the first place or coded in the second place it wouldn’t exist.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The fact that it exists is not your fault.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>You found tons of bugs in the product, so a few got past, go yell at the development team for daring to write the bug in the first place.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>When you become defensive you become obsessed with never missing a bug.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I have a long talk and even a tutorial on what we can learn from bugs that get away, for now just let it go.</FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri><o:p></o:p></FONT></FONT></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal>&nbsp;<IMG style="WIDTH: 553px; HEIGHT: 71px" title="TiP Challenge" alt="TiP Challenge" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/92/82/64/TheServicesTestingChallenge.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9928264/original.aspx" width=553 height=71 mce_src="http://blogs.msdn.com/photos/kenj/images/9928264/original.aspx"></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape style="WIDTH: 461.25pt; HEIGHT: 57.75pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_3 type="#_x0000_t75" o:spid="_x0000_i1027"><v:imagedata src="file:///C:\Users\kenj\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg" o:title=""></v:imagedata></v:shape></SPAN><SPAN style="mso-bidi-language: EN-US"><o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>The second perspective is the one that accepts test can never find every bug in the test lab and with respect to services; test can never fully emulate production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Trying to find all possible production bugs in test is a daunting, expensive and eventually un-achievable aim.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>There are simply a vast number of bugs that will only ever be found in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This line of thinking pushes one toward considering risk mitigation once a bug is out.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>After accepting that bugs will get out you can free your mind to start thinking about how to leverage production for testing and how to make production more test friendly.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>TiP is really a paradigm shift requiring the acceptance that test environments have limitations, test environments cannot catch all the bugs, and testing in production is the most viable option.</FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri><o:p></o:p></FONT></FONT></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>I should probably pause a moment and define what I mean by Production and Testing in Production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-language: EN-US">Definition of PRODUCTION:</SPAN></B><SPAN style="mso-bidi-language: EN-US"> For this paper production will be the current version (v-current) of the service to include all the data centers and machines v-current runs across.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It will also include v-Next instances that live in the data center and have real world traffic hitting them.<o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-language: EN-US">Broad Definition of TiP:</SPAN></B><SPAN style="mso-bidi-language: EN-US"> TiP constitutes all testing activities occurring on hardware in a data center.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3 face=Calibri>To most testers and operations engineers the notion that you would test in production seems </FONT></SPAN><I style="mso-bidi-font-style: normal"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><SPAN style="COLOR: black; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"><FONT size=3 face=Calibri><A href="http://en.wiktionary.org/wiki/verboten" mce_href="http://en.wiktionary.org/wiki/verboten">verboten</A></FONT></SPAN></SPAN></I><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>TiP is an anathema.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>TiP is just not allowed.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The reality is that it is allowed and it is much more common place than many think.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In fact this paper will argue that we need to further invest in and enhance our abilities to test in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri><SPAN style="mso-spacerun: yes"></SPAN><o:p><IMG style="WIDTH: 512px; HEIGHT: 342px" title="WLID Test Account" alt="WLID Test Account" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/92/82/65/WLiDTestAccount.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9928265/original.aspx" width=512 height=342 mce_src="http://blogs.msdn.com/photos/kenj/images/9928265/original.aspx"></o:p></FONT></FONT></SPAN></P>
<P style="PAGE-BREAK-AFTER: avoid; MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><v:shape style="WIDTH: 347.25pt; HEIGHT: 255pt; VISIBILITY: visible" id=Picture_x0020_8 type="#_x0000_t75" o:spid="_x0000_i1026" o:gfxdata="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&#13;&#10;tGC+ZRdOyaDsQrSAuFLPOgdZXEQMwhnPhaP4EOk/QGuo8Jn9zEDzpD7fhSUTwRcGaacQDOtLDb2K&#13;&#10;eQgWvkw6SNfDLMLamA1uyol13DIWdsavMJbeLuA/8SvMKcM9Y91udp3ZeKbhzmLshjuV2tlbEG7I&#13;&#10;79GJCqJR9pZqklP00ck2TtAgKLc8+PADtkMfwhV8OuKBrKJlFS2DK/geBJiw/RSh5aUXmQSeW8lM&#13;&#10;p5pJqplOLZPUMkk9kwDzTs84MwmcapqDNvgSRJ+xeSg7qgJ6np67ZaXV+TJn/W8AAAD//wMAUEsD&#13;&#10;BAoAAAAAAAAAIQAA34pGgnwAAIJ8AAAbAAAAY2xpcGJvYXJkL21lZGlhL2ltYWdlMS5qcGVn/9j/&#13;&#10;4AAQSkZJRgABAQEAeAB4AAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwg&#13;&#10;JC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIy&#13;&#10;MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHSAnsDASIAAhEB&#13;&#10;AxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9&#13;&#10;AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6&#13;&#10;Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip&#13;&#10;qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB&#13;&#10;AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJB&#13;&#10;UQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RV&#13;&#10;VldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6&#13;&#10;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&#13;&#10;1PVrjTtKsZGnsbm8meMzyoFlCLyDjoGIqTRLaWy8a6lDPeyXW20ixLNjdjJ64wKaWodP672Otooo&#13;&#10;pAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBHLBDPs86JJNjB13&#13;&#10;DO1h0I96koooAKKKKACiiigBGUOpVgCpGCD3FR21tBZwLBbQxwxL0SNcAfhUtFABRRRQAUUUUAFF&#13;&#10;FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFNkQSRvGSQGBUkHBp1FAFCPRbCLSv7&#13;&#10;NWAG22lCDySD15qq3hjTXhnjZZmE8ccchMhyQn3a2aKPMCC6s4b2xls5gTDKhjYA4OCMdaqw6JZQ&#13;&#10;TSSor75Ldbdsv/AowPx5rRooAzLPQbCwmtpYFkD20H2ePL5wmc81Vl8JaXLeNOftCo0gle2SUiF2&#13;&#10;9SnQ1u0UdbgVIdNtoNRuL+NWE86qjnPGF6YFVf8AhHdO+wfYtknkef8AaMbznfu3dfTNatFAGXee&#13;&#10;H9Pv5bqSdHLXUSxSEPjhTkY9D71DbeFtPt7h7h5Lu5meEwM9zMZCUPUc1tUUAZNp4csbQ2hV7iQ2&#13;&#10;hYwmWUttDDBH0x2qBfCWlreCcfaPLEnmi184+QH9dnSt2ijrcOljOfQ7KT+0Nyv/AMTAYn+frxjj&#13;&#10;04q2lrElkLRQfJEflgZ524x1qaijpYDFl8MWclnb2aXV/DbwJ5YjhuCodfRvWtWK2ihtVtokCQqu&#13;&#10;wKOwqWijcChDo1lBo/8AZSxlrPYU2ucnB96i07QrfTopIhdXtzC6eX5d1OZFC+gB6VqUUAchqHhJ&#13;&#10;LaTTpNP+1z+Teo+yWcssKc52g9B0rQufB+lXV1NPIbkLLIsrQrMRHvBzu2+tb9FH9f19wGVJ4d06&#13;&#10;V5XZJMy3CXLfOfvrwPw46VJqui2uriEzPPFLC26Oa3kMbr7AjtWjRQBlz6BaXWmxWVxLdSCJt0c7&#13;&#10;TEzK3qH65qtH4R0tI7tWN1I13Gsc8kkxLuFORz61u0UANRQiKi9FGBTqKKACiiigAooooAKKKKAC&#13;&#10;iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK&#13;&#10;KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKD0oAKKZvf8A55N+Yo3v/wA8m/MU&#13;&#10;7CuPopm9/wDnk35ije//ADyb8xRYLj6KZvf/AJ5N+Yo3v/zyb8xRYLj6KZvf/nk35ije/wDzyb8x&#13;&#10;RYLj6KZvf/nk35ije/8Azyb8xRYLj6KZvf8A55N+Yo3v/wA8m/MUWC4+imb3/wCeTfmKN7/88m/M&#13;&#10;UWC4+imb3/55N+Yo3v8A88m/MUWC4+imb3/55N+Yo3v/AM8m/MUWC4+imb3/AOeTfmKN7/8APJvz&#13;&#10;FFguPopm9/8Ank35ije//PJvzFFguPopm9/+eTfmKN7/APPJvzFFguPopm9/+eTfmKN7/wDPJvzF&#13;&#10;FguPopm9/wDnk35ije//ADyb8xRYLj6KZvf/AJ5N+Yo3v/zyb8xRYLj6KZvf/nk35ije/wDzyb8x&#13;&#10;RYLj6KZvf/nk35ije/8Azyb8xRYLj6KZvf8A55N+Yo3v/wA8m/MUWC4+imb3/wCeTfmKN7/88m/M&#13;&#10;UWC4+imb3/55N+Yo3v8A88m/MUWC4+imb3/55N+Yo3v/AM8m/MUWC4+imb3/AOeTfmKN7/8APJvz&#13;&#10;FFguPopm9/8Ank35ije//PJvzFFguPopm9/+eTfmKN7/APPJvzFFguPopm9/+eTfmKN7/wDPJvzF&#13;&#10;FguPopm9/wDnk35ije//ADyb8xRYLj6KZvf/AJ5N+Yo3v/zyb8xRYLj6KZvf/nk35ije/wDzyb8x&#13;&#10;RYLj6KZvf/nk35ije/8Azyb8xRYLj6KZvf8A55N+Yo3v/wA8m/MUWC4+imb3/wCeTfmKN7/88m/M&#13;&#10;UWC4+imb3/55N+Yo3v8A88m/MUWC4+imb3/55N+Yo3v/AM8m/MUWC4+imb3/AOeTfmKN7/8APJvz&#13;&#10;FFguPopm9/8Ank35ije//PJvzFFguPopm9/+eTfmKN7/APPJvzFFguPopm9/+eTfmKN7/wDPJvzF&#13;&#10;FguPopm9/wDnk35ije//ADyb8xRYLj6KKKQwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK&#13;&#10;KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqjeaxp9g2y5uVV/7oBY/kKdZ6rY6gcW1wrt&#13;&#10;12nIP5GgC5RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFGKKACi&#13;&#10;iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK&#13;&#10;KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKz9bvm0/SpZo8eY&#13;&#10;cImf7x4FaFZ2u2T3+kyxRjMikSIPUqcigDzCw1F73xGltHD9o+Y71Mm1pT3+btWc3iJ7PxhPYMjW&#13;&#10;8iz7Y13bjE3Ybu4pNJt20PxyuoXhdbDDZYKSUPoR1qm2mTa149u9WjR/srT74CVwZD2wK91+x5Wr&#13;&#10;Lk5d/P8Az/E4kp3v1ue5aXeG/wBMguTjc6/Nj1Bwf1FU/El08OmC2gk2XN44giOcHnrj8M1b0mzN&#13;&#10;hpVvbN95Fy31Jyf51m6roA1vW7d9Qiim02CIlYyxy0hPXHsM14LV9DuTtqZsN1ND4Q1nT3ndrrTk&#13;&#10;kj83d8xGMqc+uMVeTxBPFPbaZbadLeXP2aOVm80Iu09SSe4/Wqlx4PFrPe/2NFDBb3lm0MsZY43/&#13;&#10;AMLf0rV0/Sri21VrmQp5ZtI4flPO5ev4VV76/wBdRaJW/rp/wSrJ4s2TSypp0j6bDJ5Ul6JVADZw&#13;&#10;cJ1IB71Pqev3GnOZf7Kkl09ADJdCZRtB7hDyR9KwE8Gta6lKDo2n6hbyXBlFxNMySKCckFcEHHam&#13;&#10;6z4S1LUZ75DbWdyJD/o11PMwaBeMIEAxgc/nSXQfU6G88QTLftZadpsl/JHGJJisqxiNW6depI7C&#13;&#10;s/w5rmy00+3uY5ib2WbZK5ztYMTtP4VK2ma1pur3F3pi21xHeRRpKs0hQxMoxkcHI9qz9QspNG8G&#13;&#10;JFd3EJ1OCczwbT99y+QAOvOcUXsri1en9bHUWOqJf3t7BFEwjtX8syk8M/cAe3FEGqJPf6haCJg1&#13;&#10;lt3MTw+5c8UzQbF9P0aCKU7p3HmTMf4nbk1nXdhrNrrN7c6ZFazw3yKJPOkKGJgNuRwcjHaiWmn9&#13;&#10;XCNnqOk8U5trBrTT3uLq+3+VAZVThTySx4pzajGuqW0lzYzRXhspJivnZVApGVIHBPvWfNoWpL4f&#13;&#10;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&#13;&#10;MYrHj+H/AInl0rT9Du9YsjpEDK8iRxkSAg5wD3H1r1Cihaf12A4TUvB+uWXiCTV/CuoWts9xCsUy&#13;&#10;XaFhx0Iptt4M1nTfC11YWV/bnUdQlMl5cOCAoPUJj+td7RR0sHW5xXhjwbfeE9ak+wXccmjzxjzY&#13;&#10;pSfMEg/iFWPHfhnUfElvp39mT28M1pP52Z846cdK62ih628gWh5vrfhTxt4g0WKyv9T0ppI5xKCk&#13;&#10;bKOOnatHxb4O1LxDpGmi3u7eHVLZdkkxyFYEYYDFdvRR5fMFocfr3g+e+8B2/h/T5IYpITGQ0mdu&#13;&#10;VOT096saBp/iqC3uYNcvNNuIjDsgWCIrg4x83qK6iii97+YdEuxT0qC5ttMgguzCZ0Xa3kLtT2wK&#13;&#10;qammuPLJHYx2ElrIm3FwzBlPfoDmteiqjKzvYlxurXOYg8LGCCOCS4X7Otg9s79CGY5JHsKzDLfz&#13;&#10;zaPpz3mn3CwXMZH2OTezqvdx0XAxXckBlKsAQRgg96gt7CytHZ7azt4GbgtFEFJ/KuiOJerlqYyo&#13;&#10;Jq0dCjFpc6W2qxF0zeO7R+24cZq7p9u9ppltbOQXiiVGI6EgYqzRWEpuSszZQSd/61MDTtCubT+y&#13;&#10;98kR+yCQPtzzuORir9lYS22qajdOylLlkKAdRhcHNaFFOVWUr36/53EqcUUBYyjXjf7l8owCLb3z&#13;&#10;kmsmfw7eG1LwTxLew3z3duTnYc/wt+Ga6WinGtKOwSpxle5iWum3t1dzXeri3DtD5CRW5LKFPJJJ&#13;&#10;A5rMHhS+XRGgW7i+3icOkvONg6KfwJrrqKarzW3l+BLoxe/9XIrW3S0tIbeMfJEgQfhUtFFZNtu7&#13;&#10;NEklZBRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF&#13;&#10;FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU&#13;&#10;UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR&#13;&#10;QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA&#13;&#10;BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFIzBVLMQoHUk4FA&#13;&#10;C0VFHcwTNtinic+iuCaloAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC&#13;&#10;iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK&#13;&#10;KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArz/&#13;&#10;AMS+ILRtcWwv7w2tqXMUZ7F/U/jXoFeZeMdDNvrianJYrexo5lijk4Quex/HFTO/L7p0YX2ftV7X&#13;&#10;b9en4mTevP4VRZtZ1BBdzTBbOO2HLJn75x2r0fT9beXwy+oSxu8sKkMqLuLED0FeTltX8RQfZdfs&#13;&#10;YpZ1mEltPH9+Nc/cAHavWtG0uay8ONav/r5VZiPQkYxWcebldvkdOK9mpR5rc19bWtbS1rEen+Jo&#13;&#10;Z/D8GpXcUsTuAPLERy7Hsg6mrn9u2X9nfbT5oXf5flGMiTf/AHdvXPtXNy6dfzeHtJX7LexzabIB&#13;&#10;IkTBZHGNpKH8aux2NumiTu1jrEryziQiQg3AccB1OcDFVzPU0qYfD3uv5ujW1/8ALW5NqHir7KdO&#13;&#10;Mdjebbmfy3WS3YMBg9B6/wD16sXGr3sWvWFl9iVLS5LATO+WbC54Xt+NZrwaq1hp9xNBcz/Zb7zV&#13;&#10;jbBm8rBA3di3PNTazc3Z13TJotJvporVmaRkVcHcuABzQm+vcPY0rqMUnpLr11t28i9rWttYN9nt&#13;&#10;1TzthkeWX/Vwr6tjkk9gKz9M8S3Ulx5d6iNHvEbOkLRGJiPl3KxyQfWofEUNxBdS3piLW1xHGGLD&#13;&#10;IiZDkbwOdpz2zUFkk+v31xi4tjDNLFNP5ZbMezGFGQMgkdaSb5i6dCl7Dma0tq/PT/g/cu5opqsn&#13;&#10;2nUFur2WJI9QSGHy0BOCoO08dDWr/bNkLRLnc+x5PKUbDuLZxjFYE+l3zXF0y2zkPq8U6njmMAZb&#13;&#10;6Vch0u5HiWQPDjTkc3UT56ytwRj8acW9P67f8EyqU6DV77K+luy/G/6l8a/YnUDZgykhthm8s+Vu&#13;&#10;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&#13;&#10;/QEj/Jv8aP8AhCPCv/QEj/Jv8a6WigDmv+EI8K/9ASP8m/xo/wCEI8K/9ASP8m/xrpaKAOa/4Qjw&#13;&#10;r/0BI/yb/Gj/AIQjwr/0BI/yb/GulooA5r/hCPCv/QEj/Jv8aP8AhCPCv/QEj/Jv8a6WigDmv+EI&#13;&#10;8K/9ASP8m/xo/wCEI8K/9ASP8m/xrpaKAOa/4Qjwr/0BI/yb/Gj/AIQjwr/0BI/yb/GulooA5r/h&#13;&#10;CPCv/QEj/Jv8aP8AhCPCv/QEj/Jv8a6WigDmv+EI8K/9ASP8m/xo/wCEI8K/9ASP8m/xrpaKAOa/&#13;&#10;4Qjwr/0BI/yb/Gj/AIQjwr/0BI/yb/GulooA5r/hCPCv/QEj/Jv8aP8AhCPCv/QEj/Jv8a6WigCl&#13;&#10;plhb6bam2tIBBbq3yRjt61doooAKx3++31NbFY7/AH2+pq4ETNiiiioLCiiigAooooAKKKKACiii&#13;&#10;gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArP1t2j0iZk&#13;&#10;YqwHBBwaKKAOO8I3lzNqzLLcTSLk8M5Ir0GiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA&#13;&#10;KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsd/vt9&#13;&#10;TRRVwImf/9lQSwECLQAUAAYACAAAACEAyOEzkhUBAABSAgAAEwAAAAAAAAAAAAAAAAAAAAAAW0Nv&#13;&#10;bnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQCtMD/xwQAAADIBAAALAAAAAAAAAAAAAAAA&#13;&#10;AEYBAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQBucKdoOAMAAIAIAAAfAAAAAAAAAAAAAAAA&#13;&#10;ADACAABjbGlwYm9hcmQvZHJhd2luZ3MvZHJhd2luZzEueG1sUEsBAi0AFAAGAAgAAAAhAJStDd/U&#13;&#10;AAAArAEAACoAAAAAAAAAAAAAAAAApQUAAGNsaXBib2FyZC9kcmF3aW5ncy9fcmVscy9kcmF3aW5n&#13;&#10;MS54bWwucmVsc1BLAQItABQABgAIAAAAIQBvyoZWRAcAAOUjAAAaAAAAAAAAAAAAAAAAAMEGAABj&#13;&#10;bGlwYm9hcmQvdGhlbWUvdGhlbWUxLnhtbFBLAQItAAoAAAAAAAAAIQAA34pGgnwAAIJ8AAAbAAAA&#13;&#10;AAAAAAAAAAAAAD0OAABjbGlwYm9hcmQvbWVkaWEvaW1hZ2UxLmpwZWdQSwUGAAAAAAYABgCwAQAA&#13;&#10;+IoAAAAA&#13;&#10;"><v:imagedata src="file:///C:\Users\kenj\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png" o:title=""></v:imagedata></v:shape></SPAN><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoCaption><STRONG><FONT color=#4f81bd><FONT face=Calibri>Figure 2-Test Account used frequently on Hotmail for production testing<SPAN style="mso-bidi-language: EN-US"><o:p></o:p></SPAN></FONT></FONT></STRONG></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>If you were to look at TiP along a continuum at one end you would find the “Lab Centric” perspective and at the other you would find the “TiP Zealot.”<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The Lab argument would focus on making the lab as much like the production as possible.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If we are looking at Windows or Office that would include all kinds of hardware and peripheral devices, all kinds of applications for compatibility testing, and thousands of machines running automated tests.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>To be fair, this has worked well for Microsoft with respect to desktop applications and server products.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Even so we work with beta partners for them to deploy the next version of our products into production so we can get early feedback.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In this case though, production is often treated as a backup to testing in the lab; the test focus is still within the test lab.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>This approach to testing has been used by Microsoft and many other companies as the primary approach to testing web services.<o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri>The TiP zealot would argue that the lab will never be able to replicate the real world so all final sign off must happen in the real world, in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Looking again at the software side of things we see the example where we run betas that sometimes include millions of customers and identifying selected Technical Adoption Program (TAP) partners to sign off on final Release to Manufacturing (RTM).<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri><SPAN style="mso-spacerun: yes"></SPAN><o:p>&nbsp;</o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="mso-bidi-language: EN-US"><FONT size=3><FONT face=Calibri><o:p><IMG style="WIDTH: 529px; HEIGHT: 193px" title="TiP Continuuum" alt="TiP Continuuum" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/92/82/63/ServicesTiPContinuum.jpg" original-url="http://blogs.msdn.com/photos/kenj/images/9928263/original.aspx" width=529 height=193 mce_src="http://blogs.msdn.com/photos/kenj/images/9928263/original.aspx"></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3><FONT face=Calibri><SPAN style="mso-no-proof: yes"><v:shape style="WIDTH: 441pt; HEIGHT: 160.5pt; VISIBILITY: visible; mso-wrap-style: square" id=Picture_x0020_7 type="#_x0000_t75" o:spid="_x0000_i1025"><v:imagedata src="file:///C:\Users\kenj\AppData\Local\Temp\msohtmlclip1\01\clip_image003.jpg" o:title=""></v:imagedata></v:shape></SPAN><SPAN style="mso-bidi-language: EN-US"><o:p></o:p></SPAN></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoCaption><STRONG><FONT color=#4f81bd><FONT face=Calibri>Figure 3: Services TiP Continuum show the shift to more production testing<o:p></o:p></FONT></FONT></STRONG></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p></o:p><FONT face=Calibri><FONT size=3>The reality is whether we are talking software or a service we already conduct much of our testing in the real world and in production.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>What this series of posts attempts to do, is to organize a collection of best practices within the services space that will move us further along the TiP continuum safely toward a TiP centric perspective.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><FONT face=Calibri><FONT size=3>Future posts in this series will focus on three main sub-section from the original white paper.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These upcoming sections are essentially the why, the what, and the how of TiP: <o:p></o:p></FONT></FONT></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 10pt 0in 0pt 0.5in; mso-list: l0 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Why – Factors pushing us toward TiP<o:p></o:p></FONT></FONT></B></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 10pt 0in 0pt 0.5in; mso-list: l0 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><FONT face=Calibri><FONT size=3><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>What – Best Practices for TiP<o:p></o:p></FONT></FONT></B></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 10pt 0in 0pt 0.5in; mso-list: l0 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><FONT size=3><FONT face=Calibri><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>How – Enabling technologies for TiP<o:p></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Why</B> – Factors pushing us toward TiP discusses how factors such as Scale and Integration are forcing many services to test in the data center and even forcing them to test the data center itself.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Technology shifts such as Cloud Computing make it easier to test in production and other shifts such as an ever deepening stack of infrastructure layers make it impossible for us to replicate production in test labs.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">What</B> – Best Practices for TiP is likely the most fun for readers as I will simply lay out my top TiP Tips as a collection of best practices.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These practices will cover everything from the simple idea of purchasing production hardware in the data center that is used both for testing and production interchangeably to the relatively bold concept of shipping test hooks into production. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><FONT size=3><FONT face=Calibri><B style="mso-bidi-font-weight: normal">How</B> – Enabling technologies for TiP will wrap up this series by outlining some areas where we need new enabling technologies and improved architecture.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Many of these solutions should be built into the coming wave of Cloud Computing offering being made by just about every major software and Telco company in the world.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0in 0in 0pt 0.25in" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US">As I’m building this series off of the white paper written by me (<A href="https://twitter.com/rkjohnston" mce_href="https://twitter.com/rkjohnston">@rkjohnston</A>), </SPAN><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-language: EN-US; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US"><A href="https://twitter.com/sethel" mce_href="https://twitter.com/sethel">Seth Eliot</A> and Ravi Vedula the next installment should come out fairly soon.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>In the meantime if you have questions about TiP or just want to add your thoughts, please post a comment.</SPAN></DIV></DIV></DIV>]]></content:encoded>
    </item>
  </channel>
</rss>