<?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>Paul Cowles &#187; sdbp</title>
	<atom:link href="http://www.paulcowles.com/category/sdbp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulcowles.com</link>
	<description>on-going</description>
	<lastBuildDate>Sat, 23 Oct 2010 19:37:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SD Best Practices 2006, Boston</title>
		<link>http://www.paulcowles.com/2006/09/16/sd-best-practices-2006-boston/</link>
		<comments>http://www.paulcowles.com/2006/09/16/sd-best-practices-2006-boston/#comments</comments>
		<pubDate>Sun, 17 Sep 2006 03:12:07 +0000</pubDate>
		<dc:creator>paulcowles</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[sdbp]]></category>
		<category><![CDATA[sdexpo06]]></category>

		<guid isPermaLink="false">http://www.paulcowles.com/2006/09/16/sd-best-practices-2006-boston/</guid>
		<description><![CDATA[Last week I was able to attend the SD Best Practices conference in Boston. The conference ran Monday through Thursday &#8211; and was held at the Hynes Convention Center &#8211; located right in the heart of downtown Boston, which meant walking distance to Newbury street and Boston Common. It was interesting to compare the SD [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was able to attend the <a href="http://www.sdexpo.com/2006/sdbp/">SD Best Practices</a> conference in Boston. The conference ran Monday through Thursday &#8211; and was held at the Hynes Convention Center &#8211; located right in the heart of downtown Boston, which meant walking distance to Newbury street and Boston Common. </p>
<p>It was interesting to compare the SD Best Practices conference (put together by the Dr. Dobb&#8217;s group) with the <a href="http://conferences.oreillynet.com/etech/">Emerging Technology conference</a> (put together by O&#8217;Reilly) from this past year. I felt the ETech conference was a higher energy, better attended, and more visionary conference whereas the SDBP lacked buzz but was more focused on real world situations and problems faced by those of us working in larger enterprises. A familiar scene at Etech was small groups of participants huddled together after sessions, exchanging ideas and brainstorming new approaches. At SDExpo this wasn&#8217;t the case &#8211; in my experience to compare the two conferences is to compare working at a start-up vs. working at a multinational. If you&#8217;re looking to push the limits of the Web or are looking for inspiration, Etech would be your better bet. If you are looking for ideas to improve your modified agile development process or need to improve your ability to deliver use cases or user scenarios &#8211; SDExpo would be your choice. Of course this is an over simplified view and both conferences had their share of brilliance. Enough with trying to compare apples and oranges&#8230;</p>
<p><a class="imagelink" href="http://www.paulcowles.com/wp-content/uploads/2006/09/img061.jpg" title="A typical SDExpo 2006 class"><img id="image31" src="http://www.paulcowles.com/wp-content/uploads/2006/09/img061.thumbnail.jpg" alt="A typical SDExpo 2006 class" align="right"/></a>The conference was organized into a number of tracks &#8211; requirements &#038; analysis, testing &#038; quality, process &#038; methods, people &#038; teams and so on. My observation over the 4 days was that the requirements &#038; analysis &#8216;classes&#8217; were very well attended but almost all the others were at most near 25% capacity. If you open the thumbnail I&#8217;ve inserted here you can see what I mean. Plenty of room &#8211; was attendance below expectations or were the rooms not properly sized? Either way, the relative emptiness really lowered the energy and decreased the discussion. </p>
<p>Before I move on to the sessions themselves &#8211; one other thing that bothered me about SDBP was the lack of openness and planning for collaboration on the Web. Where Etech pushed discussion post sessions via blogging and tagging &#8211; SDBP didn&#8217;t facilitate any of this and actually squirreled conference presentations away behind password prompts. If I was a presenter at SDBP, I&#8217;d certainly be pushing them to open up the resources section &#8211; free those ideas, why wouldn&#8217;t you want to engage the Web? It seems Dr. Dobb&#8217;s is still very much &#8216;old school&#8217; in their thinking about the conference as a set of &#8216;classes&#8217; and not an exchange of ideas.</p>
<p>Okay, so after all of this you may be getting the impression that I wouldn&#8217;t go back next year &#8211; but not so. The sessions themselves were for the most part excellent, challenging my thoughts on a number of subjects and I definitely took away a number of things I could implement into my teams right away. Below are my thoughts on some of the sessions I attended:</p>
<p><strong>Agile Model-Driven Development &#8211; Scott Ambler</strong><br />
Surprisingly (because Scott is on the conference advisory board and also an editor with Dr. Dobb&#8217;s), Scott was one of my least favorite speakers of the conference &#8211; his presentation style left me feeling that Scott was a &#8216;black and white&#8217; kind of guy and I actually thought he offended a number of people in the audience. I should have predicted this at the onset as Scott opened his session by telling us how someone stormed out of his last session &#8211; and how this person was clearly an idiot. Here were a few quotes Scott threw out during his presentation:
<ul>
<li>&#8220;..writing requirements early in the software development process is actually demonstrating incompetence..&#8221;</li>
<li>Addressing an audience member &#8211; &#8220;Let me guess, you&#8217;re in software quality right? Another over-specialized person&#8230;&#8221;</li>
<li>&#8220;Why have acceptance tests and requirements documents? QA just copies and pastes!&#8221;</li>
</ul>
<p>Even though I disagreed with how Scott put some of his points, in most cases I did agree with the underlying ideas. He did bring a common sense and blunt approach with a fresh perspective to some of the aspects of traditional development &#8211; arguing against ideas such as BRUF (Big Requirements Up Front) and traditional change management (or as Scott suggested &#8211; change prevention) implementations. I particularly liked Scott&#8217;s discussion of Change cases.</p>
<p><strong>Developing .NET Software Properly &#8211; Christian Gross</strong><br />
I only caught the last half of Christian&#8217;s session &#8211; but his discussion of .NET Generics and NullableParser was a good overview to some of the nice additions to .NET 2.0</p>
<p><strong>Scenario-Driven Development &#8211; Granville Miller</strong><br />
Granville (Randy) works on the Visual Studio Team System project with Microsoft. Randy argued that scenarios are an effective way to capture requirements within an agile process. He showcased some of the artifact templates available within MSF (Microsoft Solutions Framework) &#8211; of which some like the Vision template would be applicable to almost any project. While none of the ideas were revolutionary, Randy presented some effective techniques for capturing scenarios via defining the vision, the personas, the and the user goals.</p>
<p><strong>Effective Aspect-Oriented Programming &#8211; Rod Bodkin</strong><br />
Prior to this session I hadn&#8217;t much exposure to AOP. Rod walked us through AOP using AspectJ. For elements or functions that &#8216;cross cut&#8217; or span many of your application classes &#8211; such as logging or exception handling &#8211; aspect oriented programming is very appealing. And the fact of the matter is that almost every application has a number of these elements &#8211; leading me to believe that AOP will very soon be a staple in every programmer&#8217;s &#8216;toolbox&#8217;  just as OOP is today. AOP allows you to encapsulate features &#8211; to be plugged/unplugged or enabled/disabled at build or runtime. Rod demonstrated how AOP can be used to reduce code duplication as well as warn on architectural policy violations (eg. calling business layer from data layer). I found this part especially interesting given that it always seems to be a battle to monitor all members of the team for compliance to basic architectural standards. The only downside to Rod&#8217;s talk was that it was entirely Java centric &#8211; and when asked about related .NET projects, Rod wasn&#8217;t able to share much guidance. </p>
<p><strong>Introducing Problem-Frames &#8211; Rebecca Wirfs-Brock</strong><br />
I wasn&#8217;t able to take away much from this presentation &#8211; the real-world applicability seemed limited given that the modeling diagrams seemed at the same time both too simplistic and also hard to interpret. The highlight of this session for me was when Rebecca, in getting an audience member involved for an example interaction, asked &#8220;Would you mind being a human?&#8221; It is moments like these that remind me that I&#8217;m moving in a very <i>special</i> crowd when I&#8217;m at these developer&#8217;s conferences.</p>
<p><strong>Introduction to Holacracy &#8211; Brian Robertson</strong><br />
Brian was a very interesting guy and a very engaging high energy speaker. Brian has his own company and uses the principles of <a href="http://www.holacracy.org/about_intro.html">Holacracy</a> in his own organization. Holacracy is a system of practices &#8211; used to transform organizations &#8211; with promises of engaged employees and business agility. One of the core ideas is that a company is much like the human body &#8211; a greater whole made up of self-governing smaller wholes. I couldn&#8217;t help but feel that the practices, while practical, were also a bit utopian &#8211; easier implemented in a smaller company with fewer complexities. </p>
<p><strong>Web 2.0 acceptance testing tools and techniques &#8211; Jeff Nielsen &#038; Bob Payne</strong><br />
Jeff and Bob were very entertaining &#8211; were these guys a comedy duo before getting into QA? They started with why you would want to automate functional testing then moved to creation of a decision matrix for selecting the best tool. It always amazes me how many companies evaluate software <i>without</i> having such a matrix in place. Jeff and Bob summarized some of the tools available for Web 2.0 (think heavy Ajax) testing currently &#8211; <a href="http://htmlunit.sourceforge.net/">htmlunit</a>, <a href="http://webtest.canoo.com/webtest/manual/WebTestHome.html">Canoo WebTest</a>, <a href="http://www.mercury.com/us/products/quality-center/functional-testing/quicktest-professional/">QTP</a>, <a href="http://www.openqa.org/selenium/">Selenium</a>, <a href="http://fitnesse.org/">FitNesse</a>, <a href="http://wtr.rubyforge.org/">WATIR</a>, and <a href="http://rubyforge.org/projects/longboard/">Longboard</a>. They gave a real running demo of a suite of tests in Selenium. If you have QA specialists who are able to write code &#8211; WATIR looks very powerful &#8211; ruby based, controlling IE via COM. Selenium is a little simpler in terms of constructing tests and is completely browser based. Love the geek humor &#8211; Selenium is the element used to detoxify Mercury. </p>
<p><strong>Writing Effective User Stories for Agile Requirements &#8211; Mike Cohn</strong><br />
Mike gave an excellent session on perfecting user stories &#8211; regardless of whether or not you are using an agile process. Some points I thought worth noting:
<ul>
<li>A story can be broken down into 3 parts: Card (Story), Conversation (Notes after a talk with the product owner/customer), and Confirmation (the acceptance tests). If you make the conversation standard you ensure you keep talking to the customer.</li>
<li>We tend to write stories for &#8220;The User&#8221;. Of course this is BS, as there is never one &#8216;user&#8217;. We should define the different roles (or personas as others may call them) and use them when defining stories.</li>
<li>Users don&#8217;t know the answers &#8211; involve them, but don&#8217;t ask them for solutions &#8211; use participatory design. An example, you don&#8217;t tell the doctor how to solve the pain in your abdomen &#8211; you ask them for the solution. Same concept. </li>
<li>Good stories are independent, negotiable, valuable, estimatable, sized appropriately and testable</li>
<li>Use cases are not user stories. </li>
</ul>
<p><strong>Creating change one tic-tac at a time &#8211; Alistair Cockburn &#038; Jeffrey Fredrick</strong><br />
When organizations attempt to change their process there is inevitably a period of productivity loss. During this &#8216;pain period&#8217; many might abandon the new process if the payback is perceived to be too far away. As change agents, we need to ensure the expectation of this dip is set from the onset. One strategy they recommend is to run through the entire new process on a small scale &#8211; an &#8216;extreme hour&#8217;. This will help eliminate confusion and show that the new process is possible. </p>
<p>I&#8217;ve run project retrospectives on many occasions, and I liked the approach Jeffrey and Alistair recommend in terms of focusing on the positives only. Use &#8216;worked well&#8217; and &#8216;try next time&#8217; instead of &#8216;worked well&#8217; and &#8216;needs improvement&#8217;. They are correct when they say that the team often gets stuck on the &#8216;needs improvement&#8217; list. </p>
<p>They also touched on small rewards vs. big rewards and how small &#8216;meaningless&#8217; rewards have the better result. If you do X and receive $5k, subconsciously you know you did it for the money. If you do X and receive a small token (sticker, bobblehead whatever), subconsciously you know you didn&#8217;t do it for that meaningless reward but rather because you know it is the right thing to do. This approach seems to work best when markers are socially visible. </p>
<p><strong>Business Rules &#8211; Mary Gorman</strong><br />
Mary introduced the IIBA &#8211; <a href="http://www.theiiba.org/">The International Institute of Business Analysis</a>. She discussed  how to break out business policies from rules and also how to break rules out from use cases. This last part is particularly important &#8211; it is true that most use cases I&#8217;ve seen contain business rules embedded within them, stitched in all over the place. If you can remove the business rules from the use cases you attain modularity and can reduce rework as business rules tend to change more often. Mary also talked about strategies for keeping the business rules, use cases and data definitions in separate repositories and merging them on the fly into a single document for the development team &#8211; as we all know developers hate jumping from one document to the other. Examples illustrated rules defined using English language and pseudo code.</p>
<p><strong>Making .NET and Java work together &#8211; Ted Neward</strong><br />
Ted&#8217;s session was one of my favorites at SDBP. Ted threw away the slides and basically conducted a group conversation &#8211; mixing questions with example code and demos. Ted really took us through a deep dive &#8211; he&#8217;s got an extremely deep technical understanding of both platforms. I hadn&#8217;t looked at <a href="http://www.ikvm.net/">ikvm</a> before this session &#8211; and I was blown away at the demonstration. ikvm gives you a Java Virtual Machine implemented in .NET, a .NET implementation of the Java class libraries, and the ability to compile java byte code to CIL. </p>
<p>Discussion also included <a href="http://www.codemesh.com/products/juggernet/">Juggernet</a> and <a href="http://www.jnbridge.com/">JNbridge</a>. I will be downloading Lutz Roeder&#8217;s <a href="http://www.aisto.com/roeder/DotNet/">Reflector for .NET</a> after seeing it used in this session. </p>
<p>In discussions about VMWare, Ted mentioned some MSFT friends who have been running Windows inside <a href="http://www.parallels.com/">Parallels</a> on the new MacBook Pros and getting better performance than non virtual installation on a Thinkpad. Not sure if it is true, but if so &#8211; I really have to look at getting that MacBook.</p>
<p><strong>openUP Distilled &#8211; Brian Lyons &#038; Per Kroll</strong><br />
<a href="http://www.eclipse.org/epf/">Download the process</a> and start contributing. &#8220;OpenUP/Basic is an iterative software development process that is minimal, complete, and extensible.&#8221; &#8211; a great initiative. Eventually, RUP may be implemented as plugin modules on top of openUP. Other process practices could also be implemented as plugin modules. Brian and Per showcased the downloadable framework which included process diagrams, role definitions and more. This was driven out of real-world experiences of developing eclipse. I think it is about time that we have a project like this mature &#8211; so that development teams can have a process framework available in an open climate &#8211; and so that modifications can be contributed back as plugins. We don&#8217;t re-invent the wheel when it comes to code &#8211; why are we still doing it to a greater degree with development process artifacts?</p>
<p><strong>Balancing traditional and agile project management &#8211; Sonja Koppensteiner</strong><br />
I really enjoyed Sonja&#8217;s talk &#8211; and based on comments from the audience, Sonja really connected with many of the management in attendance that don&#8217;t live in the perfect purist world and have implemented a customized process for their development. I always get a kick out of the speakers who ask &#8216;Who here does XP&#8217;, &#8216;Who does SCRUM&#8217;, &#8216;Who does RUP&#8217; &#8211; when in reality I&#8217;ve never been part of a company that practices a purist version of any of the processes. In reality, everyone uses a modified process &#8211; the scope or magnitude of the modifications is the variable.  That is of course how it should be &#8211; organizations should be constantly refining their processes to find the perfect solution for their unique circumstances, culture etc. Sonja introduced some good models for evaluating each project &#8211; to find the elements from &#8216;traditional&#8217; methodologies you should adopt together with the elements from &#8216;agile&#8217; methodologies. I think once the Agile hype dies down a little, there will be more focus on this space as we balance back to picking the best from each process style to find the optimal solution for each individual project. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulcowles.com/2006/09/16/sd-best-practices-2006-boston/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

