<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Tooth of the Weasel</title>
	<atom:link href="http://angryweasel.com/blog/?feed=rss2&#038;p=8" rel="self" type="application/rss+xml" />
	<link>http://angryweasel.com/blog</link>
	<description>notes and rants about testing and quality from alan page</description>
	<lastBuildDate>Thu, 06 Jun 2013 14:26:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Coding, Testing, and the &#8220;A&#8221; Word</title>
		<link>http://angryweasel.com/blog/?p=649</link>
		<comments>http://angryweasel.com/blog/?p=649#comments</comments>
		<pubDate>Thu, 06 Jun 2013 05:06:40 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=649</guid>
		<description><![CDATA[I frequently go days at work without writing code. On many days, I do “typical” test activities (seeing what works, what doesn’t work, etc.) Some days I’m debugging all day. Other days, I’m sifting through the perl and batch scripts that bolt our build process together. On other days, I’m managing projects, tweaking excel, or [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
<li><a href='http://angryweasel.com/blog/?p=286' rel='bookmark' title='Testing with code'>Testing with code</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I frequently go days at work without writing code. On many days, I do “typical” test activities (seeing what works, what doesn’t work, etc.) Some days I’m debugging all day. Other days, I’m sifting through the perl and batch scripts that bolt our build process together. On other days, I’m managing projects, tweaking excel, or trying not to cause too many problems in SQL. This afternoon, at least after lunch, was coding time – and probably the first extended code time I’ve had in a few weeks.</p>
<p>Without too many boring details, I had a backlog item to write a service to automatically launch a memory analysis tool and periodically take snapshots of memory allocations in specified processes. The memory analysis tools (which I also <s>wrote</s> adapted from another project) work really well, but need a lot of manual intervention in order to get accurate data. I wrote a quick “spec” on my whiteboard, wrote tests as I went along, and in about four hours I had it up and running successfully. I’m confident that the service will make it much easier for our team to find and isolate memory issues. To me, writing this tool was a <i>testing activity</i>. It doesn’t test anything, but certainly makes testing of the product much easier.</p>
<p>On my drive home, I was pondering the universe (and my day) and remembered that there’s a sad bit of truth in the software world. It’s a fallacy that causes great confusion. It promotes poor strategies, bad hiring decisions, and endless confusion among management, contributors, and consultants. It may very well be the most misunderstood word in the world of software. It’s the “A” word that is practically ruining testing.</p>
<p>Automation.</p>
<p>Yes – as much as I hate them, I used a one word paragraph. I did it because the abuse and misuse of “automation” in testing is causing too many smart people to do too many dumb things. That said, I suppose an explanation is in order.</p>
<p>Once upon a time, someone noticed that testers who knew how to code (or coders who knew how to test) were doing some wicked-cool testing. They had tools and stress tests and monitoring and analysis and they found great bugs that nobody else could find – “Test Developers” were all the rage…so we (the industry) hired more of them. Not much later (and possibly simultaneously), someone else decided that testers who could code could <i>automate</i> all of the tasks that the silly testers who didn’t code <i>used</i> to do. Instead of finding really cool bugs, coding testers were now <i>automating</i> a bunch of steps previously done manually. Not to be left out, UI automation frameworks began to sprout, with a promise that “anyone can automate – <i>even a tester</i>.” Now, test teams can spend the bulk of their time maintaining and debugging tests that <i>never should have been automated in the first place.</i></p>
<p>And that was the first step into darkness.</p>
<p>This mindset, although common, kills me: </p>
<ul>
<li>Testers who code write automation </li>
<li>Automation is primarily made up of a suite of user tasks </li>
<li>Automation is primarily done through the GUI </li>
</ul>
<p>All of these items are, in my opinion, idiotic &#8211; and likely <em>harmful</em> to software quality. It focuses test teams in the wrong place and is, frankly, insulting to testers who know coding. </p>
<p>If you’re a tester who writes code (or a coder who cares about testing), try this: </p>
<ul>
<li>Write tools that help you find important bugs quickly </li>
<li>Write a few high level tests that ensure user actions “work”, but leave most of it for exploratory testing, user testing (assuming you have great monitoring tools), or both. </li>
<li>If you must write GUI tests for the above, write fewer of them (that way you’ll spend less time investigating their flaky behavior).
</p>
</li>
</ul>
<p>If you’re a tester who writes code, you’re not a test automator, you’re not a test automation engineer, and you don’t write test automation or test code.</p>
<p>You write code. And you test.</p>
<p>You write code that helps the product get out the door sooner. And if the code you write (or the testing you do) doesn’t help the product, why are you doing it in the first place?</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
<li><a href='http://angryweasel.com/blog/?p=286' rel='bookmark' title='Testing with code'>Testing with code</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=649</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Rockin&#8217; STAR West</title>
		<link>http://angryweasel.com/blog/?p=648</link>
		<comments>http://angryweasel.com/blog/?p=648#comments</comments>
		<pubDate>Fri, 24 May 2013 05:46:08 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=648</guid>
		<description><![CDATA[The cat’s out of the bag – I’m popping out of my no-conference bubble, and making an appearance at a testing conference (STAR West in October). The theme of the conference is “Be a Testing Rock star”, and while I think that theme begs for an appearance from Michael Larsen, I’ll do my best to [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=134' rel='bookmark' title='Twinkle Twinkle I&rsquo;m back from STAR'>Twinkle Twinkle I&rsquo;m back from STAR</a></li>
<li><a href='http://angryweasel.com/blog/?p=260' rel='bookmark' title='Happy Birthday HWTSAM'>Happy Birthday HWTSAM</a></li>
<li><a href='http://angryweasel.com/blog/?p=135' rel='bookmark' title='Stop Guessing about my STAR presentation'>Stop Guessing about my STAR presentation</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>The cat’s out of the bag – I’m popping out of my no-conference bubble, and making an appearance at a testing conference (<a href="http://starwest.techwell.com/">STAR West in October</a>). The theme of the conference is “Be a Testing Rock star”,<a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/image4.png"><img title="Me, pretending to be a rock star. I&#39;m sure I&#39;m in the middle of some very clever stage banter here." style="border-top: 0px; border-right: 0px; border-bottom: 0px; margin: 10px 0px 0px 10px; border-left: 0px; display: inline" border="0" alt="Me, pretending to be a rock star. I&#39;m sure I&#39;m in the middle of some very clever stage banter here." align="right" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/image_thumb4.png" width="336" height="314" /></a> and while I think that theme begs for an appearance from <a href="http://www.mkltesthead.com/">Michael Larsen</a>, I’ll do my best to live up to the hype.</p>
<p>I’ll be giving a keynote on testing the Xbox. While I’m certain I’ll have interesting stories and pragmatic examples I can share in a generic fashion, I’m hoping I can share much, much more. I don’t have clearance yet to share too much about the <a href="http://www.xbox.com/en-US/xboxone/meet-xbox-one">Xbox One</a>, but assuming I can get my proposals in place, it should be a pretty exciting talk to share. By the time STAR rolls around, I’ll have passed my 20 year anniversary working on software, and working on this product has definitely been the highlight of my testing career.</p>
<p>I’m also signed up to give a half-day workshop on testing. Literally &#8211; “on testing”. The title of the workshop is <a href="http://starwest.techwell.com/sessions/starwest-2013/alan-page-testing">Alan Page: On Testing</a>, and I’ll take the time to share some good stories and examples of new testing ideas, but I expect the attendees to drive the content. More details on that as we get closer to the event, but I expect it will be a ton of fun, and especially interesting to those folks who just want to suck up some new and interesting ideas.</p>
<p>More as the conference gets closer.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=134' rel='bookmark' title='Twinkle Twinkle I&rsquo;m back from STAR'>Twinkle Twinkle I&rsquo;m back from STAR</a></li>
<li><a href='http://angryweasel.com/blog/?p=260' rel='bookmark' title='Happy Birthday HWTSAM'>Happy Birthday HWTSAM</a></li>
<li><a href='http://angryweasel.com/blog/?p=135' rel='bookmark' title='Stop Guessing about my STAR presentation'>Stop Guessing about my STAR presentation</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=648</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walls on the Soapbox</title>
		<link>http://angryweasel.com/blog/?p=629</link>
		<comments>http://angryweasel.com/blog/?p=629#comments</comments>
		<pubDate>Wed, 22 May 2013 23:21:15 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=629</guid>
		<description><![CDATA[I chair an advisory council for a community of senior testers at Microsoft. We have a variety of events ranging from talking heads to open space events to panels to whatever type of event we think is the most different than the previous one. Yesterday, we had our fifth annual “soapbox” event, a lightning talk-ish [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=318' rel='bookmark' title='Why?'>Why?</a></li>
<li><a href='http://angryweasel.com/blog/?p=317' rel='bookmark' title='Fall Travel'>Fall Travel</a></li>
<li><a href='http://angryweasel.com/blog/?p=388' rel='bookmark' title='The Ballad of the Senior Tester'>The Ballad of the Senior Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I chair an advisory council for a community of senior testers at Microsoft. We have a variety of events ranging from talking heads to open space events to panels to whatever type of event we think is the most different than the previous one.</p>
<p>Yesterday, we had our fifth annual “soapbox” event, a lightning talk-ish event where speakers are encouraged to share a rant or opinion with the rest of the community (five minute limit). Because I’ve been thinking so much about my <a href="http://angryweasel.com/blog/?p=624">Tear Down the Wall</a> post, I decided to give the five minute version for my peers.</p>
<p><a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/image3.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="right" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/image_thumb3.png" width="341" height="214"/></a>I began with the story of Lloyd Frink (from <a href="http://angryweasel.com/blog/?p=613">this post</a>), and&nbsp; compared the world of technology in 1979 to the world today. I talked about how “walls” get in the way, and how boxing people into roles (especially roles of gatekeeper and fake-customer) are fruitless at best. I closed by sharing Trish Khoo’s quote from <a href="http://trishkhoo.com/2013/05/thoughts-from-telsum/">her take</a> on all of this:</p>
<blockquote><p>It would be somewhat revolutionary, if it weren’t already happening.</p>
</blockquote>
<p>This was a point I really wanted to drive home. Many of the senior testers at Microsoft have <em>only</em> been at Microsoft, and few pay any attention to software development outside the Borg, and I think there’s a lot to learn from companies and teams that have successfully blurred and erased lines and boxes from their development teams.</p>
<p>As of today, I’m still employed, so I’ll keep ranting and see what happens. </p>
<p>For MS folks, you can find the talk on //resnet (search for soapbox). The whole event is good, but my talk starts about 19:30 in.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=318' rel='bookmark' title='Why?'>Why?</a></li>
<li><a href='http://angryweasel.com/blog/?p=317' rel='bookmark' title='Fall Travel'>Fall Travel</a></li>
<li><a href='http://angryweasel.com/blog/?p=388' rel='bookmark' title='The Ballad of the Senior Tester'>The Ballad of the Senior Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=629</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tear Down the Wall</title>
		<link>http://angryweasel.com/blog/?p=624</link>
		<comments>http://angryweasel.com/blog/?p=624#comments</comments>
		<pubDate>Wed, 15 May 2013 22:29:10 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=624</guid>
		<description><![CDATA[It’s interesting when I go back and look at the number of posts where I talk about what I do, what testing is to me, and how testing is changing. Ever since the Telerik Test Summit (telsum), I’ve been thinking even more about testing and how it fits into software development. When I wrote this [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=298' rel='bookmark' title='What is Testing?'>What is Testing?</a></li>
<li><a href='http://angryweasel.com/blog/?p=375' rel='bookmark' title='Activities and Roles'>Activities and Roles</a></li>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>It’s interesting when I go back and look at the number of posts where I talk about what I do, what testing is to me, and how testing is changing. Ever since the Telerik Test Summit (telsum), I’ve been thinking even more about testing and how it fits into software development. When I wrote <a href="http://angryweasel.com/blog/?p=613">this post</a>, and added on a bit to it <a href="http://angryweasel.com/blog/?p=619">here</a>, I was pondering the same thing. When I (last) blogged about the <a href="http://angryweasel.com/blog/?p=569">future of testing</a>, I (likely subconsciously) was thinking about the same thing.  </p>
<p>A few things happened recently to make everything really click for me. One, was <a href="http://www.networkworld.com/community/blog/lets-train-our-testers-early-offering-college-majors-software-testing">this article</a>, asking for universities to offer software testing degrees – as a means to “train our testers”. Besides the fact that the author thinks that Universities are vocational schools where we train people (rather than <i>teach</i> people), I think it’s difficult to have a degree in something that the industry can’t define consistently (yes, I know there are test degree programs out there now, and I could make the same argument about those). </p>
<p><a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/image2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 3px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="right" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/image_thumb2.png" width="290" height="388"/></a>Then, just over a week ago at Telerik’s testing summit, we led off the open-space session with a discussion on test design. I shared some of my ideas, including how I use mind-maps to communicate test design. Towards the end of the discussion, Jeff Morgan (@chzy) asked, “Isn’t it just ‘Design’”. What Jeff was implying was that many of the details of test design should be equally at home when thinking of feature design. Rather than have programmers determine how it should work, and then have testers determine how it should be validated and explored, that those tasks could occur (for the most part) simultaneously – e.g. “To implement this feature, I need to read a value from the database, but I also need to make sure I account for and understand performance implications, whether or not the values will be localized, what the error cases are, etc.).” Much (not all) of test design can be considered when designing code – so why don’t we consider test design and code design simultaneously? </p>
<p>After this discussion (and for many, many hours since telsum), I’ve been thinking about programming and testing and how the two roles can work together better – and began to wonder if <b><i>the test role may be detrimental to software development</i>.</b> </p>
<p>Three things are important to note before you scroll down and leave me hate-comments.
<ol>
<li>I didn’t say test is dead </li>
<li>I said “role”, not activity</li>
<li>I purposely used the weasel-word “may” – that statement won’t always be true</li>
</ol>
<p>And now for some much-needed elaboration.<br />
<h4>The Wall</h4>
</p>
<p>There’s a wall between testers and programmers. Programmers “build”, testers “break” – but passing features back and forth between one group and another is wasteful. It takes time and extra communication to traverse the wall. I spent at least the first few years of my career on one side of the wall catching the crappy code programmers threw to me. Then, I found unit-level bugs and threw those bugs back over the wall to the programmers. Then, we played this wasteful game of catch until it was time to ship. Recently, I saw a fairly prominent tester mention that their bread and butter was participating in a game of bad-code and happy-path-bug crap-catch. While I’m happy that there are easy ways to make money in testing, I’d rather tear my eyelids off than do work like this. I like what I do because it’s hard. Finding happy path bugs in crappy software isn’t hard. It’s boring and practically demeaning.  </p>
<p>The <a href="http://www.neotys.com/blog/neotys-testing-roundup-may-2013-issue-2/">Neotsys blog</a> latched onto one of my recent posts in their testing roundup. They said that my team at Microsoft has moved to the “whole-team” approach, but that’s not true. We still have testers and programmer roles – and while programmers frequently write test code and testers frequently write product code there’s still a wall. Programmers are still responsible for writing product code, and testers are still responsible for testing – we just don’t have a problem crossing those lines. </p>
<p>We still have a wall. It’s a small wall, but it’s still there.<br />
<h4>Tear Down the Wall</h4>
</p>
<p>If you played with my recent thought experiments of programmers who can test and testers who can program, it&#8217;s not much of a reach to picture a team where there are no programmers or testers – just contributors (or developers or engineers, or whatever you want to call them). If you have a hard time imagining that, imagine your <i>current </i>team with no walls between role responsibilities. Many of you may do the same thing you’re doing today, but with the walls gone, I bet you could make better software – faster.  </p>
<p>Figure out what needs to get done, and get it done. Leverage the diversity of the team. If someone is a specialist, let them specialize. If they’re not, let them optimize for their own skills. </p>
<p>Tear down the wall.<br />
<h5>Titles</h5>
</p>
<p><em>On a quick side note, testers worry (far too much) about their titles. This </em><a href="http://www.qamob.info/blog/2013/5/10/call-me-tester.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+stcfeedsbloggers+%28Testing+Feeds+-+Bloggers%29"><em>recent blog</em></a><em> reminds me of the idiocy of tester titles (and I’ve </em><a href="http://angryweasel.com/blog/?p=322"><em>discussed it here</em></a><em>). There will always be a place for people who know testing to be valuable contributors to software development – but perhaps it’s time for all testing titles to go away?</em><br />
<h4>The Future?</h4>
</p>
<p>I’ve written in the past about where test is going – toward data analysis, non-functional emphasis, etc., but I think I was at least partially wrong. What <i>software teams</i> need in the future is <i>team members</i> who can perform the <i>activities</i> of programming, testing, and analysis – <b><i>together</i></b>.  </p>
<p>I saw a slide deck recently that stated, “Agile Testers frequently can’t keep up with Programmers”. Good software development can’t happen when you serialize tasks – the team needs to work on this stuff – <b><i>together</i></b>. </p>
<p>I’ll always be deeply involved in the <i>activity</i> of software testing, but I don’t know if the role or title exists in my future. After nearly 20 years of being a tester (and likely several more with that title), I’m admittedly going out on a bit of a limb with that statement. Despite my title, I want the walls to go away. </p>
<p>Testing can’t be something that happens <i>after</i> programming is complete any longer. Testers aren’t “breakers” any more – but experts in the testing <i>activity</i> are (or need to be) as critical to <i>making</i> software as anyone else on the team. </p>
<p>Since it’s mostly testers who read this blog I challenge all of us to shed any remnants of tester vs. programmer and figure out how to tear down the wall. </p>
<p>I’ll let you know how my own battle goes.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=298' rel='bookmark' title='What is Testing?'>What is Testing?</a></li>
<li><a href='http://angryweasel.com/blog/?p=375' rel='bookmark' title='Activities and Roles'>Activities and Roles</a></li>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=624</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>More Tester Exploration</title>
		<link>http://angryweasel.com/blog/?p=619</link>
		<comments>http://angryweasel.com/blog/?p=619#comments</comments>
		<pubDate>Wed, 08 May 2013 22:48:53 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=619</guid>
		<description><![CDATA[A few days ago, I began a verbal exploration of testers who code and coders who test. That post provides some context for today’s continuation, so if you have a moment, go ahead and check it out. OK – I know you didn’t read it (or you read it already), so I’ll give you the [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=388' rel='bookmark' title='The Ballad of the Senior Tester'>The Ballad of the Senior Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=293' rel='bookmark' title='My job as a Tester'>My job as a Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>A few days ago, I began a verbal exploration of testers who code and coders who test. <a href="http://angryweasel.com/blog/?p=613">That post</a> provides some context for today’s continuation, so if you have a moment, go ahead and check it out.</p>
<p>OK – I know you didn’t read it (or you read it already), so I’ll give you the summary. There are coders, testers, coders who test, testers who code, and many variations in between. If it’s good for a coder to have some test knowledge, it certainly can’t hurt to have some knowledge of code if you’re a tester. My contrived exercises asked you to consider what mix of testing and coding knowledge you’d pick when staffing a team. The spectrum of awareness and infusion of coding and testing skills looks a bit like this:</p>
<p><a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/image.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 1px 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="left" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/image_thumb.png" width="616" height="59"/></a></p>
<p>But that’s not (as some of you pointed out) the full picture. I know fantastic testers with tons of experience and the ability to find the the most important issues quickly and efficiently – but they’re jerks (and that’s putting it nicely). It doesn’t matter how awesome you are, if you’re a horrible teammate, I don’t care.</p>
<p>it’s been 35 years or so since I played any paper based role playing games, but when I did, we had these “character sheets” where we kept track of our characters stats and experience. Something like that would give a lot better picture of the full picture of a good software developer.</p>
<p><a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/image1.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 1px 3px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="right" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/image_thumb1.png" width="408" height="342"/></a></p>
<p>It’s not perfect, but it helps to see the big picture (and I’ll be the first to admit, it’s difficult, if not impossible, to measure people on a scale like this) – but as a <em>leader</em>, you can certainly consider the type of people you want on your team. You can’t just hire the first code-monkey (or “breaker”) you find and expect to have all of your problems solved. When I make hiring decisions, those decisions are based an itty-bitty bit on whether the candidate can do the job, quite a bit more on how they will fit in with the team, and a whole lot on how well I think they’ll be able to help the team months and years down the line.</p>
<p>And with that, the intro to this blog post has turned into an interlude, so I’ll wrap this up later this week. Great discussion so far (in comments, twitter, and email) – please keep it up.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=388' rel='bookmark' title='The Ballad of the Senior Tester'>The Ballad of the Senior Tester</a></li>
<li><a href='http://angryweasel.com/blog/?p=293' rel='bookmark' title='My job as a Tester'>My job as a Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=619</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exploring Testing and Programming</title>
		<link>http://angryweasel.com/blog/?p=613</link>
		<comments>http://angryweasel.com/blog/?p=613#comments</comments>
		<pubDate>Mon, 06 May 2013 22:30:55 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=613</guid>
		<description><![CDATA[For the last day or so, I’ve been thinking a lot about programming and testing, about collaboration and walls, and about where this may all be going. This post is the start of my mental exploration of the subject. In the beginning… In How We Test Software at Microsoft, we told the story of Microsoft [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=444' rel='bookmark' title='Exploring Test Roles'>Exploring Test Roles</a></li>
<li><a href='http://angryweasel.com/blog/?p=305' rel='bookmark' title='R-E-S-P-E-C-T'>R-E-S-P-E-C-T</a></li>
<li><a href='http://angryweasel.com/blog/?p=137' rel='bookmark' title='Peering into the white box'>Peering into the white box</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>For the last day or so, I’ve been thinking a lot about programming and testing, about collaboration and walls, and about where this may all be going. This post is the start of my mental exploration of the subject.<br />
<h4>In the beginning…</h4>
</p>
<p>In How We Test Software at Microsoft, we told the story of Microsoft hiring our first tester, Lloyd Frink. Lloyd was a high school intern, and his job was to “test” the Basic compiler by running some programs through the compiler and make sure they worked. That was 1979, but full time testers didn’t show up at Microsoft until 1983. I have no recollection or knowledge of what was happening in the rest of the software industry at that time, but I imagine it was probably the same. Since then, Microsoft has hired thousands of testers (we currently employ over 9000), and the industry has hired a kazillion (yes, a made up number, because I really have no way of guessing) software testers (regardless of title).  </p>
<p>Now, in the last several years, many teams (including some inside of Microsoft), have moved to the “whole team approach” – where separation of testing and programming <em>roles</em> are blurred or gone (the activities will always exist). Even on teams where separate roles still exist, there is still a significant amount of blurring between which activities each role does as part of their job (for example, I, like many of my test colleagues, make changes to product code, just as many programmers on the team create and edit test code).<br />
<h4>The Wall</h4>
</p>
<p>The metaphorical “wall” between programming and testing is often quite high (as in programmers write code, then throw it over the wall to testers; who, in turn, throw the bugs back over the wall to developers, who make fixes and start the wall-chucking process over again). Lloyd was hired to catch stuff thrown to him over the wall, and I think it’s a fair argument to say it would have been more efficient for developers to run those tests as part of a check-in suite (assuming, of course, they had such a thing).  </p>
<p>To be completely transparent, a wall on my team still exists – it’s just a much shorter wall. There are still expectations of programmers and testers that fit into the typical roles, but collaboration and code throwing don’t occur often.<br />
<h4>Infection</h4>
</p>
<p>Elisabeth Hendrickson speaks often of being “test-infected” to describe programmers who “get” testing (I believe the term was coined by Erich Gamma). I for one, can’t think of a good reason for a programmer to not have some test ideas in their head when they write code. </p>
<p>Similarly, I think that testers can benefit from being a bit “code-infected”. Before the self-preserving screams of oppression begin, let me note that I said testers “<i>can</i> benefit” from some code knowledge. I’m not talking about language expertise – a basic understanding of programming logic and some ideas on how computer programs <i>may</i> improve testing is usually plenty. It’s not <em>necessary</em> to know anything about programming to be a tester – I’m just saying it can help.  </p>
<p>Beyond the disclaimer, it’s worth elaborating on the last two paragraphs here. I have had testers tell me that knowledge of code will adversely affect the “tester mindset” – that by knowing how to code, the tester will somehow utilize less of their critical thinking or problem solving skills. While I suspect this to be a false assumption, I have no proof of whether this is true or not. But I will hypothesize that if this is true (that code-infection adversely affects testing skill), then it’s just as likely that test-infection adversely effects programming ability. When I look at it this way, the answer clears up a bit. Take a moment to think about the best programmer you know. I’m fortunate enough to work with some really incredible (and some famous) programmers. <i>Every single one of them is test-infected</i>. Yes – I have no hard data, and zero empirical research, so I could be high as a kite on this, but I’d be curious to hear if anyone knows a great programmer who doesn’t have the ability to think at least a little bit like a tester.<br />
<h4>Code Infected</h4>
</p>
<p>So – let’s suppose for a few minutes that code-infection is beneficial for testers. Not even necessarily <i>equally</i> beneficial – just helpful. Is there such a thing as <i>too</i> <i>infected</i>? An old colleague of mine, John, once said,<br />
<blockquote>
<p>“I’m not the best tester on the team, and I’m not the best programmer. But, of the programmers on the team, I’m the best tester, and of the testers, I’m the best programmer”. </p>
</blockquote>
<p>Which <i>role</i> should John be in? On your team, would he be a programmer, or a tester? Is it a clear cut decision, does it depend, or does it even matter? Is John a test-infected developer, or a code-infected tester? Does it matter?  </p>
<p>I think the answer to the above questions are either “It depends”, or “It doesn’t matter”, so let me ask a different question. Do you want a team full of John’s? Maybe you do, or maybe you don’t (or maybe it depends), so let me rephrase yet again in the form of a quick thought experiment.<br />
<h4>An experiment</h4>
</p>
<p>You are forming a nine-person team to make a super cool software application. You get to build a dream team to put it together. On a scale from 1-9, where a 1 is a tester with zero knowledge of programming, a 9 is a developer who can’t even pronounce “unit test”, and a programmer / tester like John is a 5 &#8211; which employees do you hire (note that all of these people get paid the same, work the same hours, get along with each other, etc.).  </p>
<p><a href="http://angryweasel.com/blog/wp-content/uploads/2013/05/clip_image002.png"><img title="clip_image002" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image002" src="http://angryweasel.com/blog/wp-content/uploads/2013/05/clip_image002_thumb.png" width="570" height="332"/></a>&nbsp;</p>
<p>To be fair, I don’t think there’s a “right” answer to this question, but we can certainly explore some options of what would be more or less “right”. One option is to (conveniently) select one of each type. Then you get infection-diversity! However, I’m betting that most of you are thinking, “There’s no room on my team for developers who don’t write unit tests!” So, is “some” testing knowledge enough? Is it possible to have too much? If I hire 7’s and 8’s, do I eventually want them to have more testing knowledge? If that’s the case, should I just hire 5’s and 6s instead? </p>
<p>And what about testers? Remember, that code-infected doesn’t necessarily mean that the testers are code-monkeys cranking out tools and automation all day long – it just means that they have (varying levels of) programming skills as part of their available toolbox. The context of the product may have some influence on my choice, but if you agree that <i>some</i> programming knowledge can’t hurt, then maybe a 2 is better than a 1. But is a 3 better than a 2? “I suppose that “better” depends, but to me, it’s a worthwhile thought process.<br />
<h4>But that’s not right…</h4>
</p>
<p>If you’ve read this far without jumping down to comments to yell at me, let me admit now that I’ve led you in a bad direction. The exercise above sort of assumes that as you gain testing ability, you lose programming ability (and vice-versa). That’s not true in the real world, so let’s try a bit of a twist and see if we can be slightly more realistic. For this exercise, you have the $1,000,000 of salary to spend on a maximum of 10 employees. You have the following additional requirements:
<ul>
<li>An employee can have a “programmer” rating of 0-10, where 0 is can’t even write a batch file to 10 where they dream in algorithms.</li>
<li>Similarly, an employee has a “tester” rating of 0-10 where 0 is no knowledge of testing, and is at least the best tester you’ve ever dreamt of.</li>
<li>Minimum salary is $50k, and the maximum salary is (arbitrarily) $160,000. </li>
</ul>
<p>Because context is important, let’s say the app is a social networking site with clients for phones and tablets, as well as a web interface. Your exercise (if you want to play) is to think about the type of people you would use to staff this team. One option, for example, is to have five developers, each with a 10 rating (5x$100,000), paired with 10 testers who also each have a 10 rating (5x$100,000). Another option would be to have 6 developers, each with a 15 rating (e.g. 9-dev and 6-test for&nbsp; 6x$150,000=$800,000) paired with 4 testers, each with a 5 rating (4x$50,000-$20,000). The choice is yours, and there’s no right answer – but I think the thought exercise is interesting.</p>
<p>I’ll close this post by saying that I really, really hate sequels and series when it comes to blog posts (and I’ll add an extra “really” to that statement when referring to my <i>own</i> posts). But there’s more to come here – both in my thoughts on testing and programming, and in more thought exercises that I hope you will consider.  </p>
<p>More to come.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=444' rel='bookmark' title='Exploring Test Roles'>Exploring Test Roles</a></li>
<li><a href='http://angryweasel.com/blog/?p=305' rel='bookmark' title='R-E-S-P-E-C-T'>R-E-S-P-E-C-T</a></li>
<li><a href='http://angryweasel.com/blog/?p=137' rel='bookmark' title='Peering into the white box'>Peering into the white box</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=613</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Filling A Hole</title>
		<link>http://angryweasel.com/blog/?p=609</link>
		<comments>http://angryweasel.com/blog/?p=609#comments</comments>
		<pubDate>Thu, 25 Apr 2013 03:35:57 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=609</guid>
		<description><![CDATA[I haven’t blogged much recently, and it’s mainly for three reasons. I’m busy – probably the hardest I’ve worked in all of my time in software. And although there have been a few late nights, the busy isn’t coming from 80-100 hour weeks, it’s coming from 50 hour weeks of working on really hard shit. [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
<li><a href='http://angryweasel.com/blog/?p=404' rel='bookmark' title='The Skeptics Dilemma'>The Skeptics Dilemma</a></li>
<li><a href='http://angryweasel.com/blog/?p=375' rel='bookmark' title='Activities and Roles'>Activities and Roles</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I haven’t blogged much recently, and it’s mainly for three reasons.</p>
<ol>
<li>I’m busy – probably the hardest I’ve worked in all of my time in software. And although there have been a few late nights, the busy isn’t coming from 80-100 hour weeks, it’s coming from 50 hour weeks of working on really hard shit. As a result, I haven’t felt like writing much lately.</li>
<li>I can’t tell you.</li>
<li>I’m not really doing much testing.</li>
</ol>
<p>It’s the third point that I want to elaborate on, because it’s sort of true, and sort of not true – but worth discussing / dumping.</p>
<p>First off, I’ve been writing a ton of code recently. But not really much code to test the product directly. Instead, I’ve been neck deep in writing code to <em>help us test </em>the product. This includes both infrastructure (stories coming someday), and tools that help other testers find bugs. I frequently say that a good set of analysis tools to run alongside your tests is like having personal testing assistants. Except you don’t have to pay them, and they don’t usually interrupt you while you’re thinking.</p>
<p>I’ve also been spending a lot of time thinking about reliability, and different ways to measure and report software reliability. There’s nothing really new there other than applying the context of my current project, but it’s interesting work. On top of thinking about reliability and the baggage that goes along with it, I spend a lot of time making sure the right activities to improve reliability happen across the org. I know that some testers identify themselves as “information providers”, but I’ve always found that too passive of a role for my context. My role (and the role of many of my peers) is to not only figure out what’s going on, but to figure out what changes are needed, and then make them happen.</p>
<p>And this last bit is really what I’ve done for years (with different flavors and variations). I find holes and I make sure they get filled. Sometimes I fill the holes. Often, I need to get others to fill the holes – and ideally, make them <em>want</em> to fill them for me. I work hard at this, and while I don’t always succeed, I often do, and I enjoy the work. Most often, I’m driving changes in testing – improving (or changing) test design, test tools, or test strategy. Lately, there’s been a mix of those along with a lot of multi-discipline work. The fuzzy blur between disciplines on our team (and on many teams at MS these days) contributes a lot to that, and just “doing what needs to be done” fills in the rest.</p>
<p>I’m still a tester, of course, and I’ll probably wear that hat until I retire. What I do while wearing that hat will, of course, change often – and that’s (still) ok.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=569' rel='bookmark' title='Yet another future of testing post (YAFOTP)'>Yet another future of testing post (YAFOTP)</a></li>
<li><a href='http://angryweasel.com/blog/?p=404' rel='bookmark' title='The Skeptics Dilemma'>The Skeptics Dilemma</a></li>
<li><a href='http://angryweasel.com/blog/?p=375' rel='bookmark' title='Activities and Roles'>Activities and Roles</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=609</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PBKAC?</title>
		<link>http://angryweasel.com/blog/?p=606</link>
		<comments>http://angryweasel.com/blog/?p=606#comments</comments>
		<pubDate>Sat, 13 Apr 2013 19:01:42 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=606</guid>
		<description><![CDATA[Yesterday, I read a mail sent to an email alias I’m on, where the author was asking why tool X wasn’t enabled on his latest build. The mail looked something like this (genericized to protect the innocent). foo.service doesn’t appear to be working Repro: I installed the build from &#60;build_path&#62; I verified the binaries existed [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=22' rel='bookmark' title='Settling on Quality?'>Settling on Quality?</a></li>
<li><a href='http://angryweasel.com/blog/?p=573' rel='bookmark' title='Can you get me a repro?'>Can you get me a repro?</a></li>
<li><a href='http://angryweasel.com/blog/?p=38' rel='bookmark' title='Ur doin it rong'>Ur doin it rong</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Yesterday, I read a mail sent to an email alias I’m on, where the author was asking why tool X wasn’t enabled on his latest build. The mail looked something like this (genericized to protect the innocent).</p>
<blockquote><p>foo.service doesn’t appear to be working</p>
<p>Repro:</p>
<ol>
<li>I installed the build from &lt;build_path&gt;</li>
<li>I verified the binaries existed &lt;where they should exist&gt;</li>
<li>I queried to see if foo.service was running – it wasn’t</li>
<li>I queried another way, and it didn’t show anything either</li>
<li>When I run my tests, they fail and tell me that the service isn’t running</li>
<li>I thought the service wasn’t started, so I tried starting it, but that also failed (error text: Failed to retrieve the fizzbaz from the bogatorium)</li>
</ol>
</blockquote>
<p>On first glance, it looks like there’s a real problem here. I try to avoid the “works on my machine” comments, but I thought it was strange that nobody else had seen this. I assumed the Problem was Between the Keyboard And the Chair (PBKAC).</p>
<p>At first, that seemed to be exactly the problem. You see, there is no foo.service. It’s actually called fizz.service, but it’s run as part of the foo toolset, so it’s an easy misunderstanding. If they would have queried for fizz.service, they would have seen it happily running.</p>
<p>Their tests failed because they had an invalid command line for their test (or more specifically, they specified an invalid address for the machine where they wanted to run the tests).</p>
<p>And then they got that strange error message attempting to start the service because they were attempting to restart a service that was already running (interesting, however, was that they did manage to try and start the fizz service rather than the foo service at this point.</p>
<p>Three errors, all different, yet relatively easy to see as symptoms of a common problem. Except they weren’t.</p>
<p>Absolutely, definitely, beyond a shadow of a doubt, PBKAC.</p>
<p>But maybe not. Actually, definitely not. The princess is in another castle – or between a <em>different</em> keyboard and chair.</p>
<p>PBKAC was definitely in play when the user tried to query for the wrong service. My service names above are silly, but our service names are actually nearly as confusing. You only make this mistake once, but it’s not too difficult to make.</p>
<p>When the tests failed, the error said the service wasn’t running. The error was 100% accurate (the service <em>wasn’t running because the user connected to the wrong machine</em>). What if, as a courtesy, that error message said something like, “The service isn’t running. <em>Are you connected to a valid target machine</em>”? I bet that would have set off a few light bulbs rather than generated more confusion.</p>
<p>That message about the fizzabaz and the bogatorium isn’t far from what the user actually saw. What they saw was again, a 100% accurate statement of what went wrong – it just gave no clue of what may have caused it.</p>
<p>Granted, these were internal tools, but that’s a horrible excuse to confuse someone. I bet I’ve seen hundreds (if not thousands) of error messages like this – but very few that offer even the tiniest bit of trouble shooting or diagnostic advice. It’s easy to blame the user when they do something “wrong” (or unexpected), but ultimately, it’s rarely their fault. And in the end, if they can’t do what they want to do with your software, they’ll take their business and money elsewhere. </p>
<p>And then, it’s your problem alone.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=22' rel='bookmark' title='Settling on Quality?'>Settling on Quality?</a></li>
<li><a href='http://angryweasel.com/blog/?p=573' rel='bookmark' title='Can you get me a repro?'>Can you get me a repro?</a></li>
<li><a href='http://angryweasel.com/blog/?p=38' rel='bookmark' title='Ur doin it rong'>Ur doin it rong</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=606</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multitasking Revisited</title>
		<link>http://angryweasel.com/blog/?p=600</link>
		<comments>http://angryweasel.com/blog/?p=600#comments</comments>
		<pubDate>Thu, 04 Apr 2013 15:49:15 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=600</guid>
		<description><![CDATA[Last summer, I posted a short rant on multitasking. If you don’t want to read, it was my normal type of rant where I complain about people taking an already generalized statement and apply it even more widely. This week, in response to that post (some responses take longer than others), I received a pointer [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=494' rel='bookmark' title='Stupid Multitasking'>Stupid Multitasking</a></li>
<li><a href='http://angryweasel.com/blog/?p=129' rel='bookmark' title='Flashes of (near) fame'>Flashes of (near) fame</a></li>
<li><a href='http://angryweasel.com/blog/?p=195' rel='bookmark' title='stack exchange, software testing, and learning'>stack exchange, software testing, and learning</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Last summer, I posted a <a href="http://angryweasel.com/blog/?p=494">short rant on multitasking</a>. If you don’t want to read, it was my normal type of rant where I complain about people taking an already generalized statement and apply it even more widely.</p>
<p>This week, in response to that post (some responses take longer than others), I received a pointer to a little multitasking test that I thought would be fun to share. I’m not affiliated, no kickback, blah blah blah, just sharing because I think it’s interesting. I embedded the test below, but you can go straight to the source at <a href="http://open-site.org/blog/the-multitask-test/">http://open-site.org/blog/the-multitask-test/</a> as well. (<em>note &#8211; the embedded version doesn&#8217;t always work that well, so head on over to the open-site.org page if you&#8217;re having problems</em>).</p>
<div id="open-site-infographic" style="width:450px;"><iframe id="multitask-info" name="multitask-info" src="http://open-site.org/blog/the-multitask-test/game.php" frameborder="0" height="450" width="450" style="height: 450px;"></iframe>
<div class="created-by" style="text-align:right; font-size:12px;">Created by <a href="http://open-site.org/blog/the-multitask-test">http://Open-Site.org</a></div>
</div>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=494' rel='bookmark' title='Stupid Multitasking'>Stupid Multitasking</a></li>
<li><a href='http://angryweasel.com/blog/?p=129' rel='bookmark' title='Flashes of (near) fame'>Flashes of (near) fame</a></li>
<li><a href='http://angryweasel.com/blog/?p=195' rel='bookmark' title='stack exchange, software testing, and learning'>stack exchange, software testing, and learning</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=600</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learning at the Whiteboard</title>
		<link>http://angryweasel.com/blog/?p=599</link>
		<comments>http://angryweasel.com/blog/?p=599#comments</comments>
		<pubDate>Thu, 04 Apr 2013 05:27:17 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=599</guid>
		<description><![CDATA[Like most Microsoft employees, I have a whiteboard in my office, and mine (also like most) gets used a lot for notes, explanations, architecture, or whatever. This is nothing new – it’s part of the software culture. A few years ago, I recorded a few handfuls of these talks (some slightly staged) with some all-star [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=283' rel='bookmark' title='One Year of Lync'>One Year of Lync</a></li>
<li><a href='http://angryweasel.com/blog/?p=466' rel='bookmark' title='Learning to learn'>Learning to learn</a></li>
<li><a href='http://angryweasel.com/blog/?p=195' rel='bookmark' title='stack exchange, software testing, and learning'>stack exchange, software testing, and learning</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Like most Microsoft employees, I have a whiteboard in my office, and mine (also like most) gets used a lot for notes, explanations, architecture, or whatever.</p>
<p>This is nothing new – it’s part of the software culture. A few years ago, I recorded a few handfuls of these talks (some <em>slightly </em>staged) with some all-star colleagues and we posted them on the (now-defunct) Microsoft tester center site. Given that the talks are getting pretty difficult to find, I thought I’d take a few of them and re-post to youtube. I have no schedule in mind for posting, but I expect I’ll re-post 10-20 or so in the coming months.</p>
<p>Here are two to get things started. The first is me talking with James Rodriguez about code reviews, and the second is Alan Myrvold getting me started with Security Testing.</p>
<p><iframe height="315" src="http://www.youtube.com/embed/iFRUKgDXs-U" frameborder="0" width="420" allowfullscreen="allowfullscreen"></iframe></p>
<p><iframe height="315" src="http://www.youtube.com/embed/cfNbqo2K04s" frameborder="0" width="420" allowfullscreen="allowfullscreen"></iframe></p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=283' rel='bookmark' title='One Year of Lync'>One Year of Lync</a></li>
<li><a href='http://angryweasel.com/blog/?p=466' rel='bookmark' title='Learning to learn'>Learning to learn</a></li>
<li><a href='http://angryweasel.com/blog/?p=195' rel='bookmark' title='stack exchange, software testing, and learning'>stack exchange, software testing, and learning</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=599</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>That Damn Gorilla</title>
		<link>http://angryweasel.com/blog/?p=594</link>
		<comments>http://angryweasel.com/blog/?p=594#comments</comments>
		<pubDate>Wed, 27 Mar 2013 02:33:33 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=594</guid>
		<description><![CDATA[Last week I happened to log on to twitter just as some test folks were marveling over the the massive parallels between the video with the gorilla and the basketball players and software testing. I made some cracks about the absurdity of the hype, and more than a few testers freaked out. Somewhere in the [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=277' rel='bookmark' title='Judgment in Testing'>Judgment in Testing</a></li>
<li><a href='http://angryweasel.com/blog/?p=151' rel='bookmark' title='It&rsquo;s a big world (of testing) out there'>It&rsquo;s a big world (of testing) out there</a></li>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Last week I happened to log on to twitter just as some test folks were marveling over the the massive parallels between the video with the gorilla and the basketball players and software testing. I made some cracks about the absurdity of the hype, and more than a few testers freaked out.</p>
<p>Somewhere in the tweet insanity, I promised to blog about my opinions on the concept, so here goes.</p>
<p>First off – this isn’t a new gripe of mine. Here’s a tweet from August, 2011 (edited to fix my typo). To be clear, I think all three of the items below are valuable – <a href="http://angryweasel.com/blog/wp-content/uploads/2013/03/image.png"><img style="background-image: none; float: left; padding-top: 0px; padding-left: 0px; margin: 2px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="http://angryweasel.com/blog/wp-content/uploads/2013/03/image_thumb.png" width="265" height="151" align="left" border="0" /></a>yet all also seem to be frequently hyped beyond their value. The gorilla especially comes up among testers – many of whom overreact to the value of the video to software testing.</p>
<p>The video shows that it’s possible to miss something right in front of your eyes. The <em>point</em> of the video is to show that it’s possible to miss something that’s right in front of your eyes.</p>
<p>IB makes you confront the <em>illusion of attention</em>.</p>
<p>That’s it.</p>
<p><em>Knowing</em> about inattentional blindness doesn’t make you better at noticing things, and there’s zero correlation between the observational skills of those who see the gorilla vs. those who don’t. While I agree that it’s <strong><em>critical</em></strong> for testers to know that inattentional blindness exists, it’s a small nugget of information in a pretty big pool of stuff that actually helps testers. Any knowledge work requires knowledge of IB – furthermore, I’d argue that there are <em>plenty </em>of professions where IB is much more critical to know about than in software testing.</p>
<p>For example:</p>
<ul>
<li>Lifeguards</li>
<li>Judges</li>
<li>TSA Agents</li>
<li>Script Supervisor (those are the people in charge of ensuring continuity in movies / tv)</li>
<li>NASCAR drivers</li>
</ul>
<p>And I’m hard pressed to think of a profession where knowledge of IB isn’t at least <em>equal</em> to that of testing. My garbage man (sanitation engineer) needs to make sure he doesn’t miss any cans, and ensure I’m not throwing away anything illegal. Given that garbage collection is much more repetitive than anything I do from day to day, I’d expect viewing the gorilla video to be standard training material for the guys in the big stinky truck (and for all I know, it is). The gorilla is fascinating – for everyone. There’s no special appeal to testing that I can see.</p>
<p>Of course, beyond the video (which helped the people behind it earn many awards), Christopher Chabris and Daniel Simons also wrote a book called, The Invisible Gorilla which discussed the vides <strong><span style="text-decoration: underline;">and a ton of other really cool stuff</span> </strong>(stuff I find much more interesting than the gorilla video – especially when considered as a whole). I’ve read the book twice, skimmed it several other times, and met the authors briefly after attending a talk they gave a year or so ago.</p>
<p>Some other cool topics covered include:</p>
<ul>
<li>The illusion of memory (what you think you remember clearly may not be accurate. At all).</li>
<li>The illusion of confidence (most people overate their abilities – includes a great story about chess players and chess rankings)</li>
<li>The illusion of knowledge (you probably don’t know as much as you think you do)</li>
</ul>
<p>It’s good stuff.</p>
<p>The Gorilla Stunt is good.</p>
<p>It’s just completely over-hyped in much of  the testing community.<a href="http://angryweasel.com/blog/wp-content/uploads/2013/03/image1.png"><img style="background-image: none; float: left; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="http://angryweasel.com/blog/wp-content/uploads/2013/03/image_thumb1.png" width="439" height="150" align="left" border="0" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>So stop hyping the damn gorilla video.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=277' rel='bookmark' title='Judgment in Testing'>Judgment in Testing</a></li>
<li><a href='http://angryweasel.com/blog/?p=151' rel='bookmark' title='It&rsquo;s a big world (of testing) out there'>It&rsquo;s a big world (of testing) out there</a></li>
<li><a href='http://angryweasel.com/blog/?p=299' rel='bookmark' title='More on the Coding Tester'>More on the Coding Tester</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=594</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Test Innovation at QASIG</title>
		<link>http://angryweasel.com/blog/?p=584</link>
		<comments>http://angryweasel.com/blog/?p=584#comments</comments>
		<pubDate>Mon, 18 Mar 2013 20:43:23 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=584</guid>
		<description><![CDATA[Last week, I spent my Wednesday evening talking with the folks at QASIG about test innovation. This is a variation on the talk I gave in November at Eurostar &#8211; changed enough so I didn&#8217;t get bored, and with some bonus chatter that can only come from a small friendly audience. The recording is here [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=578' rel='bookmark' title='See Me…Hear Me'>See Me…Hear Me</a></li>
<li><a href='http://angryweasel.com/blog/?p=362' rel='bookmark' title='Test Innovation'>Test Innovation</a></li>
<li><a href='http://angryweasel.com/blog/?p=285' rel='bookmark' title='Thoughts on Swiss Testing Day'>Thoughts on Swiss Testing Day</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Last week, I spent my Wednesday evening talking with the folks at <a title="QASIG" href="http://www.qasig.org" target="_blank">QASIG </a> about test innovation. This is a variation on the talk I gave in November at Eurostar &#8211; changed enough so I didn&#8217;t get bored, and with some bonus chatter that can only come from a small friendly audience.</p>
<p>The recording is here if you want to take a look.</p>
<p><iframe style="border: 0px transparent;" src="http://www.ustream.tv/embed/6194896?v=3&amp;wmode=direct" height="302" width="480" frameborder="0" scrolling="no"></iframe></p>
<p><a style="padding: 2px 0px 4px; width: 400px; background: #ffffff; display: block; color: #000000; font-weight: normal; font-size: 10px; text-decoration: underline; text-align: center;" href="http://www.ustream.tv/" target="_blank">Video streaming by Ustream</a></p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=578' rel='bookmark' title='See Me…Hear Me'>See Me…Hear Me</a></li>
<li><a href='http://angryweasel.com/blog/?p=362' rel='bookmark' title='Test Innovation'>Test Innovation</a></li>
<li><a href='http://angryweasel.com/blog/?p=285' rel='bookmark' title='Thoughts on Swiss Testing Day'>Thoughts on Swiss Testing Day</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=584</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Working From Home – My two cents on remote work</title>
		<link>http://angryweasel.com/blog/?p=579</link>
		<comments>http://angryweasel.com/blog/?p=579#comments</comments>
		<pubDate>Wed, 06 Mar 2013 19:52:54 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=579</guid>
		<description><![CDATA[Anyone who reads this blog has probably also read about, or heard of the recent policy from Marissa Mayer at Yahoo recalling home-office based employees back to the office (Bing search here in case you&#8217;ve been under a rock). Most of the reactions I&#8217;ve seen to this policy are correctly identifying this as a management [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=178' rel='bookmark' title='Some thoughts on remote work'>Some thoughts on remote work</a></li>
<li><a href='http://angryweasel.com/blog/?p=179' rel='bookmark' title='Fuel for work'>Fuel for work</a></li>
<li><a href='http://angryweasel.com/blog/?p=169' rel='bookmark' title='Getting back to work'>Getting back to work</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Anyone who reads this blog has probably also read about, or heard of the recent policy from Marissa Mayer at Yahoo recalling home-office based employees back to the office (<a href="http://www.bing.com/search?q=yahoo+remote+work">Bing search here</a> in case you&#8217;ve been under a rock). Most of the reactions I&#8217;ve seen to this policy are correctly identifying this as a management problem (or a worker-milking-the-system) problem, and I agree with that assessment.</p>
<p>Of course, remote workers all over the internet are completely up in arms whether they work at Yahoo or not. Perhaps they&#8217;re afraid that <em>their</em> employer will follow suit (not-likely), or they don&#8217;t want to be discovered as yet-another-wfh-miler (slightly more likely), or they feel like their choice of work method is being threatened by the publicity of this choice (most likely).</p>
<p>To be clear, I am completely supportive of working from home. I&#8217;m fortunate enough to have an employer and a history of managers who let me work from home – or remotely as needed. In fact, the recent news reminded me that after I worked remotely for two solid weeks in the summer of 2011, I wrote up some thoughts for my (then) manager. Given that there&#8217;s nothing confidential in that write up, I&#8217;m sharing it unedited below as fodder for discussion.</p>
<hr />
<strong>From: </strong>Alan Page<br />
<strong>To: </strong>Ross<br />
<strong>Date:</strong> August 3, 2011<br />
<strong>Subject: </strong>Working the Swing Shift in France</p>
<p>This summer, I&#8217;m spending two weeks working from Toulouse, France. My family came here for a vacation (and to house sit for some friends of friends). I had planned to only stay for about 10 days, but due to a variety of circumstances, I decided to extend my trip and stay with my family for an additional two weeks. I asked Ross if I could work from France for a few weeks and he graciously allowed me to do so.</p>
<h3>The logistics</h3>
<p>The house we&#8217;re staying in has a reasonably fast internet connection as well as an office where the door shuts, so a reasonable workspace wasn&#8217;t a problem. I decided that I&#8217;d work Redmond hours (I start work between 4:00 and 6:00 pm and work until 2:00 or 3:00am). There was no requirement that I align my work with Redmond time, but it allowed me to spend some time on daytrips with my family during the day before beginning the workday. I was also able to attend a fair number of meetings over Lync.</p>
<h3>The experience</h3>
<p>I&#8217;ve worked from home before and have never had a problem staying focused on work outside of the workplace (I probably learned to excel in this area while writing <a href="http://www.hwtsam.com">hwtsam</a> on evenings and weekends). My family (fortunately) &#8220;gets&#8221; that I&#8217;m working even though I&#8217;m close by and leaves me alone to concentrate.</p>
<p>One highlight of the experience is that Lync has worked flawlessly. I&#8217;ve made several calls to Redmond, and attended several meetings. Audio and video have worked well, and it&#8217;s helped keep me connected <em>much</em> of the time.</p>
<p>I was reflecting on my first week of working remotely, and had a bit of an insight. I have been able to get a ton of work done – but to be fair and honest, <em>it&#8217;s different work than I would have done had I been in Redmond</em>. I don&#8217;t think this is necessarily a bad thing, since some of the things I&#8217;ve worked on (e.g. writing up thoughts and experimenting with fault injection, figuring out how Lync should approach model-based testing, writing up debugging tutorials, or polishing up a thinkweek paper) are the <em>right</em> work for me to do, but it seems that working remotely changes priorities slightly. By this, I mean that a big part of my typical role involves interacting with people on the team in a somewhat random pattern – e.g. answering questions in the hallway, discussing topics of the day over lunch, or following up with people 1:1 after meetings. Not all Microsoft roles involve this sort of interaction, but it seems difficult to interact in this manner remotely.</p>
<p>One example I thought of that reflects the above is this scenario: Say Josh and Bob are talking in Josh&#8217;s office. I overhear the conversation and have some relevant (and valuable!) thoughts, so I get up, poke my head in and join the conversation. That scenario doesn&#8217;t happen if I&#8217;m not there.</p>
<p><em>An interesting Lync feature based on this would work like this. Say Bob and Josh are having an IM conversation. If Lync noticed that I was on both of their contact lists, and they mentioned a keyword that shows up in my &#8220;interests&#8221;, Lync would ask them if they wanted to add me to the conversation.<br />
</em></p>
<p>I think the <em>casual interaction</em> limitation is more of a cultural problem than something inherent to working remotely (and something that <em>may</em> solve itself if I was away for a longer period). My thought is that in general, people on our team don&#8217;t send IM&#8217;s casually – e.g. &#8220;Hey – I was just talking to Dan about test automation, and wondered if you had thoughts on how to do data driven testing&#8221;, or &#8220;Do you have any quick thoughts on blah?&#8221;. The questions I normally hear in the hallway, or from someone sticking their head in my office haven&#8217;t occurred over IM (or telephone for that matter).</p>
<p>Another example is the value (in our culture) of the in-person follow up. For example, I sent an email to a few peers on the team last week – I was expecting it to turn into a discussion, but only received two short replies (I replied to both, and then the conversation ended). If I were in Redmond, I probably would have had an additional casual conversation with a few of the recipients and attempted to clear up any ambiguity or answer any questions that was blocking an engaged conversation on the topic. This is difficult to do remotely (although it&#8217;s certainly possible to do all of this over IM, it takes some getting used to).</p>
<hr />
<p>Now – since I wrote that email, I&#8217;ve changed teams, and the world has warmed up more to social media. Lots of Microsoftees use Yammer, and IM usage is on the rise. I (and <a href="http://www.hanselman.com/blog/BeingARemoteWorkerSucksLongLiveTheRemoteWorker.aspx">others</a>) still don&#8217;t think we (as a company, and as an industry) are doing enough to support and encourage remote work, and I&#8217;m discouraged a bit that Yahoo has seemed to take us a step or two backwards.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=178' rel='bookmark' title='Some thoughts on remote work'>Some thoughts on remote work</a></li>
<li><a href='http://angryweasel.com/blog/?p=179' rel='bookmark' title='Fuel for work'>Fuel for work</a></li>
<li><a href='http://angryweasel.com/blog/?p=169' rel='bookmark' title='Getting back to work'>Getting back to work</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=579</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>See Me…Hear Me</title>
		<link>http://angryweasel.com/blog/?p=578</link>
		<comments>http://angryweasel.com/blog/?p=578#comments</comments>
		<pubDate>Fri, 01 Mar 2013 06:21:34 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=578</guid>
		<description><![CDATA[Although I really enjoy talking about testing, I&#8217;m (purposely) speaking a lot less these days. I have a day-job that I love, and I like hanging out in the rainy Pacific Northwest. As of now (and I think a plan change is a long shot), I&#8217;m travelling to exactly one conference in CY13 (StarWest in [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=199' rel='bookmark' title='Upcoming stuff'>Upcoming stuff</a></li>
<li><a href='http://angryweasel.com/blog/?p=530' rel='bookmark' title='Eurostar 2012 &#8211; Slides'>Eurostar 2012 &#8211; Slides</a></li>
<li><a href='http://angryweasel.com/blog/?p=523' rel='bookmark' title='Surface RT and EuroSTAR recap'>Surface RT and EuroSTAR recap</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Although I really enjoy talking about testing, I&#8217;m (purposely) speaking a lot less these days. I have a day-job that I love, and I like hanging out in the rainy Pacific Northwest. As of now (and I think a plan change is a long shot), I&#8217;m travelling to exactly one conference in CY13 (StarWest in Fall of 2013 – more on that later….but it will be epic).
</p>
<p>However – if you are also in the Pacific Northwest, and want to hang out and talk about test innovation, I&#8217;ll be hanging out with the folks at<a href="http://qasig.org/calendar.html"> qasig</a> on the evening of March 13. I&#8217;ll be delivering an updated version of my EuroStar keynote on test innovation, and I expect it will be a fun night.
</p>
<p>Beyond that (and depending on interest), I may do another free webinar soon (it&#8217;s been at least a year since the last one), but that will be about it for me talking about testing in person about testing.
</p>
<p>More here later.
</p>
<p>-AW</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=199' rel='bookmark' title='Upcoming stuff'>Upcoming stuff</a></li>
<li><a href='http://angryweasel.com/blog/?p=530' rel='bookmark' title='Eurostar 2012 &#8211; Slides'>Eurostar 2012 &#8211; Slides</a></li>
<li><a href='http://angryweasel.com/blog/?p=523' rel='bookmark' title='Surface RT and EuroSTAR recap'>Surface RT and EuroSTAR recap</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=578</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can you get me a repro?</title>
		<link>http://angryweasel.com/blog/?p=573</link>
		<comments>http://angryweasel.com/blog/?p=573#comments</comments>
		<pubDate>Fri, 08 Feb 2013 01:53:38 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=573</guid>
		<description><![CDATA[&#8220;Hey – can you set up a repro of that bug for me?&#8221; As a tester, how many times have you heard this phrase? How many times have you walked through the steps you outlined in the bug report so someone could look at an error for you? Or – how many times have you [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=135' rel='bookmark' title='Stop Guessing about my STAR presentation'>Stop Guessing about my STAR presentation</a></li>
<li><a href='http://angryweasel.com/blog/?p=342' rel='bookmark' title='It&rsquo;s (probably) a Design Problem'>It&rsquo;s (probably) a Design Problem</a></li>
<li><a href='http://angryweasel.com/blog/?p=7' rel='bookmark' title='GUI Schmooey'>GUI Schmooey</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<blockquote><p>&#8220;Hey – can you set up a repro of that bug for me?&#8221;</p></blockquote>
<p>As a tester, how many times have you heard this phrase? How many times have you walked through the steps you outlined in the bug report so someone could look at an error for you? Or – how many times have you seen a test error, and immediately re-run the test to see if you could reproduce the error yourself?</p>
<p>Is it a big number? If it is, you&#8217;re not going to like what I have to say. If you need to reproduce all of your bugs to figure out what&#8217;s going on, you screwed up. Your logging is bad. Your diagnostics don&#8217;t exist. You wrote crummy code. You&#8217;re wasting time!</p>
<p>I sometimes see code like this:<br />
<span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">int<span style="color: black;"> status = CreateSomethingCool(object);</span></span></p>
<p><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">if<span style="color: black;"> (status != COOL_SUCCESS)</span></span></p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">{<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">    <span style="color: blue;">return<span style="color: black;"> -1;<br />
</span></span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">}<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">status = MakeItWayCool(object);<br />
</span><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">if<span style="color: black;"> (status != COOL_SUCCESS)<br />
</span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">{<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">    <span style="color: blue;">return<span style="color: black;"> -1;<br />
</span></span></span><span style="color: black; font-family: Consolas; font-size: 9pt;"><span style="background-color: white;">}</span><br />
</span></p>
<p>The next time the test is run, Joe Tester (assuming some sort of automation around the automation) gets an email saying his test failed. Of course, Joe doesn&#8217;t have a freakin&#8217; clue why his test failed. It could have failed for either case above (assuming those are the only two failure points), so he needs to run it – perhaps under a debugger to see what happened.</p>
<p>Joe writes horrible test code.</p>
<p>But – Joe wants to improve, so he writes this:</p>
<p><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">int<span style="color: black;"> status = CreateSomethingCool(object);<br />
</span></span></p>
<p><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">if<span style="color: black;"> (status != COOL_SUCCESS)<br />
</span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">{<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">    <span style="color: blue;">return<span style="color: black;"> -1;<br />
</span></span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">}<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">status = MakeItWayCool(object);<br />
</span></p>
<p><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">if<span style="color: black;"> (status != COOL_SUCCESS)<br />
</span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">{<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">    <span style="color: blue;">return<span style="color: black;"> -2;<br />
</span></span></span><span style="color: black; font-family: Consolas; font-size: 9pt;"><span style="background-color: white;">}</span><br />
</span></p>
<p>Now Joe has different return values, but he still writes crappy code. At least now he knows why his test failed; but he doesn&#8217;t know why the <em>product</em> failed.</p>
<p>So, I fired Joe, and hired Sally. Sally wrote this instead.</p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">LOG(<span style="color: #a31515;">&#8220;Calling CreateSomethingCool with object = %s&#8221;<span style="color: black;">, object.ToString());<br />
</span></span></span><span style="color: blue; font-family: Consolas; font-size: 9pt; background-color: white;">int<span style="color: black;"> status = CreateSomethingCool(object);<br />
</span></span></p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">VERIFY_COOLSUCCESS((status), <span style="color: #a31515;">&#8220;CreateSomethingCool Failed. status=%d, objectData=%d&#8221;<span style="color: black;">, status, DumpObject(object));<br />
</span></span></span></p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">LOG(<span style="color: #a31515;">&#8220;Calling MakeItWayCool with object == %s&#8221;<span style="color: black;">, object.ToString());<br />
</span></span></span><span style="color: black; font-family: Consolas; font-size: 9pt; background-color: white;">status = MakeItWayCool(object);</span></p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt;"><span style="background-color: white;">VERIFY_COOLSUCCESS((status), <span style="color: #a31515;">&#8220;CreateSomethingCool Failed. status=%d, objectData=%d&#8221;<span style="color: black;">, status, DumpObject(object));</span></span></span><br />
</span></p>
<p>To be fair, Sally&#8217;s version was a little easier to read, and contained some comments (or it would if Sally was a real person), but when her test failed, instead of needing to set up a repro, the automation system sent her this mail.</p>
<p><strong>Test Failed</strong></p>
<p><span style="color: black; font-family: Consolas; font-size: 9pt;">CoolTest failed with a verify failure. Log follows:<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;"><span style="background-color: white;">Calling CreateSomethingCool with object =</span> LittleRedCorvette<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">CreateSomethingCool Failed. status=5, objectData=<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">    Name=LittleRedCorvette<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">Size=0&#215;100<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">Active=false<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">Running=false<br />
</span><span style="color: black; font-family: Consolas; font-size: 9pt;">LastError=5<br />
</span></p>
<p>Even here, there may not be enough information, but chances are that if Sally (or her teammates know that), &#8220;CoolTest is failing with object LittleRedCorvette, and it&#8217;s likely because the object was inactive and not running, and that the error code was 5&#8243;, that someone familiar with the code would know exactly where to look.</p>
<p>And – in the case where Sally (or a teammate) has to hook up a debugger anyway, they should add additional debug information to the log file for the next time a similar error happens. Setting up a repro wastes time. Doing it for every issue you find is irresponsible and wasteful. Be a professional, and stop setting up repros, and start writing tests (and code) that make your job easier and make your team better.<span style="color: black; font-family: Consolas; font-size: 9pt;"><br />
</span></p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=135' rel='bookmark' title='Stop Guessing about my STAR presentation'>Stop Guessing about my STAR presentation</a></li>
<li><a href='http://angryweasel.com/blog/?p=342' rel='bookmark' title='It&rsquo;s (probably) a Design Problem'>It&rsquo;s (probably) a Design Problem</a></li>
<li><a href='http://angryweasel.com/blog/?p=7' rel='bookmark' title='GUI Schmooey'>GUI Schmooey</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=573</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yet another future of testing post (YAFOTP)</title>
		<link>http://angryweasel.com/blog/?p=569</link>
		<comments>http://angryweasel.com/blog/?p=569#comments</comments>
		<pubDate>Wed, 23 Jan 2013 23:37:53 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=569</guid>
		<description><![CDATA[I was talking with a colleague of mine this morning about his role and what it meant, and I made a mental note to blog about some of my ideas. Given that my ability to remember anything peaks at about a day, I thought I better write it down now. I predict there will be [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=298' rel='bookmark' title='What is Testing?'>What is Testing?</a></li>
<li><a href='http://angryweasel.com/blog/?p=449' rel='bookmark' title='New Testing Ideas'>New Testing Ideas</a></li>
<li><a href='http://angryweasel.com/blog/?p=239' rel='bookmark' title='Forward thinking in software testing'>Forward thinking in software testing</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I was talking with <a href="http://ronaldpihlgren.wordpress.com/">a colleague</a> of mine this morning about his role and what it meant, and I made a mental note to blog about some of my ideas. Given that my ability to remember anything peaks at about a day, I thought I better write it down now. I predict there will be a lot of holes here – I&#8217;ll fill those in later or in the comments – but here goes.
</p>
<p>Regardless of how you feel about the health of software testing (which depends largely on your ability to interpret a metaphor), for me, it&#8217;s getting easier and easier to see that testing is <em>changing</em>. Granted, it&#8217;s changing along with the software under test, so if you&#8217;re testing the same sort of desktop software products you have been for years, using development practices even older, the good news is that you&#8217;re safe – your testing world probably isn&#8217;t going to change either.
</p>
<p>The rest of us are working on software that releases quickly and often, using development practices that support that cadence. In our world, it just doesn&#8217;t make sense for a test team to invest a bunch of time in functional testing. It&#8217;s cheaper and more cost efficient to have the programmers who write the code write tests to verify unit and functional correctness. This eliminates unnecessary back and forth, and forces programmers to write more testable (and often simpler) code from the beginning, resulting in easier maintainability and extension of the code.
</p>
<p>Of course, you don&#8217;t need to tell me that it&#8217;s a long leap from functional correctness to usable software. Given a beer or two, I&#8217;ll give you names of products I&#8217;ve worked on that have been near functionally perfect, yet near failures in the market. This gap is where my future of test lives. Another colleague (one with no blog) says, &#8220;We can define what programmers do, and what program managers do fairly easily. Testers do <em>the </em>remainder.&#8221; This statement remains correct – even if &#8220;the remainder&#8221; is a moving target.
</p>
<p>One big role falling into the remainder is that of data analysis / data science / data interpretation / whatever you want to call the analysis of customer data rolling in. As products move more and more into the cloud, there are more and more opportunities to run tests and analysis in production and get data in near real time. I honestly think that the ability to provide actionable product insights from terabytes or more of data is the key to a six-figure plus paycheck for decades to come. Some testers will fit naturally into this role – but I have a hunch we&#8217;ll find a lot of people in this role with backgrounds in Mathematics or Statistics than from Computer Science.
</p>
<p>When you think about &#8220;the remainder&#8221;, there&#8217;s another big hole. I think we&#8217;ll always need people to look at big end-to-end scenarios and determine how non-functional attributes (e.g. performance, privacy, usability, reliability, etc.) contribute to the user experience. Some of this evaluation will come from manually walking through scenarios), but there will be plenty of need for programmatic measurement and analysis as well (e.g. is there real value in manual performance tests, or manual stress tests?). I don&#8217;t know if there&#8217;d be more or less specialization than there is today, and don&#8217;t know if it matters…but it may.
</p>
<p>There may be other new roles, while some roles abundant today may go away – although not immediately, as I still see several openings for &#8220;Functional Test Engineer&#8221; on a popular job site. Short story is that I&#8217;m cool with this future. Others may not be, and that&#8217;s ok. I&#8217;m just happy to ride the wave.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=298' rel='bookmark' title='What is Testing?'>What is Testing?</a></li>
<li><a href='http://angryweasel.com/blog/?p=449' rel='bookmark' title='New Testing Ideas'>New Testing Ideas</a></li>
<li><a href='http://angryweasel.com/blog/?p=239' rel='bookmark' title='Forward thinking in software testing'>Forward thinking in software testing</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=569</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Debugging For Testers</title>
		<link>http://angryweasel.com/blog/?p=565</link>
		<comments>http://angryweasel.com/blog/?p=565#comments</comments>
		<pubDate>Tue, 15 Jan 2013 01:30:39 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=565</guid>
		<description><![CDATA[I came across a few comments and statements recently that set off a slightly red (orange?) flag for me. The gist was that debugging was for coders, and that testers &#8220;just found the issues&#8221;. I get the context (or at least I think I get it) – I agree that all testers don&#8217;t have to [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=322' rel='bookmark' title='Titles for Testers'>Titles for Testers</a></li>
<li><a href='http://angryweasel.com/blog/?p=294' rel='bookmark' title='Online Presentation: Career Tips for Testers'>Online Presentation: Career Tips for Testers</a></li>
<li><a href='http://angryweasel.com/blog/?p=270' rel='bookmark' title='Career Paths for Testers Using Personas'>Career Paths for Testers Using Personas</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I came across a few comments and statements recently that set off a slightly red (orange?) flag for me. The gist was that debugging was for coders, and that testers &#8220;just found the issues&#8221;. I get the context (or at least I think I get it) – I agree that all testers don&#8217;t have to be coders, and that all testers certainly don&#8217;t have to be debugging masters, but I<em><br />
</em>don&#8217;t think that any testers should run away from a debugger in fear either.</p>
<p>In fact, I&#8217;d say there&#8217;s a minimum amount of information that <span style="text-decoration: underline;">every</span> tester should know about debuggers, regardless of whether they are monster-rock-star programmers, or part-time IT application validators. I&#8217;ll start a list here, and likely add to it when I&#8217;m annoyed.</p>
<p>So here goes:</p>
<p><strong>Things Every Tester Should Know About Debuggers<br />
</strong></p>
<ul>
<li>
<div><strong>Call Stacks</strong> &#8211; A &#8220;call stack&#8221; is a list of functions that led up to the application crash. Different debuggers display this differently, but it will look something like this:</div>
<pre>FunctionThatCrashed
Function_Three
Function_Two
Function_One</pre>
<p>Read this from bottom to top – Function_One called Function_Two, which called Function_Three, which called FunctionThatCrashed (which crashed).</p>
<p>Typically you&#8217;ll see parameters after the functions, and those will probably give you a clue. If you&#8217;re working with developers, and you see a crash in the debugger, the call stack is probably the most important contextual information you, as a tester, can provide.</li>
<li>
<div><strong>Crash vs. Assert</strong> – When a program breaks into the debugger (meaning the program stops executing, and the debugger springs into action), the program may have crashed (e.g. attempted to read/write to/from invalid memory), or it could have broken at a developer-induced breakpoint (often in a macro called an &#8216;assert&#8217;). On x86 / amd64 platforms this shows up as an <span style="font-size: 10pt;"><span style="font-family: Courier New;">int 3</span><br />
</span>or <span style="font-family: Courier New; font-size: 10pt;">int 2C </span>in the debugger. The important thing to note in the case of the assert type of error is that <em>the reason for the break is obvious </em> &#8211; or at least obvious if you can view the code. In practice, asserts often look like this:</div>
</li>
</ul>
<pre>      bool bSuccess = CreateUserAccount();
      //break into the debugger of the call to CUA fails so we can debug
      ASSERT(bSuccess == true);</pre>
<p>When a tester sees this break, instead of saying, &#8220;The program crashed during logon&#8221;, they can say, &#8220;I&#8217;m hitting an assert because CreateUserAccount is failing on today&#8217;s build&#8221;. While both statements have value, the latter statement is much more informative, and in many cases actually <em>actionable</em>.</p>
<ul>
<li><strong>Basic Lingo</strong> – Know a little about a few basic types of crashes – e.g. Access Violation (AV), Stack Overflow, or Buffer Overrun, and know a little about what <em>causes </em> these errors (e.g. reading from a bad memory address, calling too many functions – usually via recursion, or putting too long of a string into a buffer). You don&#8217;t have to be an expert, but a little knowledge here goes a long, long way in diagnosing bugs and getting them fixed.<strong><br />
</strong></li>
</ul>
<p>Off the top of my head, that seems like enough, but not that much. There&#8217;s certainly more to learn, but I think knowing just this much should be a minimum for any professional tester.</p>
<p>More ideas – add &#8216;em to the comments.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=322' rel='bookmark' title='Titles for Testers'>Titles for Testers</a></li>
<li><a href='http://angryweasel.com/blog/?p=294' rel='bookmark' title='Online Presentation: Career Tips for Testers'>Online Presentation: Career Tips for Testers</a></li>
<li><a href='http://angryweasel.com/blog/?p=270' rel='bookmark' title='Career Paths for Testers Using Personas'>Career Paths for Testers Using Personas</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=565</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Training and Practice</title>
		<link>http://angryweasel.com/blog/?p=559</link>
		<comments>http://angryweasel.com/blog/?p=559#comments</comments>
		<pubDate>Thu, 03 Jan 2013 19:43:13 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=559</guid>
		<description><![CDATA[I&#8217;m not sure if this is a musician&#8217;s perspective of learning or something more universal, but it&#8217;s something that I think about often. When learning, there&#8217;s value in training, lessons, reading, and other learning opportunities, but there&#8217;s much more value (IMO) in practice – but I&#8217;m not sure if that&#8217;s how everyone sees it (or [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=10' rel='bookmark' title='Improvement through practice'>Improvement through practice</a></li>
<li><a href='http://angryweasel.com/blog/?p=466' rel='bookmark' title='Learning to learn'>Learning to learn</a></li>
<li><a href='http://angryweasel.com/blog/?p=125' rel='bookmark' title='Trivial Pursuits'>Trivial Pursuits</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m not sure if this is a musician&#8217;s perspective of learning or something more universal, but it&#8217;s something that I think about often. When learning, there&#8217;s value in training, lessons, reading, and other learning opportunities, but there&#8217;s much more value (IMO) in practice – but I&#8217;m not sure if that&#8217;s how everyone sees it (or if I&#8217;m even right for that matter).
</p>
<p>One common example from my life is the mediocre musician who decides to get better by taking lessons from a master. This isn&#8217;t a bad choice by itself, but in many cases, months go by, and while they may make some minor improvements, there are no dramatic (or often, noticeable) improvements. Meanwhile, another mediocre musician makes huge advancements without a single lesson. The difference is that the latter musician invested in deliberate practice, while the former assumed the lessons were enough. The joke about the <a href="http://en.wikipedia.org/wiki/Carnegie_Hall">way to get to Carnegie Hall</a> applies well here.
</p>
<p>The same thing applies outside of music as well. Taking a skating lesson will help you with basics, but you need to practice to improve those techniques. You need to learn what works for you, and how motions feel, and need to get confidence in your abilities until you hit a point where additional lessons or training may help you make another leap forward.
</p>
<p>Of course, this also applies to software engineering practices. Whether you&#8217;ve taken a class, or read a book (or even a Wikipedia article), you don&#8217;t really <em>know</em> the practice until you&#8217;ve tried it yourself (you certainly wouldn&#8217;t give a skating lesson or write an article on learning how to skate after an introductory lesson). For anyone interested in improving or learning, you are responsible for finding approaches you haven&#8217;t used before (not just those you haven&#8217;t <em>read </em>about before), and using deliberate practice to discover the details about what works, and does not work for your context.
</p>
<p>I&#8217;m not saying practice alone is enough, but you need a balance (note, &#8220;Balance&#8221; does not necessarily mean 50-50) between deliberate practice and <em>increasing your capacity to learn</em>. One way to increase your capacity is to take a lesson or a training course. As I mentioned, you can also read about something new. For musicians, playing with other musicians is a fantastic way to learn and increase capacity – this is why I recommend pairing and coaching in software engineering so much – it&#8217;s a great way for all parties to learn and increase their ability to take advantage of deliberate practice.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=10' rel='bookmark' title='Improvement through practice'>Improvement through practice</a></li>
<li><a href='http://angryweasel.com/blog/?p=466' rel='bookmark' title='Learning to learn'>Learning to learn</a></li>
<li><a href='http://angryweasel.com/blog/?p=125' rel='bookmark' title='Trivial Pursuits'>Trivial Pursuits</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=559</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Year, New Look</title>
		<link>http://angryweasel.com/blog/?p=558</link>
		<comments>http://angryweasel.com/blog/?p=558#comments</comments>
		<pubDate>Thu, 03 Jan 2013 06:00:13 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=558</guid>
		<description><![CDATA[I&#8217;ve been playing with the Thematic Framework for WordPress a bit over the last few months. I like it because it&#8217;s simple, easily extendable and massively tweakable. I&#8217;m not much of a designer, but I was having fun making my own child theme for Thematic when I came across Child&#8217;s Play theme from scottnix.com. I [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=397' rel='bookmark' title='2011 year end roundup'>2011 year end roundup</a></li>
<li><a href='http://angryweasel.com/blog/?p=59' rel='bookmark' title='HWTSAM &ndash; One Year Later'>HWTSAM &ndash; One Year Later</a></li>
<li><a href='http://angryweasel.com/blog/?p=261' rel='bookmark' title='Another year bites the dust'>Another year bites the dust</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been playing with the <a href="http://thematictheme.com/">Thematic Framework</a> for WordPress a bit over the last few months. I like it because it&#8217;s simple, easily extendable and massively tweakable. I&#8217;m not much of a designer, but I was having fun making my own child theme for Thematic when I came across <a href="http://scottnix.com/childs-play-responsive-child-theme-for-thematic/">Child&#8217;s Play theme</a> from scottnix.com. I liked it so much, that I threw away my work and applied Child&#8217;s Play to angryweasel.com. I tweaked the hell out of my last theme (and I&#8217;m sure I&#8217;ll tweak this one…eventually) – but what you see now (unless you&#8217;re reading my RSS feed) is completely stock. Not much to it, but it&#8217;s exactly what I was looking for.
</p>
<p>Posts related to software forthcoming…HNY.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=397' rel='bookmark' title='2011 year end roundup'>2011 year end roundup</a></li>
<li><a href='http://angryweasel.com/blog/?p=59' rel='bookmark' title='HWTSAM &ndash; One Year Later'>HWTSAM &ndash; One Year Later</a></li>
<li><a href='http://angryweasel.com/blog/?p=261' rel='bookmark' title='Another year bites the dust'>Another year bites the dust</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=558</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 Recap</title>
		<link>http://angryweasel.com/blog/?p=534</link>
		<comments>http://angryweasel.com/blog/?p=534#comments</comments>
		<pubDate>Sun, 16 Dec 2012 03:34:37 +0000</pubDate>
		<dc:creator>Alan Page</dc:creator>
				<category><![CDATA[All Posts]]></category>

		<guid isPermaLink="false">http://angryweasel.com/blog/?p=534</guid>
		<description><![CDATA[As 2012 comes to a close, I thought I&#8217;d recap the year. I think this little exercise is mostly for me, but I suppose new blog readers (or people with too much free time) may find some points of interest. Some more from the non-Microsoft front follows. My most popular blog posts from the last [...]<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=317' rel='bookmark' title='Fall Travel'>Fall Travel</a></li>
<li><a href='http://angryweasel.com/blog/?p=504' rel='bookmark' title='New Zealand &amp; Australia, 2012'>New Zealand &amp; Australia, 2012</a></li>
<li><a href='http://angryweasel.com/blog/?p=346' rel='bookmark' title='Oh, the places I&rsquo;ll go'>Oh, the places I&rsquo;ll go</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></description>
				<content:encoded><![CDATA[<p>As 2012 comes to a close, I thought I&#8217;d recap the year. I think this little exercise is mostly for me, but I suppose new blog readers (or people with too much free time) may find some points of interest.</p>
<p>Some more from the non-Microsoft front follows.</p>
<p>My most popular blog posts from the last year are (were):</p>
<ul>
<li><a href="http://angryweasel.com/blog/?p=502">Musings on Test Design</a></li>
<li><a href="http://angryweasel.com/blog/?p=496">Orchestrating Test Automation</a></li>
<li><a href="http://angryweasel.com/blog/?p=444">Exploring Test Roles</a></li>
<li><a href="http://angryweasel.com/blog/?p=412">Exploring Test Automation</a></li>
<li><a href="http://angryweasel.com/blog/?p=482">Quick Testing Challenge</a></li>
<li><a href="http://angryweasel.com/blog/?p=449">New Testing Ideas</a></li>
</ul>
<p>As I look at those topics, something tells me I should write about testing more, and skip non-testing topics (like year-end recaps, for example).</p>
<p>I spent most of the year close to home, hanging out with my family, and focusing on my job. I&#8217;ve been on the Xbox team for just over a year now, and I&#8217;m still having a great time. It&#8217;s a fantastic place to work, and I&#8217;m surrounded by more brilliant hard-working and passionate people than you could imagine. I will see if I can share some more stories and insights about the team in 2013.</p>
<p>I was visiting my parents this summer when my mother was diagnosed with cancer. I had committed to three speaking engagements in the fall, and in between those, work, and heading to my parents&#8217; house every weekend to help out, late summer and fall were exhausting.</p>
<p>I was honored to be invited to be part of the STANZ tour of New Zealand and Australia in September put on by <a href="http://www.softed.com">SoftEd</a>. I can&#8217;t say enough good things about the SofEd staff – they took care of every detail before, during, and after the event. It was a fantastic experience, and I hope I can get myself invited again some day. I had planned to take an extra few weeks off to travel after the conference, but given my mom&#8217;s health, I headed back early.</p>
<p>In October I gave a talk (that I thought wend quite well) at Intel in Oregon. This is my second time speaking at Intel (I spoke in Israel last year), and would speak there any time.</p>
<p>My next speaking event wasn&#8217;t planned. I was at my mom&#8217;s side when she passed later in October, and I gave the eulogy at her funeral a few days later.</p>
<p>A week later, I was on a plane to Amsterdam to give the opening keynote at EuroStar (slides are in my previous post). The staff and program committee at EuroStar were well-organized, and the conference ran (from my view, at least) quite smoothly. In the end, I&#8217;m sorry to say that I delivered a flat (by my standards) presentation. I was thrilled that some people said they liked it, but I wasn&#8217;t happy with my delivery. Given everything going on at home, I flew home before the conference ended and began trying to get back into a more normal routine.</p>
<p>The &#8220;normal routine&#8221; for me these days is work, family, and when I can find time, a bit of Xbox gaming (gamertag: A Weezil). I may start blogging regularly again in the new year – or I may not – I don&#8217;t know yet. I&#8217;ve committed to one conference next fall, and <em>may</em> do one other one. And that&#8217;s about all I&#8217;ve figured out.</p>
<p>I&#8217;m thankful for all of the new people I&#8217;ve met this year (I met too many testers at conferences this year to list their names), and for people I got to know better. For the first time in years, I have a bit of excitement about where testing is going (although some readers may not like where I think testing is going…). If you&#8217;ve read this far, I wish you luck in 2013 (and for the rest of 2012). I hope to cross paths with many more of you in the months to come.</p>
<div class='yarpp-related-rss'>
<h4>(potentially) related posts:</h4><ol>
<li><a href='http://angryweasel.com/blog/?p=317' rel='bookmark' title='Fall Travel'>Fall Travel</a></li>
<li><a href='http://angryweasel.com/blog/?p=504' rel='bookmark' title='New Zealand &amp; Australia, 2012'>New Zealand &amp; Australia, 2012</a></li>
<li><a href='http://angryweasel.com/blog/?p=346' rel='bookmark' title='Oh, the places I&rsquo;ll go'>Oh, the places I&rsquo;ll go</a></li>
</ol>
<img src='http://yarpp.org/pixels/d12a03aad6342536e10c153b9e479a2a'/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://angryweasel.com/blog/?feed=rss2&#038;p=534</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
