<?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; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Agile</title>
	<atom:link href="http://elegantcode.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Estrace Vaginal Cream For Sale</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[Estrace Vaginal Cream For Sale, 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 [...]]]></description>
			<content:encoded><![CDATA[<p> <p> <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream samples</b>, 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, <b>Estrace Vaginal Cream class</b>. Thanks to these revolutionaries Agile is not a footnote, but the most promising path forward to improving our profession, <b>Estrace Vaginal Cream For Sale</b>. </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, <b>Estrace Vaginal Cream forum</b>, progress has been made in this area. It is no longer radical to think in terms of test-first, pattern-based, or *-driven, <b>my Estrace Vaginal Cream experience</b>. 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.  <b>Estrace Vaginal Cream street price</b>, You know, with emotion and stuff.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream used for</b>. Not surprisingly, most teams out there aren’t living the dream, <b>Estrace Vaginal Cream steet value</b>, but are actively trying to improve. Indeed, recent studies and surveys have noted that projects using Agile methods now outnumber plan-driven, or waterfall, <b>Estrace Vaginal Cream from canadian pharmacy</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. Creating software with plan-driven techniques obviously falls short of the advantages of developing with a focus on humanity and exploiting shorter feedback cycles.  <b>Online buying Estrace Vaginal Cream</b>, </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, <b>Estrace Vaginal Cream results</b>.  Mostly.</p>  <h3>Daily Team Meeting</h3>  <p> <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Order Estrace Vaginal Cream no prescription</b>, 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, <b>doses Estrace Vaginal Cream work</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. These time boxes in which teams agree to deliver <i>something</i> have changed the way we think about long, <b>Is Estrace Vaginal Cream addictive</b>, 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, <b>where can i order Estrace Vaginal Cream without prescription</b>, 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, <b>Estrace Vaginal Cream duration</b>, 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, <b>Estrace Vaginal Cream from canada</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>Estrace Vaginal Cream from mexico</b>, 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, <b>comprar en línea Estrace Vaginal Cream, comprar Estrace Vaginal Cream baratos</b>, 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, <b>Estrace Vaginal Cream For Sale</b>.  <b>Taking Estrace Vaginal Cream</b>, Here is how it works. What do you think?”</p>  <p>And then comes the tricky part - 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, <b>Estrace Vaginal Cream recreational</b>.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Canada, mexico, india</b>, 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, <b>Estrace Vaginal Cream pics</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. </p>  <h2>Still Crazy</h2>  <p>While some Agile practices have crossed into “just plain old good ideas,” many are still seen as edgy, <b>Low dose Estrace Vaginal Cream</b>, 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, <b>cheap Estrace Vaginal Cream no rx</b>, 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, <b>Order Estrace Vaginal Cream online overnight delivery no prescription</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, 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, <b>generic Estrace Vaginal Cream</b>, 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>, <b>Estrace Vaginal Cream pictures</b>, 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, <b>Estrace Vaginal Cream price</b>. Sharing the way I approach problems or write code can feel like a job interview every day, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>Order Estrace Vaginal Cream from mexican pharmacy</b>, 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.  <b>Estrace Vaginal Cream For Sale</b>, Change just happens. Why then do we persist in thinking Big Funding Up Front is any different than Big Design Up Front, <b>Estrace Vaginal Cream without prescription</b>. Some are making inroads with models of T&amp;M funding, fixed cost, <b>Estrace Vaginal Cream long term</b>, adjustable scope, and other techniques like incremental funding. However, for the most part we remain stuck in annual funding models because business Agility, <b>no prescription Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream dosage</b>, 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, <b>online buying Estrace Vaginal Cream hcl</b>, but actually refining the scope, plans, <b>Where can i cheapest Estrace Vaginal Cream online</b>, 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, <b>Estrace Vaginal Cream For Sale</b>. 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, <b>order Estrace Vaginal Cream online c.o.d</b>. As technology matures and abstractions go higher, the productivity of development teams should be through the roof.  <b>Estrace Vaginal Cream For Sale</b>, 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.  <b>Estrace Vaginal Cream natural</b>, Certification teases with the allure of simply trusting a credential. Unfortunately, this isn’t working for any known certification yet, university, <b>buy Estrace Vaginal Cream no prescription</b>, private, or otherwise.</p>  <p><b>Bottom line:</b> Professionalism in software is finally being demanded by those creating it, <b>Purchase Estrace Vaginal Cream</b>, 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, <b>purchase Estrace Vaginal Cream for sale</b>. 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, <b>Estrace Vaginal Cream For Sale</b>. 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>.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4240'>Buy Combivent Without Prescription</a>. <a href='http://elegantcode.com/?p=5015'>Human Growth Hormone For Sale</a>. <a href='http://elegantcode.com/?p=4561'>Buy Modalert Without Prescription</a>. <a href='http://elegantcode.com/?p=4977'>Spiriva For Sale</a>. <a href='http://elegantcode.com/?p=4713'>Colchicine For Sale</a>. <a href='http://elegantcode.com/?p=4420'>What is Wellbutrin SR</a>. <a href='http://elegantcode.com/?p=4291'>Japan, craiglist, ebay, overseas, paypal</a>. <a href='http://elegantcode.com/?p=4699'>Buy cheap Metronidazole Gel</a>. <a href='http://elegantcode.com/?p=4843'>Buy Atenolol from mexico</a>. <a href='http://elegantcode.com/?p=4328'>Plavix treatment</a>.<br />
<b>Trackbacks from:</b> <a href='http://4realz.net/?p=1259'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.macneilbmx.com/blog/?p=5156'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.greatgreengoods.com/?p=2311'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.thegriffonnews.com/?p=10073'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.themusclecarplace.com/?p=4419'>Estrace Vaginal Cream For Sale</a>. <a href='http://www.quarterlives.com/?p=954'>Cheap Estrace Vaginal Cream no rx</a>. <a href='http://changecamp.ca/?p=102'>Estrace Vaginal Cream results</a>. <a href='http://social-blend.com/?p=661'>Estrace Vaginal Cream photos</a>. <a href='http://blog.farmland.org/?p=3055'>Estrace Vaginal Cream brand name</a>. <a href='http://reversemortgagedaily.com/?p=14580'>Order Estrace Vaginal Cream online c.o.d</a>.</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>Book Review &#8211; Extreme Programming Explained</title>
		<link>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=book-review-extreme-programming-explained</link>
		<comments>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:49:22 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/</guid>
		<description><![CDATA[Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBooks, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the second edition [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://i.f.alexander.users.btopenworld.com/reviews/beck.jpg" /></p>  <p>Last week I finished reading the first edition of <a href="http://www.amazon.com/exec/obidos/ASIN/0201616416/elegantcode-20">Extreme Programming Explained</a>, written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>. I explicitly wanted to read the first edition, that I purchased via <a href="http://www.abebooks.com/">AbeBooks</a>, which is also the first book that appeared in the series of books on XP. I’ve read a couple of book reviews of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/elegantcode-20">second edition</a> on the interweb where some have stated that the second version is somehow less <em>‘extreme’</em> compared to the first edition. That’s why I went for the first edition as I wanted to learn from the <em>‘original’</em>.&#160; </p>  <p>While it seems that Scrum and Lean are getting all the buzz in agile software development these days, why on earth would I want to pick up a book on Extreme Programming that has been written back in 1999? Well, it’s my current feeling that XP is the ‘core’ agile methodology. While there was some buzz around this software methodology in the late 1990s and early 2000s, it has never been commercialized nor pursued by hypesters, at least not on the same scale as Scrum and Lean. I’m not saying that Scrum and Lean are therefore bad and should be avoided. On the contrary! I’ve been part of a Scrum team for many years now where we’ve been complementing this project methodology with XP engineering practices like unit testing, continuous refactoring, continuous integration, etc. … . This has been working because of these XP practices, not the other way around. But what I’m seeing more and more lately are teams that are adopting Scrum without any of these solid engineering practices, especially in enterprise environments. Therefore I think it’s important to learn more about XP, which is one of the agile methodologies that somehow managed to preserve its values throughout these years without losing its balance. I’m with Uncle Bob when he states the following in his blog post on <a href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html">Bringing Balance to the Force</a>:&#160; </p>  <blockquote>   <p><em>“I, for one, consider the agile movement to have been inundated by a vocal and enthusiastic cohort of project managers, waving their scrum-master certificates, or their Lean and Kanban books.&#160; They have overwhelmed the original movement and changed it into something new.&#160;&#160; Agile is no longer about a balance between the technical and non-technical parts of development.&#160; Rather it has become a discussion almost entirely dedicated to non-technical issues.&#160; Agile is no longer about healing the divide, or closing the crevasse.&#160; The agile movement now represents one side of the crevasse.”</em></p> </blockquote>  <p>Anyway, back to the book review. I personally found this book to be a very fascinating read. It’s divided into three major parts:</p>  <ul>   <li>The Problem – This first section sets the stage for XP. The chapters in this section discuss the value proposition for XP while also showing the disciplines behind it. The four values of XP are <em>Communication</em>, <em>Simplicity</em>, <em>Feedback</em> and <em>Courage</em> while the fundamental principles are <em>Rapid feedback</em>, <em>Assume simplicity</em>, <em>Incremental change</em>, <em>Embracing change</em> and <em>Quality work </em>and the four basic activities are <em>Coding</em>, <em>Testing</em>, <em>Listening</em> and <em>Designing</em>. These values, principles and activities are broadly discussed throughout this section. Basically, here you’ll get a high-level view of Extreme Programming. </li>    <li>The Solution – Given the values, disciplines and activities from the first part, the second section elaborates on the strategies and practices that make up XP. The practices discussed are <em>The Planning Game</em>, <em>Small releases</em>, <em>Metaphor</em>, <em>Simple design</em>, <em>Testing</em>, <em>Refactoring</em>, <em>Pair programming</em>, <em>Collective ownership</em>, <em>Continuous integration</em>, <em>40-hour week</em>, <em>On-site customer</em> and <em>Coding standards</em>. The book doesn’t provide an explanation on how to do these practices. It’s more about why these practices are important and why they’re under the XP umbrella. </li>    <li>Implementing XP – The third and final section of the book deals with a number of various topics like how to adopt XP, when to use it, when not to use it and what it takes from people that are part of an XP team. I personally got the most value from the chapters in this section.&#160;&#160; </li> </ul>  <p>Something that the author kept repeating throughout the book was the importance of how the office furniture is arranged for an XP project team. I never really thought about this, but after reading this book I’ve come to realize how important this can be. Being able to easily pair program and get the customer to sit with you can in fact be a game changer. </p>  <p>Here are some of my favorite quotes that I picked up while reading the book:</p>  <blockquote>   <p><em>“No single action takes the life out of a team or a person more than being told what to do, especially if the job is clearly impossible. Primate dominance displays work only so long in getting people to act like they are going along. Along the way, a person told what to do will find a thousand ways of expressing their frustration, most of them to the detriment of the team and many of them to the detriment of the person.” </em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“So you code because if you don't code , you haven't done anything. You test because if you don't test, you don't know when you are done coding. You listen because if you don't listen you don't know what to code or what to test. And you design so you can keep coding and testing and listening indefinitely.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“Code gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.”</em></p> </blockquote>  <p>&#160;</p>  <blockquote>   <p><em>“The difference is between playing to win and playing not to lose. Most software development I see is played not to lose. Lots of paper gets written. Lots of meetings are held. Everyone is trying to develop &quot;by the book&quot;, not because it makes any particular sense, but because they want to be able to say at the end that it wasn't their fault, they were following the process. Software development played to win does everything that helps the team to win and doesn't do anything that doesn't help to win.”</em></p> </blockquote>  <p>I highly recommend that you pick up and read this book. It’s only 166 pages and a bargain on <a href="http://www.abebooks.com/">AbeBooks</a> or <a href="http://www.amazon.com/">Amazon</a>. By reading this book I learned a lot about agile software development and more importantly, how to strike a balance in customer collaboration and technical stuff. The book contains a tremendous amount of knowledge and wisdom. I sometimes had a very hard time putting it away as its also very nicely written. Two thumbs up!</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/21/book-review-extreme-programming-explained/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://elegantcode.com/2011/01/10/the-social-network/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-social-network</link>
		<comments>http://elegantcode.com/2011/01/10/the-social-network/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 20:06:49 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/01/10/the-social-network/</guid>
		<description><![CDATA[Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I watched this movie called <a href="http://en.wikipedia.org/wiki/The_Social_Network">The Social Network</a>. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, I noticed a subtle detail that was shown a couple of times throughout the film. This subtle detail showed how this small team of geeks maintained and preserved the productivity and efficiency of their team. Basically, whenever someone barked into a room where geeks were working, team members that were not working or having a break protected their peers that were <i>&quot;in the zone&quot;</i> from any kind of interruptions from this person. So the individual that marched in there wasn’t allowed to talk or interrupt someone that was working. If this individual did try to interrupt a working member of the team, he got told that this person was not available and to leave him or her alone. If the person working somehow still got distracted, the non-working team member reminded him of his responsibility by firmly telling him <i>&quot;you're working&quot;</i>, trying to get his peer back to whatever he was doing. </p>  <p>I don’t know whether this is actually part of the team culture at Facebook, and frankly, it doesn’t matter. I just find this to be a cool and fascinating idea. I’m intrigued by this notion of a team that takes responsibility for preserving their flow and velocity, protecting other members of the herd from interruptions and any other kind of events that prevent them from effectively doing their job. Sounds pretty self-organizing to me.</p>  <p>I have to admit that this is also the first time I actually learned something useful from a Hollywood movie. I must say that this feels weird too ;-).</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/01/10/the-social-network/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Breaking Even Small Things Up</title>
		<link>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=breaking-even-small-things-up</link>
		<comments>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 16:29:05 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/07/31/breaking-even-small-things-up/</guid>
		<description><![CDATA[I’ve talked about why smaller is better and especially why this pertains to product backlogs, or rather fatlogs, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code. Typical workflow What do you do when you get a task or a backlog item [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve talked about why <a href="http://www.latimes.com/sns-health-calcium-supplements-heart-attach,0,4911155.story?track=rss">smaller is better</a> and especially why this pertains to product backlogs, or rather <a href="http://simpleprogrammer.com/2010/01/26/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page/">fatlogs</a>, but I wanted to zoom in for a second to one of the most valuable applications of the rule: writing the code.</p>  <h2></h2>  <h2>Typical workflow</h2>  <p>What do you do when you get a task or a backlog item to work on?&#160; Do you just pick a starting point and start writing code?&#160; Do you break it down into a few pieces and start working on one?</p>  <p>It probably depends on the size of the work.</p>  <p>When I run into an item that is sized a little too large, problem admiration can set in if I am not careful.</p>  <p>What is problem admiration?&#160; It is when the problem you are trying to solve seems too big and overwhelming, that you just sit and stare at it instead of attacking it.</p>  <p>This can be a really big problem if you don’t have a good workflow that tackles it.</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="breakwindow" border="0" alt="breakwindow" src="http://elegantcode.com/wp-content/uploads/2010/07/breakwindow_thumb.jpg" width="493" height="371" /></a> </p>  <h2>Winning the battle</h2>  <p>So how do we combat this problem?</p>  <p>One of the strategies I use, is very similar to a mini-agile process in the agile process.&#160; </p>  <p>When I am working on a piece of functionality, I will have my own sticky notes nearby.</p>  <p>I’ll slice up my work, whether it be a task or a backlog, into distinct pieces of work that need to be done.&#160; I’ll even write a few different units of work on a single sticky note.</p>  <p>I might have a sticky note that says “localize the screen.”&#160; Or one that says “recheck unit tests to make sure they are accurate.”&#160; Or “Populate drop down x.”</p>  <p>Sometimes I refine the notes and break them down further.&#160; <strong>My goal is always to get the current task at hand to such a small difficulty that I can easily accomplish it.</strong></p>  <p>You are always much more effective doing many easy tasks rather than trying to do few difficult tasks.</p>  <p>As I accomplish a task, I cross it off the list.</p>  <p>If I think of a new task, I add it to the list.</p>  <h2>Why is this so important?</h2>  <p>In general, developers, or rather humans, share a weakness of having a hard time accomplishing something that is large and not fully understood.</p>  <p>I have seen some very knowledgeable and skilled developers that were never successful, because they could never push through and get things done.</p>  <p>Time and time again I have seen them become paralyzed by the work that needed to be done instead of actually doing it.</p>  <p>You might not have this problem in general, but you would probably be lying if you said you don’t suffer from it from time to time.</p>  <p>You might not even recognize it.&#160; It might show up as a lack of motivation, or “burn out.”</p>  <p>Many times when I don’t break down the tasks into smaller pieces I have a tendency to overlook some part of the work that needed to be done, because I either forgot about or didn’t take the time to consider it.</p>  <p>If you take the time to break apart your work into very small pieces, you will probably find, you are more motivated to get the work done, feel like you have a better direction in which to go, and will miss fewer requirements.</p>  <h6>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.&#160; Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.&#160; Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h6>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/07/31/breaking-even-small-things-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Scrum and the C-Word</title>
		<link>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=scrum-and-the-c-word</link>
		<comments>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:14:15 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Team System]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/29/scrum-and-the-c-word/</guid>
		<description><![CDATA[There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t. Disclosure I am a [...]]]></description>
			<content:encoded><![CDATA[<p>There has been much deriding of both Scrum and the word “certification” in the past few months. It has become quite vogue to look down on formal training of any kind it seems, particularly among the ALT.NETerati. I get it, and I think several of the criticisms are deserved. Some aren’t.</p>  <h2>Disclosure</h2>  <ul>   <li>I am a Professional Scrum Developer Trainer. That is: I have been <em>certified</em> by Microsoft and Scrum.org to teach others about Scrum and modern engineering practices on the Microsoft platform. More information about all of that <a href="http://msdn.microsoft.com/en-us/vstudio/ff433643.aspx" target="_blank">is available here</a> and <a href="http://scrum.org" target="_blank">here</a>. </li>    <li>I teach for a living. Mostly Visual Studio ALM along with topics I believe are focused on making better software craftspeople. </li>    <li>I have watched teams get it wrong (and sometimes right) for about 20 years now. That admission makes me feel very old. </li> </ul>  <h3>A Bit More Background</h3>  <p>Choosing to enter the Microsoft and Scrum.org program and be part of the certification process for developers was not an easy one for me. Indeed, as several people I irritated with my waffling for over 6 months will attest, it was a decision I spent a long time considering. In the end, I obviously elected to become an instructor for certification courseware and this in this post I will tell you why.</p>  <h2>On Scrum</h2>  <p>I first practiced Scrum in or around 2003/4, if memory serves. I didn’t see it done well for several years after that. </p>  <p>On paper, everything sounded just spiffy when I studied Scrum and considered bringing it to my team and organization. Who wouldn’t want the benefits it promises of frequent feedback, clear accountability, and no-nonsense shipping of product? To get started we hired Jeff Sutherland to come in and teach the original Certified Scrum Master course offered through the Scrum Alliance. I was baffled that at the end of the 2 day discussion to receive this thing called a “certification”. My colleagues and I actually joked about it at the time as being proof that we didn’t fall asleep in class. As Ken Schwaber pointed out to me <a href="http://www.pluralsight-training.net/community/blogs/pluralcast/archive/2010/03/29/pluralcast-12-the-future-of-scrum-with-ken-schwaber.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pluralcast+%28Pluralcast+by+Pluralsight%29" target="_blank">in an interview</a> recently, we probably could have nodded off and been fine, actually.</p>  <p>My team struggled a great deal trying to use Scrum well. I won’t bother including the long list of mistakes we made, but we eventually got traction and settled into a cohesive rhythm. After we figured things out, Scrum became an amazing vehicle for delivering product, which was the original intent.</p>  <p>To my knowledge, Scrum is still used today in that organization. At the time of my departure was in fairly healthy shape. </p>  <p>Looking back on Scrum’s contribution to my professional life and its contribution to our industry as a whole, I am humbled. Scrum as an idea has done more to drive agile software development than perhaps any idea other than the original manifesto itself. TDD ranks right up there, but fewer CEOs have heard of TDD. There are a lot of reasons Scrum has won the marketing war, but the simple fact is that our profession is a better place for the presence of the Scrum framework and the people who provided stewardship to it, Ken Schwaber and Jeff Sutherland.</p>  <p>I know good and well that other techniques are very effective. Kanban is a wonderful way for many teams to operate. Feature Driven Development is a powerful model for the teams who need to formality of it. And of course, the gaping hole left by the absence Extreme Programming reminds us that zealotry has its costs. Scrum, as it advertises, is not a silver bullet. It won’t fix anything, in fact. Only people of good intent who come together and try to do something well can make that happen. Scrum can merely provide the rules of engagement.</p>  <p>Scrum is popular for several reasons. When it comes to the mechanics of the framework:</p>  <ol>   <li>It is easy to understand. </li>    <li>It is easy implement and follow the basics. </li>    <li>It can show dramatic return in a short period of time. </li>    <li>The first Scrum in an organization is a highly visible <a href="http://www.strategosinc.com/kaizen_blitz.htm" target="_blank">Kaizen Blitz</a>.</li> </ol>  <p>With all of those benefits, Scrum is plagued by the same problems as every other process or methodology framework in the world.</p>  <ol>   <li>Human beings are the ones who try an implement it. </li>    <li>Human beings are the ones who try an implement it. </li> </ol>  <p>Scrum is great when wielded for good. It is the lowest barrier-to-entry agile technique I know (excluding engineering practices, like TDD and CI). Teams who currently live in plan-driven organizations derive great benefit from Scrum and <em>so do the organizations themselves</em>. Scrum can be very, very effective.</p>  <p>I chose to work with Scrum.org specifically because I <strong>know from experience</strong> there are more shops out there that need to change than those who don’t. I believe most of those shops cannot handle something like Kanban. [<a href="http://elegantcode.com/2009/02/21/how-scrum-is-like-marijuana/" target="_blank">See this for more</a>] My professional life as a trainer is focused on helping developers love our craft again. Those of us who got a thrill from lighting up a pixel many years ago have just been beaten to hell and back since deciding to do this for money. Although Scrum is only one arrow in the quiver, Scrum as a great vehicle for improving people’s professional lives.</p>  <h2>On Certification</h2>  <p>Ken has readily admitted that using C-word in the beginning of the Scrum Alliance has resulted in a complete and total mess. Primarily because certification involves a demonstration of <em>something</em>, typically knowledge. Unfortunately that requirement was never required to obtain a Certified Scrum Master “credential”. We can all recognize this is not a credential in it’s current form as offered by the Scrum Alliance, but merely a roster of class attendees. ‘Nuff said.</p>  <p>I also see there is value in demonstrating knowledge through a <em>genuine</em> certification process. For example, we all take driver’s tests. I look for ASE (Automobile Service Excellence) certified mechanics to work on my car. I trust a BMW certified technician to work on my motorcycle. What is a university diploma if not a certification award?</p>  <p>In almost any field, it is impossible to certify competence. Certification can demonstrate knowledge, but not ability, talent, experience, or wisdom. It is exactly for this reason that I never got hung up on a college degree as a hiring manager but went to great lengths to try and know a person. A college degree did show me what that person experienced, though, because I basically know what it means to get a university degree. There is value in that credential because it had to be earned.</p>  <p>Given the current state of the industry, there are 3 logical progression paths for Scrum certification.</p>  <ol>   <li>Change nothing and remain a mockery.</li>    <li>Drop the certification word and idea altogether. </li>    <li>Add meat to C-word by actually testing for it. </li> </ol>  <p>Scrum.org is taking the 3rd option and I am going for that ride. My reasons include:</p>  <ol>   <li>Working for change within a system is typically far more effective than pushing from the outside.</li>    <li>Scrum as an idea continues to help teams and individuals improve.</li>    <li>I respect the people involved in the stewardship of Scrum.org.</li>    <li>“Certification” means a demonstration of knowledge by a taking a test in this crowd. Not perfect, but a good start.</li>    <li>I believe the teams and other trainers I work with have the best interest of the craft at heart. Really.</li> </ol>  <h2>On The Future of the Craft</h2>  <p>In the last 60 years of programming computers, we have have learned that developing in small batches and delivering incrementally works. Scrum gives us a model for doing exactly that, and it will still be helping teams until the next great thing is found. Now that I know Ken a bit better I can say that Scrum itself will likely evolve to incorporate whatever works better.</p>  <p>Ridiculing certification or Scrum may well be the in-crowd thing de jour, but I see that Scrum addresses a core need in our industry, and genuine certification has its own benefits. Lean offers some wonderful directions for us, and shows all the signs of providing a path forward. But, let’s not forget that Scrum is an inherently Lean idea.</p>  <p>But I digress. </p>  <p>Another time, perhaps.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/29/scrum-and-the-c-word/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>If Self-Documenting Code is the What, Unit Tests are the Why</title>
		<link>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-self-documenting-code-is-the-what-unit-tests-are-the-why</link>
		<comments>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 19:09:04 +0000</pubDate>
		<dc:creator>John Sonmez</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/</guid>
		<description><![CDATA[It is not enough to just write code that is clean and self-documenting.  Eliminating comments and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it. If you recall from my original post on [...]]]></description>
			<content:encoded><![CDATA[It is not enough to just write code that is clean and self-documenting.  <a href="http://elegantcode.com/2010/04/18/eliminating-comments-the-road-to-clarity/">Eliminating comments</a> and replacing them with clear variable and method names, will tell the reader of your code clearly what it is doing, but it will not properly express why it is doing it.

If you recall from my <a href="http://elegantcode.com/2010/04/09/what-does-elegant-code-mean-to-me/">original post</a> on Elegant code, I stated that elegant code is:
<blockquote>Something that is simple yet effective, delivered with grace.</blockquote>
By writing self-documenting code we are hopefully able to achieve some of the aspects of simplicity and grace, but it tells us nothing about the effectiveness of the code.
<h2>Bringing the dead to life</h2>
<a href="http://elegantcode.com/wp-content/uploads/2010/04/zombies.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="zombies" src="http://elegantcode.com/wp-content/uploads/2010/04/zombies_thumb.jpg" border="0" alt="zombies" width="441" height="295" /></a>

Throwing out comments is a debatable topic.  <a href="http://www.reddit.com/r/programming/comments/bsutx/">It raises quite a bit of controversy</a>, as you can see from some of the comments on my post about the subject.  The reason, perhaps, that so many people are so staunchly opposed to the idea, is because they are worried, and rightly so, that throwing out comments will reduce the documentation of what the code is doing.

Think about that for a second.  Is documentation of what the code is doing important?  It better be.  What we are trying to accomplish by writing self-documenting code instead of comments, is to take the vessel, which is the code itself, and make that same vessel be the documentation of what the code does.  It is by doing this that we creating a living representation of the functionality of the code.  Comments are akin to a dead representation of the functionality of the code because they do not change automatically with the code.

I diverge to talk about comments so that I can draw a parallel to another form of documentation which is valuable and should be considered necessary.  That other set of documentation is requirements.  Have you ever written requirements documents?  Have you ever captured requirements from the customer and put them into UML diagrams, or perhaps plopped them into some templated Word document, which is never updated again, and no one reads, because no one trusts it is correct?  Wouldn’t it be great if we would replace that dead document or set of documents, with a living one?

The good news is we can, and some of us have.  And I fully expect this recommendation will be just as controversial, because <strong>I am suggesting that we don’t have to write low level specifications of the system at all, instead we can write good unit tests. </strong>When we do this, we are taking a dead form of document and bringing it to life.
<h2>Unit tests tell us why and how our code is effective</h2>
If
<pre class="csharpcode">i = 5;  // Widget count defaults to five.</pre>
is replaced with
<pre class="csharpcode">widgetCount = DEFAULT_WIDGET_COUNT;</pre>
<!--.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } -->

then
<blockquote><span style="background-color: #ffffff;">1.1.5 When a new widget is created, the widget count should be increased by one.</span></blockquote>
is replaced with
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">void</span> When_NewWidgetIsCreated_Then_WidgetCountIsIncreasedByOne()
{
     WidgetFactory.Count = 3;
     WidgetFactory.CreateNew();
     assertEquals(4, WidgetFactory.Count);
}</pre>
The unit test is replacing the low level requirement, which is somewhat open to interpretation and untied to the code, with an absolute and completely tied-to-the-code, specific requirement.

The unit test is telling us why our code is built the way it is.  It is telling us what requirement that particular structure of code is trying to address.  <strong>It is telling us what end result that code is trying to accomplish and what the expectations are on the results of a given condition.</strong>

The unit test is telling us how the code is to be used in order to achieve its result.  It is serving as a living reference to the syntax and use of the code we built.  <strong>Instead of providing instructions on how to use our API, we are providing a living example, and proof that it will indeed work.</strong> Examples are often much more effective than instructions anyway.
<h2>What exactly are we replacing?</h2>
At this point we are not trying to replace all the documentation of the system (at this point).

With self-documenting code, we sought to eliminate comments, and replace them with good variable and method names.

With unit tests, we seek to eliminate technical documentation and requirements of the system, that is targeted at a developer or technical audience.

We are NOT trying to eliminate high level specifications of the system, or use cases. <strong>Unit tests DO NOT replace that kind of documentation! </strong>We will talk about replacing that kind of documentation when we talk about automated functional or system tests.

Simply put, any kind of documentation that you would give to a developer so they understand how the system works and how to use the code or APIs, can be easily replaced by writing good unit tests.

Our simple goal is to replace the “dead” documentation (meaning that it does not update automatically with the thing it is documenting), with “living” documentation in the form of unit tests.

One last point.  I want to be clear that I am not saying that having unit tests automatically results in the ability to replace technical documentation.  Just like having long-named methods and variables doesn’t automatically replace the need for comments.  It is a matter of the quality of the unit tests that are written, just as it is a matter of the quality of the self-documenting code.
<h5>As always, you can subscribe to this <a href="http://feeds2.feedburner.com/ElegantCode">RSS feed</a> to follow my posts on elegant code.  Feel free to check out my main personal blog at <a href="http://simpleprogrammer.com">http://simpleprogrammer.com</a>, which has a wider range of posts, updated 2-3 times a week.  Also, you can follow me on twitter <a href="http://twitter.com/jsonmez">here</a>.</h5>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/04/25/if-self-documenting-code-is-the-what-unit-tests-are-the-why/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shut Up, Bob</title>
		<link>http://elegantcode.com/2010/02/18/shut-up-bob/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=shut-up-bob</link>
		<comments>http://elegantcode.com/2010/02/18/shut-up-bob/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:45:00 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/02/18/shut-up-bob/</guid>
		<description><![CDATA[Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob. Scenario 1 Bob: "Hey, where should we go to lunch?" Joe: "I dunno, get in the car and we'll decide later." Bob: "Yeah, we'll just be agile about it." Giggle, giggle. Tee hee [...]]]></description>
			<content:encoded><![CDATA[<p>Some of us are hurting our profession with the casual way we treat language. In the following examples, that guy is Bob.
</p><h2>Scenario 1
</h2><p>Bob: "Hey, where should we go to lunch?"
</p><p>Joe: "I dunno, get in the car and we'll decide later."
</p><p>Bob: "Yeah, we'll just be agile about it."
</p><p>Giggle, giggle. Tee hee hee.
</p><h2>Scenario 2
</h2><p>Bob: "Hey, what are you working on?"
</p><p>Joe: "I'm not sure what to do, Manager X told me to … and Manager Y told me to …"
</p><p>Bob: "Ah, so you are being agile then?"
</p><p>Gales of laughter, followed by a knowing wink.
</p><h1>Shut Up, Bob
</h1><p>Bob, you are causing harm. You are the reason agile has been coopted. You are undermining the efforts of your peers who are actually trying to better our profession. They are doing this for you, Bob.
</p><p>Your cheap joke mocks a body of knowledge and professionals who are trying improve the life of your teammates. The fact that you will spend the next 20 minutes hanging out at the water cooler and planning lunch instead of driving positive change in your team lets me know where you are coming from.
</p><p>When your CTO passed by and heard your little joke, it confirmed his suspicion he needs to keep the current command-and-control mechanisms in place. This also influenced his ideas of what agile really means, because all he had before is the contents of a 3 year old InfoQ article. 
</p><p>Bob, shut up. You aren't just hurting yourself. You are undermining all of us.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/02/18/shut-up-bob/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Review: The Passionate Programmer</title>
		<link>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=review-the-passionate-programmer</link>
		<comments>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 00:43:47 +0000</pubDate>
		<dc:creator>Sean Timm</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/29/review-the-passionate-programmer/</guid>
		<description><![CDATA[As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both [...]]]></description>
			<content:encoded><![CDATA[<p>As an Elegant Coder, I suffer the fate of sitting in front of a computer screen for large parts of my day, and I can often be found at home in front of one as well.&#160; This can promote a fairly sedentary lifestyle if one is not careful.&#160; Over the years, I have been both more and less careful in this regard at various times.&#160; This has resulted in my current state – a state we will refer to (for purposes of this conversation) – as “overweight”.&#160; I’ve participated in a number of weight loss programs over the years until I finally wised up and realized that every successful program had at its heart two common factors – caloric restriction and exercise.&#160; I am now actively engaged in working both of those factors until I achieve a state we will call “fit”.&#160; However, becoming fit is not an immediate process.&#160; It is a daily process requiring both attention and discipline.&#160; I’m fond of saying, “It took me 15 years to achieve this weight.&#160; Do you expect it to be gone in 30 days?”</p>  <p><a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Delegantcode-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356344">The Passionate Programmer: Creating a Remarkable Career in Software Development</a> by <a href="http://chadfowler.com/">Chad Fowler</a> is a book focused on helping you become fit as a developer – leading you along the path of life decisions that make the difference between a job and a remarkable career.&#160; As Chad says, “You don’t win a race by trying not to lose.&#160; And you don’t win at life by trying not to suck.”&#160; You have to be tactical, strategic, and deliberate if you want to avoid your career being “one big series of undirected coincidences.”</p>  <p>I won’t belabor all of the points you can find in this book, but I’d like to call out some things that stood out to me.</p>  <ul>   <li>Be the worst      <ul>       <li>If you’re the best, nothing is challenging and pushing you to grow/perform.&#160; Seek associations with people that are better/faster/smarter than you. </li>        <li>You’re not as bad as you assume.&#160; Give yourself the chance to discover it. </li>     </ul>   </li>    <li>Practice at your limits      <ul>       <li>Chad’s background as a musician provided opportunity to compare skill improvement to music practice.&#160; While performances are expected to be as perfect as possible, practice is raw, gritty, and doesn’t always sound good. </li>        <li>If all you’re ever doing is sitting down churning out elegant code, you’re not pushing at the edges (where all the improvement comes from). </li>     </ul>   </li>    <li>Study the work of masters      <ul>       <li>In the arts (and many other disciplines), much time is given to learning from the work of those that have gone before.&#160; In the past, this was more difficult in software development due to its proprietary nature, but the sheer volume and quality of open source projects makes this much more accessible now. </li>        <li>Existing code reflects on your own capabilities for growth and new avenues of thought. </li>     </ul>   </li>    <li>Focus on the present      <ul>       <li>If your head is always in the clouds of tomorrow, you’ll miss the daily victories. </li>     </ul> One topic Chad alluded to but didn’t build much on was approaching your career development in an Agile fashion.&#160; I thought this was a great concept, and from some comments on his blog, it looks like he’d like to build on this in the future.&#160; My takeaway was that I’d better start my sprint planning for my career.</li> </ul>  <p>There were many other points and topics covered including interaction with peers, management, and customers.&#160; Chad includes a number of “Act on It” exercises which will challenge you to grow in the areas he covers.&#160; Overall, it was a great read with a message I needed to hear, and I’d highly recommend it.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/29/review-the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile is not Scrum</title>
		<link>http://elegantcode.com/2009/11/25/agile-is-not-scrum/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-is-not-scrum</link>
		<comments>http://elegantcode.com/2009/11/25/agile-is-not-scrum/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 04:36:01 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[ALM]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/25/agile-is-not-scrum/</guid>
		<description><![CDATA[Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many. I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and [...]]]></description>
			<content:encoded><![CDATA[<p>Most people who read this blog will not find the title of this post a revelation. I know firsthand, however, that this is not the case for many.</p>  <p>I recently had the privilege of facilitating a Birds of a Feather session at PDC. The title of our discussion was “Agile – Triumphs, Teams, Trials, and Tribulations” and really just provided an opportunity for attendees to share stories. The session was extremely popular. So much so, in fact, that a fire marshal showed up to remove a few people from the room. </p>  <p>Cool, eh? Here is that not-so-cool part.</p>  <p>About 35 minutes into this discussion, I realized I hadn’t heard a question or comment that wasn’t related to Scrum. I asked the room, “How many people are on an agile team that is NOT using Scrum?”</p>  <p>5 hands. Seriously, out of about 150 people of so. 5 hands.</p>  <p><em>What in the world?</em> </p>  <p>Is this simply a sign that Scrum won in the marketing wars? Is this just because some people have heard about Scrum? What’s the root cause of this?</p>  <p>Is it the C-word (certification) that goes along with the 2 day CSM course proving you didn’t die midway through class? Is it the fact that there are some MS Press books on the subject? Is it the fact that there is a soon-to-be-released Scrum Developer course endorsed by Microsoft?</p>  <p>I am not bashing Scrum, but it certainly isn’t for everyone. In fact, I find that Lean with a Kanban system is typically far more effective in medium to small organizations. I am just incredulous that Scrum is so ubiquitous in the Microsoft-stack enterprise.</p>  <p>Scrum does not define agile software development. It drives me crazy to hear someone say, “We are <em>doing</em> Agile. We have Sprints and everything.” I assure you, dear reader, 2 week time boxes does not an agile team make.</p>  <p>The other thing that really fries my chips is that something south of 20% of people who profess to be using Scrum actually are doing so. I have seen so many <a href="http://www.motionbox.com/videos/0a99deb71f13e2ca87" target="_blank">ScrumBut</a> implementations I have started to expect it in any company that claims to be using the process.</p>  <p>My standard advice for any team is to implement a process without modification for at least 3 months before they think they understand it ell enough to tune it to better fit their needs. Of course, no one does this because “we are different”. </p>  <p>Yeah, sure you are.</p>  <p>The bottom line was stated perfectly in the BOF session by <a href="http://consultingblogs.emc.com/simonbennett/" target="_blank">Simon Bennett</a>.</p>  <blockquote>   <p>“Don’t tell me by-the-book doesn’t work without at least reading the entire book.”</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/25/agile-is-not-scrum/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why my Mom and Ted Neward Irritate Me</title>
		<link>http://elegantcode.com/2009/11/09/why-my-mom-and-ted-neward-irritate-me/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=why-my-mom-and-ted-neward-irritate-me</link>
		<comments>http://elegantcode.com/2009/11/09/why-my-mom-and-ted-neward-irritate-me/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 06:56:31 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/11/09/why-my-mom-and-ted-neward-irritate-me/</guid>
		<description><![CDATA[My mother is a psychologist and recently visited me us here in Idaho. We spent some time talking about the psychology behind some agile practices. Pretty cool! Additionally, we ended up on the one mystery topic that has always eaten away at me. That mystery for me is simple: Why does one person or team [...]]]></description>
			<content:encoded><![CDATA[<p>My mother is a psychologist and recently visited me us here in Idaho. We spent some time talking about the psychology behind some agile practices. Pretty cool!</p>  <p>Additionally, we ended up on the one mystery topic that has always eaten away at me. That mystery for me is simple:</p>  <blockquote>   <p>Why does one person or team pursue excellence relentlessly while another hits the door at 5:01 and doesn’t think about software development until tomorrow morning?</p> </blockquote>  <p>I got into the same discussion with <a href="http://blogs.tedneward.com/" target="_blank">Ted Neward</a> at the recent P&amp;P Summit while playing pool. Heck, it was almost an argument. :) I said something stupid that night. I said, “It’s all about incentives.”</p>  <p>Wrong.</p>  <h2>One Theory: Incentives</h2>  <p>I have had the opinion for years that there must be some motivator, some technique, or some dynamic that will affect people positively to simply care. This is the whole idea behind coaching, after all. A well-versed and motivating individual comes into a team and works with them to get better results. This happens every day.</p>  <p>If this will really work, it necessarily means that people are motivated by incentive. What I mean by that conditions like salary, a great leader, wonderful co-workers, free pizza and soda (or something) will inherently motivate someone to care about excellence. </p>  <p>Certainly no one can deny that incentives like these contribute to an enjoyable workplace. Heck, I love visiting the Microsoft campus and downing those free V-8s. All of them combined though, probably cannot cause someone to ponder, read, and learn. Incentives cannot move someone to try a new coding technique just because it might be interesting.</p>  <h2>The Irritatingly Simpler Theory that is Likely True</h2>  <p>There is just something about unique about people who can’t stop trying to improve. It isn’t the great boss or the great office space that causes me to think about the finer points of TDD in the shower. It’s just because I can’t NOT do it.</p>  <p>Both my mom and Ted Neward tried to get me to see that incentives will get you behavior and results (sometimes the ones you actually want), but can’t create passion. That is something that is simply innately there or not there.</p>  <p>This isn’t to say that there is no value in the person who wants to do their bid and get fair pay for a fair day. That’s not what I’m talking about. I am talking about the fact that most genius is recognized by relentless pursuit, the kind we can’t define.</p>  <h2>The Good News</h2>  <p>OK. Uncle, I get it. The great news is there are so many of us passionate geeks out there striving to improve. You wouldn’t likely be reading this if you weren’t one. Heck, I even geek <a href="http://guild3.com" target="_blank">to work with some</a>!</p>  <p>What’s your theory? Are passionate professionals just the obsessive-compulsive ones?</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/11/09/why-my-mom-and-ted-neward-irritate-me/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

