<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Speaking</title><link>http://www.agileprogrammer.com/dotnetguy/category/121.aspx</link><description>Speaking</description><managingEditor>Brad Wilson</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2005.109</generator><item><dc:creator>Brad Wilson</dc:creator><title>Call for Presentations: Agile 2008</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2007/11/11/23750.aspx</link><pubDate>Sun, 11 Nov 2007 08:58:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2007/11/11/23750.aspx</guid><description>&lt;p&gt;Mitch has posted the &lt;a href="http://mitchlacey.com/content/view/31/33/"&gt;Call for Presentations&lt;/a&gt; for Agile 2008 in Toronto next summer.&lt;/p&gt;
&lt;p&gt;I went to Agile 2006, mostly because I was presenting (and there, mostly because Mitch came in at the 11th hour and shepherded the process along). While I sincerely enjoyed presenting, many of us lamented that something seemed to be missing from the conference. &lt;a href="http://www.peterprovost.org/"&gt;Peter&lt;/a&gt; summed it up best by saying that the soul -- the Zen -- of agility seemed to be missing. Everybody was talking about the mechanics, but nobody was talking about the organics.&lt;/p&gt;
&lt;p&gt;I didn't go to Agile 2007, partly because of that and partly because I was "saving" up my big trip for the PDC that never materialized. I'm thinking about trying to create a talk about agile philosophy for this year, but I'm not quite sure what I want to say. This &lt;a href="http://alarmingdevelopment.org/?p=79"&gt;blog post by Jonathan Edwards about Beautiful Code&lt;/a&gt; has been stewing in my brain for several months now...&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/23750.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>p&amp;amp;p Summit, Redmond WA, Nov 5-9</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2007/10/20/23600.aspx</link><pubDate>Sat, 20 Oct 2007 18:27:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2007/10/20/23600.aspx</guid><description>&lt;p&gt;It's hard to believe that another &lt;a href="http://www.pnpsummit.com/west2007.aspx"&gt;p&amp;amp;p Summit is almost here&lt;/a&gt;... the time has really flown by. This year I'll be co-presenting twice. The line-up of keynote talks looks positively awesome this year! (Despite Scott Hansleman's protestations to the contrary, he does belong in that group of intelligent and talented people. ;)&lt;/p&gt; &lt;p&gt;The first talk, "Yet another agile talk on agility", is one where &lt;a href="http://www.peterprovost.org/"&gt;Peter&lt;/a&gt; and I will answer questions from the audience about our experiences running agile teams, inside and outside of Microsoft. We run the talk just like an agile project, a technique that I first saw used by &lt;a href="http://www.agileprogrammer.com/oneagilecoder/"&gt;Brian Button&lt;/a&gt;. You start by creating an initial backlog (i.e., people ask questions and you write them down), then you go through an iterative stack-ranking and execution (i.e., answer them) process with time-boxed iterations (i.e., 5 minutes). It's pretty interesting process and never yields the same talk twice. It's also awesome in its ability to require no prepartion. ;)&lt;/p&gt; &lt;p&gt;The second talk, "Dependency Injection Frameworks", is one where &lt;a href="http://www.agileprogrammer.com/scottden/"&gt;Scott&lt;/a&gt; and I will talk about the work we've done evolving ObjectBuilder 2.0, as well as some sample containers that we have on the &lt;a href="http://www.codeplex.com/ObjectBuilder"&gt;ObjectBuilder CodePlex project space&lt;/a&gt;. A lot of the work there has come from real container needs in the wild, and some of the concerns about the complicated architecture of ObjectBuilder 1.0 have been addressed. In addition to our new containers and new architecture, we'll show off some of the new core features we've added, including a lightweight version of the CAB EventBroker and a method-interception system modeled after Enterprise Library's Policy Injection App Block.&lt;/p&gt; &lt;p&gt;I'm trying to make a commitment to be there all through the first 3 days so that people can sideline me both before and after the talks. Unfortunately, I won't be able to be there for the last 2 days. If you're going to be there, and want to talk about any of the projects I've got going on right now (&lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;, ObjectBuilder, &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit.net&lt;/a&gt;, etc.) please don't hesitate to find me. You can also use the &lt;a href="http://www.agileprogrammer.com/dotnetguy/contact.aspx"&gt;Contact&lt;/a&gt; page here on the blog if you want to make sure I find time for you.&lt;/p&gt; &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/23600.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Seattle Code Camp v3.0 - Nov 17 &amp;amp; 18</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2007/10/15/23584.aspx</link><pubDate>Mon, 15 Oct 2007 20:20:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2007/10/15/23584.aspx</guid><description>&lt;p&gt;Seattle Code Camp is back! &lt;a href="http://seattle.codecamp.us/default.aspx"&gt;More information&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Looks like it's been pushed back a couple weeks due to conflicts, and is now November 17 &amp;amp; 18.&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/23584.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Seattle Code Camp Venue Change</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/10/26/20562.aspx</link><pubDate>Thu, 26 Oct 2006 08:56:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/10/26/20562.aspx</guid><description>&lt;p&gt;That &lt;a href="http://seattle.techevents.info/codecamp/2/default.aspx"&gt;Code Camp&lt;/a&gt; thingy that's just 2 days away? It's not in Federal Way any more. It's at Digipen in Redmond:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;Digipen Institute of Technology&lt;br /&gt;5001 NE 150th Ave&lt;br /&gt;Redmond, WA 98052 [&lt;a href="http://local.live.com/?v=2&amp;amp;sp=Point.ry82tz4tndyf_5001%2520150th%2520Ave%2520NE%252c%2520Redmond%252c%2520WA%252098052%252c%2520United%2520States___"&gt;map&lt;/a&gt;]&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That puts it within walking distance of my domicile. :)&lt;/p&gt;
&lt;p&gt;See you there this weekend!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now playing:&lt;/strong&gt; &lt;a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?artistTerm=Vanden Plas"&gt;Vanden Plas&lt;/a&gt; - &lt;a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?songTerm=Wish You Were Here&amp;amp;artistTerm=Vanden Plas"&gt;Wish You Were Here&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/20562.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Sessions for Code Camp</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/10/21/20405.aspx</link><pubDate>Sat, 21 Oct 2006 15:35:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/10/21/20405.aspx</guid><description>&lt;p&gt;Peter and I will be doing two sessions together at Seattle Code Camp this year. The camp is next weekend, October 28 and 29, at DeVry in Federal Way.&lt;/p&gt;
&lt;p&gt;The first co-presentation is our &lt;a href="http://seattle.techevents.info/codecamp/2/SessionInfo.aspx?ID=48b9da48-ede7-4f19-9559-18be93fcf259"&gt;Micro-Pairing&lt;/a&gt; talk, which was actually born out of last year's Seattle Code Camp talk about Model-View-Presenter. It was an odd combination that seemed to work okay, but this talk will focus entirely on the Micro-Pairing agile practice (we used to call this "The TDD Pair Programming Game" until &lt;a href="http://www.agileprogrammer.com/oneagilecoder/"&gt;Brian Button&lt;/a&gt; suggested this better name). This is the same talk we did at Agile 2006 (in July)&amp;nbsp;and the p&amp;amp;p Summit (a couple weeks ago), and this will likely be the last time we do this talk publicly.&lt;/p&gt;
&lt;p&gt;The second is titled &lt;a href="http://seattle.techevents.info/codecamp/2/PresenterInfo.aspx?ID=d6aa8cb3-9f3c-4d37-bf5c-ee68ec71fc09"&gt;How I Pwn3d the World of Warcraft UI with Lua&lt;/a&gt;. This is a new talk that we've never given before. We will discuss the topic of end-user extensibility in game development, and we'll teach you the basics of how to extend the game for yourself using a Lua/WoW Object Orientation library called &lt;a href="http://www.wowace.com/"&gt;Ace2&lt;/a&gt;. We don't want to give away too many secrets before the talk, of course. :)&lt;/p&gt;
&lt;p&gt;I will also be doing a solo session titled &lt;a href="http://seattle.techevents.info/codecamp/2/SessionInfo.aspx?ID=16d4f469-a562-4ebc-9976-192a947db2bf"&gt;Introduction to Dependency Injection&lt;/a&gt;. Peter and I did a similar talk last year, although at the time we couldn't talk much about ObjectBuilder's inner guts and implementation. This time around, I'd like to spend a little more time talking about the types of things that dependency injection can bring to application development, as well as illustrate how you can extend ObjectBuilder yourself through a real-world example. I will attempt, within the time given, to show how to implement an event brokering system like the one present in CAB, but without the requirements of having CAB or WinForms. And this time, I'll be giving away all the code, of course. :)&lt;/p&gt;
&lt;p&gt;We would love to see all of you there!&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/20405.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Slides from Agile 2006</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/07/31/17763.aspx</link><pubDate>Mon, 31 Jul 2006 18:11:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/07/31/17763.aspx</guid><description>&lt;p&gt;Peter, Mitch and I gave our talk on the pairing game at Agile 2006 this year, and the session was well received (&lt;a href="http://www.agileprogrammer.com/uploads/bradwils/pairing_game.pdf"&gt;deck&lt;/a&gt;). I think the stars aligned for it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The right audience.&lt;/strong&gt; Our talk doesn't really focus too heavily on introducing the concepts of pairing and TDDing, but instead on our modifications to pairing. If you're not familiar with the concepts, then you can get a bit lost by the nuances of the problems we try to solve with the game.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The right size audience.&lt;/strong&gt; Peter made the comment that the talk is much harder past about 50 people, and I agree. With an audience of 25-50, you can be very interactive. We pushed the outside envelope of audience size, but it still felt very intimate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The right message.&lt;/strong&gt; We finally were able to distill what is most important about the game (which I'll describe below). What helped was discovering that the basic technique already existed (&lt;a href="http://c2.com/cgi/wiki?PairProgrammingPingPongPattern"&gt;Ping-Pong Programming&lt;/a&gt;), which led us to be able to differentiate against it effectively.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The right environment.&lt;/strong&gt; We've given a variation of this talk in many forms, and I think this one works the best. In essence, we had a very tall table that was used for the pairing laptop (my shiny new MacBook Pro running Windows XP). This was better than sitting at a table, and better than using a podium, which hides the computer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The right deck.&lt;/strong&gt; I can't stress enough how amazing &lt;a href="http://www.beyondbullets.com/"&gt;Cliff Atkinson&lt;/a&gt;'s &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735620520/"&gt;Beyond Bullet Points&lt;/a&gt; can be. We had multiple comments when we were done about how engaging the deck was for people in the audience. All the photography in the deck is from &lt;a href="http://www.sxc.hu/"&gt;stock.xchng&lt;/a&gt; (highly recommended).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The essence of the game is quite simple. When doing &lt;a href="http://en.wikipedia.org/wiki/Test_driven_development"&gt;Test Driven Development&lt;/a&gt;, you have a state machine that is sometimes called "Red/Green/Refactor". The idea is that you start with all tests passing (green state), write a test that fails (red state), write just enough code to make the test pass (back to the green state), and then refactor as desired (whenever you're in a green state).&lt;/p&gt;
&lt;p&gt;What we say is that you have discrete activities: writing a test, making the test pass, and refactoring. After performing any one of these actions, you pass the keyboard to the other person. In the red state, you have to make the test pass; if you're in the green state, though, you can choose to write a new test or to refactor. This process is what Ping-Pong describes. The keyboard passes very quickly; if you have the keyboard more than about 5 minutes, you're probably doing too much.&lt;/p&gt;
&lt;p&gt;Our addition to the process talks about why you're doing this, other than "doing something extreme, in an extreme fashion". The purpose of the frequent keyboard passing is to provide an explicit state for scope negotiation. When player A writes a test and gives the keyboard to player B, that's a great time for them to discuss whether the test is taking them in the right direction, what it means to the architecture of the code, whether the step is too big, etc. Similarly, when player B makes the test pass and hands the keyboard back to player A, that person can also negotiate over whether too much work was done, or whether they even like the work done at all.&lt;/p&gt;
&lt;p&gt;This frequent negotiation overcomes some of the limitations of traditional pairing. When you do the traditional style of pairing, the driver might have the keyboard for an extended period of time (30 minutes? an hour or 2?). Without explicit hand-over guidance, it's very easy for an extroverted driver to take over the pair. By forcing the hand-off, you tone down your extroverts and empower your introverts. You make sure nobody has the opportunity or desire to check-out of the process when they're the observer.&lt;/p&gt;
&lt;p&gt;Even though the process sounds very simple, it can have a dramatic effect on the quality of your pairing time. I found that this style allows the team to stay engaged and get a lot done in just a little time. A warning, though, that this style of development can leave you feeling both mentally and physically tired at the end of the day. Remember to take frequent breaks.&lt;/p&gt;
&lt;p&gt;All that we're missing now is a good name for the technique...&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/17763.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Pair Programming Game at Agile 2006</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/05/15/14735.aspx</link><pubDate>Mon, 15 May 2006 00:05:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/05/15/14735.aspx</guid><description>&lt;p&gt;
&lt;a href="http://www.peterprovost.org/"&gt;Peter&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/mitchl/default.aspx"&gt;Mitch&lt;/a&gt; and I will be demonstrating the &lt;a href="http://www.peterprovost.org/archive/2005/08/29/7377.aspx"&gt;TDD Pair Programming Game&lt;/a&gt; at the &lt;a href="http://www.agile2006.com/"&gt;Agile 2006 International Conference&lt;/a&gt; in July in Minneapolis.
&lt;/p&gt;&lt;p&gt;
Hope to see you there!
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Now playing:&lt;/strong&gt; &lt;a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?artistTerm=Dream%20Theater"&gt;Dream Theater&lt;/a&gt; - &lt;a href="http://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?songTerm=A%20Change%20Of%20Seasons&amp;amp;artistTerm=Dream%20Theater"&gt;A Change Of Seasons&lt;/a&gt;
&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/14735.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Portland Code Camp 2.0 is Coming</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/05/06/14404.aspx</link><pubDate>Sat, 06 May 2006 15:27:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/05/06/14404.aspx</guid><description>&lt;p&gt;Jason has &lt;a href="http://www.jasonmauer.com/EntryView.aspx?id=8D128C26-093A-497A-9869-97E7D90D2FD3"&gt;announced Portland Code Camp 2.0&lt;/a&gt; for July 22-23. If last year was any indication, it's going to be seriously great. The new venue sounds excellent.&lt;/p&gt;
&lt;p&gt;Unfortunately I won't be able to make it this year, because they counter-scheduled against &lt;a href="http://www.agile2006.org/"&gt;Agile 2006&lt;/a&gt; (where I'm already presenting with &lt;a href="http://www.peterprovost.org/"&gt;Peter Provost&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/mitchl/"&gt;Mitch Lacey&lt;/a&gt;).&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/14404.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Speaking at p&amp;p Summit Boston</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/03/11/12139.aspx</link><pubDate>Sat, 11 Mar 2006 00:01:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/03/11/12139.aspx</guid><description>&lt;p&gt;I found out today that I'll be speaking at the &lt;a href="http://www.pnpsummit.com/east2006.aspx"&gt;patterns &amp;amp; practices summit in Boston in two weeks&lt;/a&gt;. I'm still negotiating what my talks will be, but undoubtedly there will be some coverage of Smart Client stuff (&lt;a href="http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnpag2/html/cab.asp"&gt;CAB&lt;/a&gt; and/or &lt;a href="http://codegallery.gotdotnet.com/scbat"&gt;SC-BAT&lt;/a&gt;) as well as agile topics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I got my list of scheduled topics.&lt;/p&gt;
&lt;p&gt;On Wednesday morning I'll be talking about Smart Client Baseline Architecture Toolkit (SC-BAT), which will offer an overview of what the project is and how architects can use our toolkit to create their own baseline architectures.&lt;/p&gt;
&lt;p&gt;On Thursday morning I'll be talking about &lt;a href="http://codegallery.gotdotnet.com/objectbuilder/"&gt;ObjectBuilder&lt;/a&gt;, our framework for building dependency injection systems. This is the first time we'll be talking about ObjectBuilder publicly, and probably the only time this talk will be given at a Summit. It will be quite different from the &lt;a href="http://www.peterprovost.org/archive/2005/10/24/8942.aspx"&gt;DI talk that Peter and I did at Seattle Code Camp&lt;/a&gt;; instead of talking about dependency injection in the abstract and showing an OB wrapper, I'll be talking about what OB is, where we've used it in p&amp;amp;p,&amp;nbsp;and how you can use it to create your own customized &lt;a href="http://en.wikipedia.org/wiki/Dependency_Injection"&gt;Dependency Injection&lt;/a&gt; framework.&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/12139.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Brad Wilson</dc:creator><title>Speaking at Seattle XP tomorrow (Thu Feb 9)</title><link>http://www.agileprogrammer.com/dotnetguy/archive/2006/02/08/11339.aspx</link><pubDate>Wed, 08 Feb 2006 08:34:00 GMT</pubDate><guid>http://www.agileprogrammer.com/dotnetguy/archive/2006/02/08/11339.aspx</guid><description>&lt;p&gt;&lt;a href="http://www.peterprovost.org/"&gt;Peter&lt;/a&gt;, &lt;A href="http://www.agileprogrammer.com/oneagilecoder/"&gt;Brian&lt;/a&gt; and myself will be speaking at &lt;a href="http://www.seattlexp.org/cgi-bin/wiki.cgi?SeattleXpUsersGroup"&gt;Seattle XP&lt;/a&gt; tomorrow night. The topic is "Experiences of an Agile Team at Microsoft". Pizza and networking start at 6:30 P.M., and the talk begins at 7:00 P.M.&lt;/p&gt;
&lt;p&gt;This is one of my favorite talks that we give. Okay, some of that is because I'm lazy and I like recycling decks and giving talks that take no prep; but some of it because I love to share what we've done. We are continuously refining and improving the way we deliver software, and it's exciting to be able to share that experience with others who are interested in taking the leap to make those improvements on their teams.&lt;/p&gt;&lt;img src ="http://www.agileprogrammer.com/dotnetguy/aggbug/11339.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>