<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>AgileIQ Blog</title><link>http://www.solutionsiq.com/resources/agileiq-blog/</link><description>RSS feeds for the Agile IQ Blog</description><ttl>60</ttl><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AgileIQBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="agileiqblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/94001/Acceptance-Test-Driven-Development-Are-We-Flogging-a-Dead-Horse#Comments</comments><slash:comments>1</slash:comments><title>Acceptance-Test-Driven Development: Are We Flogging a Dead Horse?</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/94001/Acceptance-Test-Driven-Development-Are-We-Flogging-a-Dead-Horse</link><description>&lt;h2&gt;&lt;span style="color: #000000; font-size: 13pt; font-style: italic; line-height: 1.15;"&gt;Or: Functional Testing Practices I Do and Don’t Like and Why&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/rquartel" rel="nofollow" title="Ron Quartel" target="_blank"&gt;Ron Quartel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="color: #ff0000;"&gt;&lt;img id="img-1370539618554" src="http://www.solutionsiq.com/Portals/93486/images/horse-portrait.jpg" alt="Horse portrait by Yago Partal" class="alignRight" style="float: right;" border="0" height="129" width="129"&gt;Functional Testing Practices I don't like&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;I’m going to start with what I don’t like, as it will create more context for what I do like, and because it is nicer to end on a happy note. But first, let’s get the definitions out of the way.&lt;br&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;What exactly is ATDD?&lt;/h3&gt;
&lt;p&gt;The first thing I don’t like about ATDD is the sheer amount of confusion in the industry about what the term means. Follow these links for examples of the confusion around definition:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://janetgregory.blogspot.com/2010/08/atdd-vs-bdd-vs-specification-by-example.html" rel="nofollow" title="ATDD vs. BDD vs. Specification by Example" target="_blank"&gt;ATDD vs. BDD vs. Specification by Example&lt;/a&gt;&lt;a href="http://janetgregory.blogspot.com/2010/08/atdd-vs-bdd-vs-specification-by-example.html" rel="nofollow" title="http://janetgregory.blogspot.com/2010/08/atdd-vs-bdd-vs-specification-by-example.html" target="_blank"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="  http://powersoftwo.agileinstitute.com/2013/01/the-sportscar-metaphor-tdd-atdd-and-bdd.html" rel="nofollow" title="The Sportscar Metaphor: TDD, ATDD, and BDD Explained" target="_blank"&gt;The Sportscar Metaphor: TDD, ATDD, and BDD Explained&lt;/a&gt;&lt;a href="http://powersoftwo.agileinstitute.com/2013/01/the-sportscar-metaphor-tdd-atdd-and-bdd.html" rel="nofollow" title="http://powersoftwo.agileinstitute.com/2013/01/the-sportscar-metaphor-tdd-atdd-and-bdd.html" target="_blank"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="  http://stackoverflow.com/questions/3359327/atdd-versus-bdd-and-the-proper-use-of-a-framework" rel="nofollow" title="ATDD versus BDD and the proper use of a framework" target="_blank"&gt;ATDD versus BDD and the proper use of a framework&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In order to move past this hurdle and on with my argument, here is a definition of the term and some others related to it, so we have a common understanding.&lt;/p&gt;
&lt;p&gt;Acceptance tests:&amp;nbsp; otherwise known as customer tests and previously known as &lt;strong&gt;&lt;a href="http://c2.com/cgi/wiki?FunctionalTest"&gt;functional tests&lt;/a&gt;&lt;/strong&gt;, these are tests that match/replace the acceptance criteria of a story. The concept has its roots in Extreme Programming (XP). The idea is that the customer will accept the story when all the acceptance tests pass. Or, put another way, a passing suite of acceptance tests constitutes part of the Definition of Done for a story, iteration, or sprint.&lt;/p&gt;
&lt;p&gt;Because acceptance criteria are typically expressed at a high level of user functionality, Automated Acceptance Tests (AAT) are often written using GUI driving testing frameworks (e.g., Selenium). These tools are sometimes referred to as Acceptance Testing Tools/Frameworks.&lt;/p&gt;
&lt;p&gt;The Agile community has long wanted acceptance tests to be written by the customer (hence the newer name of customer tests), ideally before work starts on the story. The acceptance tests are written before the code; this leads to the term Acceptance Test Driven Development (ATDD) or Automated Acceptance Test Driven Development (AATDD), because it follows the pattern of test before code as practiced by Test Driven Development (TDD). I will address TDD later.&lt;/p&gt;
&lt;p&gt;If you have implemented Scrum as your Agile practice, read “product owner” in place of customer. You will find me switching between the two terms in this article.&lt;/p&gt;
&lt;h3&gt;Product owners didn’t buy into the vision&lt;/h3&gt;
&lt;p&gt;The reality of the above vision of acceptance testing is that most product owners were unable or unwilling to write such tests, particularly if they required using a scripting or programming language.&lt;/p&gt;
&lt;p&gt;When the Agile community witnessed this reluctance, they thought that if product owners could create tests using familiar applications like Excel or Word, then the practice would become more palatable and widely accepted. This resulted in testing tools such as FitNesse. I’m going to step out on a limb and say that for the most part these tools didn’t work in the hoped-for manner. Even using this medium to write tests, product owners were still reluctant to produce testing artifacts and found the output of FitNesse confusing and of little value to them.&lt;/p&gt;
&lt;p&gt;So the community went back to the drawing board and valiantly tried to another approach. Enter Behavior Driven Development (BDD). The BDD approach was to create a framework where the tests are written in plain English and saved as plain text documents. The thinking was that if we make it simpler, product owners and customers will want to write tests. Agilists hoped that if the customers could do this then the clever devs and their BDD frameworks would do all the other magic to turn these plain text documents into automated acceptance tests.&lt;/p&gt;
&lt;p&gt;I have yet to see a product owner get excited about this breakthrough and throw her arms into the air declaring “Hallelujah! Finally I am in control of the quality of this project!” Nor have I seen a product owner thanking the Agile community for developing the tool that he has been waiting for all his life.&lt;/p&gt;
&lt;p&gt;In short, I feel that Agilists are guilty of not understanding the product owners' needs and are telling them how they should be doing their job. This is akin to software companies with the view that the users are the problem and need to be educated – “if only the customers would get just how awesome this product is then they would use it the way that we designed it – the way they are supposed to use it. The users need all these awesome features we have created for them but they just don’t understand the concept.”&lt;br&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Product owners aren’t coders, they’re business people&lt;/h3&gt;
&lt;p&gt;Product owners have their role because they understand requirements, customers, business drivers, marketing, sales, and more. They are often business analysts and spend much of their time talking with customers, stakeholders, sales, marketing, and usability experts; visiting sites/customers; and making themselves available to the team to answer questions, providing scope and resolving any uncertainty that may arise in a story during an iteration. Thinking of acceptance criteria in a certain format or in a programming language is often incompatible with their skill set and interests. In my experience, this is why they are reluctant to write acceptance tests. They seem happy to create acceptance criteria when asked, but are often reluctant to do anything more than that.&lt;br&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Acceptance tests and especially BDD tests are hard to refactor&lt;/h3&gt;
&lt;p&gt;Acceptance tests tend to just grow in a corner of the codebase without being refactored. The acceptance test regression suite (the accumulated acceptance tests) gets added to each iteration and no thought (e.g. do we need to refactor these tests? Are they still relevant?) goes into the question of duplication and quality. Test Code is a first class citizen and needs refactoring. Acceptance tests often don’t lend themselves to being refactored, and I have yet to see a way to refactor plain text BDD tests.&lt;br&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Acceptance and BDD test suites are slow and this only gets worse over time&lt;/h3&gt;
&lt;p&gt;An acceptance test regression suite keeps getting bigger and bigger and slower and slower. You may find, when working on a story, that one small change can break a hundred or hundreds of these tests, forcing you to go back and edit each of these failing tests. More often, the entire suite is thrown out and the ATDD/BDD exercise is declared a failure.&lt;/p&gt;
&lt;p&gt;When the running of an acceptance test regression suite starts taking an extended period of time, you lose the benefit of short feedback cycles. The likelihood of a dev team taking action on a failed build reduces in relation to the length of time the build takes, i.e., the longer the build, the less likely it is going to be maintained and acted upon when it fails. Without refactoring, any test suite will suffer from accretion and entropy, and eventually be abandoned – particularly if the suite starts to take longer and longer amounts of time to run.&lt;/p&gt;
&lt;h3&gt;Acceptance and BDD test suites are fragile and cost time to maintain&lt;/h3&gt;
&lt;p&gt;Acceptance tests are known for suffering from false positive test failures. Development teams are unlikely to take any action when the build fails when they are tired of expending vast amounts of time and energy trying to fix fragility. It is hard to ascertain if the failure was a bug in the code, a bug in the test, a change in the environment, or just the suite framework being flaky. Fixing bugs that are intermittent and hard to reproduce is notoriously difficult and time-consuming. When this happens repeatedly, the solution is often to comment out the test, remove the test, or abandon the entire suite.&lt;/p&gt;
&lt;h3&gt;ATDD focuses on the wrong part of the testing pyramid&lt;/h3&gt;
&lt;p&gt;Don’t get me wrong, I like integration, system, and end-to-end tests. I’m in favor of testing the entire pyramid (see the pyramid below).&amp;nbsp; I’m not suggesting throwing the baby out with the bathwater when I criticize ATDD and BDD. An advanced development team should be able to get functional tests to run quickly and be stable and appropriate for the product. But too often new teams leap on ATDD as a best practice, and the testing pyramid is turned upside down as their primary focus moves to the top of the pyramid where ATDD lives. In the pyramid diagram you will notice that unit testing and Test Driven Development (TDD) should be the primary focus of the team and the foundation block of all testing. When a team is proficient at TDD with unit tests, they are more likely to create the appropriate level of testing at the higher levels of the pyramid. In my opinion, ATDD should not be undertaken by beginner (or SHU level) development teams.&lt;/p&gt;
&lt;h3&gt;ATDD is too often mistaken for TDD (Test-Driven Development)&lt;/h3&gt;
&lt;p&gt;“We do TDD here” is a comment I hear too often from teams that are not doing any unit testing but have focused their testing efforts on functional testing only and believe that this is what TDD is. Even if you are writing unit tests, that doesn’t mean you are doing TDD. Unless you are writing the unit tests at the same time as the code, you are not doing TDD.&lt;/p&gt;
&lt;h3&gt;ATDD can encourage big design up front instead of emergent design&lt;/h3&gt;
&lt;p&gt;While everything else in Agile follows the philosophies of just in time (JIT) and simple design, many of the assertions that arise from acceptance tests before code implementation are based on assumptions in functionality that turn out to be wrong once the code and design have emerged. This then requires you to have to rewrite the acceptance tests during the iteration. Having loose or vague requirements (as favored by Agile) means that the way you implement a story may be very different from the way that you thought it would be implemented before you started the story. The ability to develop the solution is embedded in Agile processes and is indeed one of Agile’s strengths. Because of this I’m going to claim that many acceptance tests go against Agile architecture and emergent design.&lt;/p&gt;
&lt;p&gt;This mostly happens when your acceptance tests are driving a GUI. Now I am not opposed to designing a GUI up front, and indeed it is helpful for the developers to have a design or mock to work from when implementing the story. But often, it is only when you start implementing a design (coding) that you find all the flaws in the design and all the edge cases that the designer did not think of when creating the design. This results in the design and/or functionality changing, or emerging (part of emergent design) during an iteration. It is a waste of time and effort to have written tests against the GUI before the GUI is implemented.&lt;/p&gt;
&lt;h3&gt;ATDD is time consuming and not lean&lt;/h3&gt;
&lt;p&gt;The practice of ATDD can consume time in these areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creating fixtures to drive BDD tests&lt;/li&gt;
&lt;li&gt;Rewriting the tests after emergent design has changed the original design&lt;/li&gt;
&lt;li&gt;Maintaining a fragile suite that suffers from false positives&lt;/li&gt;
&lt;li&gt;The tests themselves are slow to run&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is not an insignificant amount of time and definitely not lean in nature.&lt;/p&gt;
&lt;h3&gt;BDD context switching&lt;/h3&gt;
&lt;p&gt;I prefer acceptance testing tools that sit on top of the same technology that you are using for unit testing, like JWebUnit which runs on JUnit. You can edit and run the tests all in the same IDE. BDD testing involves switching between IDEs and/or language technologies, and that feels unnecessarily disjointed to me.&lt;/p&gt;
&lt;h3&gt;When do you call the horse dead?&lt;/h3&gt;
&lt;p&gt;The industry has had long enough to try the concept of acceptance testing out on the community of product owners, and the uptake has proven poor. I call that a failure.&lt;/p&gt;
&lt;p&gt;So how much longer are we going to flog this dead horse? Compare this to the uptake and acceptance of TDD as a practice. TDD has stuck and works. ATDD did not, and the Agile community at large seems to keep wanting to revive it by changing its shape and creating new frameworks and approaches instead of ditching it.&lt;/p&gt;
&lt;h2&gt;&lt;span style="color: #ff0000;"&gt;Testing Practices I Do Like&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;Writing good, clean, and readable tests&lt;/h3&gt;
&lt;p&gt;Your tests are a first class citizen and form part of the documentation (or specification) of your application. Learning to write good tests, wherever they are in the pyramid, is an art in itself and one that must be learned by every Agile developer and practiced by every Agile team. Bob Martin has a great chapter on Unit Testing in &lt;strong&gt;&lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=la_B000APG87E_1_1?ie=UTF8&amp;amp;qid=1370478216&amp;amp;sr=1-1" rel="nofollow" title="Clean Code: A Handbook of Agile Software Craftsmanship" target="_blank"&gt;&lt;em&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;. The pattern of keeping test code clean applies to all types of automated tests.&lt;/p&gt;
&lt;h3&gt;Refactoring tests&lt;/h3&gt;
&lt;p&gt;All code, including test code, suffers from rot and needs to be kept fresh. Learn to refactor your tests. I highly recommend Gerard Meszaros’ book on this topic, &lt;strong&gt;&lt;a href="http://www.amazon.com/dp/0131495054/ref=rdr_ext_tmb" rel="nofollow" title="xUnit Test Patterns: Refactoring Test Code" target="_blank"&gt;&lt;em&gt;xUnit Test Patterns: Refactoring Test Code&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;Use the right tool for the right job. What Specification frameworks are good for&lt;/h3&gt;
&lt;p&gt;If your business has areas of functionality or business logic that have to meet compliance or legal requirements and be documented, then this can be a good use of a BDD or other specification testing tool. You can meet the compliance requirement around documentation and build a valuable test artifact at the same time. Win/win!&lt;/p&gt;
&lt;h3&gt;BDD test protocol&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Given, When, Then&lt;/em&gt; is a nice way to think about your tests. It has become very popular among unit test frameworks as well. I like it. It is similar to the &lt;em&gt;Arrange, Act, Assert&lt;/em&gt; pattern but it builds the pattern into the test protocol and thus improves the readability of tests.&lt;/p&gt;
&lt;h3&gt;Following the testing pyramid - Agile Testing&lt;/h3&gt;
&lt;p&gt;High performance teams I have worked with know how to use end-to-end and integration test frameworks effectively to ensure that they are writing quality code and are not breaking functionality as they go. They know when to write these tests and what to test. They know how to refactor these tests to avoid fragility and keep them fresh and relevant. They know how to avoid duplication in these tests, and how and when to implement configuration management. They take ownership of writing and maintaining these tests (as they do for the quality of the entire product in general). They know how and when to break these tests into suites to optimize build performance – for example, splitting out a smoke test suite that runs on every local build and a more complete regression suite that runs on a CI server after each check in. They know how to create suites of tests and how to schedule and chain builds – for example, running stress/performance testing and/or benchmarking every night. And not to be forgotten, the base of the testing pyramid is solid! That is to say, they have embraced TDD and have a high level of unit test code coverage.&lt;/p&gt;
&lt;p&gt;This is what I call “Agile Testing,” and it refers to the entire pyramid. I have asked non-coding Agile consultant colleagues to use this term when talking about best practices for Agile teams instead of the (somewhat rhetorical) terms ATDD and TDD. The rule is if you can’t write it, don’t talk about it – instead use the term “Agile Testing.”&lt;/p&gt;
&lt;h2&gt;&lt;span style="color: #ff0000;"&gt;Agile Testing Pyramid&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;Healthy testing pyramid&lt;/h3&gt;
&lt;p&gt;&lt;img id="img-1370477847664" src="http://www.solutionsiq.com/Portals/93486/images/healthypyramid1-resized-600.png" alt="unhealthypyramid resized 600" border="0"&gt;&lt;br&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Unhealthy inverted testing pyramid - when ATDD takes center stage&lt;/h3&gt;
&lt;p&gt;&lt;img id="img-1370477886954" src="http://www.solutionsiq.com/Portals/93486/images/unhealthypyramid-resized-600.png" alt="describe the image" border="0" height="339" width="582"&gt;&lt;/p&gt;
&lt;p&gt;(Source: &lt;strong&gt;&lt;a href="http://patrickwilsonwelsh.com/?p=32" rel="nofollow" title="Flipping the Automated Testing Triangle: the Upshot" target="_blank"&gt;Flipping the Automated Testing Triangle: the Upshot&lt;/a&gt;&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;(Horse portrait by &lt;a href="http://www.zooportraits.com/" rel="nofollow" title="Yago Partal" target="_blank"&gt;&lt;strong&gt;Yago Partal&lt;/strong&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/94001/Acceptance-Test-Driven-Development-Are-We-Flogging-a-Dead-Horse&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/94001/Acceptance-Test-Driven-Development-Are-We-Flogging-a-Dead-Horse&amp;bvt=rss"&gt;</description><pubDate>Mon, 10 Jun 2013 16:19:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:94001</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/94227/Mending-Walls-With-Team-Friends#Comments</comments><slash:comments>2</slash:comments><title>Mending Walls With Team Friends</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/94227/Mending-Walls-With-Team-Friends</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/michaeljtardiff" rel="nofollow" title="Michael Tardiff" target="_blank"&gt;Michael Tardiff&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Scrum is focused on teams. But who's on the team? And how can others help?&lt;/p&gt;
&lt;p&gt;Not too long ago, a manager told me, "It seems like you're saying that Scrum separates me from my team. That doesn't feel right, because I've worked hard to create an open atmosphere here." He had a point: the language we often use when talking about Scrum teams includes "protecting" the team and focusing on the people who have "hands on the keyboard." We think we need to separate the Scrum team from their partners in the organization.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p style="text-align: left;"&gt;Before I built a wall I'd ask to know What I was walling in or walling out,&lt;br&gt;And to whom I was like to give offence. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; – Robert Frost, "&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Mending_Wall" rel="nofollow" title="Mending Wall" target="_blank"&gt;Mending Wall&lt;/a&gt;&lt;/strong&gt;"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That conversation reminded me of a time, years ago, when I was working with a team whose managers had asked me to help them learn how to deliver using Scrum. These folks worked in what some technology professionals might see as an extremely stable company; many people had been at the company for double-digit numbers of years. They worked together, celebrated together, knew each other's families and kids. They knew a lot about being together before I ever came into their lives.&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1369937097286" src="http://www.solutionsiq.com/Portals/93486/images/Mendingwall.gif" alt="Mending walls in Agile Teams" class="alignLeft" style="float: left;" border="0"&gt;When it came time to form the Scrum team – choosing who'd work on which team, who would serve as ScrumMaster, and so on – we got a bit stuck. "I think I should definitely be on the team," said Richard, who was the manager of most of the developers and testers who would be working together. "I need to see what the team is doing." Others piped up, remembering what we'd learned about cross-functional delivery teams, and offered that Richard didn't have a delivery role; he was a manager.&lt;/p&gt;
&lt;p&gt;The brand-new ScrumMaster, Amy, suddenly brightened. "Richard," she said, “what if you were a 'team friend'? We're going to have lots of challenges as we learn to work using this Scrum thing, and we'll need all the help we can get. And friends are important: they care about you, they'll listen, offer advice...they'll pitch in and help you out when you're in a tough spot. Sometimes, they'll even lend you money!"&lt;/p&gt;
&lt;p&gt;Amy had captured everything I'd wanted to say about supportive work environments and empowered teams. Our team was going to need friends to survive our learning and adapting times ahead. And so Amy made a poster labeled "Our Team Friends" and invited Richard to come over and sign in as our first friend.&lt;/p&gt;
&lt;p&gt;When the poster went up on the team's wall later that week, it quickly attracted the attention of others whose work brought them into frequent contact with our team. "Can I be your team friend too?" they'd ask, in all earnestness. Amy would explain what our expectations were from friends, and to our surprise, one by one they happily signed their names.&lt;/p&gt;
&lt;p&gt;Here's the best part: We soon discovered that one of the team members had to be gone for two entire sprints, and the team felt shorthanded without him. Richard heard our concerns, and said, "Could I help? Could you use an extra hand?" The team was surprised at his offer, but quickly accepted it. Richard, like a true friend, backed us up wholeheartedly – he temporarily moved out of his office and onto a table in the team room, and there paired with team members to deliver software, complete stories, and accomplish our iteration goal. Reflecting on Richard's contributions at our retrospective a month later, we realized that we couldn't have done it without him. And the team felt that they had a real commitment from management to support them through this time of change.&lt;/p&gt;
&lt;p&gt;I wished that I'd remembered Amy's idea when I was working with that recent team and its involved, supportive manager. But it's not too late for them, nor for your team. Consider inviting the support, understanding, help, and trust of those "outside" your delivery team. Make more friends, and try to keep them. And don't forget to invite them to the post-sprint celebration at the pub!&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/94227/Mending-Walls-With-Team-Friends&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/94227/Mending-Walls-With-Team-Friends&amp;bvt=rss"&gt;</description><pubDate>Wed, 05 Jun 2013 07:46:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:94227</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/94102/The-Definition-of-Ready-in-Agile-Development#Comments</comments><slash:comments>2</slash:comments><title>The Definition of Ready in Agile Development</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/94102/The-Definition-of-Ready-in-Agile-Development</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/davewylie" rel="nofollow" title="David Wylie" target="_blank"&gt;David Wylie&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1369347345505" src="http://www.solutionsiq.com/Portals/93486/images/definition-of-ready.gif" alt="Definition of Ready" class="alignRight" style="float: right;" border="0" height="131" width="182"&gt;Our development teams have an insatiable need for work to do. It is very common for them to deplete the Product Backlog of items that are ready to be taken into a sprint. It is also common that the Product Owner (PO) and stakeholders have lots of partially defined work in the backlog. This caused frustration because the team can’t bring in work, yet there is plenty to do.&lt;/p&gt;
&lt;p&gt;To help with this, our teams work with the PO to agree on what defines a “ready” state of a backlog item. This will vary by project, but below are some elements to seed the discussion:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Story defined and written&lt;/li&gt;
&lt;li&gt;Story traceable to source document (where appropriate)&lt;/li&gt;
&lt;li&gt;Acceptance criteria defined&lt;/li&gt;
&lt;li&gt;Dependencies identified&lt;/li&gt;
&lt;li&gt;Size estimated by delivery team&lt;/li&gt;
&lt;li&gt;User experience included (where appropriate)&lt;/li&gt;
&lt;li&gt;Performance criteria identified (where appropriate)&lt;/li&gt;
&lt;li&gt;Person who will accept the user story is identified&lt;/li&gt;
&lt;li&gt;Team has a good idea about how to demo the user story&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some other really smart Agile thinkers have been talking about this for a while:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.romanpichler.com/blog/product-backlog/the-definition-of-ready/" rel="nofollow" title="The Definition of Ready" target="_blank"&gt;&lt;strong&gt;The Definition of Ready&lt;/strong&gt;&lt;/a&gt; (Roman Pichler)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://systemagility.com/2011/05/17/definition-of-ready/" rel="nofollow" title="Definition of Ready" target="_blank"&gt;&lt;strong&gt;Definition of Ready&lt;/strong&gt;&lt;/a&gt; (Ken Power)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We suggest that the Definition of Ready be published to the PO and all stakeholders we can identify. It also highlights the importance of the ScrumMaster’s opportunity to support the team by working with the PO to ensure there is at least a sprint’s worth of data ready to go. Along with a team Working Agreement and Definition of Done, consider adding the Definition of Ready to your Scrum team's toolset.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/94102/The-Definition-of-Ready-in-Agile-Development&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/94102/The-Definition-of-Ready-in-Agile-Development&amp;bvt=rss"&gt;</description><pubDate>Fri, 24 May 2013 16:13:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:94102</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/93680/Why-Are-You-Not-a-Software-Engineer#Comments</comments><slash:comments>8</slash:comments><title>Why Are You Not a Software Engineer?</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/93680/Why-Are-You-Not-a-Software-Engineer</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/davewylie" rel="nofollow" title="David Wylie" target="_blank"&gt;David Wylie&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Are you a rock star developer? A prodigious code creator, widely read, developer of new frameworks, familiar with many languages? Then you may not need this advice because you are already productive (unless you have an unusual level of humility and desire to improve).&lt;/p&gt;
&lt;p&gt;For the rest of us normal folks, there are things we can do better.&lt;/p&gt;
&lt;p&gt;The practices that lead to good software are well known:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Work frequently and closely with requirements providers&lt;/li&gt;
&lt;li&gt;Write automated tests&lt;/li&gt;
&lt;li&gt;Check in small changes and run the tests&lt;/li&gt;
&lt;li&gt;Demonstrate new code and release regularly&lt;/li&gt;
&lt;li&gt;Pair program&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://www.extremeprogramming.org/rules.html" rel="nofollow" title="Extreme Programming" target="_blank"&gt;Extreme Programming&lt;/a&gt;&lt;/b&gt; has been around for a long time. BUT MOST DEVELOPERS ARE NOT FOLLOWING THESE AGILE PRACTICES! Sorry, this is bothering me.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://www.extremeprogramming.org/rules.html" rel="nofollow" title="Extreme Programming" target="_blank"&gt;&lt;img id="img-1368738613471" src="http://www.solutionsiq.com/Portals/93486/images/extreme-programming-practices.gif" alt="Extreme Programming Practices" class="alignRight" style="float: right;" border="0" height="200" width="360"&gt;&lt;/a&gt;&lt;/b&gt;If you are &lt;b&gt;not&lt;/b&gt; a rock star and don’t follow these practices, you can be better. I bet your code takes longer, has more bugs, and does not meet business expectations as well as it could.&lt;/p&gt;
&lt;p&gt;Perhaps it is a marketing failure. The name Extreme, and the initials XP, have connotations that must repel some folks. Current people in management grew up in a time before XP, so they might not like the “communist” components of open work spaces and collective code ownership. Many people became developers because they either don’t want to or suck at dealing with other people, developers or business folks. Those people are not having the positive impact that is within their potential.&lt;/p&gt;
&lt;p&gt;Engineers have known good practices that they follow. In fact, if they don’t follow good practices, they can lose credentials and be held liable for failures.&lt;/p&gt;
&lt;p&gt;We should hold ourselves to similar standards. We know the practices that work, and it is not a matter of opinion.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/93680/Why-Are-You-Not-a-Software-Engineer&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/93680/Why-Are-You-Not-a-Software-Engineer&amp;bvt=rss"&gt;</description><pubDate>Thu, 16 May 2013 16:26:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:93680</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/93677/Distributed-versus-Scattered-Teams#Comments</comments><slash:comments>1</slash:comments><title>Distributed versus Scattered Teams</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/93677/Distributed-versus-Scattered-Teams</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/davewylie" rel="nofollow" title="David Wylie" target="_blank"&gt;David Wylie&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think we need to refine how we define teams and team members when they are geographically dispersed. The issue is how best to implement technical practices, work distribution, and communication among team members in different locations. A key Agile principle recognizes that “the most efficient and effective method of conveying information to and within a development team is face-to-face conversations.” How does this apply in a world of distributed teams?&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1368217770408" src="http://www.solutionsiq.com/Portals/93486/images/Distributed-Agile.gif" alt="Distributed Scattered Teams" class="alignLeft" style="float: left;" border="0"&gt;There are many successful implementations of projects where sub-teams are geographically distributed. What they have in common is that the sub-teams have 2-9 people who can work together in the same location. Successful examples (SolutionsIQ, Sutherland, Yap) show that teams/sub-teams in different time zones can deliver regularly with high quality. In most of the projects where teams have participated in remote pairing, the remote team has had two or more people in that location. If you have this situation, these groups should ideally be feature teams, where the group can deliver a complete feature with minimal integration dependencies.&lt;/p&gt;
&lt;p&gt;Though remote pairing has been done successfully several times at SolutionsIQ, some of our strongest developers had a challenge with remote pairing. It should be pointed out that on the highest-performing distributed teams, team members start out working together in the same location for a period of time at the start of the project. This allows relationships to develop and norms of practices and behaviors to be established.&lt;/p&gt;
&lt;p&gt;We continue to see challenges with scattered teams where individuals are geographically isolated. New technologies like desktop sharing and video (WebEx, Skype, Vuze, VNC, Join.me) help, but our experience shows significant challenges. Chief among them is that having people work from home, a classic pattern, leads to &lt;em&gt;individuals&lt;/em&gt; delivering and maintaining expertise. This is contrasted with the &lt;em&gt;team&lt;/em&gt; delivering, and sharing of knowledge and responsibility within the team. Individuals can still follow good technical practices like TDD and CI, but positive peer pressure is reduced. Code review and knowledge sharing has to be dealt with separately if pairing does not happen. Team estimation and team velocity are very difficult, and that leads to limitations on release planning. Demonstrations by remote team members are harder but possible. Product owners can ask questions and seek clarifications via conference call, but conference calls can easily become individual conversations. Most of the scattered teams I have encountered do not meet together on regular basis.&lt;/p&gt;
&lt;p&gt;If you have remote individuals, then they need to be managed as individuals, not as a team. Wishing for team behaviors will lead to disappointment.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/93677/Distributed-versus-Scattered-Teams&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/93677/Distributed-versus-Scattered-Teams&amp;bvt=rss"&gt;</description><pubDate>Fri, 10 May 2013 16:25:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:93677</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/93516/Is-the-Product-Owner-on-the-Scrum-Team#Comments</comments><slash:comments>1</slash:comments><title>Is the Product Owner on the Scrum Team?</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/93516/Is-the-Product-Owner-on-the-Scrum-Team</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/davewylie" rel="nofollow" title="David Wylie" target="_blank"&gt;David Wylie&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some people that are new to Scrum believe that the product owner has to be kept at arm’s length. Originally, Scrum books taught that the PO and the development team were separate. I’ve even heard people state that the PO is a chicken, and not as committed as the pigs on the development team. However, according to the latest Scrum Guide, the Scrum team includes the development team, ScrumMaster, and product owner.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1367599916988" src="http://www.solutionsiq.com/Portals/93486/images/is-the-product-owner-a-member-of-the-scrum-team.jpg" alt="Is the product owner a member of the Scrum team?" class="alignRight" style="float: right;" border="0" height="86" width="197"&gt;Is the product owner part of the team or isolated? Agile principles say that the team should work with business people daily, and the best way to convey information is face-to-face; we also teach that teams ideally are colocated. So in an ideal state, the PO does colocate with the team -- if not, he or she still needs to be available to the team on a daily basis, either in person or via other communication methods.&lt;/p&gt;
&lt;p&gt;It always depends on the people involved, but many teams are including the PO in sprint retrospectives. If there is a lack of trust between the development team and the PO, then the ScrumMaster has work to do. Everyone should be working together to deliver value, and the best product owners are on the team.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/93516/Is-the-Product-Owner-on-the-Scrum-Team&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/93516/Is-the-Product-Owner-on-the-Scrum-Team&amp;bvt=rss"&gt;</description><pubDate>Fri, 03 May 2013 16:40:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:93516</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/92564/Agile-Values-and-Organizational-Transformation#Comments</comments><slash:comments>3</slash:comments><title>Agile Values and Organizational Transformation</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/92564/Agile-Values-and-Organizational-Transformation</link><description>&lt;P&gt;by &lt;STRONG&gt;&lt;A title="Dan Williams" href="http://www.linkedin.com/in/danwilliamspmp" target=_blank rel=nofollow&gt;Dan Williams&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The Agile Manifesto was developed in February 2001 by seventeen people who met to find commonalities between several ‘lightweight’ methods that emerged in the 1990s. Representatives from Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, and Pragmatic Programming along with many others were able to agree on a core set of values.&lt;STRONG&gt;&lt;A title="" href="#_ftn1"&gt;[1]&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The values expressed in the Manifesto center on people and their interactions within the limiting context of the work environment. This does not mean that the values cannot be applied in other contexts such as the home or school, but it does mean that when speaking of Agile values, frameworks, and tools, we are generally speaking of work environments.&lt;/P&gt;
&lt;P&gt;Agile is moving from the software industry, where it got its start, to major corporations providing all manner of goods and services. This shift is partly being fueled by articles in media such as the Wall Street Journal and CIO Journal.&lt;STRONG&gt;&lt;A title="" href="#_ftn2"&gt;[2]&lt;/A&gt;&lt;/STRONG&gt; Agile is the next big thing (NBT) and is touted as providing that silver bullet of delivering goods and services at the ‘faster, better, cheaper’ pace which seems to be the holy grail of business.&lt;/P&gt;
&lt;P&gt;&lt;IMG width=209 height=108 class=alignRight id=img-1364883517495 style="FLOAT: right" alt=success src="http://www.solutionsiq.com/Portals/93486/images/success.jpg" border=0&gt;&lt;/P&gt;
&lt;P&gt;The crux of this article is that Agile is not a process or set of tools to accomplish the goals of business when those goals are limited to mere profit; it is rather a set of values that move us from primarily valuing the work product to valuing the work producer, the person. This may or may not produce improved profit margins. What has been demonstrated is that it does in many cases produce higher quality goods, happier, more fulfilled people producing those goods, and a better business context within which to work.&lt;/P&gt;
&lt;P&gt;It is important to understand the fundamental shift in value perspective that Agile recommends to businesses. Process frameworks like Scrum, Extreme Programing and Crystal have been demonstrated to be successful as the Agile values which they promote are understood and incorporated into the business ethos.&lt;STRONG&gt;&lt;A title="" href="#_ftn3"&gt;[3]&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If the business attempts to apply one or more of the Agile process frameworks without understanding the need to incorporate the Agile values, the desired organizational change with the anticipated benefits of ‘faster, better, cheaper’ will tend to be minimal. This is due to the dependence of the processes on the values. How can we help businesses with this significant paradigm shift in their thinking? The following suggestions help smooth the way for businesses to move toward incorporating Agile values and processes into their environment:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Involve all levels of the business, including top level ‘C’ executives. Their sponsorship and support will be important.&lt;/LI&gt;
&lt;LI&gt;Don’t neglect mid-level management as their support is vital to the success of the transformation.&lt;/LI&gt;
&lt;LI&gt;Answer the question, “Why move to Agile?” This is important, as the reasons for attempting such a fundamental change should be well understood from both a quantitative as well as qualitative standpoint.&lt;/LI&gt;
&lt;LI&gt;Understand the current business culture. Change is hard and there will be champions as well as potential saboteurs of the changes to come.&lt;/LI&gt;
&lt;LI&gt;Spend time on the organizational structure to understand how it helps or hinders the move to Agile.&lt;/LI&gt;
&lt;LI&gt;Create a roadmap with the explicit understanding that it will change over time.&lt;/LI&gt;
&lt;LI&gt;Don’t attempt to change everything. Pick an area where a win will be evident and beneficial.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;More could and should be said, but this is a short blog article and not an essay. I look forward to continuing this discussion and invite your comments.&lt;/P&gt;
&lt;DIV&gt;&lt;BR clear=all&gt;
&lt;HR width="33%" SIZE=1 align=left&gt;

&lt;DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="" href="#_ftnref1"&gt;[1]&lt;/A&gt; &lt;A title="Agile Manifesto" href="http://agilemanifesto.org/history.html" target=_blank rel=nofollow&gt;Agile Manifesto&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="" href="#_ftnref2"&gt;[2]&lt;/A&gt; &lt;A title=WSJ href="http://online.wsj.com/article_email/SB10001424052970204652904577193460472598378-lMyQjAxMTAyMDAwMjEwNDIyWj.html?mod=wsj_share_email" target=_blank rel=nofollow&gt;WSJ&lt;/A&gt;, &lt;A title="CIO Journal" href="http://blogs.wsj.com/cio/2013/01/17/cios-hardwire-to-the-business/?KEYWORDS=agile" target=_blank rel=nofollow&gt;CIO Journal&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A title="" href="#_ftnref3"&gt;[3]&lt;/A&gt;&lt;/STRONG&gt; Rally Software's &lt;STRONG&gt;&lt;A title="Rally Software Agile Success" href="http://www.rallydev.com/sites/default/files/measuring_the_impact.pdf" target=_blank rel=nofollow&gt;Measuring Agile Success&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/92564/Agile-Values-and-Organizational-Transformation&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/92564/Agile-Values-and-Organizational-Transformation&amp;bvt=rss"&gt;</description><pubDate>Fri, 19 Apr 2013 17:59:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:92564</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/92819/Agile-at-PMI#Comments</comments><slash:comments>0</slash:comments><title>Agile at PMI</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/92819/Agile-at-PMI</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/danwilliamspmp" rel="nofollow" title="Dan Williams" target="_blank"&gt;Dan Williams&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.solutionsiq.com/agile-training/pmi-agile-certified-practitioner-training-course/" target="_self"&gt;&lt;img id="img-1365790452601" src="http://www.solutionsiq.com/Portals/93486/images/solutionsiq-offers-pmi-agile-certified-practitioner-training.jpg" alt="SolutionsIQ PMI ACP Agile Certified Practitioner Training" class="alignRight" style="float: right;" border="0" height="105" width="263"&gt;&lt;/a&gt;Last night I attended the Seattle Project Management Institute (PMI) monthly dinner with my wife. As I am a PMP in good standing and hold the new &lt;a href="http://www.solutionsiq.com/agile-training/pmi-agile-certified-practitioner-training-course/" title="Agile Certified Practitioner (ACP) certification from PMI" target="_self"&gt;&lt;strong&gt;Agile Certified Practitioner (ACP) certification from PMI&lt;/strong&gt;&lt;/a&gt;, I was very interested in the topic and the speakers presenting. The topic for the evening was Creating an Agile Culture. The speakers were Joseph Flahiff, President of Whitewater Projects, Inc.; Ann Konkler, CSM and Agile Coach from Rally Software; and Jim Grams, CTO from Online Shoes.&lt;/p&gt;
&lt;p&gt;The speakers shared their perspective of the major cultural shift experienced by companies attempting to implement Agile values and processes. Joseph spoke from the consultant’s viewpoint; Ann spoke as a practitioner and tools provider; and Jim spoke as a manager involved in an Agile transformation effort at his company. All of the speakers were united in their perspectives of the cultural impact of implementing Agile in their businesses.&lt;/p&gt;
&lt;p&gt;Joseph defined the culture of a company as all of those factors that provide the context within which people do their daily work. For example, is work given or taken? And what are expectations around work hours, quality standards, communication, reporting, metrics, prioritizing work and respecting sprint boundaries? Joseph emphasized that Agile values are the most impactful part of introducing Agile to a company. In Joseph’s experience, the Agile Manifesto, with its emphasis on respect, collaboration, and value, caused a major cultural shift.&lt;/p&gt;
&lt;p&gt;Ann continued the discussion about culture by emphasizing the turmoil that can result during the transition from waterfall techniques to Agile. Fear of change, new methods, higher degrees of communication than before the transition, and new job titles all contribute to the impact that Agile can have on a company.&lt;/p&gt;
&lt;p&gt;Jim closed the discussion with examples from his company, which began Agile transformation last year. A key point was that he acts as a shield between upper management and the development team. Management was used to micromanaging and randomizing the team almost on a whim. By enforcing the concept of taking prioritized work and respecting sprint boundaries, rework at Jim’s company has dropped and output has increased 95%. Jim stressed keeping good metrics around improvement in order to show management why Agile techniques are superior.&lt;/p&gt;
&lt;p&gt;PMI is actively endorsing Agile as a significant project management technique. &lt;strong&gt;&lt;a href="http://www.solutionsiq.com/agile-training/pmi-agile-certified-practitioner-training-course/" title="The ACP certification" target="_self"&gt;The ACP certification&lt;/a&gt;&lt;/strong&gt; places Agile on par with traditional PMP practice; this certification provides a welcome tool that SolutionsIQ can use to help companies transition smoothly to Agile.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/92819/Agile-at-PMI&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/92819/Agile-at-PMI&amp;bvt=rss"&gt;</description><pubDate>Fri, 12 Apr 2013 18:13:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:92819</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/92650/The-Problem-with-Velocity#Comments</comments><slash:comments>3</slash:comments><title>The Problem with Velocity</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/92650/The-Problem-with-Velocity</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/rquartel" rel="nofollow" title="Ron Quartel" target="_blank"&gt;Ron Quartel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There is a smell in Agile around velocity (and estimation) that has not been resolved yet. So what is wrong with velocity? Below are the myriad questions that I get asked whenever teaching velocity that indicate to me that the concept is not particularly simple and that there is a smell (to use a developer phrase).&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1365180535741" src="http://www.solutionsiq.com/Portals/93486/images/observer-effect-agile.jpg" alt="observer effect agile" border="0" height="322" width="663"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How do we account for capacity changes from sprint to sprint?&lt;/li&gt;
&lt;li&gt;What do we do with capacity when the team is particularly cross-functional in nature and has developers and non-developers on it (e.g. testers, business analysts, UI, tech writers)?&lt;/li&gt;
&lt;li&gt;When the backlog is being supported by multiple teams, do we have them aligned around the same sizing, and if so, how?&lt;/li&gt;
&lt;li&gt;Do we measure personal velocity (i.e. by team member)?&lt;/li&gt;
&lt;li&gt;Do UI points differ from testing points, tech writing points, etc.?&lt;/li&gt;
&lt;li&gt;Do we track actual and estimated velocity?&lt;/li&gt;
&lt;li&gt;How do we track/account for stories that spill over with regards to velocity, and what size the stories end up being?&lt;/li&gt;
&lt;li&gt;Do we get credit for part of the story that was complete (when we don’t hit commitment)?&lt;/li&gt;
&lt;li&gt;Do we burn up points and then stop work on the story when we have delivered that many points of value?&lt;/li&gt;
&lt;li&gt;Do we put points on spikes and/or research tasks?&lt;/li&gt;
&lt;li&gt;Do we put points on bugs?&lt;/li&gt;
&lt;li&gt;Do we put points on non-dev activities that are in the sprint but required to get to completion?&lt;/li&gt;
&lt;li&gt;Are points just complexity, or is there little complexity and a lot of repetition or time?&lt;/li&gt;
&lt;li&gt;If we change team members do we need to recalibrate the points?&lt;/li&gt;
&lt;li&gt;If we take velocity as an average of the sprints, how do we account for different capacities in the sprints?&lt;/li&gt;
&lt;li&gt;Is velocity a rolling average or the average from day one forward?&lt;/li&gt;
&lt;li&gt;If rolling, how many sprints should we use?&lt;/li&gt;
&lt;li&gt;Do we need to reset the velocity when the team changes?&lt;/li&gt;
&lt;li&gt;Can we have an exchange rate on our points to another team’s points?&lt;/li&gt;
&lt;li&gt;Points aren't real, so why should we use them?&lt;/li&gt;
&lt;li&gt;If we do extra work in the sprint that wasn't planned for, do we get credit for it?&lt;/li&gt;
&lt;li&gt;Should the goal be to increase velocity each sprint?&lt;/li&gt;
&lt;li&gt;If multiple teams are working off the same backlog, do they have to be using the same point values?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have answers for all these questions and I am not going to go into them here. My point is that the concept of velocity is not as simple as it seems on the surface, and in fact has some serious flaws.&lt;/p&gt;
&lt;p&gt;So what is the solution?&lt;/p&gt;
&lt;p&gt;If velocity is not a problem for your team because you have found something that works, then yay! Stay with it. I have seen it work well and not so well. It seemed to work best in teams that were comprised solely of developers that were pair programming (e.g. XP teams).&lt;/p&gt;
&lt;p&gt;Switching to Kanban will resolve many of the issues, but only if Kanban fits your release process. Unless you are making use of inspect and adapt at the end of an iteration (which is what iterative development gives you) then you may as well ditch iterative development and go with a flow system like Kanban. Or, if you release to a heartbeat cycle and whatever is done by the next release point gets in, Kanban might be a better fit also. Kanban has a different approach to throughput than velocity, that does not raise all the questions above – hence the recommendation, but only if the process fits.&lt;/p&gt;
&lt;p&gt;Otherwise, watch this space, or please let me know if you have any ideas or have seen something that works to resolve this aspect of iterative development.&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/92650/The-Problem-with-Velocity&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/92650/The-Problem-with-Velocity&amp;bvt=rss"&gt;</description><pubDate>Fri, 05 Apr 2013 19:58:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:92650</guid></item><item><comments>http://www.solutionsiq.com/resources/agileiq-blog/bid/92320/Without-Support-You-Will-Fall-Part-II#Comments</comments><slash:comments>0</slash:comments><title>Without Support You Will Fall, Part II</title><link>http://www.solutionsiq.com/resources/agileiq-blog/bid/92320/Without-Support-You-Will-Fall-Part-II</link><description>&lt;p&gt;by &lt;strong&gt;&lt;a href="http://www.linkedin.com/in/stevenmsmith" rel="nofollow" title="Steven M. Smith" target="_blank"&gt;Steven M. Smith&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my &lt;a href="http://www.solutionsiq.com/resources/agileiq-blog/bid/92318/Without-Support-You-Will-Fall" title="last post" target="_blank"&gt;&lt;strong&gt;last post&lt;/strong&gt;&lt;/a&gt;, I examined the lessons teams can learn from the historical examples of British Prime Minister Margaret Thatcher and FEMA Deputy Director Michael Brown. In this post I will continue to analyze the patterns resulting from the interaction of three variables: ability, demand, and support.&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1364595544567" src="http://www.solutionsiq.com/Portals/93486/images/Smith3.png" alt="Smith3" style="display: block; margin-left: auto; margin-right: auto;" border="0"&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;The Scuttled Pattern (Carly Fiorina, 1999-2005)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Carleton (Carly) Fiorina was CEO of Hewlett-Packard (HP) from 1999-2005. Her command ship was scuttled in 2005 when she lost the support of HP’s board.&lt;/p&gt;
&lt;p&gt;Prior to HP, Fiorina was the executive vice president at AT&amp;amp;T responsible for spin off and initial public offering of Lucent Technologies. She joined Lucent’s executive management team where she was chairman of a joint venture and later a group president for its global service provider business. I think it’s fair to say she was a person of proven ability.&lt;/p&gt;
&lt;p&gt;When she became CEO of HP, the demands on the business were considerable. HP had been unsuccessful at exploiting the Internet; it had lost ground to perennial rivals IBM and Sun Microsystems; and Compaq and Dell Systems were growing, thus eroding HP’s share of the PC market.&lt;/p&gt;
&lt;p&gt;In 2001, Fiorina’s plan was to break up HP and merge the parts she kept with PC maker Compaq. HP board member Walter Hewlett (the son of the “H” in HP) publicly objected to the merger, describing it as an act of desperation. David Packard (son of the “P” in HP) publicly said that the merger plans were a cruel departure from the values and corporate culture of HP’s founders.&lt;/p&gt;
&lt;p&gt;Describing the situation, Fiorina said, “Most of the media… is positioning the merger with Compaq and the recent actions by Walter Hewlett and David Packard as a fight between the past and the future.”&lt;/p&gt;
&lt;p&gt;Fiorina won the battle for the future, but it was a Pyrrhic victory. The win had cost her support. She continued to win battles, but lose supporters. Each lost supporter drilled another hole in the hull of her command ship. Eventually the bilge pumps couldn’t keep up and the ship sank.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What lessons can teams learn from Carly Fiorina’s HP experience?&lt;/b&gt; Support is precious. Find strategies that supporters believe are right even if they aren’t your favorites. Constant fighting with supporters, especially public brawls, will eventually scuttle your ship.&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1364595558187" src="http://www.solutionsiq.com/Portals/93486/images/Smith4.png" alt="Smith4" style="display: block; margin-left: auto; margin-right: auto;" border="0"&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;The Bored Pattern (Winston Churchill, 1945-1949)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After successfully leading Britain through World War II, Winston Churchill’s Conservative Party lost the election and he was forced to step down as Prime Minister. It crushed him. Without popular support and the high-demands of being Prime Minister, he grew frustrated and bored.&lt;/p&gt;
&lt;p&gt;Never a ray of sunshine, his sarcasm and black moods increased. Although he remained in Parliament, he brooded over the atomic bomb, the Soviet menace, and creating “a United States of Europe.” But he had enormous amounts of free time compared to the war years as Prime Minister.&lt;/p&gt;
&lt;p&gt;He channeled his unused ability into writing and painting. He was excellent at both. He was awarded the Nobel Prize in Literature and his impressionist paintings have been exhibited around the world and continue to attract attention. On painting, he said, “Armed with a paint-box, one cannot be bored, one cannot be left at a loose end, one cannot ‘have several days on one’s hands.’”&lt;/p&gt;
&lt;p&gt;But things change. Uncertainty about foreign threats created demands that matched his ability. Support began building. In 1951, his Conservative Party won a majority and Churchill returned to being Prime Minister.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What lessons can teams learn from Winston Churchill’s post-World War II experiences?&lt;/b&gt; Don’t waste your talent and skill. Focus your unused ability on activities that provide you with a sense of accomplishment. Keep supporters aware of your abilities. Things will change.&lt;/p&gt;
&lt;p&gt;&lt;img id="img-1364595565545" src="http://www.solutionsiq.com/Portals/93486/images/Smith5.png" alt="Smith5" style="display: block; margin-left: auto; margin-right: auto;" border="0"&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;The Energized Pattern (Mahatma Gandhi, 1915-1945)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mohandas (Mahatma) Gandhi energized and led the Indian subcontinent out of British domination. I consider him the &lt;strong&gt;&lt;a href="http://stevenmsmith.com/gandhi-and-change-agents/"&gt;greatest change agent&lt;/a&gt;&lt;/strong&gt; of the Twentieth Century.&lt;/p&gt;
&lt;p&gt;After ten years of leading the civil rights movement in South Africa, Gandhi returned to India in 1915. He faced daunting demands. British dominance had become the status quo for two generations of people born on the Indian subcontinent. And Britain was determined to maintain its dominance by all means necessary.&lt;/p&gt;
&lt;p&gt;Using methods of nonviolent resistance, a philosophy of fearlessness, and his personal example, Gandhi’s Indian independence movement gained more supporters. And with more support came new demands, which called for him as leader to develop new skills. One generation after his return, the movement won its independence.&lt;/p&gt;
&lt;p&gt;I question whether anyone would have said in 1915 that Gandhi had the ability to successfully lead a movement of this size and complexity. But I believe he convinced himself that he could and in the process energized himself and his followers to develop the necessary skills.&lt;/p&gt;
&lt;p&gt;Gandhi said the following about acquiring ability: “Men often become what they believe themselves to be. If I believe I cannot do something, it makes me incapable of doing it. But when I believe I can, then I acquire the ability to do it even if I didn’t have it in the beginning.”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What lessons can teams learn from Mahatma Gandhi’s struggle for Indian independence?&lt;/b&gt; Have faith. Believe in yourself. Set an example. Use the difference between your perceived skills and your desired skills as energy for bridging that gap.&lt;/p&gt;
&lt;p align="center"&gt;§&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What’s the difference between the cases of Thatcher and Gandhi versus Brown, Fiorini and Churchill?&lt;/b&gt; Support. If your team is failing to nurture support, you will fall.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What’s the difference between the cases of Thatcher and Gandhi?&lt;/b&gt; Thatcher had an existing (governmental) structure to use to implement her policies. Gandhi had to create a new structure. Thatcher was clearly skillful and energized, but Gandhi’s movement seems to me to have required much more energy.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Did Brown fail because he didn’t believe in himself like Gandhi did?&lt;/b&gt; No, I suspect Brown did believe in himself. He may, however, have suffered from hubris. With better support, he may have been able overcome the demands that swamped him. But he apparently didn’t foster that support.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What does the case of Churchill tell us?&lt;/b&gt; An active life is bound to have setbacks. The period described wasn’t Churchill’s first setback. With support, our abilities can be applied to larger demands.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What would you add to this analysis?&lt;/b&gt;&lt;/p&gt;&lt;span style="color: #999999;"&gt;View this original blog post here: http://www.solutionsiq.com/resources/agileiq-blog/bid/92320/Without-Support-You-Will-Fall-Part-II&lt;/span&gt;
&lt;img src="http://track.hubspot.com/__ptq.gif?a=93486&amp;k=14&amp;bu=http://www.solutionsiq.com/resources/agileiq-blog/&amp;r=http://www.solutionsiq.com/resources/agileiq-blog/bid/92320/Without-Support-You-Will-Fall-Part-II&amp;bvt=rss"&gt;</description><pubDate>Fri, 29 Mar 2013 22:28:00 GMT</pubDate><guid isPermaLink="false">f1397696-738c-4295-afcd-943feb885714:92320</guid></item></channel></rss>
