<?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>Elegant Code &#187; David Starr</title>
	<atom:link href="http://elegantcode.com/author/dstarr/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Feb 2012 04:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Job Titles and Scrum</title>
		<link>http://elegantcode.com/2012/01/23/job-titles-and-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=job-titles-and-scrum</link>
		<comments>http://elegantcode.com/2012/01/23/job-titles-and-scrum/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 22:36:24 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2012/01/23/job-titles-and-scrum/</guid>
		<description><![CDATA[I hear a lot of questions about “proper” Scrum. I feel compelled to answer one such question here, given how often I hear the topic discussed. Does Scrum prohibit job titles? No. Although Scrum does not recognize any titles defined outside the Scrum Framework, titles are almost always present in the organization. While Scrum doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I hear a lot of questions about “proper” Scrum. I feel compelled to answer one such question here, given how often I hear the topic discussed.</p>
<h2><strong>Does Scrum prohibit job titles? </strong></h2>
<p>No.</p>
<p>Although Scrum does not <em>recognize</em> any titles defined outside the Scrum Framework, titles are almost always present in the organization. While Scrum doesn&#8217;t recognize titles other than &#8220;team member&#8221;, making changes to pay and rank structures within your company is a cultural norm set outside Scrum in most cases. For example, my title at Scrum.org is <em>Chief Craftsman</em>. That doesn&#8217;t mean I will never test something my team is working on, or work outside the context of my business card. Of course I will, but it would be somewhat awkward for me to hand a business card to someone if it read &#8220;David Starr &#8211; Development Team Member&#8221;.</p>
<p>Practical application of Scrum means we must be aware there are specialties present on any given team. Might one Development Team member have deeper skills in test, or UI design than another? Of course! To deny this would be foolish, but Scrum doesn&#8217;t dictate the titles these people put on their business cards.</p>
<p>Scrum&#8217;s reputation for eschewing job titles evolved because Scrum focuses on building cross-functional and self-organizing teams. When these teams are successful, titles just don&#8217;t matter and team members teach each other about the specialty jobs over time. The Development Team is held to account as a group and therefore titles are irrelevant within the context of Scrum. Good Scrum Teams will naturally care less about titles and more about results.</p>
<p>Some companies have experimented with a general lack of job titles and found that to be a good thing for their culture. Scrum is 100% compatible and encouraging of this, but the implications of such a system go far beyond the borders of the Scrum Team. If you truly want a company with no job titles, applying Scrum will be one of the less challenging things you&#8217;ll learn to do.</p>
<p>Traditional management practices, such as having a clear career path, are still used extensively in companies very successful with the Scrum Framework.</p>
<p>Scrum doesn’t hate titles. It just ignores them.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2012/01/23/job-titles-and-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum.org&#8217;s New Agile Webcast Series (no trans fats)</title>
		<link>http://elegantcode.com/2012/01/23/yet-another-agile-webcast-series-no-trans-fats/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yet-another-agile-webcast-series-no-trans-fats</link>
		<comments>http://elegantcode.com/2012/01/23/yet-another-agile-webcast-series-no-trans-fats/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 16:53:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2012/01/23/yet-another-agile-webcast-series-no-trans-fats/</guid>
		<description><![CDATA[I’ve been focusing energies at Scrum.org on growing our community of Agile practitioners. That’s right, the word “scrum” wasn’t in that statement. Sort of. Our mission is to Improve the Profession of Software Development, not to Increase Instances of Poorly Implemented Scrum. But, I digress… Scrum.org wants to be a valued resource for those practicing [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been focusing energies at Scrum.org on growing our community of Agile practitioners. That’s right, the word “scrum” wasn’t in that statement. Sort of. Our mission is to <em>Improve the Profession of Software Development</em>, not to <em>Increase Instances of Poorly Implemented Scrum</em>. But, I digress…</p>
<p>Scrum.org wants to be a valued resource for those practicing agile development methods and techniques, regardless of what those methods and techniques are called. Accordingly, we <a href="http://www.scrum.org/news/2012/1/17/scrumorg-launches-agile-webcast-series.html" target="_blank">just announced</a> our new <a href="http://www.scrum.org/webcast" target="_blank">webcast series</a>, “An ongoing public discourse on Agile, Scrum, and professional software development.”</p>
<p>Our plan is to keep these free to attend and to ensure previously recorded episodes are available for viewing. Topics will range on all subjects professional software development related, and will occasionally even discuss Scrum. Anyone may present, but we won’t allow any “you should buy this product because it will make you more agile” crap.</p>
<p>We are leading off the series with <a href="http://www.chadalbrecht.com/" target="_blank">Chad Albrecht</a>’s <em>Agile Economics, the Dollars and Sense of Scrum</em>. I’ve seen this talk from Chad, which is why I asked him to do it on the webcast. If you need ammunition for convincing your executives (or even just your boss) about the legitimacy of agile methods, come see this talk. You’ll get an arsenal of arguments and case law to support the idea that this whole agile thing is good business. You may <a href="https://www3.gotomeeting.com/register/152191966" target="_blank">register to attend this episode</a>, but we only have 100 seats available, so space is limited in the live session.</p>
<p>If you have suggestions for topics you would like to see covered, or if you have an idea you would like to share as a presenter, please let me know. We want hard-core geek topics as well as topics of interest to process wonks.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2012/01/23/yet-another-agile-webcast-series-no-trans-fats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Origins of the Craft : Iterative / Incremental</title>
		<link>http://elegantcode.com/2012/01/16/origins-of-the-craft-iterative-incremental/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=origins-of-the-craft-iterative-incremental</link>
		<comments>http://elegantcode.com/2012/01/16/origins-of-the-craft-iterative-incremental/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 03:03:12 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2012/01/16/origins-of-the-craft-iterative-incremental/</guid>
		<description><![CDATA[For your consideration, a paper written by Victor Basili and Albert Turner, Iterative Enhancement : A Practical Technique for Software Development. They make some very good points about iterative feature development, some of which I’d like to call out in this post. Here are some quotes from the paper for your consideration. Quote 1 Building [...]]]></description>
			<content:encoded><![CDATA[<p>For your consideration, a paper written by <a href="http://www.cs.umd.edu/~basili/">Victor Basili</a> and Albert Turner, <a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=43045">Iterative Enhancement : A Practical Technique for Software Development</a>. They make some very good points about iterative feature development, some of which I’d like to call out in this post. Here are some quotes from the paper for your consideration.</p>
<blockquote><h2>Quote 1</h2>
<p>Building a system using a well modularized, top-down approach requires that the problem and its solution be well understood. Even if the implementers have previously undertaken a similar project, it is still difficult to achieve a good design for a new system on the first try.</p>
<h2>Quote 2</h2>
<p>… start with a simple initial implementation of a subset of the problem and iteratively enhance existing versions until the full system is implemented. At each step of the process, not only extensions but also design modifications can be made. In fact, each step can make use of stepwise refinement in a more effective way as the system becomes better understood through the iterative process. As these iterations converge to the full solution, fewer and fewer modifications need be made. &quot;Iterative enhancement&quot; represents a practical means of applying stepwise refinement.</p>
<h2>Quote 3</h2>
<p>Each iterative step consists of selecting and removing the next task from the list, designing the implementation for the selected task (the design phase), coding and debugging the implementation of the task (the implementation phase), performing an analysis of the existing partial implementation developed at this step of the iteration (the analysis phase), and updating the project control list as a result of this analysis. The process is iterated until the project control list is empty, i.e., until a final implementation is developed that meets the project specifications.</p>
</blockquote>
<h2>Why I am Quoting this Guy</h2>
<p>I splurged with an Amazon gift card I got for Christmas and bought a printed version of <a href="http://www.amazon.com/Foundations-Empirical-Software-Engineering-Legacy/dp/3540245472">Foundations of Empirical Software Engineering, The Legacy of Victor R. Basili</a>. You can <a href="http://trace.tennessee.edu/cgi/viewcontent.cgi?article=1001&amp;context=utk_harlanabout&amp;sei-redir=1&amp;referer=http%3A%2F%2Fscholar.google.com%2Fscholar%3Fq%3Diterative%2Benhancement%2Ba%2Bpractical%2Btechnique%2Bfor%2Bsoftware%2Bdevelopment%26hl%3Den%26as_sdt%3D0%26as_vis%3D1%26oi%3Dscholart#search=%22iterative%20enhancement%20practical%20technique%20software%20development%22">get the PDF here</a>. The article on Iterative Enhancement is on page 28.</p>
<p>Professor Basili’s observations make even more sense in light of the project he was talking about, his implementation of a programming language. Can you think of a better problem domain for incremental releases? As soon as I have a new language feature, I want to use it in the definition of yet another feature. Beauty personified.</p>
<h2>The Kicker</h2>
<p>When you note the pub date on these papers, you’ll see that it was published in 1975. I was 5 years old.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2012/01/16/origins-of-the-craft-iterative-incremental/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile&#8217;s Coming of Age</title>
		<link>http://elegantcode.com/2012/01/01/agiles-coming-of-age/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agiles-coming-of-age</link>
		<comments>http://elegantcode.com/2012/01/01/agiles-coming-of-age/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 04:28:03 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2012/01/01/agiles-coming-of-age/</guid>
		<description><![CDATA[Now that the term “Agile” is sufficiently compromised as to be near meaningless, Agile Software Development is old enough to stand on its own, make its own business case, and demonstrate its value. But it still isn’t a mature adult. Agile Software Development is a hormonally unbalanced pre-teen with ugly spots, occasional outbursts of irrational [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the term “Agile” is sufficiently compromised as to be near meaningless, Agile Software Development is old enough to stand on its own, make its own business case, and demonstrate its value. But it still isn’t a mature adult. Agile Software Development is a hormonally unbalanced pre-teen with ugly spots, occasional outbursts of irrational anger, and the promising potential of smart-assed intelligence. </p>
<p>Giving birth to Agility and parenting it to pre-pubescence was a miraculous feat. The thought leaders who brought us the manifesto and subsequent culture shift deserve our thanks for seeing the need and creating the right message at the right time. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession. </p>
<p>One focus of the last 10 years of agile discussion has been, “There are better ways to develop software.” While the state of spaghetti code in the universe is still a big problem, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven. Many teams are just acting more professionally, and that’s a wonderful thing.</p>
<p>The other primary focus of the last 10 years has been teaching technologists to actually speak human. You know, with emotion and stuff. And there’s great news; as a profession, we developers aren’t as jerky now as we were 10 years ago. See? It’s working.</p>
<h2>The Agile Consensus</h2>
<p>I get to see many implementations of Agile Software Development. Not surprisingly, most teams out there aren’t living the dream, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, projects.</p>
<p><a href="http://www.amazon.com/Sam-Guckenheimer/e/B001IOF5QQ/ref=ntt_athr_dp_pel_pop_1">Sam Guckenheimer</a> calls this change the Agile Consensus in <a href="http://www.amazon.com/Agile-Software-Engineering-Visual-Studio/dp/0321685857/ref=sr_1_1?ie=UTF8&amp;qid=1322249273&amp;sr=8-1">his recent book with Neno Loje</a> (disclosure: I was a technical reviewer on this book). The idea behind the Agile Consensus is simply this: Agile won. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles. </p>
<p><b>Bottom line:</b> Agility has crossed the chasm and is no longer only the domain of developers. The enterprise wants big-A Agility.</p>
<h2>Not Crazy Anymore</h2>
<p>Whether or not a given practice is crazy or “edgy” depends on who you talk to. Organizational acceptance of a given practice is typically rooted in the values that practice supports, and the practices here seem to have reached a level of general acceptance in our industry. Mostly.</p>
<h3>Daily Team Meeting</h3>
<p>Whether you call it the Daily Scrum, the Daily Standup, or simply a daily team meeting, the practice of a quick, informal team meeting held at the same time and place each day has really caught on. The reason for this is simple; when done well, the daily team meeting helps teams be more productive and improves situational awareness in complex environments. And regardless of what kind of software development you do, odds are it is fairly complex.</p>
<p>The daily team meeting is one of the most misunderstood and poorly executed practices mentioned in this article, but I digress. </p>
<p><b>Bottom Line:</b> Daily Team Meetings are commonplace and useful. They aren’t considered crazy by most teams anymore. </p>
<h3>Sprints</h3>
<p>Sprints, or iterations, are simply short periods of dedicated time within which teams will deliver working software. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, death march projects. Many teams know that progressing toward the broader goal of releasing software is often best managed by delivering working software all the way through a delivery pipeline, with increasing amounts of functionality each time.</p>
<p>Businesses leaders often love Sprints because Sprints are an obvious way to manage risk. More on this later.</p>
<p><b>Bottom line:</b> While there are other ways to organize work, doing it in small batches within a Sprint of 30 days or less is a model that has proven itself time and again.</p>
<h3>Test as We Develop</h3>
<p>Lean thinking encourages “testing at the point of work”, which is a broad concept we’ve apply to software development to derive TDD, BDD, ATDD, and other forms of simply proving that software works as we create it. We’ve learned along the way that we don’t even need to think of this as a verification process. Test-First practices have proven to not only help developers build the “right” software, but to build the right software <i>well</i>.</p>
<p>Not every developer has drunk this Koolaid, but most understand the basic value behind Test-First as either a design tool or a verification tool. Those of us who really drank deeply see Test-First development as the de facto way to write code. Sure, I’ll bang out a quick shell script without an accompanying automated test harness, but that’s a simple fit-for-purpose decision. </p>
<p><b>Bottom line:</b> When making software that needs to be work right and be crafted well, many developers see Test-First practices as indispensable.</p>
<h3>Deliver Frequently</h3>
<p>Delivering working software frequently allows development teams to actually deliver something, and that’s half the battle. Frequent delivery of working software enables the most valuable feedback loop in software development. The conversation around this feedback loop is simple and sounds like this:</p>
<p>“Here’s what we made. Here is how it works. What do you think?”</p>
<p>And then comes the tricky part &#8211; Actually listening to the response. This helps teams build the right thing next. I loved watching eBay a few years back as it changed its color scheme and skin layout gradually over a few months. They design a destination look and feel and migrated to it with frequent delivery of small changes in their UI. This allowed the product to evolve, rather than re-release. This is how software delivery is evolving and the most extreme form is called “Continuous Delivery.”</p>
<p>Delivering frequently may sound a lot like “Sprints”, but there is more going on here. Sprints are simply a forcing function for frequent delivery. There are other ways to pull it off. Frequent delivery all the way to customer feedback can change the way a company engages its customers and plans its strategic moves.</p>
<p><b>Bottom line:</b> Frequent delivery is craved by executives for the business advantages offered and by technical teams because it makes actually shipping ubiquitous. </p>
<h2>Still Crazy</h2>
<p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, or extreme. Despite evidence that these practices offer real value and better alternatives to traditional thinking, the old ways of looking at the world are just so ingrained that these practices provide fodder to skeptics.</p>
<h3>Pairing</h3>
<p>No technical practice has drawn more fire than Pair Programming. Hard data has begun to emerge about the practice of pairing, and all that data shows (to varying degrees) how pairing creates higher quality and simply better software. A paper</p>
<p>There are also a ton of human advantages, like increased learning, knowledge sharing, and removing single points of failure within a team.</p>
<p>Why then has formal pairing been relegated to the domain of roman sandal wearing hippie agilistas? Most development team leaders or managers simply see pairing as an investment of two people doing what one could accomplish. I won’t try and convince you otherwise in this article, but I will mention this:</p>
<p>Barry Bohm has made a very distinguished career of studying software development. In <i>Balancing Agility and Discipline</i>, he asserts that 60% of all software defects in production could have been caught with a peer review. Pair programming is continuous peer review. You do the math.</p>
<p>Finally, most developers treasure their alone-time with the code. Sharing the way I approach problems or write code can feel like a job interview every day. That kind of scrutiny can feel very uncomfortable unless I am in an environment of absolute trust. That ties the success of this technical practice to the culture of the team and company.</p>
<p><b>Bottom line:</b> Pair programming is still seen as eXtreme, and the transparency it forces can terrify many developers.</p>
<h3>Funding Alternatives</h3>
<p>Companies spend a lot of time and energy developing golden plans for the next year. Strategic planning is a dependable activity of middle-management in those months counting down to the end of the current fiscal year. </p>
<p>We know good and well that we can’t predict the evolution of a software project beyond a few months in most thriving businesses. Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front? Some are making inroads with models of T&amp;M funding, fixed cost, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, the real promise of Agile, remains elusive.</p>
<p><b>Bottom line:</b> Software development projects are still funded when we know the least about how we’ll be spending that money.</p>
<h3>Strategic Iteration </h3>
<p>While Sprints, or iterations, are very popular on the operations side of the house, few companies see them as the strategic advantage they really are. Sprints are loved by the business because they reduce risk, but actually refining the scope, plans, and functionality based on an iterative feedback model is a foreign idea. Iterative delivery provides a regular cadence that can be interpreted as “milestones” by traditionally trained most project managers.</p>
<p>The innovation companies could have with regular Sprints is lost because of the aforementioned Big Up Front Funding that causes Sprints to be seen as a tool of operations.</p>
<p><b>Bottom line:</b> The potential value of iterative incremental teams is being wasted by a determination to fund fixed-scope projects up front.</p>
<h2>The Next Challenge</h2>
<h3>Professionalism</h3>
<p>The profession of software development is reflecting upon itself right now and the question of what it means to be a software professional is coming to a head. The craftsmanship movement has a genuine toehold with many introspective developers; Universities are actively looking beyond computer science programs to fill the supply void of industry; and my mom thinks she’s “writing code” when her excel macro runs without error. </p>
<p>Writing solid code is now table stakes for being a software professional. The expectations we have of true professionals are becoming appropriately greater. As technology matures and abstractions go higher, the productivity of development teams should be through the roof. Yet, it isn’t necessarily the case and hiring organizations are desperate for some way to assess prospective developers en masse.</p>
<p>One desperate attempt at identifying professionals is the ridiculous history of Scrum certification. Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, private, or otherwise.</p>
<p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, and by those asking for it.</p>
<h3>Maturity</h3>
<p>Just like the allure of hiring a professional, the temptation of the <i>perfect development process</i> is just too tempting for the ignorant to ignore. The success of simple frameworks like Scrum and Kanban provide just enough structure to get things done, without providing prescribing specific practices. That scares plan-driven organizations that value control over creativity. </p>
<p>To get real traction with Agile methods means getting not just permission, but support; and support means money. Before bureaucracies spend money, they want assurances and guarantees. False ones will do; look at how well RUP and MSF sold. </p>
<p>Providing any compelling story for change requires supporting data. The willingness of good leaders to instigate and support true change will start with the end in mind. While the end state of an Agile transition can’t be predicted, case studies and measurements of established Agile teams are the catalysts for getting Agile transitions started. </p>
<p>The demand for reassurance will drive development of tools like assessments, maturity models, and formal adoption programs. As older and more established industries explore Agile, these tools will be in heavy demand by those wanting to make data-driven decisions.</p>
<p><b>Bottom line:</b> Agility is moving into more mature organizations and Agile itself will need more accessories of maturity.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2012/01/01/agiles-coming-of-age/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Agile with Children Update</title>
		<link>http://elegantcode.com/2011/11/04/agile-with-children-update/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-with-children-update</link>
		<comments>http://elegantcode.com/2011/11/04/agile-with-children-update/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 17:59:10 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/11/04/agile-with-children-update/</guid>
		<description><![CDATA[As some ElegantCode readers and most visitors to my home know, our family uses methods learned in agile practices to manage day to day operations. Specifically, we have a “family method” for doing things like homework, chores, and even longer term projects like preparing a research paper. As is the case with most children, 3 [...]]]></description>
			<content:encoded><![CDATA[<p>As some ElegantCode readers and most visitors to my home know, our family uses methods learned in agile practices to manage day to day operations. Specifically, we have a “family method” for doing things like homework, chores, and even longer term projects like preparing a research paper.</p>
<p>As is the case with most children, 3 of my 4 kids are basically sociopaths. Although this is improving as they age, the kids are often unable to consider the feelings and positions of others. In short, they lack empathy. One might even propose that gaining empathy is a major part of growing up. </p>
<p>But I digress…</p>
<p>Given this state of affairs, hearing things like, “That’s not my job,” has been pretty common.</p>
<p>Grrrrrr. </p>
<p>As someone who focuses a lot on self-organizing and cross-functional teams, this makes me want to scream. Of course, we can’t fire the children, so I instead encourage them to tweak the family method and help me find ways we can work as a team instead of as a loose collection of self-interested individuals.</p>
<p>You can imagine my delight when after 7 years of pursuing collective accountability for the kids I recently heard the following conversation between M, my 15-year-old, and C, my 13-year-old.</p>
<blockquote><p>C: What are you doing?</p>
<p>M: Doing the dishes and cleaning the kitchen.</p>
<p>C: Can I help you?</p>
<p>M: Sure, can you wipe the counters?</p>
</blockquote>
<p>I felt like this.</p>
<p>&#160;</p>
<p><img src="https://encrypted-tbn1.google.com/images?q=tbn:ANd9GcTe_z44MKvc2eh8lay5O10zic5aMHC6f5RKghHgWVU90C81OFlX" /></p>
<p>Each week, our family has a Family Meeting in which we inspect and adapt how we work together and the family method itself. We also use a board to visualize and manage work for chores and things.</p>
<p>The board undergoes frequent change as does the process we use. Our current board reflects these principles:</p>
<ul>
<li>The work needed each day doesn’t change that much.</li>
<li>All work is negotiable with mom and dad. Maybe the floors <em>don’t</em> need to be vacuumed today (but they probably do <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://elegantcode.com/wp-content/uploads/2011/11/wlEmoticon-smile.png" /> ).</li>
<li>The available work force to accomplish this work changes a lot, based on the realities of kid scheduling.</li>
<li>The work needs to be done, regardless of who is available to do the work.</li>
</ul>
<p>The rules of using the board are posted on the wall under the board itself. They are:</p>
<ul>
<li>Only mom or dad may move an item into the parking lot (don’t do this today)</li>
<li>Each person may have no more than one item in process at a time.</li>
<li>You are not done with a chore until the work has been reviewed by a sibling or parent.</li>
<li>No one is done until all work is done.</li>
<li>The nightly standup meeting may not occur until everyone is done.</li>
<li>No one may go to bed until the nightly standup meeting is done.</li>
<li>You must do 2 pushups for every minute late to bed.</li>
</ul>
<p>This magic combination of rules supporting the above principles coupled with the board below resulted in the notion of group accountability.</p>
<p><a href="http://elegantcode.com/wp-content/uploads/2011/11/IMAG0044.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="IMAG0044" border="0" alt="IMAG0044" src="http://elegantcode.com/wp-content/uploads/2011/11/IMAG0044_thumb.jpg" width="652" height="393" /></a></p>
<p>Finally.</p>
<p>I may have indeed found it. Time will tell.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/11/04/agile-with-children-update/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Scrum is Open for Modification and Extension</title>
		<link>http://elegantcode.com/2011/10/07/scrum-is-open-for-modification-and-extension/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-is-open-for-modification-and-extension</link>
		<comments>http://elegantcode.com/2011/10/07/scrum-is-open-for-modification-and-extension/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 18:25:34 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/10/07/scrum-is-open-for-modification-and-extension/</guid>
		<description><![CDATA[I recently joined Scrum.org as Chief Software Craftsman, which is a fun title . One of the first things I wanted to see at Scrum.org launches today as we we announce a model for embracing community influence of Scrum itself. Scrum is now open for modification and extension. I would love to say Scrum is [...]]]></description>
			<content:encoded><![CDATA[<p>I recently joined Scrum.org as <em>Chief Software Craftsman</em>, which is a fun title <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://elegantcode.com/wp-content/uploads/2011/10/wlEmoticon-smile.png" />. One of the first things I wanted to see at Scrum.org launches today as we we announce a model for embracing community influence of Scrum itself. Scrum is now open for modification and extension.</p>
<p>I would love to say Scrum is truly adherent to OCP (Open Close Principle), but the truth is we are always learning more about the practice of Scrum. Smart people find new ways of enacting Scrum’s values and principles. This means that on occasion, Scrum itself may change to support this learning. Ironically, this usually means Scrum becomes less prescriptive, and that is exactly what happened in this summer’s 2011 release of the Scrum Guide, which loosened some of the specific practices prescribed by Scrum.</p>
<p><a href="http://en.wikipedia.org/wiki/Jim_Coplien" target="_blank">James Coplien</a> and I were asked by <a href="http://kenschwaber.wordpress.com/" target="_blank">Ken</a> and <a href="http://scrum.jeffsutherland.com/" target="_blank">Jeff</a> to act as aggregators for community proposals to extend and modify Scrum. James and I have created a model we hope provides enough formality that proposals are necessarily thoughtful, yet enough flexibility that good ideas are easily explained. The links at the bottom of this article will take you to pages that explain the process we designed.</p>
<p>In collaboration with Ken and Jeff, we will steward these proposals as they are provided. We are very excited to see how Scrum is being used!</p>
<p>We expect to see more proposals for extension than modification, and I encourage you to submit your own. If your team has extended Scrum with complimentary practices that do not violate the integrity of Scrum as defined in the Scrum Guide, tell us about it.</p>
<p><strong>Scrum Guide Links</strong></p>
<ul>
<li><a href="http://www.scrum.org/scrumguides/" target="_blank">Read It</a></li>
<li><a href="http://www.scrum.org/scrum-guide-proposal/" target="_blank">Change It</a></li>
<li><a href="http://www.scrum.org/scrum-extensions/" target="_blank">Extend It</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/10/07/scrum-is-open-for-modification-and-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Lie of Certainty : What Developers and Scumbag Politicians Have in Common</title>
		<link>http://elegantcode.com/2011/09/24/the-lie-of-certainty-what-developers-and-scumbag-politicians-have-in-common/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-lie-of-certainty-what-developers-and-scumbag-politicians-have-in-common</link>
		<comments>http://elegantcode.com/2011/09/24/the-lie-of-certainty-what-developers-and-scumbag-politicians-have-in-common/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 19:59:26 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/09/24/the-lie-of-certainty-what-developers-and-scumbag-politicians-have-in-common/</guid>
		<description><![CDATA[Have you noticed how comforting it feels to be certain of something? Certain that your spouse will make it home safely tonight, that your job will be there next Monday morning, or that your car will start when you turn the key? Those things feel nice, don’t they? That feeling is why we want certainty [...]]]></description>
			<content:encoded><![CDATA[<p>Have you noticed how comforting it feels to be certain of something? Certain that your spouse will make it home safely tonight, that your job will be there next Monday morning, or that your car will start when you turn the key? Those things feel nice, don’t they? That feeling is why we want certainty in life. It makes us feel safe.</p>
<p>We want to be sure that our software will be delivered on time, that it has no known defects, and that it works as the customer wants. We want to be sure that the feature we committed to completing by Friday gets done, that all the tests will pass, and that we are done in time to go home for dinner.</p>
<p>That’s a lot to want.</p>
<p>When complexity is high, as it so often is in software development, is it really reasonable to insist upon the certainty that we so desperately crave? I heard some politicians on the radio asserting that, “Americans want to be certain that their taxes won’t go up, that their jobs won’t go away, and that their homes won’t be foreclosed upon.” He further stated that it was the job of congress to provide this certainty. </p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" border="0" align="right" src="http://www.albany.edu/jmmh/vol2no1/nixon.jpg" width="139" height="166" />Well, tough. </p>
<p>And we all know it. </p>
<p>We simply can’t depend on these things, as so many variables are outside of our control. Just like congress trying to pass some legislation to increase certainty, software development teams try to control variables in our development processes to increase certainty with varying degrees of success. The good news is that I finally found a profession that lies more about certainty than software developers (although I suppose most politicians learned that behavior while working as attorneys).</p>
<p>Thus:</p>
<ul>
<li>Politicians understand that humans want certainty, so they pretend they can provide it. </li>
<li>Software development teams understand that humans want certainty, so we pretend we can provide it. </li>
</ul>
<p>You know how you roll your eyes when you hear some jackass politician make promises we all know he or she can’t keep? That’s how customers have felt about us software folks for years, too. </p>
<p>Yep, drink it in! </p>
<p>And that extra time you spent adding a cool new technology that wasn’t really needed or wanted? That’s pork-barrel spending .</p>
<p>So, you know what the Agile Manifesto really was? It was an apology that we’d been lying and producing crap while acting like a-holes for the first 60 years of software development. Stop being so surprised that it is taking time to get our constituents to trust us again. You wouldn’t trust us if you weren’t one of us, either.</p>
<p>The good news is software development isn’t in nearly as bad a shape as congress <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://elegantcode.com/wp-content/uploads/2011/09/wlEmoticon-smile1.png" />.</p>
<p>Cheers, and have a good day.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/09/24/the-lie-of-certainty-what-developers-and-scumbag-politicians-have-in-common/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pluralcast 48 : Jeffrey Palermo on Career and Management</title>
		<link>http://elegantcode.com/2011/09/13/pluralcast-48-jeffrey-palermo-on-career-and-management/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pluralcast-48-jeffrey-palermo-on-career-and-management</link>
		<comments>http://elegantcode.com/2011/09/13/pluralcast-48-jeffrey-palermo-on-career-and-management/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 02:44:57 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/09/13/pluralcast-48-jeffrey-palermo-on-career-and-management/</guid>
		<description><![CDATA[&#160;Listen now! Jeffrey Palermo joins us to talk about his career and the new challenges of leadership in a technical organization. That inevitable moment of choosing whether or not to work in management deserves serious consideration and Jeffrey helps us think through the issues any potential technical leader faces. Jeffrey is the Chief Operating Officer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://elegantcode.com/wp-content/uploads/2011/09/PlayIcon_thumb_6F96BFCE.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="PlayIcon_thumb_6F96BFCE" border="0" alt="PlayIcon_thumb_6F96BFCE" src="http://elegantcode.com/wp-content/uploads/2011/09/PlayIcon_thumb_6F96BFCE_thumb.png" width="24" height="24" /></a>&#160;<a href="http://pluralsight-free.s3.amazonaws.com/pluralcast/pc_048_pallermo.mp3" rel="enclosure">Listen now</a>!</p>
<p>Jeffrey Palermo joins us to talk about his career and the new challenges of leadership in a technical organization. That inevitable moment of choosing whether or not to work in management deserves serious consideration and Jeffrey helps us think through the issues any potential technical leader faces.</p>
<p><a href="http://elegantcode.com/wp-content/uploads/2011/09/palermo.jpg"><img style="background-image: none; border-right-width: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="palermo" border="0" alt="palermo" align="right" src="http://elegantcode.com/wp-content/uploads/2011/09/palermo_thumb.jpg" width="166" height="166" /></a>Jeffrey is the Chief Operating Officer of Headspring, a custom software development firm in Austin, TX. Jeffrey has helped build the practice from a humble core group to a multi-million dollar operation recognized on the Austin Fast 50 list and the Inc 500. Having studied and observed software history, trends, fads, and the constant pendulum swing that is the technology industry, Jeffrey prefers a &quot;no surprises&quot; approach to serving clients by providing the right solution to their unique problem.&#160; He is a six- time recipient of the&#160; “Microsoft Most Valuable Professional” (MVP) award and has spoken and facilitated at industry conferences such as VSLive, DevTeach, the Microsoft MVP Summit, and Microsoft Tech Ed. He also speaks to user groups around the country as part of the INETA Speakers’ Bureau. A graduate of Texas A&amp;M University, an Eagle Scout, and an Iraq war veteran, Jeffrey holds his share of certifications, has published many magazine articles, and has written two books. He is currently earning his MBA from the Jack Welch Management Institute.</p>
<p>Jeffrey is an author of a recent book, ASP.NET MVC in Action.&#160; You can obtain the book at <a href="http://bit.ly/aspnetmvc2inaction">http://bit.ly/aspnetmvc2inaction</a>.</p>
<p><strong>Show Links</strong></p>
<ul>
<li><a href="http://jeffreypalermo.com">Jeffrey’s Blog</a> </li>
<li><a href="http://jeffreypalermo.com/blog/growing-a-professional-services-company-ndash-my-experience-">Professional Services Metrics Dashboard</a> </li>
<li><a href="http://headspring.com/">Headspring</a> </li>
<li><a href="http://twitter.com/jeffreypalermo">@jeffreypalermo</a> </li>
<li><a href="https://bitbucket.org/headspringlabs">Headspring Labs BitBucket</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/09/13/pluralcast-48-jeffrey-palermo-on-career-and-management/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/pluralcast/pc_048_pallermo.mp3" length="46089928" type="audio/mpeg" />
		</item>
		<item>
		<title>An Update on Agile for Families</title>
		<link>http://elegantcode.com/2011/08/29/an-update-on-agile-for-families/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-update-on-agile-for-families</link>
		<comments>http://elegantcode.com/2011/08/29/an-update-on-agile-for-families/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 02:46:54 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/29/an-update-on-agile-for-families/</guid>
		<description><![CDATA[I was recently interviewed for an article on Agile for Families by Lewis Lin of Project Management Insights. Crazy though this may sound, this particular niche has really starting showing up in my life a lot lately.&#160; Anyone else applying agile methods learned at work to home life?]]></description>
			<content:encoded><![CDATA[<p>I was recently interviewed for <a href="http://blog.timbersoftware.com/post/9564364353/8-questions-with-david-starr-author-of-agile-practices">an article on Agile for Families</a> by Lewis Lin of Project Management Insights.</p>
<p>Crazy though this may sound, this particular niche has really starting showing up in my life a lot lately.&#160; Anyone else applying agile methods learned at work to home life?</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/29/an-update-on-agile-for-families/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pluralcast 47 : MSBuild with David Starr</title>
		<link>http://elegantcode.com/2011/07/26/pluralcast-47-msbuild-with-david-starr/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pluralcast-47-msbuild-with-david-starr</link>
		<comments>http://elegantcode.com/2011/07/26/pluralcast-47-msbuild-with-david-starr/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 03:43:26 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Esoterica]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/07/26/pluralcast-47-msbuild-with-david-starr/</guid>
		<description><![CDATA[&#160;Listen to this episode! [41:28] In this episode, Matt Milner substitutes as host an interviews me about MSBuild. MSBuild, you say!? Why yes, that amazingly high tech tool of automation. Yes, this is truly the stuff of Jedi’s. Maybe not, but if you don’t know this tech already, you should. MSBuild is one of those [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://elegantcode.com/wp-content/uploads/2011/07/PlayIcon1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="PlayIcon" border="0" alt="PlayIcon" src="http://elegantcode.com/wp-content/uploads/2011/07/PlayIcon_thumb1.png" width="24" height="24" /></a>&#160;<a href="http://pluralsight-free.s3.amazonaws.com/pluralcast/pc_047_msbuild.mp3" rel="enclosure" target="_blank">Listen to this episode</a>! [41:28]</p>
<p>In this episode, Matt Milner substitutes as host an interviews me about MSBuild. MSBuild, you say!? Why yes, that amazingly high tech tool of automation. Yes, this is truly the stuff of Jedi’s. Maybe not, but if you don’t know this tech already, you should. MSBuild is one of those things that .NET developers need to have in their toolbox. </p>
<p><a href="http://elegantcode.com/wp-content/uploads/2011/07/david-starr-200X247.jpg"><img style="background-image: none; border-right-width: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="david-starr-200X247" border="0" alt="david-starr-200X247" align="right" src="http://elegantcode.com/wp-content/uploads/2011/07/david-starr-200X247_thumb.jpg" width="117" height="144" /></a>David Starr is a technical instructor with Pluralsight where he focuses on the Visual Studio ALM platform, Agile Software Development, and patterns and practices in .NET. He is a trainer and author with Scrum.org, a Microsoft Visual Studio ALM MVP, the founder of ElegantCode.com, and host of the Pluralcast podcast. He enjoys re-kindling the passion in developers that attracted them to the software development craft.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx" target="_blank">MSBuild on MSDN</a> </li>
<li><a href="http://www.pluralsight-training.net/microsoft/courses/TableOfContents?courseName=msbuild" target="_blank">David’s MSBuild course</a> in <em>Pluralsight on Demand!</em> </li>
<li><a href="http://blogs.msdn.com/b/msbuild/" target="_blank">MSBuild Team Blog</a> </li>
<li><a href="http://www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248" target="_blank">Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build</a> (Book) </li>
<li><a href="http://elegantcode.com" target="_blank">David’s Blog</a> </li>
<li><a href="http://msbuildextensionpack.codeplex.com/releases/view/57599" target="_blank">MSBuild Extension Pack</a> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/07/26/pluralcast-47-msbuild-with-david-starr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/pluralcast/pc_047_msbuild.mp3" length="39808896" type="audio/mpeg" />
		</item>
	</channel>
</rss>

