{"id":102,"date":"2011-07-01T20:03:07","date_gmt":"2011-07-01T20:03:07","guid":{"rendered":"http:\/\/blog.agilityfeat.com\/?p=102"},"modified":"2011-07-01T20:03:07","modified_gmt":"2011-07-01T20:03:07","slug":"agilecville-recap-agile-for-newbies","status":"publish","type":"post","link":"http:\/\/34.200.113.64\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/","title":{"rendered":"#AgileCville recap: Agile for Newbies"},"content":{"rendered":"<p>This past Tuesday at AgileCville we had a series of lightning talks on \u00abAgile for Newbies.\u00bb\u00a0 The meeting went very well, and I&#8217;ll provide a brief recap of it here.<a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_17-59-49_333.jpg\"><img loading=\"lazy\" class=\"alignright size-medium wp-image-103\" title=\"2011-06-28_17-59-49_333\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_17-59-49_333-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" \/><\/a><\/p>\n<p>Thanks go to RallySoftware, who sponsored the meeting this month and provided pizza, and also provided their Iteration Planning guides as handouts.\u00a0 Their guides were a perfect freebie for our audience of 29 local IT and business professionals, about half of whom are new to agile methods.<\/p>\n<p>Seven local Agile pros gave an overview of various agile topics in a \u00ablightning talk\u00bb format.\u00a0 Each speaker had 10 minutes, and then a few minutes after that for Q&amp;A.\u00a0 So it was a pretty fast paced meeting (2 hours total), and we packed a lot of information in.<\/p>\n<p>Here are some of my notes on each lightning talk:<\/p>\n<p><strong>A Newbie\u2019s questions about agile, John Berryman<\/strong><\/p>\n<p><a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_18-18-43_148.jpg\"><img loading=\"lazy\" class=\"alignright size-medium wp-image-104\" title=\"2011-06-28_18-18-43_148\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_18-18-43_148-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" \/><\/a>John was very kind to offer himself as a sacrificial \u00abNewbie\u00bb at the beginning of the meeting, and he gave a short talk on why he was interested in Agile, and the various rumors and preconceptions that he has about Agile based on the hype.\u00a0 He has just recently started some work on a scrum team and loves the pair programming aspects, but still raised many excellent questions.<\/p>\n<p><strong>Agile Processes and Team Roles, Arin Sime<\/strong><\/p>\n<p>I spoke next, and I tried to provide a foundation for the subsequent lightning talks.\u00a0 After a quick reminder of why traditional methods fail, I described a typical agile process flow based on the following steps:<\/p>\n<ol>\n<li>Backlog preparation<\/li>\n<li>Iteration planning<\/li>\n<li>Daily Iterations of Test\/Develop\/Integrate\/Commit, and Daily Standups<\/li>\n<li>Demo\/Review<\/li>\n<li>Retrospectives<\/li>\n<\/ol>\n<p>Next I quickly discussed the differences between two main flavors of Agile:\u00a0 Scrum and Kanban.\u00a0 My recommendation is that if your software development can be easily grouped together into releases, then you should look at Scrum first.\u00a0 If your team is focused more on maintenance issues, or something where \u00abflow\u00bb is more important than releases, you should start with Kanban.\u00a0 But either are excellent methods if you have built a good team and have strong customer input.<\/p>\n<p><strong>How to write good user stories, John Feminella<\/strong><\/p>\n<p>John then spoke about how to write user stories.\u00a0 He discussed the \u00abAs a .. I want to &#8230; so that\u00bb format of user stories, and why agile encourages this format of user-focused stories.\u00a0 John also introduced everyone to the INVEST acronym for traits of a well-written user story (I&#8217;ve added in my summaries of each principle, which may not match exactly what John said):<\/p>\n<ul>\n<li>Independent:\u00a0 Stories should be independent of one another as much as possible, so that a developer can commit to finishing that story in a single iteration.<\/li>\n<li>Negotiable:\u00a0 Stories should not include all of the details, to encourage conversation with the customer.<\/li>\n<li>Valuable:\u00a0 The customer needs to care about this, or why are you doing it?<\/li>\n<li>Estimable:\u00a0 The story must be small enough and well enough understood to estimate<\/li>\n<li>Small:\u00a0 If you can&#8217;t complete the story in less than a single iteration, it&#8217;s too big.<\/li>\n<li>Testable:\u00a0 The story must be specific enough that you can write a test which verifies it.<\/li>\n<\/ul>\n<p>John also described a number of \u00absmells\u00bb of bad user stories, which was very humorous and useful.\u00a0 Here are some of the smells he discussed which I jotted down:<\/p>\n<ul>\n<li>Everybody is a \u00abuser\u00bb<\/li>\n<li>Your user is really just one loud person<\/li>\n<li>No one knows what the user really needs<\/li>\n<li>\u00abText bomb\u00bb, where the user story is so long that it won&#8217;t fit on a single index card<\/li>\n<\/ul>\n<p><strong>Agile Estimation\/Planning, Simon Cockayne<\/strong><\/p>\n<p><a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-14-31_165.jpg\"><img loading=\"lazy\" class=\"alignright size-medium wp-image-105\" title=\"2011-06-28_19-14-31_165\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-14-31_165-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" \/><\/a>Simon reinforced the basics of an agile process, and how the estimation and planning process fits in with that flow.\u00a0 He gave an excellent overview of planning and estimation techniques, including story points and why agile emphasizes relative estimation.<\/p>\n<p>It&#8217;s hard for us to estimate things in man-hours and provide any degree of accuracy, but it&#8217;s much easier for people to estimate relatively, such as saying \u00abThis task is twice as much work as that one.\u00bb\u00a0 Simon also discussed how story points are commonly estimated in Fibonacci sequences (ie 0,1,3,5,8,13,&#8230;).\u00a0 The reason for this is so that we spend our time efficiently when debating estimates.\u00a0 There&#8217;s no value in team members debating if something is 13 or 14 points, since the margin of error in estimation is too high anyways.\u00a0 However, understanding if a story is 8 or 13 points and fitting it in those buckets is much more meaningful.<\/p>\n<p>Simon also highly recommended the planningpoker.com website and Mike Cohn&#8217;s book on Agile Estimation and Planning (also one of my favorite books).<\/p>\n<p>Simon offered many words of wisdom, but one I made particular note of is to \u00abGive customers what they want before they don&#8217;t want it anymore.\u00bb\u00a0 Agile helps us to deliver value while it is still valuable to the customer.<\/p>\n<p><strong>When to Pair Program, Seth Liddy<\/strong><\/p>\n<p><a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-22-51_38.jpg\"><img loading=\"lazy\" class=\"alignright size-medium wp-image-106\" title=\"2011-06-28_19-22-51_38\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-22-51_38-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" \/><\/a>Seth joked that he didn&#8217;t realize the AgileCville meeting was this week, and so he had no slides prepared.\u00a0 But his \u00aboff the cuff\u00bb discussion of when to pair program was very interesting to the group.\u00a0 He pair programs all the time and sees tremendous benefits.<\/p>\n<p>Seth noted that teams may initially experience a slight decrease in velocity when starting to pair program, but not very much.\u00a0 However, your team will definitely gain drastic improvements in quality.<\/p>\n<p>Pair programming is great for sharing knowledge among team members, and prevents the \u00ablottery ticket\u00bb problem (when a team member unexpectedly leaves and takes exclusive knowledge with them).\u00a0 Pairing up also helps the team to reinforce eXtreme Programming (XP) practices such as Test Driven Development and Continuous Integration.\u00a0 You are less likely to cut corners when pairing with someone and you are both watching each other&#8217;s work.<\/p>\n<p><strong>Agile Testing, Steve Donahue<\/strong><\/p>\n<p><a href=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-42-46_233.jpg\"><img loading=\"lazy\" class=\"alignright size-medium wp-image-107\" title=\"2011-06-28_19-42-46_233\" src=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_19-42-46_233-e1309550471960-300x168.jpg\" alt=\"\" width=\"300\" height=\"168\" \/><\/a>Steve Donahue did a very nice job of describing the role of testing in agile teams.\u00a0 He referenced Lisa Crispin&#8217;s book on \u00abAgile Testing\u00bb, and highly recommended it.\u00a0 He emphasized the importance of working in small chunks, and focusing initial automation efforts on your current work in order to keep the effort manageable.<\/p>\n<p>Steve discussed the Agile Testing Quadrants from Lisa&#8217;s book, which helps testers to know where to focus their efforts for different testing goals.\u00a0 He also discussed the different layers of test automation, from <a href=\"http:\/\/blog.mountaingoatsoftware.com\/the-forgotten-layer-of-the-test-automation-pyramid\">Mike Cohn&#8217;s blog<\/a>.\u00a0 The UI layer is on the top of the pyramid, followed by service tests and then unit tests at the base of the pyramid.\u00a0 Most time should be spent writing unit tests which cover as much functionality as possible, because these are the easiest tests to write and the least brittle.\u00a0 Less time should be spent on UI layer testing due to the extra effort and cost involved for tests that are inherently brittle.\u00a0 Steve recommended only using UI testing for \u00abhappy paths.\u00bb<\/p>\n<p><strong>Retrospectives, Richard Brewster<\/strong><\/p>\n<p>Richard brought it all home for us with a discussion of the role and importance of Agile Retrospectives.\u00a0 Retrospectives are one of the most powerful techniques in agile methods, because they require the team to reflect on both successes and failures, and find ways to adapt and improve their processes and software to continuously improve.<\/p>\n<p>Retrospectives are also one of the most frequently neglected parts of agile processes, perhaps because they can deal with our feelings and team conflicts that people would rather avoid.\u00a0 And so they are often forgotten.<\/p>\n<p>As if to demonstrate this point, Richard unfortunately did not have much time for Q&amp;A since we were already at 8pm by this point and needed to close up the meeting.\u00a0 In our tight schedule for the meeting, not enough time was left for the discussion of retrospectives.\u00a0 Just like most agile teams are so anxious to get into the next iteration that they skip the hour or two necessary for a retrospective!\u00a0 Richard was a good sport about the time constraints and did a great job anyways.<\/p>\n<p>Richard pointed out that retrospectives are how teams can effectively self-manage, which is a key value of good agile teams.\u00a0 The retrospective allows you to reflect, figure out how to decide what improvements to make, and also to regularly enforce that you are making the discussed improvements.\u00a0 A retrospective should be held at the end of every iteration.\u00a0 Attendance for all team members should be mandatory, and participation in the actual discussion should be encouraged.\u00a0 Richard also pointed out that for teams to effectively self manage, managers must empower the team to act on the changes they come up with in retrospectives.<\/p>\n<p><strong>Thanks to all who attended and spoke!<\/strong><\/p>\n<p>In addition to a compelling set of topics and speakers with hands on experience, those who attended also asked a lot of great questions.\u00a0 Thanks to everyone who attended!\u00a0 We will make \u00abAgile for Newbies\u00bb a regular mainstay of our annual AgileCville calendar.\u00a0 We will probably also repeat the lightning talk format in future meetings, though perhaps with fewer lightning talks per meeting in order to allow more time for Q&amp;A.<\/p>\n<p>Our next meeting is July 19th, and if you&#8217;re not on our mailing list already, check us out at AgileCville.org!<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>This past Tuesday at AgileCville we had a series of lightning talks on \u00abAgile for Newbies.\u00bb\u00a0 The meeting went very well, and I&#8217;ll provide a brief recap of it here. Thanks go to RallySoftware, who sponsored the meeting this month and provided pizza, and also provided their Iteration Planning guides as handouts.\u00a0 Their guides were [&hellip;]<\/p>","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":""},"categories":[4,7,16],"tags":[5,17,15,22],"jetpack_featured_media_url":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>#AgileCville recap: Agile for Newbies - AgilityFeat Panama Software Test Center<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"#AgileCville recap: Agile for Newbies - AgilityFeat Panama Software Test Center\" \/>\n<meta property=\"og:description\" content=\"This past Tuesday at AgileCville we had a series of lightning talks on \u00abAgile for Newbies.\u00bb\u00a0 The meeting went very well, and I&#8217;ll provide a brief recap of it here. Thanks go to RallySoftware, who sponsored the meeting this month and provided pizza, and also provided their Iteration Planning guides as handouts.\u00a0 Their guides were [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/\" \/>\n<meta property=\"og:site_name\" content=\"AgilityFeat Panama Software Test Center\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-01T20:03:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_17-59-49_333-300x168.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"8 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/34.200.113.64\/#website\",\"url\":\"https:\/\/34.200.113.64\/\",\"name\":\"AgilityFeat Panama Software Test Center\",\"description\":\"AgilityFeat Panama offers customized, multilevel web and mobile software testing for a variety of industries.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/34.200.113.64\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/agilityfeat.com\/wp-content\/uploads\/2011\/07\/2011-06-28_17-59-49_333-300x168.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/#webpage\",\"url\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/\",\"name\":\"#AgileCville recap: Agile for Newbies - AgilityFeat Panama Software Test Center\",\"isPartOf\":{\"@id\":\"https:\/\/34.200.113.64\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/#primaryimage\"},\"datePublished\":\"2011-07-01T20:03:07+00:00\",\"dateModified\":\"2011-07-01T20:03:07+00:00\",\"author\":{\"@id\":\"https:\/\/34.200.113.64\/#\/schema\/person\/c8d60d597071526db386b2b8a4afac64\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agilityfeatpanama.com\/en\/blog\/2011\/07\/agilecville-recap-agile-for-newbies\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/34.200.113.64\/#\/schema\/person\/c8d60d597071526db386b2b8a4afac64\",\"name\":\"arin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/34.200.113.64\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/cc498e210512c707ed769986dd745896?s=96&d=mm&r=g\",\"caption\":\"arin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts\/102"}],"collection":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":0,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"wp:attachment":[{"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/34.200.113.64\/en\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}