<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SRT Solutions » Bill Wagner</title>
	
	<link>http://www.srtsolutions.com</link>
	<description />
	<lastBuildDate>Tue, 07 Feb 2012 16:16:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/billwagner" /><feedburner:info uri="billwagner" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>The efficiency of Self-Organizing Teams</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/dlsux9B9Mog/the-efficiency-of-self-organizing-teams</link>
		<comments>http://www.srtsolutions.com/the-efficiency-of-self-organizing-teams#comments</comments>
		<pubDate>Tue, 07 Feb 2012 16:16:33 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[SRT Solutions]]></category>
		<category><![CDATA[srtinsights]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/TheefficiencyofSelfOrganizingTeams</guid>
		<description><![CDATA[We experienced a great example of the efficiency of self-organizing teams last Friday. We’ve been in the same offices for several years now, and like many tech people we’ve started to accumulate aging tech equipment, and other stuff just lying aro... <p>Read more >> <a href="http://www.srtsolutions.com/the-efficiency-of-self-organizing-teams">The efficiency of Self-Organizing Teams</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/the-efficiency-of-self-organizing-teams' addthis:title='The efficiency of Self-Organizing Teams '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>We experienced a great example of the efficiency of self-organizing teams last Friday.</p>  <p>We’ve been in the same offices for several years now, and like many tech people we’ve started to accumulate aging tech equipment, and other stuff just lying around. That’s in addition to all the normal stuff that any business accumulates. </p>  <p>It was time to reorganize the physical space. We allocated last Friday afternoon to finding a place for everything and putting everything in its place. </p>  <p>There was very little pre-planning. Dianne Marsh and I made two specific recommendations: We were moving the bookcases into one office, and mounting a 42” TV / monitor on the wall in the library. Everything else was organized by the team. Our developers, our office manager, our sales and operations staff all pitched in. Everyone looked at where they could best help, took on tasks, and got things done. By the end of the day, all the clutter was stored in closets (neatly). All the equipment was in one space. The TV was on the wall, the bookcases were moved. The books are on the bookcases, totally organized.</p>  <p>No single person was in charge of the process. Everyone made decisions, and then communicated those decisions to others. </p>  <h1>What can we learn from this to apply to other activities?</h1>  <p>If you want to experience the satisfaction and the efficiency of self-organizing teams, I think there are a few lessons to draw from this example.</p>  <p>First of all, the goal was clearly stated: We need to more efficiently use our space or people. We’ve been consistently growing over the past several years, and if we are too cluttered, there’s not enough room for people. Everything in the office must be neat so we’re ready for customers or colleagues to visit at any time. A secondary goal was to know what we had in the office so we don’t unnecessarily buy more equipment. (I swear cables spontaneously divide and reproduce when left lying around.)</p>  <p>Second, don’t limit people’s contributions. We made very few decisions for others. As long as everything got put in a place that worked, we made no restrictions on how any problem got solved. Any group or individual was empowered to find a place and an organization for anything they found that was taking up space. </p>  <p>Third, positive peer pressure. We were all working together. No one could say they were doing something more pressing and skip out on the cleaning tasks.&#160; I honestly think nothing destroys team dynamics more than some tasks are ‘beneath’ them. </p>  <p>The end result from Friday is great. People have space to work individually, spaces to collaborate. We don’t have to move monitors and cables in order to find space at a desk. And everyone had a hand in it.</p>  <p>The more experience we get with Self-Organizing teams, the more impressed we are. You should try to experience it yourself.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/dlsux9B9Mog" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/the-efficiency-of-self-organizing-teams/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/the-efficiency-of-self-organizing-teams</feedburner:origLink></item>
		<item>
		<title>C# Puzzlers available for download</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/DMhOWyEEfiY/c-puzzlers-available-for-download</link>
		<comments>http://www.srtsolutions.com/c-puzzlers-available-for-download#comments</comments>
		<pubDate>Thu, 19 Jan 2012 13:53:15 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DevCenterPosts]]></category>
		<category><![CDATA[me]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/CPuzzlersavailablefordownload</guid>
		<description><![CDATA[My video series “C# Puzzlers” is live on both Safari and Inform IT. C# Puzzlers are a series of small puzzles that make you think about some specific facet of the C# language. I put together a series of exercises are several different facets of t... <p>Read more >> <a href="http://www.srtsolutions.com/c-puzzlers-available-for-download">C# Puzzlers available for download</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/c-puzzlers-available-for-download' addthis:title='C# Puzzlers available for download '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>My video series “C# Puzzlers” is live on both Safari and Inform IT. </p>  <p>C# Puzzlers are a series of small puzzles that make you think about some specific facet of the C# language. I put together a series of exercises are several different facets of the language. I think it’s an engaging way to get your mind around some of the areas of the language that commonly cause confusion for developers.</p>  <p>You can get the puzzlers at <a href="http://www.informit.com/store/product.aspx?isbn=0132756986" >InformIT</a>, or <a href="http://my.safaribooksonline.com/video/-/9780132946100" >Safari</a>.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/DMhOWyEEfiY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/c-puzzlers-available-for-download/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/c-puzzlers-available-for-download</feedburner:origLink></item>
		<item>
		<title>Why we don’t hire booth babes</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/fybTOk9X8E8/why-we-don%e2%80%99t-hire-booth-babes</link>
		<comments>http://www.srtsolutions.com/why-we-don%e2%80%99t-hire-booth-babes#comments</comments>
		<pubDate>Tue, 17 Jan 2012 21:44:16 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[SRT Solutions]]></category>
		<category><![CDATA[srtinsights]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/Whywedonthireboothbabes</guid>
		<description><![CDATA[While at CodeMash last week, both BBC and ZDNet published stories about the use of booth babes (BBC’s term) at conferences. We don’t hire models for our booth at conferences, and we’re not going to. TLDR version: It would misrepresent our com... <p>Read more >> <a href="http://www.srtsolutions.com/why-we-don%e2%80%99t-hire-booth-babes">Why we don’t hire booth babes</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/why-we-don%e2%80%99t-hire-booth-babes' addthis:title='Why we don’t hire booth babes '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>While at <a href="http://www.codemash.org" >CodeMash</a> last week, both <a href="http://www.bbc.co.uk/news/technology-16533289" >BBC</a> and <a href="http://www.zdnet.com/blog/violetblue/the-ces-2012-booth-babe-problem/963" >ZDNet</a> published stories about the use of booth babes (BBC’s term) at conferences. </p>  <p>We don’t hire models for our booth at conferences, and we’re not going to. </p>  <p>TLDR version: It would misrepresent our company.</p>  <p>OK, if you’re still with me, here’s the lengthy version. </p>  <p><strong>Problem 1:</strong> It gives the wrong impression about the company image.</p>  <p>This is the most important issue. We’ve got a great workplace with mutual respect among all our employees, male and female. Hiring models for a conference booth sends messages, subtle and not so subtle, about our company’s attitudes toward the roles of men and women in our business, and our company. Close your eyes and imagine a female software developer at GoDaddy. Their ad campaigns have affected your impression, and probably not in a good way.</p>  <p>When you execute a marketing or advertising campaign, you must live with the impression you’ve created. You don’t get to say “No, no, that’s not really us. We just did that to get your attention.” You’ve created an image, and you’ve associated that image with your company. Your prospects (as customers, colleagues, or employees) form their image of your company, your culture and your values based on the tools and images you use in your marketing and advertising campaigns. </p>  <p>If that image is not correct, you must work doubly hard to correct it. You must not only continue to build your positive brand image, you must live down the negative impression you’ve cultivated. It’s hard enough work telling the world how great you are. Don’t sabotage it by telling the world how bad you are.</p>  <p>The obvious reason we don’t use models at conferences is that it’s wrong for us. It works against our culture, our values, and the professionals (both women and men) that work here.&#160; For the same reason, we don’t use models on our website. The photos that you appear are people who work at SRT, either now, or in the past, when the photos were taken. But, this is the part where some marketing professional usually says, “I agree, but it works. We’ll do it anyway.”&#160; So let’s move on to why I believe it doesn’t even work. </p>  <p><strong>Problem 2</strong>: The increased traffic does not indicate increased interest in your business. It indicates increased interest in models. </p>  <p>Suppose there are 75 people at a 1000 person conference who may be interested in what we do. Our goal, as a business, is to maximize the quality time someone spends talking with those 75 people. Nothing else really matters to the business as a whole.</p>  <p>One serious challenge is that you don’t know who those 75 people are. Standard marketing logic says that if you get the highest number of people stopping by your booth, you’ll get the highest number of possible prospects. That may be true in certain markets, and at certain conferences, but I don’t think it applies all the time.</p>  <p>Suppose we hired models to work at our booth. I have no doubt that we would have more traffic. There would be, however, two problems: First of all, a lot of that increased traffic would not be there because of what we do as a company. The additional visitors would be interested in the models. They are probably not in that 75 attendees I mentioned earlier that are actually good prospects. All the models have done is increase bad traffic and make it harder to spot and have real conversations with the real prospects in the crowd.</p>  <p><strong>Problem 3:</strong> It drives away people actually interested in your business.</p>  <p>I’ve said nothing about the makeup of the 75 attendees actually interested in us. How many may be women that are turned off by a marketing strategy right out of “Mad Men”? How many, men or women, would be turned off by that image? How many might be interested in a deeper conversation about software development than they would be likely to have with a model?<a href="http://billwagner.cloudapp.net/Home/Item/Whywedonthireboothbabes#note1">[1]</a> Would they visit, or would they avoid the booth entirely? Real prospects may decide there’s too much traffic, and just ignore it altogether.</p>  <h1>So what will you see at our booth?</h1>  <p>We will demonstrate something interesting about us and our thoughts on software development. This last week at CodeMash, we demoed an original game built using the Microsoft Kinect. We did that because we believe there are interesting opportunities to use the Kinect in many applications; it’s important for us to demonstrate that we are already learning this. That’s a key part of the message: Our company stays at the forefront of technology trends, and is often even ahead of our markets. Our technical employees are given time to investigate these new ideas and build software that shows the result of these investigations.</p>  <p>In years past, we’ve shown mobile applications, cloud based applications, and a game controlled by the wii remotes. I don’t know what we’ll build next year. We’re still planning that.</p>  <p>Everyone at our booth works for <a href="http://www.srtsolutions.com" >SRT Solutions</a>. Depending on the conference, they may have a more technical role (like at CodeMash), or a more business oriented role. It depends on the audience, and the conversations that will likely occur. Anyone you see at the our booth represents the company with their knowledge and their professionalism.</p>  <p>You’ll see people dressed pretty much like a normal work day. In fact, if anyone asks for guidance, we’ll say “dress the way you would to attend a customer meeting.” That’s consistent with our culture and our values. And, it’s the same advice regardless of the questioner’s gender.</p>  <h1>Do I have a point?</h1>  <p>Personally, I believe that the way you market yourself, or your company, is about more than simply generating a high number of leads. Your marketing creates an image of your company. If you’re successful, your marketing imparts that image to many different prospects: customers, partners, employees, and more. You don’t want to live down a marketing campaign that is at odds with your company culture. You’ll attract too many of the wrong prospects, and too few of the right ones. There’s the common phrase that says “half of all your marketing is wasted, you just don’t know which half.” If your marketing is at odds with your values, the sad fact is that all your marketing is wasted.</p>  <blockquote>   <p><a name="note1">[1]</a> This is not to say that models are not smart. I’m just saying they know less about software development, and our business, than our employees.</p></blockquote><img src="http://feeds.feedburner.com/~r/billwagner/~4/fybTOk9X8E8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/why-we-don%e2%80%99t-hire-booth-babes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/why-we-don%e2%80%99t-hire-booth-babes</feedburner:origLink></item>
		<item>
		<title>Struct vs. Class, Safety vs. Speed</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/-Y3gu2pBJ1E/struct-vs-class-safety-vs-speed</link>
		<comments>http://www.srtsolutions.com/struct-vs-class-safety-vs-speed#comments</comments>
		<pubDate>Mon, 16 Jan 2012 17:03:46 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[DevCenterPosts]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/StructvsClassSafetyvsSpeed</guid>
		<description><![CDATA[While at CodeMash, I had an interesting conversation with Cori Drew regarding some code in Effective C#, and some comments from Jon Skeet in our combined async talks. These comments involve breaking some common recommendations, and performance. In our... <p>Read more >> <a href="http://www.srtsolutions.com/struct-vs-class-safety-vs-speed">Struct vs. Class, Safety vs. Speed</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/struct-vs-class-safety-vs-speed' addthis:title='Struct vs. Class, Safety vs. Speed '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>While at <a href="http://www.codemash.org" >CodeMash</a>, I had an interesting conversation with <a href="http://truncatedcodr.wordpress.com/" >Cori Drew</a> regarding some code in Effective C#, and some comments from Jon Skeet in our combined async talks. These comments involve breaking some common recommendations, and performance.</p>  <p>In our talk, Jon described how the C# compiler creates a mutable struct when it builds the state machine that handles async continuations. Jon discussed that the nested struct was faster than a nested class. Contrast that with code in Effective C#, where I showed the following code:</p>  <div id="codeSnippetWrapper">   <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> List&lt;T&gt; : IEnumerable&lt;T&gt;<br />{<br />    <span style="color: #0000ff">private</span> <span style="color: #0000ff">class</span> Enumerator&lt;T&gt; : IEnumerator&lt;T&gt;<br />    {<br />        <span style="color: #008000">// elided</span><br />    }<br /><br />    <span style="color: #0000ff">public</span> IEnumerator&lt;T&gt; GetEnumerator()<br />    {<br />        <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> Enumerator&lt;T&gt;();<br />    }<br /><br />    IEnumerator IEnumerable.GetEnumerator()<br />    {<br />        <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> Enumerator&lt;T&gt;();<br />    }<br />}<br /></pre>

  <br /></div>

<p>Well, Cori asked, why didn’t I make the Enumerator&lt;T&gt; a struct (which is what the BCL does):</p>

<div id="codeSnippetWrapper">
  <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> List&lt;T&gt; : IEnumerable&lt;T&gt;<br />{<br />    <span style="color: #0000ff">private</span> <span style="color: #0000ff">struct</span> Enumerator&lt;T&gt; : IEnumerator&lt;T&gt;<br />    {<br />        <span style="color: #008000">// elided</span><br />    }<br /><br />    <span style="color: #0000ff">public</span> IEnumerator&lt;T&gt; GetEnumerator()<br />    {<br />        <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> Enumerator&lt;T&gt;();<br />    }<br /><br />    IEnumerator IEnumerable.GetEnumerator()<br />    {<br />        <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> Enumerator&lt;T&gt;();<br />    }<br />}<br /></pre>

  <br /></div>

<p>So, why didn’t I?</p>

<p>Well, as Eric Lippert points out, “<a href="http://blogs.msdn.com/b/ericlippert/archive/2008/05/14/mutating-readonly-structs.aspx" >mutable value types are evil</a>.”&#160; In general, you should avoid mutable structs. If your type requires mutation to work properly, you should use a reference type. Implementing IEnumerator requires mutation (keeping track of the current item), so you should use a reference (class) type. Unless you are really sure that you need a struct, you should use a class for any type that supports mutating operations.</p>

<p>Because of that, I chose to demonstrate with a class rather than a struct. I felt it would be too likely for readers to copy the code and use it in different situations where the special circumstances that are in play in both async state machines and the nested List iteration are no longer true. I chose to give up some performance in return for a more general idiom that would be correct in more situations.</p>

<p>Given that, let’s discuss why the mutable struct works in these two situations. </p>

<p>In the case of the nested Enumerator class, it’s because of one of the rules for converting a struct to an interface type. When a struct is converted to an interface, it isn’t actually unboxed. The box implements the interface, and adapts the methods defined on the interface by forwarding them to the struct in the box. The struct does not get unboxed and copied on each function call. See Section 11.3.5 of the C# spec for details. Read the following guidance carefully:</p>

<blockquote>
  <p>If your struct will always be accessed through an interface pointer, that struct can be safely mutable because it will never be unboxed.</p>
</blockquote>

<p>The nested private Enumerator satisfies this requirement. It is a nested private type, so that other code cannot access it through the struct value. Client code can only access it through the interface reference, and therefore, the above rule always applies. </p>

<p>The nested structure that implements the state machine in an async scenario also follows a similar pattern, and therefore is safe. </p>

<p>OK, before you go just applying this rule to structs in your programs, read that guideline again carefully. Notice the strong ‘always’ and ‘never’. There can be no exceptions. In the case of the nested enumerator, this is enforced by the fact that GetEnumerator() returns the interface, not the struct. In the case of the nested struct in the async state machine, it’s enforced because it’s in compiler generated code. </p>

<p>You’re probably not so lucky. Chances are you work with other developers. Someday, someone will make some changes to your code so that one of those rules will be broken. Then, bugs will start to crop up.</p>

<p>Even if you are completely sure that those rules will never be violated, take care. Just because you can get away with something safely doesn’t mean you should turn away from normal guidance. In both these cases, the performance gains by changing from a class to a struct, can be significant. That significant performance gain coupled with the guaranteed safety does mean that its worth breaking the normal guidance.</p>

<p>In the case of the nested Enumerable, the performance gains come from the fact that this code will execute very often over the course of many programs. </p>

<p>In the case of the asyn methods, it’s because the team wants to optimize the ‘hot’ path for async methods. The reason is that you (and me) should prefer making a method async if there is a possibility that it will take enough time to warrant it. We shouldn’t worry that declaring a method async will cause an undo performance burden over its synchronous counterpart. With that in mind, the team is working very hard to optimize those code paths.</p>

<p>If you want to switch from a class to a struct, you should perform some measurements and make sure that the change will actually give you the increased performance you seek.</p>

<p>In the end, the same old advice often holds true: Make it work well. Then, once you’ve measured and determined that performance for a given location is critically important, make the changes necessary to achieve those goals. In my books, I wanted to try hard to write general guidance, and I avoided most performance based guidance. It seemed safer than trying to ensure that readers would remember all the specific rules for a particular optimization.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/-Y3gu2pBJ1E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/struct-vs-class-safety-vs-speed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/struct-vs-class-safety-vs-speed</feedburner:origLink></item>
		<item>
		<title>Looking forward to CodeMash: Inside and Outside</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/eH08MiItogc/looking-forward-to-codemash-inside-and-outside</link>
		<comments>http://www.srtsolutions.com/looking-forward-to-codemash-inside-and-outside#comments</comments>
		<pubDate>Tue, 03 Jan 2012 13:34:07 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[local interest]]></category>
		<category><![CDATA[me]]></category>
		<category><![CDATA[SRT Solutions]]></category>
		<category><![CDATA[upcoming attractions]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/LookingforwardtoCodeMashInsideandOutside</guid>
		<description><![CDATA[For most people, the holiday season is over, but here, where Michigan and Ohio meet, there is one more major event:&#160; CodeMash. I have not yet figured out my entire schedule, but there’s a few things I plan to concentrate on.&#160; I need to le... <p>Read more >> <a href="http://www.srtsolutions.com/looking-forward-to-codemash-inside-and-outside">Looking forward to CodeMash: Inside and Outside</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/looking-forward-to-codemash-inside-and-outside' addthis:title='Looking forward to CodeMash: Inside and Outside '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>For most people, the holiday season is over, but here, where Michigan and Ohio meet, there is one more major event:&#160; CodeMash. </p>  <p>I have not yet figured out my entire schedule, but there’s a few things I plan to concentrate on.&#160; I need to learn more about WinRT. I’ve had too little time to build samples and learn about it yet. I want to learn more about Scala, an exciting functional style language that runs on the JVM. Beyond those specific goals, I want to learn about techniques I can apply across any platform. I don’t believe I’ve learned as much as I can about modern software engineering techniques: testing, continuous improvement, advances in languages, frameworks, and libraries. I want to spend as much time as possible in sessions that are not platform specific, or language specific. </p>  <p>I am giving two different talks this year.&#160; Early Friday afternoon, I have “<a href="http://www.codemash.org/Sessions#C%23+Stunt+Coding:+I+Dare+You+to+Try+This+at+Home" >C# Stunt Coding: I Dare You to Try This at Home</a>” This is a really fun talk to give. I get to start by saying that all the techniques I’m explaining are for edge cases, and specific problems, so chances are you will rarely want to use them in your everyday coding activities. Of course, that means everyone will pay careful attention, and immediately try everything I show the very next day. There’s no avoiding it. Developers just think that way. That makes it more fun.</p>  <p>Spoiler Alert</p>  <p>Ok, not really.</p>  <p>The other talk I have is “<a href="http://www.codemash.org/Sessions#Async+From+the+Outside" >Async From the Outside</a>”, where I discuss how the new async programming model in C# 5 introduces new ways to to make async programming easier.&#160; You may have noticed that the abstract for Async From the Outside references the talk “<a href="http://www.codemash.org/Sessions#Async+From+the+Inside" >Async From the Inside</a>”, given by <a href="http://msmvps.com/blogs/jon_skeet/" >Jon Skeet</a>, author of the very popular and respected “<a href="http://www.amazon.com/C-Depth-Second-Jon-Skeet/dp/1935182471" >C# In Depth</a>”. If you look at the abstract for Async from the Inside, you’ll see it references Async From the Outside.</p>  <p>There’s a few more items you should notice about these two talks:</p>  <ul>   <li>They are in the same room </li>    <li>The second (inside) immediately follows the first (outside) </li> </ul>  <p>You may be thinking that it would be better to mash these two talks together, giving attendees two hours of async inside and out. </p>  <p>Well, Jon and I thought the same thing. We’re working together on a single stream of content, with both of us working together for the duration of the two talks. We’ll discuss how to use a feature, how it’s implemented, and how to use it in your regular development activities.</p>  <p>Well CodeMash fans, this will be the first time Jon and I have met in person. We’ve emailed, chatted, skyped, google talked, and been on <a href="http://www.dotnetrocks.com/default.aspx?showNum=611" >.NET Rocks together</a>, but we’ve never yet met in person. I’m looking forward to it. Jon and I are working quite diligently to make sure we deliver quality content.&#160; </p>  <p>Jon also has his own individual talk to give: <a href="http://www.codemash.org/Sessions#C%23's+Greatest+Mistakes" >C#’s Greatest Mistakes</a>. I’m really looking forward to that one as well.&#160; Jon has shared some of the content with me. He’s one of a very small set of people that can give a talk like this, and make it a great talk for people to learn, not a screed. It’s one of Jon’s best qualities: the skill to be critical, yet positive. </p>  <p>Jon has written a similar <a href="http://msmvps.com/blogs/jon_skeet/archive/2012/01/01/awaiting-codemash-2012.aspx" >post</a> on CodeMash. </p><img src="http://feeds.feedburner.com/~r/billwagner/~4/eH08MiItogc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/looking-forward-to-codemash-inside-and-outside/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/looking-forward-to-codemash-inside-and-outside</feedburner:origLink></item>
		<item>
		<title>Want to work at SRT?</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/NdFUsCfZBfI/want-to-work-at-srt</link>
		<comments>http://www.srtsolutions.com/want-to-work-at-srt#comments</comments>
		<pubDate>Mon, 19 Dec 2011 20:01:07 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[local interest]]></category>
		<category><![CDATA[SRT Solutions]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/WanttoworkatSRT</guid>
		<description><![CDATA[Dianne Marsh and I have been doing some planning for our expected growth. We will be doing more announcements during the course of the next year. Right now, we’ve got an immediate opening for a business development associate. (I know that most of m... <p>Read more >> <a href="http://www.srtsolutions.com/want-to-work-at-srt">Want to work at SRT?</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/want-to-work-at-srt' addthis:title='Want to work at SRT? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Dianne Marsh and I have been doing some planning for our expected growth. We will be doing more announcements during the course of the next year. </p>  <p>Right now, we’ve got an immediate opening for a business development associate. (I know that most of my readers are developers, so please pass this on, if you know someone interested in joining us in this capacity). </p>  <p>Of course, we are always interested in talking to exceptional developers about our ongoing growth plans as well.</p>  <p>You can read more <a href="http://www.srtsolutions.com/want-to-work-at-srt" >here</a>.</p>  <p>I promise: the next posts will have the technical content most of my readers prefer.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/NdFUsCfZBfI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/want-to-work-at-srt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/want-to-work-at-srt</feedburner:origLink></item>
		<item>
		<title>Software: The most important Growth Industry</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/ktaxE7ofS5k/software-the-most-important-growth-industry</link>
		<comments>http://www.srtsolutions.com/software-the-most-important-growth-industry#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:33:03 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[SRT Solutions]]></category>
		<category><![CDATA[srtinsights]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/SoftwareThemostimportantGrowthIndustry</guid>
		<description><![CDATA[Earlier this week, I read two interesting articles on the importance of software and developer talent to future economic growth and prosperity. They are particularly important because I’ve been asked to participate in some of the talent initiatives M... <p>Read more >> <a href="http://www.srtsolutions.com/software-the-most-important-growth-industry">Software: The most important Growth Industry</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/software-the-most-important-growth-industry' addthis:title='Software: The most important Growth Industry '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I read two interesting articles on the importance of software and developer talent to future economic growth and prosperity. They are particularly important because I’ve been asked to participate in some of the <a href="http://www.michigan.gov/documents/snyder/SpecialMessageonTalent_369995_7.pdf" >talent initiatives</a> Michigan Governor Rick Snyder announced last week.</p>  <p>Let’s start with the Forbes’ article “<a href="http://www.forbes.com/sites/techonomy/2011/11/30/now-every-company-is-a-software-company/" >Now Every Company Is A Software Company</a>” The deck quote ties it directly to Michigan, “Ford sells computers-on-wheels”. The thesis of the article is that no matter what business you think you are in, you are in the software business. I’ve been saying this for almost a decade. Are you developing innovations for healthcare? You need software. Are you in advanced manufacturing? You need software. Entertainment? Software runs that too. Marketing / Branding / presence? You better have a social media and internet strategy. That takes software. </p>  <p>Businesses have to be incredibly smart about creating software that provides true value for their business, and leveraging commercial software in other areas. Our customers don’t ask us to build everything from scratch. There’s no return on that investment. On the other hand, they can’t create the kind of innovations they need without some custom development. If all they do is use software that is commercially available, they can’t differentiate themselves from their competition.</p>  <p>From this perspective, I’m impressed with the emphasis on the software industry in Gov. Snyder’s talent address. Software requires less capital, and a high percentage of that capital goes to pay wages for developers. Software business investment provides a very quick and very high return to the overall economy.</p>  <p>Next, there’s an article in Forbes about <a href="http://www.forbes.com/sites/venkateshrao/2011/12/05/the-rise-of-developeronomics/" >the rise of Developeronomics</a>. There’s a lot of hyperbole in this article regarding developers, money, and talent in general. It is well written, and it is a fun read. The core thesis though is very good: Good developers are valuable.&#160; Really good developers are really, really, valuable. </p>  <p>This paragraph sums up the software developer scene well:</p>  <blockquote>   <p>In the midst of a thoroughly gloomy labor market, the genuine desperation you see in the software talent wars is almost surreal. Almost every day, I see big companies, little companies, entrepreneurs, wannabe entrepreneurs and even venture capitalists join in the hunt. The talent hunters infest LinkedIn, troll Quora, and trawl Facebook and Google+. Cartoons of homeless-looking CEOs holding up signs that say “Looking for a technical co-founder” are doing the rounds. Heck, I am one of these talent hunters (any star iOS developers out there interested in working with me?).</p> </blockquote>  <p>That paragraph sums up the strategic importance of software developers. It’s important for companies, for local economies, for regional economies, and even for nations. It explains some of the importance of the ‘10x’ effect, coined by Fred Brooks: The best developers are an order of magnitude greater than the average developers. There’s also a ‘-10x’ effect, where the worst developers are capable of dragging down entire teams.</p>  <p>In addition, developers more and more now understand their economic value. They will explore the market, locally, regionally, nationally, and even world wide. They will attract their fair wage, or higher. </p>  <p>But of course, the best developers are interested in benefits beyond money when they pick a job. As the author points out, a developer’s skills have a relatively short shelf life. It’s career suicide to get stuck in an aging technology where career opportunities are slim. </p>  <p>Let’s tie this to Michigan’s talent initiatives. </p>  <p>There’s a serious disconnect between the developers currently seeking jobs, and the technical skills employers are seeking now. As a reader of my blog, I’m sure you’re familiar with many of the skills that are in demand: .NET, Java platform, mobile, web, tablet, cloud. The current applicant pool has a very different skillset: AS400, mainframe, COBOL, and so on. That’s the reason for several of the programs:&#160; To address the shortage of developers, the state needs to update the skills of a generation of developers whose former employers did not stay current with modern software development tools and techniques. (As an aside, there is a corollary with business failure and the absence of a coherent software strategy. More on that in another blog post). There are two very important goals for this program. The first is to teach these developers the immediate skills they need to become employable in today’s software job market. The second, and far more important, goal is to reconnect these developers with the area software community. If they stay engaged, and take control of their own career, they will continue to update their skills, and continue to be relevant to the current job market. That will be the major win, to teach a much greater percentage of our software developers to stay relevant. The Forbes article discusses “The Lifecycle of Software Talent”, where developers grow more and more skills, but eventually becomes an expert in some ecosystem and never move on:</p>  <blockquote>   <p>As a developer ages, and finds it harder and harder to switch technologies, at some point, he or she is considered hooked for the rest of their natural lives to some technology — Java or C++ or the Facebook API say — that they can be expected to grow old with. When a technology hits that point of maturity, talent that’s hooked to it starts getting devalued along with falling retention costs. The buffets become skimpier, compensation drops, churn is lowered, and the talent retires into the sunset with the technology. It’s quite poignant really, like a crew going down with a ship.</p> </blockquote>  <p>You have to fight that. The best recommendation (from the same article): “The really talented ones retain an evergreen ability to reinvent themselves around the latest, youngest technology layer, seemingly at will.”&#160; </p>  <p>The software landscape in Michigan is the legacy of a generation of developers that did not do that, believing in life-long job security. The current situation, and the programs to address them, should serve as an example to developers, young and not-so-young, to follow that advice and continue to invest in relevant skills throughout their entire careers.&#160; The more we grow a modern, talented software talent pool in Michigan, the more our region will prosper.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/ktaxE7ofS5k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/software-the-most-important-growth-industry/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/software-the-most-important-growth-industry</feedburner:origLink></item>
		<item>
		<title>Book Review:  Good Strategy, Bad Strategy</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/sZic4r2b1No/book-review-good-strategy-bad-strategy</link>
		<comments>http://www.srtsolutions.com/book-review-good-strategy-bad-strategy#comments</comments>
		<pubDate>Wed, 30 Nov 2011 15:52:37 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BookReviews]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[srtinsights]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/BookReviewGoodStrategyBadStrategy</guid>
		<description><![CDATA[I don’t often review business books here, but “Good Strategy, Bad Strategy: The Difference and why it matters”, by Richard Rumelt is an exception. For my audience, the best feature is that Rumelt is an engineer by training. He explains strategy ... <p>Read more >> <a href="http://www.srtsolutions.com/book-review-good-strategy-bad-strategy">Book Review:  Good Strategy, Bad Strategy</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/book-review-good-strategy-bad-strategy' addthis:title='Book Review:  Good Strategy, Bad Strategy '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>I don’t often review business books here, but “<a href="http://www.amazon.com/Good-Strategy-Bad-Difference-Matters/dp/0307886239" >Good Strategy, Bad Strategy: The Difference and why it matters</a>”, by Richard Rumelt is an exception.</p>  <p>For my audience, the best feature is that Rumelt is an engineer by training. He explains strategy from an engineering and scientific perspective. He begins his discussion by going over examples where a mission, or a set of buzz-word heavy press releases substitutes for strategy. From that moment on, you know this is not the normal business book. He picks apart such empty direction with the precision of an engineer, or a dilbert cartoon.</p>  <p>That first part of the book is a quick read, and quite humorous. Its value is in preparing you for the second and third parts of the book. That’s where the real value is. </p>  <p>The second section “Sources of Power”, describes where you can find leverage, or power, that enables a well-thought out strategy to succeed. You’ll learn to recognize drivers that can be part of a great strategy. Most of all, you’ll learn the elements of any successful strategy. On almost every page, I found something that I could apply immediately, and I’ve already found myself thinking through his examples and applying them to our current environment.</p>  <p>The final section “Thinking like a Strategist” provides insight into how to use your brain to evaluate strategies, and to create your own good strategies. In addition to learning to recognize a good strategy, you’ll learn how to create and execute good strategy. You’ll finally learn how to benchmark results of executing a strategy. Most importantly, you’ll gain insight into when and how to consider modifying, or even replacing a strategy that is not giving the results you hoped for.</p>  <p>It’s not often that I read a business book, and walk away thinking “I can use this immediately”. This book gave me that feeling several times. I was constantly finding new ideas, new techniques and tools to help me running our business. It’s well worth the read.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/sZic4r2b1No" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/book-review-good-strategy-bad-strategy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/book-review-good-strategy-bad-strategy</feedburner:origLink></item>
		<item>
		<title>I’m speaking at CodeMash in 2012</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/OoT1jBcVnbg/i%e2%80%99m-speaking-at-codemash-in-2012</link>
		<comments>http://www.srtsolutions.com/i%e2%80%99m-speaking-at-codemash-in-2012#comments</comments>
		<pubDate>Thu, 20 Oct 2011 18:31:39 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeMash]]></category>
		<category><![CDATA[DevCenterPosts]]></category>
		<category><![CDATA[upcoming attractions]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/ImspeakingatCodeMashin2012</guid>
		<description><![CDATA[First, let me preface this by saying I’m truly amazed at the quality and quantity of of submissions.&#160; I’m not on the speaker selection committee, so I don’t see all the abstracts. Several colleagues whom I greatly respect have shared their t... <p>Read more >> <a href="http://www.srtsolutions.com/i%e2%80%99m-speaking-at-codemash-in-2012">I’m speaking at CodeMash in 2012</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/i%e2%80%99m-speaking-at-codemash-in-2012' addthis:title='I’m speaking at CodeMash in 2012 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>First, let me preface this by saying I’m truly amazed at the quality and quantity of of submissions.&#160; I’m not on the speaker selection committee, so I don’t see all the abstracts. Several colleagues whom I greatly respect have shared their talk ideas.&#160; There were simply more great talks than they were slots.&#160; I can’t imagine a harder task than being part of the CodeMash speaker selection committee It’s especially hard because there are so many different technologies represented.</p>  <p>That said, I’m super thrilled to have made the list for 2012.&#160; I’ve actually got two talks, and I’m excited to deliver both of them.</p>  <p>The first is <a href="http://www.codemash.org/Sessions#C%23+Stunt+Coding:+I+Dare+You+to+Try+This+at+Home" >C# Stunt Coding: I dare you to try this at home</a>. In this talk, I get to stretch the C# language in ways you don’t expect.&#160; I’ll show techniques to do things you don’t think C# can do. Every technique will come with the warning that it’s one of those techniques that you should only apply in rare situations.&#160; Knowing most C# developers and CodeMash attendees, that will only make you want to use them more. </p>  <p>The second is <a href="http://www.codemash.org/Sessions#Async+From+the+Outside" >Async from the Outside</a>. This talk will discuss how the async and await keywords will change the way you code in C#. I’ll discuss the async features, and go over coding practices you should adopt to make sure that you’re making the most use of these new tools.&#160; You may have heard that async APIs are much more prominent in the WinRT library. That’s true, and that’s why many of the demos here will be designed for the Windows 8 Metro platform. People interested in the inner workings of the async details should attend <a href="http://www.codemash.org/Sessions#Async+From+the+Inside" >Async from the Inside</a> given by <a href="http://msmvps.com/blogs/jon_skeet/" >Jon Skeet</a>.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/OoT1jBcVnbg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/i%e2%80%99m-speaking-at-codemash-in-2012/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/i%e2%80%99m-speaking-at-codemash-in-2012</feedburner:origLink></item>
		<item>
		<title>Build, one week later</title>
		<link>http://feedproxy.google.com/~r/billwagner/~3/vLbx6FaF88w/build-one-week-later</link>
		<comments>http://www.srtsolutions.com/build-one-week-later#comments</comments>
		<pubDate>Mon, 26 Sep 2011 17:29:26 +0000</pubDate>
		<dc:creator>Bill Wagner</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[srtinsights]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://billwagner.cloudapp.net/Home/Item/Buildoneweeklater</guid>
		<description><![CDATA[It’s a little more than a week after //build/ and now I’ve had time to let more of the announcements, changes, and future technology sink in. Users: Windows 8 and Metro I’ve tried to spend the last week using the //build/ tablet and metro almo... <p>Read more >> <a href="http://www.srtsolutions.com/build-one-week-later">Build, one week later</a></p><div class="addthis_toolbox addthis_default_style " addthis:url='http://www.srtsolutions.com/build-one-week-later' addthis:title='Build, one week later '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>It’s a little more than a week after //build/ and now I’ve had time to let more of the announcements, changes, and future technology sink in. </p>  <h2>Users: Windows 8 and Metro</h2>  <p>I’ve tried to spend the last week using the //build/ tablet and metro almost exclusively. It helped that I was at a conference toward the end of the week, and I traveled with only the tablet. </p>  <p>Forcing yourself to live in the new UI for almost a full week was an eye-opening experience. After a short time, I stopped comparing Metro to the full desktop. I stopped wanting the desktop experience. It’s very efficient. It’s easy to use. I’m totally addicted to the instant on experience. </p>  <p>In short, I did everything I could in the Metro shell, and became a sad panda whenever I needed to use the classic desktop.</p>  <h2>Users: Working with Desktop Apps</h2>  <p>Working in the classic desktop using the //build/ machine is clearly a compatibility play. It works, It does what it’s supposed to do, which is to ensure your existing software investment works on tablet, but it does feel second-class. It’s not the same experience. The performance feels wrong. The crispness is missing. The ease of use is missing. </p>  <p>I found I liked the Metro UI so much better, and had gotten so accustomed to it that I found myself trying to manipulate my desktop as a touch screen once I returned home.</p>  <p>In fact, that’s the single biggest lesson as I close this section and move to the developer section: </p>  <blockquote>   <p><em><strong>I firmly believe that once Windows 8 is out, Metro apps will destroy classic desktop apps in the market. The only desktop apps that will survive in the long term will be those that don’t have Metro alternatives. </strong></em></p> </blockquote>  <p>Of course, not every application is applicable to Metro. Let’s talk about developing software.</p>  <h2>Developers: The future experience</h2>  <p>Just like we don’t develop software for phone devices using a phone, We don’t develop for Metro using the Metro UI. You’ll use the desktop experience (and whatever your favorite IDE is) to build Metro apps.&#160; This speaks to the difference between the developer tablet given at //build/ and the consumer tablets that I think will dominate the market when Windows 8 releases.</p>  <p>The developer tablet from //build/ is not the right price point to compete with competitive platforms. End users will buy hardware that is more streamlined for their use, at a lower price point. As you design and develop your applications remember that: Your users will likely have a more painful desktop experience with their tablet devices than you do. They’ll want to spend even more time in Metro.</p>  <p>That’s why I believe it makes sense for you (and I) as developers to spend as much time as possible in Metro. The more time you spend in native Metro apps, the more you’ll understand what makes a great Metro UI.</p>  <p>By the time Windows 8 becomes released, I hope to have Metro versions of every non-developer application I use. Unless I’m developing code, I want to be in the Metro UI. It will feel like an earlier time when we often used cross-compilers and the development hardware was not the same as the deployment hardware.</p>  <h2>Developers: Your next Hardware</h2>  <p>But hey, you’re a developer. You (like me) will spend long stretches of the day in Visual Studio creating applications. For this, I really like the //build/ hardware. I put it in the dock, hook up my external keyboard, mouse, and large-screen HDMI monitor, and get to work. </p>  <p>This sets the Windows 8 developer experience apart from many competitive platforms. On Windows 8, you can develop for the metro platform on a Metro device, as long as you plug in some accessories. The beauty of that is you may be able to travel lighter, with only one device. </p>  <p>I am hoping that I can continue to find what I’m calling a “developer class tablet” once Win8 is released. It would be a great experience to carry a smaller form factor device, and still be able to do all the developer work I need to do.</p><img src="http://feeds.feedburner.com/~r/billwagner/~4/vLbx6FaF88w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.srtsolutions.com/build-one-week-later/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.srtsolutions.com/build-one-week-later</feedburner:origLink></item>
	</channel>
</rss>

