<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Charlie Calvert's Community Blog : Agile</title><link>http://blogs.msdn.com/charlie/archive/tags/Agile/default.aspx</link><description>Tags: Agile</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Scrum at the Agile 2006 Conference</title><link>http://blogs.msdn.com/charlie/archive/2006/08/10/693822.aspx</link><pubDate>Thu, 10 Aug 2006 02:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:693822</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>61</slash:comments><comments>http://blogs.msdn.com/charlie/comments/693822.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=693822</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;It’s time to add some more information about my trip to the &lt;A href="http://agile2006.com/"&gt;Agile 2006 Conference.&lt;/A&gt; One of the big themes that kept coming up at the conference was &lt;A href="http://en.wikipedia.org/wiki/Scrum_%28in_management%29"&gt;Scrum&lt;/A&gt;, a popular technique for implementing Agile technologies.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;The Scrum methodology was perhaps the most popular single Agile technique discussed at the conference. Many of the Scrum talks were well attended, but I heard a number of fierce discussions about the quality of the material delivered to the conference goers. There was an uneasy sense among some of the veteran conference attendees that Scrum needed to make some advances in order to prove itself truly effective, and that there were some serious questions about how well it could be adapted for use in very large projects. &lt;/P&gt;
&lt;H3 style="MARGIN: 12pt 0in 3pt"&gt;&lt;FONT face=Arial&gt;Scrum&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Scrum was created in the early nineties by &lt;A href="http://en.wikipedia.org/wiki/Ken_Schwaber"&gt;Ken Schwaber&lt;/A&gt; and &lt;A href="http://en.wikipedia.org/wiki/Jeff_Sutherland"&gt;Jeff Sutherland&lt;/A&gt;. Their work was based on management techniques developed in &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Japan&lt;/st1:place&gt;&lt;/st1:country-region&gt; during the 1980’s. These Japanese innovators were not software developers, but auto and consumer manufacturers.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;As a software methodology, Scrum assumes that most challenges encountered in the business world are too complicated to be clearly defined. Instead, one works to achieve an “agile” process that can easily adapt to changing requirements and unexpected developments.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;The scrum process starts with a backlog of tasks. Teams of 6 or 7 individuals are formed. They agree to work in short iterations and to produce frequent deliveries. In very large projects, Schwaber talked about creating a Scrum of Scrums, so that teams of 6 or 7 individuals were grouped together into larger teams. No one team would have more than 6 or 7 members, but multiple teams could work together to form a larger unit.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Each iteration might last two weeks, with a delivery to the customer of working software after each iteration, or at least once a month. Each delivery should include the completion of one or more backlog items. However, if the software is not running properly, then there should be no delivery.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;A scrum process includes short daily meetings with all team members and the key stakeholders, including the customer. A deep, honest and impassioned involvement with and by the customer is absolutely necessary.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;The meetings have to be honest. If there are problems, they should be surfaced immediately. Since the team is having daily meetings, no problem should stay hidden for longer than 24 hours.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;There is no leader of the team. Instead, there is a scrum master whose primary job is to eliminate impediments such as outside interference.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In particular, the scrum master should make sure that management doesn’t bother developers with demands that break their concentration or ruin their morale.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Successful Scrum teams become adept at verbal communication. There is a huge emphasis on meeting face to face. In fact, Scrum teams work in a single open space, called a bull pen, where face to face communication is not only encouraged, but inevitable. Getting developers to give up their offices and move into a bull pen is one of the more difficult steps encountered by adopters of this methodology.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Because of the active, verbal communication found on agile teams, silence is generally frowned upon and regarded as a sign that the system is broken. Agile teams sit together, and communicate frequently. At one of the talks I saw, Ken Schwaber said that he knew a process was broken when he came for a visit, and saw all the developers hunched over their machines, not saying a word.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;It would be a mistake, however, to regard a good Scrum team as undisciplined or unfocused. They follow a rigorous discipline based on active communication and short iterative cycles. They tend to rely on working code rather than on detailed plans. Nevertheless, they aim to create high quality code, and to work together closely to achieve clearly defined short-term goals.&lt;/P&gt;
&lt;H3 style="MARGIN: 12pt 0in 3pt"&gt;&lt;FONT face=Arial&gt;Summary&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;During his talk Schwaber said that the word Scrum was chosen because it has an ugly, informal sound, and is derived from a particularly chaotic part of a rugby game. The word is meant to invoke the informal, noisy, hardworking atmosphere that prevails in a happy Scrum team.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Introducing Scrum into a company is often difficult, as it challenges many of the preconceptions found in most corporate environments. Developers need to change their habits, the customer needs to get heavily involved in the development process, and VP’s have to accept change on a large scale. Schwaber says, however, that when these steps are followed, Scrum has proved to be successful in both small and large development projects.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=693822" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/Agile/default.aspx">Agile</category></item><item><title>The Agile 2006 Conference</title><link>http://blogs.msdn.com/charlie/archive/2006/08/02/685790.aspx</link><pubDate>Wed, 02 Aug 2006 02:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:685790</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/charlie/comments/685790.aspx</comments><wfw:commentRss>http://blogs.msdn.com/charlie/commentrss.aspx?PostID=685790</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;I spent last week at the &lt;A href="http://www.agile2006.org/"&gt;Agile 2006&lt;/A&gt; conference in &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Minneapolis&lt;/st1:place&gt;&lt;/st1:City&gt;. I’m going to try to dig through my notes and produce a few rambling paragraphs to at least begin commemorating my experience. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;The conference was punctuated by many animated discussions, impassioned talks, and heated debates. No single point of view carried the day. This was entirely appropriate, since Agile programming is still very much a work in progress.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;One of the themes common in the conference was the need for communication, and the need to constantly reassess the progress one was making and any assumptions held by a team. Many Agile technologies focus on getting developers together in one room and encouraging them to debate and evolve their ideas&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;As a result, heated controversy and open discussion were not so much by products of the conference, as the very subject matter of the conference itself. This was no place for wall flowers who wanted to sit in corners. Here developers could gather together and pursue ideas with passion and conviction. &lt;/P&gt;
&lt;H3 style="MARGIN: 12pt 0in 3pt"&gt;&lt;FONT face=Arial&gt;My Impressions&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;When I was sent to the conference, I was told to listen for ideas that I could share with the other C# Program Managers here at Microsoft. Since I am new to the company, I was therefore scrambling to compare my circumscribed knowledge of Microsoft methodologies with what I was hearing at the conference. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;I personally like &lt;A href="http://www.agilealliance.org/"&gt;Agile&lt;/A&gt; development, but I have limits to my enthusiasm. A lot of good ideas have emerged from this fecund source, but it seems at times that a filter is needed to sort out the good from the bad. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;There are certain common Agile programming techniques, such as &lt;A href="http://www.testdriven.com/modules/news/"&gt;Test Driven Development&lt;/A&gt; and &lt;A href="http://www.refactoring.com/"&gt;Refactoring&lt;/A&gt;, which I believe to be of great value to many developers. I quickly decided, however, that the Microsoft C# team should think long and hard before adopting Agile programming wholesale. The development of a tool as complex as &lt;A href="http://msdn.microsoft.com/vstudio/future/default.aspx"&gt;Orcas&lt;/A&gt; seems to necessitate a good deal of careful planning and documentation which is not typical of an Agile project.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;This is not to say that Agile programming is not being practiced at Microsoft. There are many advocates of Agile here in &lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Redmond&lt;/st1:place&gt;&lt;/st1:City&gt;, and some projects are said to be run on strict Agile programming methodologies. Indeed, there were some 20 other Microsoft employees who attended the Agile 2006 conference. Many of them were strong Agile advocates, and nearly all had at least an active interest in the subject. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Though I’m still the new guy here, I have seen enough of the C# development process to know that there are a few Agile-like aspects to the C# team’s methodology. However, the C# team is definitely not using a pure Agile methodology. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;There were a number of speakers at the conference who had a few choice words for teams who use the term Agile, but who do not adopt the main tenants of the platform. I will therefore say that the Microsoft C# team is just dabbling in Agile, rather than plunging in without restraint. Other teams on the Microsoft campus, however, are rumored to use strict Agile methodologies.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;I should also add that one of the best talks I saw at the conference was made by &lt;A href="http://www.mountaingoatsoftware.com/"&gt;Mike Cohn&lt;/A&gt;, who had a great session on planning. As he showed in his talk, and as he shows in his &lt;A href="http://www.mountaingoatsoftware.com/books.php"&gt;book&lt;/A&gt;, Agile has some great ideas about how to plan even large software projects. Hopefully I’ll get around to summarizing his talk in a future blog, and I would certainly recommend his book to anyone that thinks Agile programmers lack discipline or a clear vision. &lt;/P&gt;
&lt;H3 style="MARGIN: 12pt 0in 3pt"&gt;&lt;FONT face=Arial&gt;Agile Development&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;I will close up this blog by trying to make a few generalizations about Agile programming. These comments are meant not so much to be definitive, as to give me a chance to try to summarize for myself some of what I saw and learned at the conference.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Agile is broad term encompassing a set of related methodologies. These methodologies usually emphasize short, iterative processes that can easily change course. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Agile methodologies tend to emphasize working code over detailed documentation. Like a good author, an Agile programmer aims to show, rather than tell. Instead of talking or documenting a project, Agile programmers like to sit down and write code, and then let the code speak for itself. The customer can then run the code to see if it does what he wants. If it does not fit the bill, the Agile technologies such as Test Driven Development are designed to be flexible and to allow easy adoption of the customer’s wishes.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Agile methodologies stand in contrast with plan-based methodologies that emphasize a set schedule and a detailed, well documented, step by step outline. Agile technologies such as &lt;A href="http://en.wikipedia.org/wiki/Scrum_%28management%29"&gt;Scrum&lt;/A&gt; or &lt;A href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;XP&lt;/A&gt; are considered to be &lt;I style="mso-bidi-font-style: normal"&gt;adaptive&lt;/I&gt;, while methodologies based on schedules and plans, such as &lt;A href="http://en.wikipedia.org/wiki/Rational_Unified_Process"&gt;RUP&lt;/A&gt; or any &lt;A href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;waterfall&lt;/A&gt; method, are called &lt;I style="mso-bidi-font-style: normal"&gt;predictive&lt;/I&gt;. Agile methodologies are designed to easily &lt;I style="mso-bidi-font-style: normal"&gt;adapt&lt;/I&gt;&lt;B style="mso-bidi-font-weight: normal"&gt; &lt;/B&gt;themselves to changing circumstances. Predictive methodologies tend toward the creation of a single, monolithic document that outlines a precise series of steps and a set timeline. This document &lt;I style="mso-bidi-font-style: normal"&gt;predicts&lt;/I&gt;, or dictates, the course of action to be followed. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Most methodologies fit on a continuum between pure Agile methodologies and pure plan-based methodologies. Thus some RUP systems, such as &lt;A href="http://en.wikipedia.org/wiki/OpenUP/Basic"&gt;OpenUP/Basic&lt;/A&gt;, have an Agile flavor to them. Statements made about any one methodology will therefore tend to be a generalization. In practice no one shop is likely to be a pure example of one methodology. Instead, they will mix elements of both technologies in a way they view as optimal.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Agile technologies are iterative. Predictive technologies tend to be linear. The waterfall method, for instance, sees each project progressing through a series of steps, from the early planning process that outline requirements, through the development process, and ending up with a testing, deployment and maintenance process. This linear progression should be seen in contrast to the looping, iterative nature of the Agile process.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Each iteration in most Agile processes will be relatively short, lasting not more than two to four weeks. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;At the end of each iteration the team should be able to produce a working project. The project may not contain all the features the team hopes to produce in the long term, but what is included in the build should be stable. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;The ability to deliver software to the customer at regular intervals makes it possible for both the customer and the team to regularly assess progress. If the assessment reveals problems or misunderstandings, then the lightweight nature of the process should make it possible to quickly and easily change course. The emphasis on iterative change is why this technology is called &lt;I style="mso-bidi-font-style: normal"&gt;adaptive&lt;/I&gt; or &lt;I style="mso-bidi-font-style: normal"&gt;agile&lt;/I&gt;. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Though it is not common, some Agile teams do generate documents and plans. However, they do not generate detailed, long term plans. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Many of the principles of Agile development are summed up in the &lt;A href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/A&gt;, which states, in part, that Agile&amp;nbsp;practitioners value:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 6pt 0in"&gt;Individuals and interactions over processes and tools&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 6pt 0in"&gt;Working software over comprehensive documentation&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 6pt 0in"&gt;Customer collaboration over contract negotiation&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 6pt 0in"&gt;Responding to change over following a plan&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H3 style="MARGIN: 12pt 0in 3pt"&gt;&lt;FONT face=Arial&gt;Summary&lt;/FONT&gt;&lt;/H3&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;In this blog I’ve jotted down a few impressions and thoughts on the Agile 2006 Conference. In particular, I’ve talked a little about what the conference meant to me, and I’ve given an overview of Agile development. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Hopefully I will eventually find time to focus on a single methodology, such as Scrum. Certainly Scrum proved to be one of the most frequently discussed topics at the conference. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;As I said at the beginning of this blog, I heard all kinds of comments during the course of the conference. Almost everyone at the conference like some aspects of Agile programming, but few people bought into the whole package. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 6pt 0in"&gt;Most of the Microsoft employees I talked to enjoyed the conference, but some of the old hands who’d been to other Agile conferences felt that this one was not up to snuff. It was great fun and often quite enlightening to listen to them wax cynical over a fancy dinner in the &lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Minneapolis&lt;/st1:place&gt;&lt;/st1:City&gt; heat. These were grizzled veterans who had seen it all, and for them the conference lacked the sparkle and excitement that a relative new comer such as myself might have experienced.&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;So please feel free to comment if you would like to add your opinion regarding any of the topics I discussed in this blog. I’m not here to dictate anything, but just to share some ideas and listen to what you might have to say.&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=685790" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/Agile/default.aspx">Agile</category></item></channel></rss>