<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkMEQX87eCp7ImA9WxNUF0s.&quot;"><id>tag:blogger.com,1999:blog-24663619</id><updated>2009-11-09T01:53:20.100-08:00</updated><title>Business Analysis</title><subtitle type="html">Random attempts to write about my philosophy and experiences with business analysis using agile methodologies at a wonderful place called ThoughtWorks...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://agileanalysis.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/agilebusinessanalysis" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;A0cCSXc_eCp7ImA9WxJVE0s.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-5672298956203028766</id><published>2009-06-23T18:16:00.000-07:00</published><updated>2009-06-30T06:37:48.940-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T06:37:48.940-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="art" /><category scheme="http://www.blogger.com/atom/ns#" term="software development" /><category scheme="http://www.blogger.com/atom/ns#" term="revolution" /><category scheme="http://www.blogger.com/atom/ns#" term="science" /><title>The Revolution</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;Software Development - Art OR Science?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A seemingly &lt;em&gt;clichéd&lt;/em&gt; question. Never passed my mind all these years. But let me tell you how I got thinking about this and maybe it'll interest you a bit.&lt;br /&gt;&lt;br /&gt;Like I said earlier, I have been following a lot of Lean-Kanban discussions, articles, etc lately. Some such material is Little's Law &amp;amp; WIP limits. Now the moment I saw an equation, I couldn't resist the temptation of trying out some math to see if the size and composition of my current team is optimal. Furthermore, I thought, given a few specifications of the project like domain complexity and technology, could I find the optimum team size and composition?&lt;br /&gt;&lt;br /&gt;I hit two forums with this idea and most of the feedback was that there are too many things to consider and difficult things as well like the skills and experience of the people on the team. And I agree that people make most if not all the difference. But that's the problem isn't it?&lt;br /&gt;&lt;br /&gt;What's so special about our people? Skills. Experience. Talent even. It's a sign. It's a sign of our industry being immature. I think its in around the occupation stage on this scale.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_dzAfXXbQjXY/Sklz4glua-I/AAAAAAAAAdo/bLxGIrVBUDY/s800/Art-Science.png"&gt;&lt;img style="cursor: pointer; width: 767px; height: 325px;" src="http://lh6.ggpht.com/_dzAfXXbQjXY/Sklz4glua-I/AAAAAAAAAdo/bLxGIrVBUDY/s800/Art-Science.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enough demand can trigger the Art - Occupation - Industry - Science transitions for any activity. Note that the transition is never 100%. There's Art and Science in everything. The question is whether something is "more of" art OR science.&lt;br /&gt;&lt;br /&gt;People keep arguing that Software Development is different. We are not like construction, we are not like assembly line manufacturing, we are not like Product Development either. I used to believe it till a few days back. But the more I think about it the more I feel that these are arguments of a losing population of craftsmen who are finding it increasingly difficult to meet the demand for their craft (which has BTW risen at unusual rates).&lt;br /&gt;&lt;br /&gt;Think about the guy somewhere around current Pakistan who created the first piece of leather clothing many hundred years ago. Think about the leather industry right now. Think about the transition. At some point he must be saying "This is different. This needs skills. This needs experience". It took centuries for the transition but it happened. I am sure it can be co-related to the rise in demand for leather products.&lt;br /&gt;&lt;br /&gt;The funny thing is, if you look at the list of general characteristics of the Art and Science sides, the first three points on each side don't really fit in with the IT occupation do they? We have loads of unskilled people sitting around producing amazing amounts of useless code all over the world.&lt;br /&gt;&lt;br /&gt;So I think the revolution is inevitable. At some point the people who pays us boatloads of money for bad software are going to revolt. We either have to change OR die.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.virtualschool.edu/cox/pub/PSIR/"&gt;Here's another article&lt;/a&gt; roughly talking about similar things. The author anticipated a code market to emerge where reusable components would be bought and sold (which didn't happen OR hasn't happened yet). But the rest of the content is around the same theme as this post.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-5672298956203028766?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/l4dCHzMvZqU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/5672298956203028766/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=5672298956203028766" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5672298956203028766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5672298956203028766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/l4dCHzMvZqU/software-development-art-or-science.html" title="The Revolution" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_dzAfXXbQjXY/Sklz4glua-I/AAAAAAAAAdo/bLxGIrVBUDY/s72-c/Art-Science.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/06/software-development-art-or-science.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkINQnk_eSp7ImA9WxJTGUg.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-2383565561772202497</id><published>2009-04-28T11:38:00.000-07:00</published><updated>2009-04-28T13:29:53.741-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T13:29:53.741-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kanban" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="kanbandev" /><title>Kanban</title><content type="html">Although I am not in the thick of things right now (because I am onsite, alone, so far away from my team) I follow the very active &lt;a href="http://finance.groups.yahoo.com/group/kanbandev/"&gt;&lt;span style="font-weight: bold;"&gt;kanbandev&lt;/span&gt;&lt;/a&gt; yahoo group. It's a great resource for thoughts and questions on lean and kanban software engineering.&lt;br /&gt;&lt;br /&gt;David Joyce, a group member, posted about a presentation he gave and I found it really good. So &lt;a href="http://leanandkanban.files.wordpress.com/2009/04/kanban-for-software-engineering-apr-242.pdf"&gt;here's the presentation&lt;/a&gt; for anyone else interested.&lt;br /&gt;&lt;br /&gt;It's definitely a long one but take some time to go through it.&lt;br /&gt;&lt;br /&gt;Good stuff David.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-2383565561772202497?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/K-GyHK8w7Ec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/2383565561772202497/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=2383565561772202497" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/2383565561772202497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/2383565561772202497?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/K-GyHK8w7Ec/kanban.html" title="Kanban" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/04/kanban.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYGRXg9fip7ImA9WxVUEk4.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-5552726554991668258</id><published>2009-03-16T14:06:00.000-07:00</published><updated>2009-03-16T14:15:24.666-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-16T14:15:24.666-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dependency" /><category scheme="http://www.blogger.com/atom/ns#" term="horizontal split" /><category scheme="http://www.blogger.com/atom/ns#" term="vertical split" /><category scheme="http://www.blogger.com/atom/ns#" term="shuffle" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><category scheme="http://www.blogger.com/atom/ns#" term="programming by convention" /><category scheme="http://www.blogger.com/atom/ns#" term="business analysis" /><title>Story Dependencies</title><content type="html">&lt;div style="text-align: justify;"&gt;As I mentioned in &lt;a href="http://agileanalysis.blogspot.com/2009/02/can-you-shuffle-your-stories.html"&gt;this&lt;/a&gt; post, I am pretty annoyed with myself because of the way I structured stories in the first release of my current project. Here are a few things that I learnt.&lt;br /&gt;&lt;br /&gt;First of all when we say that Story A is dependent on Story B, it means that Story B development cannot start until Story A development is complete&lt;br /&gt;&lt;br /&gt;There are different situations where one story is dependent on another. Each situation needs to be dealt with in a different manner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Types and Approaches&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Situation 1 - The wrong split&lt;/span&gt;&lt;br /&gt;This is the classic vertical split. Many have advised against it but many more fall into the same trap again and again. Myself included :)&lt;br /&gt;&lt;br /&gt;Look out for the vertical split problem.&lt;br /&gt;Remember,&lt;br /&gt;If your body is horizontally split in half as in you have no legs, you can still do something with yourself.&lt;br /&gt;&lt;br /&gt;If your body is vertically split in half as in your left is separate from your right...&lt;br /&gt;&lt;br /&gt;The first place to look for the vertical split is Admin Functionality / User side of the application. If you see your stories divided like Admin Stories and User Stories make as big a noise as you can quickly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Situation 2 - The application flow&lt;/span&gt;&lt;br /&gt;This is where we just plainly don't think.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;When you get a message on Yammer, Yammer sends you an email. You can click on the email to look at the message you have got. BUT you can obviously keep your Yammer client open and see the message instantaneously and thats the way it's supposed to be used.&lt;br /&gt;&lt;br /&gt;Email notification is a nicety. Showing the message on Yammer client DOES NOT depend on sending an email notification to the user.&lt;br /&gt;&lt;br /&gt;Such errors are much easier to spot. Beware of the Business Process Workflows that you refer to. The business process workflow DOES NOT represent development flow. Mark the niceties and essentials apart in your workflow.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Situation 3 - Data dependence&lt;/span&gt;&lt;br /&gt;This is a little more tricky. But I have seen this a lot of times as well. This is closer to David's comment on my earlier post.&lt;br /&gt;&lt;br /&gt;Surely to sell an item, you need to set the item up in the system. Doesn't this mean that you have to build the Item CRUD features into the system before you can sell it.&lt;br /&gt;NO!!&lt;br /&gt;Theoretically the items could be setup directly in the database. If the goal of the system is to sell an item, then that's what should be done first.&lt;br /&gt;&lt;br /&gt;Practically you should be doing the absolute minimum "item setup" before you build the functionality to sell it.&lt;br /&gt;&lt;br /&gt;The first thing is to concentrate on the crux of the system. Selling Stuff, Lending Books, Renting out DVDs, Playing Music, these are the things to achieve as early as possible in respective projects. Therefore you need to do whatever is needed to get to these areas as soon as possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Musings-at-the-end&lt;/span&gt;&lt;br /&gt;I was mostly plagued by the admin V/s user situation throughout this release. We split stories that way because there was a tough deadline to meet and we thought it's better to split the work so that more pairs can work on the project. It worked out alright and we are in the last iteration and even able to provide a few more story points than promised. But we did face a lot of problems in scheduling because we split the stories in a wrong way. So that's definitely something to avoid.&lt;br /&gt;&lt;br /&gt;Another thought that keeps popping in my head is the idea of Programming by Convention. Like RoR.&lt;br /&gt;&lt;br /&gt;If you have a team of fairly experienced, "like minded" developers... can they agree upon a few conventions to follow so that two pairs can work on "Setting up the Item" (Admin part) and "Using the Item" (User part) simultaneously? I am still talking about evolutionary design (code as well as database). I seem to think that with good build processes, this should be possible.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-5552726554991668258?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/nQL3tw_jRBQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/5552726554991668258/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=5552726554991668258" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5552726554991668258?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5552726554991668258?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/nQL3tw_jRBQ/story-dependencies.html" title="Story Dependencies" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/03/story-dependencies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YNSHk9eCp7ImA9WxVVE0o.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-5822929641996645067</id><published>2009-03-06T13:01:00.000-08:00</published><updated>2009-03-06T13:33:19.760-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-06T13:33:19.760-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="level 3" /><category scheme="http://www.blogger.com/atom/ns#" term="credit cards" /><category scheme="http://www.blogger.com/atom/ns#" term="PCards" /><title>Credit Cards, PCards and Level 3 data</title><content type="html">&lt;div style="text-align: justify;"&gt;Here's a post that talks about business more than business analysis.&lt;br /&gt;&lt;br /&gt;I have been researching what it means to process level 3 data for credit cards. For quite a while now. Finally today I had that "Oh!" moment and I want to share it because I have had trouble finding data.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Basics&lt;/span&gt;&lt;br /&gt;Credit Card processing is simple. I am assuming e-commerce here.&lt;br /&gt;&lt;br /&gt;1. Customer enters credit card information (Number, expiry date, billing address, CVV)&lt;br /&gt;2. Site (Merchant) sends the information to a CC processor.&lt;br /&gt;3. CC processor talks to the issuing bank and authorizes the card&lt;br /&gt;4. Site (Merchant) gets paid by issuing bank&lt;br /&gt;5. Customer pays the issuing bank later&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Not So Basics&lt;/span&gt; - &lt;span style="font-weight: bold;"&gt;PCards&lt;/span&gt;&lt;br /&gt;Large Corporations and Government Agencies (LCGAs) realized one day that they could save a lot with electronic transactions and decided to use credit cards. But the employees went crazy with their personal credit cards. So Visa and MasterCard came out with special cards that were issued to employees specifically for official purchases. This is the Purchasing Card (PCard).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Level 3&lt;/span&gt;&lt;br /&gt;However, the usual credit card transactions were difficult to settle. LCGAs realized that if the Merchant sent more data about the purchase to the CC processor while charging the card, LCGAs could get this data back from the CC Processor and thus could reconcile all transactions electronically and hence easily.&lt;br /&gt;&lt;br /&gt;So the merchants started sending "Level 3" data to the CC processors. This is detailed data about the line items for which the card is being charged.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Benefit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;The basic benefit of Level 3 data&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;is that LCGAs can reconcile the purchases made by their employees easily. They can also keep a check on what the employees are buying.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Level 3 processing is only beneficial for PCards. Not for consumer Credit Cards. It's advisable for merchants to pass Level 3 data to CC processors because it increases their chance of working for LCGAs as well as gets them some discount on transaction processing fees.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-5822929641996645067?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/-9xgnw7jDzU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/5822929641996645067/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=5822929641996645067" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5822929641996645067?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5822929641996645067?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/-9xgnw7jDzU/credit-cards-pcards-and-level-3-data.html" title="Credit Cards, PCards and Level 3 data" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/03/credit-cards-pcards-and-level-3-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IHRHw8eyp7ImA9WxVWFUQ.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-4704901766844928245</id><published>2009-02-25T13:43:00.000-08:00</published><updated>2009-02-25T14:05:35.273-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-25T14:05:35.273-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="shuffle" /><category scheme="http://www.blogger.com/atom/ns#" term="music" /><category scheme="http://www.blogger.com/atom/ns#" term="iPod" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>Can you shuffle your stories?</title><content type="html">&lt;div style="text-align: justify;"&gt;No? Neither can I and I am not happy about it.&lt;br /&gt;&lt;br /&gt;So I got my new iPod Touch. One thing I find slightly annoying is the fact that when you select an album it gives you the list of songs. But the first option is "Shuffle". Being used to LPs and Cassettes and CDs I don't really like to shuffle songs. I have listened to my favorite albums in a given order of songs for so long, that I want to listen to them in that order.&lt;br /&gt;&lt;br /&gt;So I started wondering about the requirement for a shuffle option itself. And I conclude that it does nothing but brings a tiny bit of randomness in our lives. A little bit of surprise. That's all.&lt;br /&gt;&lt;br /&gt;What is also important is that the songs that we listen to usually are shufflable :) Because I do listen to Indian classical music and you can't shuffle that. The khayal has to come before the drut rendition.&lt;br /&gt;&lt;br /&gt;So what's this got to do with user stories? Well, I am currently plagued by dependant stories and I suddenly realized that they are like India Classical music. They can't be shuffled. Separate post about why I have too many dependant stories on the current project.&lt;br /&gt;&lt;br /&gt;Dependant stories are not always avoidable. But it is ideal to have a lot of stories that can be shuffled.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-4704901766844928245?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/VlfPrnUhCWg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/4704901766844928245/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=4704901766844928245" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4704901766844928245?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4704901766844928245?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/VlfPrnUhCWg/can-you-shuffle-your-stories.html" title="Can you shuffle your stories?" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/02/can-you-shuffle-your-stories.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBQ389eCp7ImA9WxVTGEU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-92223424369787465</id><published>2009-01-01T23:53:00.000-08:00</published><updated>2009-01-02T00:00:52.160-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-02T00:00:52.160-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="black swan" /><category scheme="http://www.blogger.com/atom/ns#" term="bunker busters" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><category scheme="http://www.blogger.com/atom/ns#" term="business analysis" /><title>A Bunker Buster coming!!!</title><content type="html">&lt;span style="font-weight: bold;font-size:180%;" &gt;Get Down!!! Take Cover!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://agileanalysis.blogspot.com/2006/08/grenades-shells-bunker-busters.html"&gt;bunker buster&lt;/a&gt; on it's way here guys...&lt;br /&gt;...been a long time since I wrote one of those :D&lt;br /&gt;&lt;br /&gt;But then again, as &lt;a href="http://en.wikipedia.org/wiki/Nassim_Taleb"&gt;Nassim Taleb&lt;/a&gt; says in &lt;a href="http://en.wikipedia.org/wiki/The_Black_Swan_%28book%29"&gt;The Black Swan&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:130%;"&gt;What you know can't hurt you (much)&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;More on the book later. I still got to finish it.&lt;br /&gt;And by the way, have a wonderful New Year guys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-92223424369787465?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/SGB9sQ3a8Uc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/92223424369787465/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=92223424369787465" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/92223424369787465?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/92223424369787465?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/SGB9sQ3a8Uc/bunker-buster-coming.html" title="A Bunker Buster coming!!!" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2009/01/bunker-buster-coming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EESHw_fCp7ImA9WxRaGEU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-7819212460185986322</id><published>2008-12-19T04:00:00.000-08:00</published><updated>2008-12-21T10:53:29.244-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-21T10:53:29.244-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="features" /><category scheme="http://www.blogger.com/atom/ns#" term="crux" /><category scheme="http://www.blogger.com/atom/ns#" term="sphistication" /><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="diminishing marginal utility" /><title>Features V/s Sophistication</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Usefulness of software:&lt;/span&gt;&lt;br /&gt;Letting the user do what s(he) wants &lt;span style="font-weight: bold;"&gt;&lt;u&gt;easily&lt;/u&gt;&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;&lt;u&gt;fast&lt;/u&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Features:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Number of activities&lt;/u&gt;&lt;/span&gt; a user can perform with the software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Sophistication:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Software &lt;span style="font-weight: bold;"&gt;&lt;u&gt;intelligence&lt;/u&gt;&lt;/span&gt; which simplifies user interactions.&lt;br /&gt;&lt;br /&gt;Software, like anything else follows the laws of Diminishing Marginal Utility. Here are the graphs as per my experience with software (Not as a software professional but as a simple user)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/_dzAfXXbQjXY/SU6P58ARA9I/AAAAAAAAAR4/rjq-NhhB0W8/s800/DMU.JPG"&gt;&lt;img style="cursor: pointer; width: 670px; height: 495px;" src="http://lh3.ggpht.com/_dzAfXXbQjXY/SU6P58ARA9I/AAAAAAAAAR4/rjq-NhhB0W8/s800/DMU.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Features&lt;/span&gt;&lt;br /&gt;I think the marginal utility of adding more "features" to the software diminishes at a much higher rate.&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Firstly because individual users don't use all the features but have to pay the price, in terms of money as well as processing power, disk space, etc. &lt;/li&gt;&lt;li&gt;Secondly because users have to deal with all the "genericness" of the software and hence cannot do what they want &lt;span style="font-weight: bold;"&gt;easily&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;fast&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Best example of such software is (my beloved) &lt;span style="font-weight: bold;"&gt;Lotus Notes&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sophistication&lt;/span&gt;&lt;br /&gt;The marginal utility of making software intelligent also diminishes albeit at a much slower rate. Google Calendar Quick Entry is a good example of software intelligence. So is GMail's &lt;a href="http://gmailblog.blogspot.com/2008/10/new-in-labs-stop-sending-mail-you-later.html"&gt;drunk email protection&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What keeps GMail, GMail is that everyone (creators and consumers) abides by the simple rule that GMail is for sending and receiving email. If you want to do something else, you will have to use something else.&lt;br /&gt;&lt;br /&gt;There are a couple of software that come to mind which do have a huge feature set but still keep the crux simple enough. Microsoft Word for example has done it rather well in that I can go in and create a simple document as easily as I could when it ran on Windows 3.1&lt;br /&gt;&lt;br /&gt;As a business analyst this translates into a simple rule:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Know the crux of your application and stick to it&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;When you set out to start a new project, get your users to agree upon the problem to be solved and do whatever it takes to solve that problem; not a penny more, not a penny less.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Software for Everything&lt;/span&gt; is as enticing a concept as the &lt;span style="font-weight: bold;"&gt;Theory for everything&lt;/span&gt;. I think there's a reason we haven't found it :-)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-7819212460185986322?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/_arXfIofZDY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/7819212460185986322/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=7819212460185986322" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7819212460185986322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7819212460185986322?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/_arXfIofZDY/features-vs-sophistication.html" title="Features V/s Sophistication" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_dzAfXXbQjXY/SU6P58ARA9I/AAAAAAAAAR4/rjq-NhhB0W8/s72-c/DMU.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/12/features-vs-sophistication.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMQn87fCp7ImA9WxJWFkU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-64979072541674962</id><published>2008-12-16T09:35:00.000-08:00</published><updated>2009-06-22T08:23:03.104-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-22T08:23:03.104-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="metrics" /><category scheme="http://www.blogger.com/atom/ns#" term="cumulative flow diagrams" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="finger charts" /><category scheme="http://www.blogger.com/atom/ns#" term="lanes" /><title>Cumulative Flow Diagrams</title><content type="html">Once you have your wall in place, it’s time to start monitoring your progress through the project. Best done on a daily basis and best done with a “Finger Chart”. Here’s an example.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;A finger chart is basically your wall turned sideways so that your swim lanes are horizontal rather than vertical. Now what you track is the number of stories in each state (finger).&lt;br /&gt;&lt;br /&gt;This chart may not make sense to you immediately but there’s a lot of useful data hidden in here.  Here are the different inferences you can make by looking at a finger chart.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_dzAfXXbQjXY/SUk9UKeuAdI/AAAAAAAAAQM/GLN8HHTtYXA/s800/finger%20chart%20zoomed.png"&gt;&lt;img style="cursor: pointer; width: 589px; height: 520px;" src="http://lh4.ggpht.com/_dzAfXXbQjXY/SUk9UKeuAdI/AAAAAAAAAQM/GLN8HHTtYXA/s800/finger%20chart%20zoomed.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1)  Bottlenecks&lt;/span&gt;&lt;br /&gt;The first thing that you monitor on a finger chart is bottlenecks. This is easy. Just check for a band thickening consistently. A band &lt;span style="font-weight: bold;"&gt;thickening&lt;/span&gt; means that there is either a &lt;a href="http://agileanalysis.blogspot.com/2008/12/choose-your-lanes.html"&gt;&lt;span style="font-weight: bold;"&gt;capacity problem&lt;/span&gt; or a &lt;span style="font-weight: bold;"&gt;capabili&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ty problem&lt;/span&gt;&lt;/a&gt; in the next band. For example, the BA/QA band consistently thickens a suddenly rises at specific intervals. This is because the Client is signing off the stories only at the end of each week. This may be due to various reasons which need to be investigated to see if something is wrong OR can be made better. The ultimate goal is to achieve a smooth graph.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_dzAfXXbQjXY/SUlBO6mpyrI/AAAAAAAAAQU/ZQCTlCin8vk/s800/finger%20chart.png"&gt;&lt;img style="cursor: pointer; width: 598px; height: 628px;" src="http://lh6.ggpht.com/_dzAfXXbQjXY/SUlBO6mpyrI/AAAAAAAAAQU/ZQCTlCin8vk/s800/finger%20chart.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) Work in progress&lt;/span&gt;&lt;br /&gt;At any given point if you measure the total across all bands  &lt;span style="font-weight: bold;"&gt;vertically, &lt;/span&gt;it will give you the total work in progress. This is a total of everything that needs attention from someone or the other on the team.&lt;span style="font-weight: bold;"&gt; Always try to keep this as low as possible.&lt;/span&gt; You should ignore the &lt;span style="font-weight: bold;"&gt;Celebration State&lt;/span&gt; for this calculation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) Average Turnaround Time&lt;/span&gt;&lt;br /&gt;If you measure the time across all bands horizontally, you get the turn around time for a story. This is a good measure of your entire process. How lean your processes are, how good the team is, how involved and keen the client is, etc. This is what tells you how much time your team needs on an average to turn an idea into working software.&lt;br /&gt;&lt;br /&gt;Remember that the finger chart is a cumulative of all stories. Therefore the top line of the graph should never dip down unless you have really reduced scope.&lt;br /&gt;&lt;br /&gt;Now whether to track Number of Stories OR Story Points on a finger chart is an interesting debate. I will try to present my ideas on that in another post.&lt;br /&gt;&lt;br /&gt;UPDATE : As David pointed out these are called Cumulative Flow Diagrams in the Lean world. Finger Charts is/was more of a ThoughtWorks term.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-64979072541674962?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/ikfIFuwEj58" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/64979072541674962/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=64979072541674962" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/64979072541674962?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/64979072541674962?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/ikfIFuwEj58/finger-charts.html" title="Cumulative Flow Diagrams" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_dzAfXXbQjXY/SUk9UKeuAdI/AAAAAAAAAQM/GLN8HHTtYXA/s72-c/finger%20chart%20zoomed.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/12/finger-charts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAGQn8zfyp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-4307629182727789447</id><published>2008-12-11T20:59:00.000-08:00</published><updated>2008-12-11T21:12:03.187-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T21:12:03.187-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="new project" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="story wall" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>Choose your lanes</title><content type="html">&lt;div style="text-align: justify;"&gt;Starting a new project is always fun. For Agile/Lean teams setting up the story wall is a part of the fun.&lt;br /&gt;&lt;br /&gt;Some would say you are defining the process that you want to follow. The life-cycle of the user stories from being analyzed to delivered. But there’s more to a wall than defining the story lifecycle. In its wall the team chooses what it wants to monitor.&lt;br /&gt;&lt;br /&gt;The lanes on the story wall are statuses in which the story can be. An agile team wants to track these statuses to quickly find problems that are slowing the team down. These problems can broadly be classified into two categories.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 680px; height: 237px;" src="http://lh6.ggpht.com/_dzAfXXbQjXY/SUHrrcdX0RI/AAAAAAAAAP0/oONwjHTNGOE/s800/states.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Capacity Problems&lt;/span&gt; – Found by tracking &lt;span style="font-weight: bold;"&gt;Wait States&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;There is a bottle neck because people have too much on their plate&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can be solved by&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Adding more people&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Finding out better ways of doing the work&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Prioritizing the work correctly&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Making the process leaner by removing statuses&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Capability Problems &lt;/span&gt;– Found by tracking &lt;span style="font-weight: bold;"&gt;Work In Progress States&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;There is a slowdown the right people are not doing the right job&lt;br /&gt;&lt;/li&gt;&lt;li&gt;There is are problems external to the team which are slowing the team down&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can be solved by&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Training people if there is enough time&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bringing in specialists who can help out&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Addressing external problems&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Monitoring every state that the story is in is ideal but not optimum.&lt;br /&gt;&lt;br /&gt;So choose your lanes keeping in mind what you want to monitor.&lt;br /&gt;&lt;br /&gt;When something is not happening on its own, make it a ritual by adding a lane.&lt;br /&gt;&lt;br /&gt;Keep your process lean by removing unnecessary statuses from the wall as well as the process.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-4307629182727789447?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/Hz9EjfQpc70" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/4307629182727789447/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=4307629182727789447" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4307629182727789447?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4307629182727789447?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/Hz9EjfQpc70/choose-your-lanes.html" title="Choose your lanes" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_dzAfXXbQjXY/SUHrrcdX0RI/AAAAAAAAAP0/oONwjHTNGOE/s72-c/states.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/12/choose-your-lanes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IARXwyeip7ImA9WxRbGEU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-7540874528972837842</id><published>2008-12-09T20:50:00.000-08:00</published><updated>2008-12-09T21:05:44.292-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-09T21:05:44.292-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="Analyst" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><category scheme="http://www.blogger.com/atom/ns#" term="estimation" /><category scheme="http://www.blogger.com/atom/ns#" term="sizing" /><title>Can't negotiate size... and a good thing too</title><content type="html">&lt;div style="text-align: justify;"&gt;In many companies the Business Analyst or the Project Manager “estimate” the project and bind developers on the project to that estimate. This is an absolutely brutal thing to do to your project. But even within agile teams where the developers estimate, the Business Analysts or Project Managers sometimes tend to challenge and negotiate developer estimates. Not because they don’t trust the developers but merely out of selfishness. Because it gives a tremendous kick to deliver something that a client wants faster.&lt;br /&gt;&lt;br /&gt;Now if the team is “estimating” in a “time based” unit such negotiations make some sense. Because a developer might say “Well I’ll take 3 days to do it but developer X is really good at XML so he can probably do it in 2 days”. And that might help given that you can assign the task to developer X (who in all probability is good a everything).&lt;br /&gt;&lt;br /&gt;Another way of doing this is for the team to “size” user stories based on relative complexity. &lt;a href="http://en.wikipedia.org/wiki/Story_points"&gt;Here’s how it works&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As a developer on the team you are only classifying the stories into buckets of high, medium or low complexity. Nothing you can do is going to change the complexity of a given story.&lt;br /&gt;&lt;br /&gt;As an analyst or project manager on the team please don’t ask developers questions like “Are you sure this is a 4-pointer?” The only one who can simplify stories is you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Something Faster&lt;/span&gt; is better than &lt;span style="font-weight: bold;"&gt;Everything Later&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Everything Faster doesn’t exist&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-7540874528972837842?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/0oHa41ZNKRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/7540874528972837842/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=7540874528972837842" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7540874528972837842?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7540874528972837842?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/0oHa41ZNKRM/cant-negotiate-size-and-good-thing-too.html" title="Can't negotiate size... and a good thing too" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/12/cant-negotiate-size-and-good-thing-too.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YNRXY9cSp7ImA9WxRUFkU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-8184537394678746156</id><published>2008-11-25T00:56:00.000-08:00</published><updated>2008-11-25T22:33:14.869-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T22:33:14.869-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="bureaucracy" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>What are we doing?? - Part Three</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;a href="http://berglas.org/Articles/ImportantThatSoftwareFails/ImportantThatSoftwareFails.html"&gt;This&lt;/a&gt; is what got me thinking about "What &lt;span style="font-size:78%;"&gt;(the %*&amp;amp;$)&lt;/span&gt; are we really doing?". Are gazillions of dollars being invested in IT, by organizations just trying to maintain their status quo? As the study shows, this is partly true.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Businesses require to grow for survival. &lt;/li&gt;&lt;li&gt;Growth requires accommodating more and more people and systems into your business.&lt;/li&gt;&lt;li&gt;It is very natural (and useful) to be paranoid of these new people / systems.&lt;/li&gt;&lt;li&gt;As businesses grow they have to become more or less bureaucratic.&lt;/li&gt;&lt;li&gt;Bureaucracy requires additional processing power. &lt;/li&gt;&lt;li&gt;This power can either be man OR machine&lt;/li&gt;&lt;li&gt;If the business chooses to invest in machines, we, the IT guys, make some money.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;So that is what we do.&lt;br /&gt;&lt;br /&gt;We help businesses &lt;span style="font-weight: bold;"&gt;grow&lt;/span&gt;...&lt;br /&gt;...grow by overcoming their &lt;span style="font-weight: bold;"&gt;paranoia&lt;/span&gt; by automating bureaucracy...&lt;br /&gt;...&lt;span style="font-weight: bold;"&gt;bureaucracy&lt;/span&gt; which is only bound by the stakes...&lt;br /&gt;...&lt;span style="font-weight: bold;"&gt;stakes&lt;/span&gt; which are ever growing.&lt;br /&gt;&lt;br /&gt;To be honest, I am still not totally convinced that this is all what software is about. What do you think?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-8184537394678746156?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/g4ONb-XEtT8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/8184537394678746156/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=8184537394678746156" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/8184537394678746156?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/8184537394678746156?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/g4ONb-XEtT8/what-are-we-doing-part-three.html" title="What are we doing?? - Part Three" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/11/what-are-we-doing-part-three.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YERX8yfyp7ImA9WxRUFkU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-7668353780034796066</id><published>2008-11-25T00:10:00.000-08:00</published><updated>2008-11-25T22:31:44.197-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T22:31:44.197-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trust" /><category scheme="http://www.blogger.com/atom/ns#" term="complex systems" /><category scheme="http://www.blogger.com/atom/ns#" term="prisoners dilemma" /><category scheme="http://www.blogger.com/atom/ns#" term="investment" /><category scheme="http://www.blogger.com/atom/ns#" term="information technology" /><title>What are we doing?? - Part Two</title><content type="html">&lt;div style="text-align: justify;"&gt;Any system is inherently trust based but always tends towards being distrustful. Consider a prisoners' dilemma example.&lt;br /&gt;&lt;br /&gt;(A) = A crook with  a bag of jewels&lt;br /&gt;(B) = Another with $100&lt;br /&gt;&lt;br /&gt;(A) needs the money and (B) needs the jewels. Now they are both "if you see my face, I'll have to kill you" kind of guys. So they develop a simple system. (A) leaves the money a designated place in the forest and (B) leaves the bag of jewels at another designated place.&lt;br /&gt;&lt;br /&gt;If they both co-operate, they leave happy. But life is not so simple, is it?&lt;br /&gt;&lt;br /&gt;Once they start losing trust in each other. They will employ various methods, making the system more sophisticated in the process, so as to make sure that they are not tricked. Here's what they could do (this list is not exhaustive ;-) )&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;(A) decides to send a friend to the place where (B) is supposed to leave the bag to see that (B) does leave the bag&lt;/li&gt;&lt;li&gt;(A) realizes that even if (B) leaves the bag, how will (A) know? So he decides to send two friends, one of whom shall come back and inform (A)&lt;/li&gt;&lt;li&gt;(A) grows suspicious of his two friends, coz they might run away with the jewels, so he has to keep their children as collateral. He appoints a person to guard the children and has to feed them as well.&lt;/li&gt;&lt;li&gt;The friends say that if (B) leaves an empty bag, it's not their fault. Which is fair, so they end up carrying mobile video cameras that transmit back to (A) on his mobile receiver...&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;... and so on.&lt;br /&gt;&lt;br /&gt;Well actually at step 4 (A) goes "All this for $100?? Not worth it at all". Wise decision but if the stakes go higher, (A) will end up investing in the hi-tech solution which only improves his chance of not getting cheated by a fraction. By the way all this while (B) is also employing similar tactics.&lt;br /&gt;&lt;br /&gt;So here we have two parties willing to invest in more and more complex systems as long as the stakes seem high enough for them. And here are we, the IT people, who will help them do it.&lt;br /&gt;&lt;br /&gt;To be continued...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-7668353780034796066?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/1EYjnPsRAQc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/7668353780034796066/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=7668353780034796066" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7668353780034796066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7668353780034796066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/1EYjnPsRAQc/what-are-we-doing-part-two.html" title="What are we doing?? - Part Two" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/11/what-are-we-doing-part-two.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8CR3o8fSp7ImA9WxRUFkU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-4708659617381126419</id><published>2008-11-24T22:20:00.000-08:00</published><updated>2008-11-25T22:27:46.475-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T22:27:46.475-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trust" /><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="administrators" /><category scheme="http://www.blogger.com/atom/ns#" term="inception" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>What are we doing?? - Part One</title><content type="html">&lt;div style="text-align: justify;"&gt;I am doing what we call an Inception for a new project. The situation is not at all unusual.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Constraints&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An Organization with a bunch of generic e-commerce platforms&lt;/li&gt;&lt;li&gt;Live customer sites on each of these platforms&lt;/li&gt;&lt;li&gt;One of these platforms particularly painful&lt;/li&gt;&lt;li&gt;Integration with proprietary back-office operations software&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Requirements&lt;br /&gt;&lt;/span&gt;Build a custom platform that will replace all the existing ones, support all the customer sites and have a bunch of unique features. And BTW we need to go live in 2 months.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;How?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;The only way to do this is build a bare bones application that can take a couple of simple customer sites live in 2 months. We can then keep adding to the application and making it richer and better and migrating more customer sites as and when possible.&lt;br /&gt;&lt;br /&gt;Now whenever you try to skin an application the first ones to suffer (and rightly so)  are the administrators of the system. I say "rightly so" because normal users can potentially be dumb, careless, in a hurry, etc. and the application has to make sure they are doing the right thing.&lt;br /&gt;&lt;br /&gt;Administrators on the other hand are trained to maintain the application. They can do without a jazzy UI and help and pointers all over the place. They know how to do their job. We, as designers of the system, take the liberty of &lt;span style="font-weight: bold;"&gt;trusting&lt;/span&gt; them. And in that trust lies the topic of this series.&lt;br /&gt;&lt;br /&gt;To be continued...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-4708659617381126419?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/LD1lhcS3iCg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/4708659617381126419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=4708659617381126419" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4708659617381126419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4708659617381126419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/LD1lhcS3iCg/what-are-we-doing-part-one.html" title="What are we doing?? - Part One" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/11/what-are-we-doing-part-one.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MBSHg4fip7ImA9WxRSEUs.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-4528388294677334378</id><published>2008-09-11T12:18:00.000-07:00</published><updated>2008-09-11T12:30:59.636-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-11T12:30:59.636-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="quantum physics" /><category scheme="http://www.blogger.com/atom/ns#" term="philosophy" /><category scheme="http://www.blogger.com/atom/ns#" term="business analysis" /><title>Business Analysis and Quantum Physics</title><content type="html">&lt;div style="text-align: justify;"&gt;I recently read &lt;a href="http://en.wikipedia.org/wiki/In_Search_of_Schr%C3%B6dinger%27s_Cat"&gt;In search of Shrödinger's cat&lt;/a&gt;. It's a wonderful introduction to quantum mechanics; The basic (and intriguing) problem of the elusive electron &lt;a href="http://en.wikipedia.org/wiki/Wave-particle_duality"&gt;acting as a wave and a particle&lt;/a&gt; at the same time.&lt;br /&gt;&lt;br /&gt;Analysis is very much like observing the electron in the &lt;a href="http://www.colorado.edu/physics/2000/schroedinger/two-slit2.html"&gt;classic two slit experiment&lt;/a&gt;. The business domain is like a wave traveling through the two slits. But the moment we analyze, we make it boil down to one reality by asking it How, What, When and Who.&lt;br /&gt;&lt;br /&gt;Waves give you a probability distribution, while particles give you one of the possibilities as a reality. Looking at a business problem, in the wave form is better since it let's you choose a reality that solves the problem well.&lt;br /&gt;&lt;br /&gt;For Example: Let's say the business problem is &lt;span style="font-style: italic;"&gt;"I want to let my customers know of the new offers I have so that they can take advantage of the offers and I can make money"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the problem in it's wave form. The reality can be one or more of email, website updates, RSS feed of offers, people going door-to-door, mobile advertisement vans and a million other options including telepathy, albeit with low probability perhaps.&lt;br /&gt;&lt;br /&gt;The problem is that clients come and say &lt;span style="font-style: italic;"&gt;"I want to let my customers know of the new offers I have &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;by email&lt;/span&gt;&lt;span style="font-style: italic;"&gt;  so that they can take advantage of the offers and I can make money"&lt;/span&gt; and it takes a while to get into a mode where you challenge every reality and go back to the wave form, by asking "Why"? Why is the only question that let's you go back to the wave form.&lt;br /&gt;&lt;br /&gt;The more we procrastinate our observation, the better will the chosen reality suit our problem. Agile takes this approach with the concept of the last responsible moment for a decision. It let's future remain future and hence full of possibilities.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-4528388294677334378?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/Pm7LzrQuwIQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/4528388294677334378/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=4528388294677334378" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4528388294677334378?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/4528388294677334378?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/Pm7LzrQuwIQ/business-analysis-and-quantum-physics.html" title="Business Analysis and Quantum Physics" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/09/business-analysis-and-quantum-physics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YMRn88fCp7ImA9WxRSEUs.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-1844954467176346419</id><published>2008-09-11T12:11:00.000-07:00</published><updated>2008-09-11T12:26:27.174-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-11T12:26:27.174-07:00</app:edited><title>Smart Business Analysis</title><content type="html">&lt;div style="text-align: justify;"&gt;A bunch of business analysts have started &lt;a href="http://smartbusinessanalysis.blogspot.com/"&gt;this blog&lt;/a&gt; recently. I hope to contribute to it more regularly than I update this blog. I will keep cross-posting here and linking good articles.&lt;br /&gt;&lt;br /&gt;I hope to save &lt;a href="http://smartbusinessanalysis.blogspot.com/"&gt;smart business analysis&lt;/a&gt; from some of my more weird philosophies and analogies in the future. I thought I'll pick up a good practical BA problem for the first post there but ended up writing about "Business Analysis and Quantum Physics" for some reason.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-1844954467176346419?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/e5WYa8ZKaEw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/1844954467176346419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=1844954467176346419" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/1844954467176346419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/1844954467176346419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/e5WYa8ZKaEw/smart-business-analysis.html" title="Smart Business Analysis" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/09/smart-business-analysis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQ349eSp7ImA9WxZUFkU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-5306871132175690796</id><published>2008-04-08T12:14:00.000-07:00</published><updated>2008-04-08T12:23:42.061-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-08T12:23:42.061-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><category scheme="http://www.blogger.com/atom/ns#" term="estimation" /><category scheme="http://www.blogger.com/atom/ns#" term="sizing" /><title>Size or Estimate</title><content type="html">&lt;div style="text-align: justify;"&gt;Estimation, I think, has been one of the biggest problems of mankind. The Software development industry is no exception to this sad reality. We almost never seem to get it right.&lt;br /&gt;&lt;br /&gt;The problem with the word "estimate" is that it's personal. It's relative to the person who is estimating. Moreover, it's a unit of time. That is why I prefer "sizing" stories rather than estimating them. Size is a non disputed (standard) unit, which measures the level of complexity involved in developing a piece of functionality, a story. The size is standard across a particular project team.&lt;br /&gt;&lt;br /&gt;Pizzas are a great example of standard size. They come in small, medium and large sizes and, given the context of the vendor, the whole world knows what a small pizza means.&lt;br /&gt;&lt;br /&gt;Pizza Appetite is the capacity to consume pizzas. A 5 year old will find a small pizza to big to eat. A teenager will probably find it perfectly filling. At 25, I find the small pizza too small. I can comfortably eat a medium pizza (or 2 small pizzas). I am sure there are people I don't know who can eat nothing less than a large pizza (or 4 small pizzas)!!&lt;br /&gt;&lt;br /&gt;Stories are like pizzas. Given the context of a project, they have fixed sizes. As a developer spends more time on a project, getting older (and wiser), his/her capacity to develop complex stories increases. And this is where the trouble starts. At the beginning of the project the developer could do 1 small story every day. But now, instead of realizing that he can do a medium story (or 2 small stories) in a day, he begins to think that the medium story is actually a small one. The thing to remember is that the size of the story remains the same. It's just that the developer can now do more complex stuff in a given time.&lt;br /&gt;&lt;br /&gt;Complexity points are never to be estimated (in fact they can't be estimated because they are not relative to individuals). In the OLAP terminology, complexity points are the fact. An estimate is a calculation you (as an individual) do when you are looking at them from the Time dimension.&lt;br /&gt;&lt;br /&gt;So if you are estimating units of time, it makes sense for you to re-estimate so that you take into account your improved understanding of the system.&lt;br /&gt;&lt;br /&gt;When you are sizing stories in complexity points be very careful not to fall in this trap. Re-sizing even sounds wrong anyway.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-5306871132175690796?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/S4VbCy3P4EU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/5306871132175690796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=5306871132175690796" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5306871132175690796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/5306871132175690796?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/S4VbCy3P4EU/size-or-estimate.html" title="Size or Estimate" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/04/size-or-estimate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcHRno7cSp7ImA9WxZQEEw.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-690741041759300685</id><published>2008-02-15T00:36:00.000-08:00</published><updated>2008-02-14T11:07:17.409-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-14T11:07:17.409-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="goals" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><title>Functional Goals</title><content type="html">&lt;div style="text-align: justify;"&gt;After &lt;a href="http://agileanalysis.blogspot.com/2008/02/iterationless.html"&gt;this&lt;/a&gt; post, I have had a number of conversations with people about what I really meant by setting functional targets instead of story point (velocity) targets. In one such discussion, I was given an example where someone set a goal to run for 90 minutes!!&lt;br /&gt;&lt;br /&gt;At first glance you might not find the last statement worth the exclamation marks at the end of it. But this is exactly the difference between functional targets and velocity targets. I think it's wrong to set a target of running for 90 minutes. The real goal is to burn X number of calories. Or to travel X number of kilometers.&lt;br /&gt;&lt;br /&gt;Once you set your goal right, you are open to find better ways of achieving it. If your goal is burning calories, you'd probably do it better (faster) by skipping rope for 30 minutes than by running for 90 minutes.&lt;br /&gt;&lt;br /&gt;Now all you have to worry about is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the &lt;span style="font-weight: bold;"&gt;rate&lt;/span&gt; at which you are actually burning calories AND&lt;br /&gt;&lt;/li&gt;&lt;li&gt;what can you do to &lt;span style="font-weight: bold;"&gt;improve this rate&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So instead of planning to complete 30 points next iteration (going by yesterday's weather, etc), I'd plan to achieve a set of features and keep optimizing the rate at which I am able to produce features assuming that I never compromise quality in wake of going faster.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-690741041759300685?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/1r8h_Ed8JOA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/690741041759300685/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=690741041759300685" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/690741041759300685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/690741041759300685?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/1r8h_Ed8JOA/functional-goals.html" title="Functional Goals" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/02/functional-goals.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DQX09fCp7ImA9WxZRGE4.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-3475161614840061824</id><published>2008-02-12T21:46:00.000-08:00</published><updated>2008-02-12T09:22:50.364-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-12T09:22:50.364-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="lean" /><category scheme="http://www.blogger.com/atom/ns#" term="estimation" /><category scheme="http://www.blogger.com/atom/ns#" term="distributed lean" /><title>Iterationless...</title><content type="html">&lt;div style="text-align: justify;"&gt;After working in week-long iterations for 2 and a half years, going iterationless left me a little confused on my recent project. Of course when I say iterationless, I mean using extremely small iterations to bring in a flow to stories. Lean? Distributed Lean, maybe?&lt;br /&gt;&lt;br /&gt;Firstly, I like the idea of trying something new. The team being small and the project being developed in ruby helps this experiment a lot. There are, however, somethings missing in this way of working. I'll list them down and give my view on each of them in this post.&lt;br /&gt;&lt;br /&gt;To realize what we missed, let's look at what we get from iterations. The following are the main motives behind iterations.&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Celebrate small successes&lt;/li&gt;&lt;li&gt;Get regular feedback from clients (showcases)&lt;/li&gt;&lt;li&gt;Let the whole team know what we will be focusing on in the next iteration, including the business context around it (Iteration Planning Meeting)&lt;/li&gt;&lt;li&gt;Re-estimate stories based on additional information gathered during the earlier development (Iteration Planning Meeting)&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;So let's see how we are trying to handle each of these situations.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1. Celebrate small successes.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This is very important. To look back and realize that we actually celebrated achieving a story-point targets each iteration, however, now sounds really lame. The moment you move your focus away from finishing a set of stories in a given time TO finishing a set of features and going to production, the world starts making more sense.&lt;br /&gt;&lt;div style="text-align: justify;"&gt; &lt;br /&gt;I think in this aspect chucking iterations totally makes sense. What this means is you should have a very strong release plan, with frequent (less than a month long) releases.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;2. Getting regular feedback from clients&lt;/span&gt;&lt;br /&gt;Showcases have nothing to do with iterations. Iterations only provide regularity to showcases. To say that we will do showcases once a week (and do it) is I think good enough.&lt;br /&gt;&lt;br /&gt;One thing to beware of is that showcases-bound-to-timelines (once a week) and development-bound-to-releases (of irregular time intervals) can be quite tricky to handle.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;3. Let the whole team know what the focus of the next iteration is&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ours being a small (ideal?) team, I don't see too many problems in this area.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;4. Re-estimate stories based on new knowledge&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This, I thought, was the most important aspect we were missing out. But once you realize that your story point sizing is only relative to any other story you estimated, the world seems much better. This means that as long as your triangulation is correct, you are ok.&lt;br /&gt;&lt;br /&gt;One thing that IPMs give us though, is an opportunity for the whole team to estimate together. Right now I am unsure of how important this method is. I am posting a few questions related to this at the end of this post. It'll be great to get some feedback on these.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All in all I think going iterationless is beneficial in terms of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Shifting the team's focus from story points to features / business value.&lt;/li&gt;&lt;li&gt;Letting the team focus on estimating complexity of stories much more clearly.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What I am unclear about is estimation.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If we spend 2 hours every week to estimate together, are we going against lean philosophy?&lt;/li&gt;&lt;li&gt;On the contrary, if we estimate just-in-time, in smaller groups (pair to work on the story) are we losing the "group touch" to estimation?&lt;/li&gt;&lt;li&gt;Also if we estimate just-in-time (when we decide to play a story), the business doesn't get an opportunity to re-prioritize based on sizing.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-3475161614840061824?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/f44kXt4vAHM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/3475161614840061824/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=3475161614840061824" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/3475161614840061824?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/3475161614840061824?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/f44kXt4vAHM/iterationless.html" title="Iterationless..." /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2008/02/iterationless.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMQn87cCp7ImA9WxZSEUU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-2763548331442826525</id><published>2007-11-29T04:03:00.000-08:00</published><updated>2008-01-24T07:48:03.108-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T07:48:03.108-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="Analyst" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>Agile Business Analysts</title><content type="html">&lt;div style="text-align: justify;"&gt;Yesterday, Craig Brown asked &lt;a href="http://betterprojects.blogspot.com/2007/11/do-we-need-agile-business-analysts.html"&gt;Do we need Agile Business Analysts?&lt;/a&gt;. Two and a half years back when I joined &lt;a href="http://www.thoughtworks.com"&gt;ThoughtWorks&lt;/a&gt;, I would have said "No, we don't". Today I strongly disagree with the view that Business Analysts can be done away with on Agile projects.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The objective of an Agile project is to provide maximum value to the client as soon as possible.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now I agree that the ideal situation would be when you have business users &amp;amp; developers who agree and abide by this sentiment. You can happily get rid of the BA in such a situation. Real life, for some reason, is never ideal.&lt;br /&gt;&lt;br /&gt;Anyone who has interacted with business users on a medium to large project will have faced situations where it has been hard for the business users to come to a consensus on what they want. Business users are generally representatives of different functions of the organization. Each of them has expectations from the application which more often than not are conflicting. Keeping these users focused on what we set to achieve when we started building the software is what a BA does.&lt;br /&gt;&lt;br /&gt;Being on an agile project gives the business users many chances to dream, many chances to make changes. Developers are human too. They dream about technology. While sometimes this can lead to some really cool/unique/usable feature in the product, it can also lead to "overcoolified unnecessities". Now in an ideal situation, all these dreams would come true. Unfortunately, dreams in the real world are bound by budgets &amp;amp; deadlines. Managing these dreams, ideas, changes so as to keep them aligned to the original business objective and deliver most value in the given time and budget is what a BA does.&lt;br /&gt;&lt;br /&gt;What agile aims at, is to start minimal and change as required. When a small bug on a story turns out to be a big chunk of enhanced functionality, we create a new story. The tasks mentioned above, along with writing user stories, supporting implementation of the functionality, planning the iterations and releases, testing the developed functionality, etc. together makes for a considerable chunk of work. That's when you create a seperate role called Business Analysts.&lt;br /&gt;&lt;br /&gt;Now this role can definitely be performed by developers. In my experience, though, good developers don't really want to do any of this. They want to write good code. That's what they are best at. That's where they will deliver maximum value.&lt;br /&gt;&lt;br /&gt;Hence Business Analysts.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-2763548331442826525?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/6pmdXv3D3To" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/2763548331442826525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=2763548331442826525" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/2763548331442826525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/2763548331442826525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/6pmdXv3D3To/agile-business-analysts.html" title="Agile Business Analysts" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">9</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2007/11/agile-business-analysts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUANRX48fSp7ImA9WBFSFEU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-7104460706049962897</id><published>2007-02-14T11:32:00.000-08:00</published><updated>2007-02-14T12:09:54.075-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-02-14T12:09:54.075-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="integration" /><category scheme="http://www.blogger.com/atom/ns#" term="usability" /><title>StubbornSoft &amp; MammothSoft</title><content type="html">&lt;span style="font-style: italic;font-family:lucida grande;" &gt;I met a couple of villains today &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;a formidable lot. &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;StubbornSoft was one of them called,&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;the other was MammothSoft&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;&lt;br /&gt;StubbornSoft had it's own ways &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;for the user it didn't care. &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;MammothSoft would smugly say &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;"Try, change me if you dare."&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;&lt;br /&gt;In a moment I then realized &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;my dark and ugly fate. &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;When both of them cried out to me &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;Why, come let's integrate&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;&lt;br /&gt;We'll make a heavenly trio they said&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;our technologies cutting-edge &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;So smart piece of code as us &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;there'd ne'er be, we pledge&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;&lt;br /&gt;"I am quite small" to them said I, &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;"my features are too few. &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;But I let users do their job &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;and go home happy too"&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;&lt;br /&gt;"And what do we have to do with that?" &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;They asked to my dismay &lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;"We were made to make the boss happy&lt;/span&gt;&lt;span style="font-style: italic;font-family:lucida grande;" &gt;&lt;br /&gt;not users anyway..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;Software is for users&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-7104460706049962897?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/PWJNPn5noh0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/7104460706049962897/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=7104460706049962897" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7104460706049962897?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7104460706049962897?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/PWJNPn5noh0/stubbornsoft-mammothsoft.html" title="StubbornSoft &amp; MammothSoft" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2007/02/stubbornsoft-mammothsoft.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ENR3wzeyp7ImA9WxZSEUU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-1346541247935579300</id><published>2006-12-03T21:44:00.000-08:00</published><updated>2008-01-24T07:48:16.283-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T07:48:16.283-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="patterns" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>Mountains to climb</title><content type="html">&lt;span style="text-align:justify;"&gt;&lt;p&gt;Business Analysts work closely with the customer. Each new area is a challenge. There are discussions and problems and solutions. Both the analyst and the customer get comfortable with the idea of finding better, simpler solutions. This is especially true for fixed bid projects, as the project is at stake if the analyst fails to find a simpler solution and convince the customer too.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Solving problems is always exciting. For an analyst, this is the juicy part of the job, because no human being can survive for long just writing word documents one after the other. One incentive is customer delight, second is developer delight (scope reduction, etc). Of course the kick that an analyst gets out of solving a problem and offering a relatively simple solution is inexplicable.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;However, sometimes it happens so that the analyst gets stuck. There is a complex requirement that he/she gets from the customer and as usual the problem solving starts. The solution however seems complex. The situation is there right in front of him, all the scenarios are known and the functionality required to cover all these scenarios is just simply hugh. So the story is left half way through. More thought is put into the problem in wake of a simpler solution. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;What the analyst fails to realize is that there is no simpler solution. Sometimes there's a given amount of work and it just has to be done. The sooner this realization comes, the better.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The time spent on a given story is I think, the best indicator of such a situation. Just measure the average time you take for a story. Probably coupling it up with the dev (complexity) estimate would be even better. So if you are taking much more than this average time, there's somthing wrong. &lt;br/&gt;&lt;br/&gt;For Example: You take 6 days to analyze and write a (roughly) 3 point story. If you realize that this one story has gone on for 15 days, it's time to stop and think.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In case of such a situation,&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Firstly, raise the fact and see that the whole team knows about this hugh chunk of work coming. Have a domain session and share your knowledge.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Secondly, prioritize this area. Change the release plan if required. This will most probably turn out to be a risky area.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;And most importantly, start work as soon as possible. Just write a small, testable story and get the area kicked off. IMHO it is acceptable even if the story doesn't provide much value to the customer. It will provide value to the team by introducing an area.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;p&gt;It's like looking up at a mountain and thinking about a simpler way to reach to the top. Most of the times it's smart to start climbing.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;As someone has rightly said, &lt;i&gt;"Thought is supposed to be a guide for action. Not a substitute for it."&lt;/i&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-1346541247935579300?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/FV2HWxQH5Mc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/1346541247935579300/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=1346541247935579300" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/1346541247935579300?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/1346541247935579300?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/FV2HWxQH5Mc/mountains-to-climb.html" title="Mountains to climb" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2006/12/mountains-to-climb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AER3g6eyp7ImA9WxZSEUU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-7204953949079316765</id><published>2006-12-02T19:41:00.000-08:00</published><updated>2008-01-24T07:48:26.613-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T07:48:26.613-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>How to eat an elephant?</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;The only way to do that is to cut the elephant into slices. Slices which are small enough to be eaten because the sole purpose of cutting the elephant is to make it possible for humans to eat it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;You'll need a certain number of people to eat a whole elephant anyway. If you make slices small enough, at least they won't feel sick at the end of it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;There is no overhead in the activities of choosing the piece that looks most delicious, putting it in your mouth, chewing it and swallowing it. There is some, but it definitly beats having to swallow the elephant whole.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;So don't try to be subjective or pragmatic or take a case by case approach. Don't fool yourself.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;font-weight: bold;" &gt;Write&lt;/span&gt; &lt;span style="font-size:100%;color: rgb(255, 0, 0);"&gt;small&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);font-size:180%;font-weight: bold;" &gt;stories.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-7204953949079316765?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/X7JI0G2Rj84" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/7204953949079316765/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=7204953949079316765" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7204953949079316765?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/7204953949079316765?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/X7JI0G2Rj84/how-to-eat-elephant.html" title="How to eat an elephant?" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2006/12/how-to-eat-elephant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IFRHw9eCp7ImA9WBBSEE8.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-116102951518074181</id><published>2006-10-16T12:36:00.000-07:00</published><updated>2006-10-16T13:11:55.260-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-10-16T13:11:55.260-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="integration" /><title>Applied Integration</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;For a while, I have had a question on my mind that I couldn't really find an answer to. I had almost forgotten about it but a friend brought up the same question and before I knew it I was giving him my take on it. Before I get to the question though, I want to write a little about integration.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Last release I was involved in building some functionality to integrate with one of our client's systems. As I understand it, there are four prominent characteristics of integration that should be kept in mind when we decide to integrate systems.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;1.    Specialization&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;           Integration arises out of the need for specialized systems to come together to attain a common goal.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;           Although each system can help in a unique way, none can achieve the goal by itself.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="font-weight: bold;"&gt;2.    Communication&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;                &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;" &gt;&lt;/span&gt;&lt;a style="font-family: arial;" href="http://jchyip.blogspot.com/2006/08/integration-is-communication.html"&gt;Integration is communication&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt; and all the rules of communication apply.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;               - Common language&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;               - Interchange of information&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;            The goal of communication is to get to a win-win deal.   &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;            Communication is feedback, well, at least most of it and this feedback is the basis of integration&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="font-weight: bold;"&gt;3.    Functionality on both sides&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;            There is functionality on the other side. You are integrating with a system because it has something to offer. The goal is to leverage the information / knowledge / functionality on both the sides in a lesser amount of time than is required for any of the systems to attain the goal by itself.&lt;br /&gt;&lt;br /&gt;If the Matrix is ever built (in a reasonable amount of time that is), it will be through integration of various specialized systems rather than all by itself.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    &lt;span style="font-weight: bold;"&gt;4.    Compromise&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;            In order to communicate effectively, there is compromise required on both sides.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;           These compromises are mostly in the form of language &amp; time.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:arial;"&gt;I found myself using this understanding to explain my point of view to my friend. The question I was struggling with was,&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;blockquote&gt;If I do my job right, will everything work itself out?&lt;/blockquote&gt;&lt;/span&gt; &lt;span style="font-family:arial;"&gt;    I readily realized that this was stupid. However right I did my job, I couldn't achieve anything in a reasonable amount of time. So I changed my question to,&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:arial;"&gt;If we all do our jobs right, will everything work itself out?&lt;/span&gt;&lt;/blockquote&gt; &lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;    This seemed promising. But I realized that, my job is my specialization and that's true for all of us and when working together, feedback is important for us to know that we are doing our job right. Without this basic integration we are hopeless.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:arial;"&gt;Any team brings in integration of many specialized systems. Developers, BAs, QAs, Project Managers &amp;amp; Clients, for example, in a software development team. To take part in this integration, communicate useful feedback and leverage each other's "special powers" by making necessary compromises is the only way to build the Matrix... Or for that matter a library management system. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-116102951518074181?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/CZOF38oMnWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/116102951518074181/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=116102951518074181" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/116102951518074181?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/116102951518074181?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/CZOF38oMnWo/applied-integration.html" title="Applied Integration" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2006/10/applied-integration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AFSHY5eCp7ImA9WxZSEUU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-115601243648780352</id><published>2006-08-19T11:27:00.000-07:00</published><updated>2008-01-24T07:48:39.820-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T07:48:39.820-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="patterns" /><category scheme="http://www.blogger.com/atom/ns#" term="bunker busters" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>Embracing Bunker Busters</title><content type="html">&lt;div style="text-align: justify;"&gt;For various reasons, there are situations when there is no running away from a Bunker Buster. An agile team should therefore be watchful. Once the analyst finds a potential bunker buster, he/she will have only one parameter to tweak... The timing. Embracing a bunker buster is a a brave step, I would say. But then isn't, bravery only relative to the preparation??&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Symptoms&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Here are some tips out of my experience for identifying bunker busters. Note that these symptoms do not decide a bunker buster individually. Like gesture-clusters in body language, they work in combinations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Vagueness&lt;/span&gt;&lt;br /&gt;The first and most probable characteristic that you'll notice about a bunker buster is vagueness. This is not the same vagueness that you experience when you don't know the screen where particular information is captured. This is vagueness which has potential to change the way you have been thinking about the solution. Some fundamental assumptions about the way the user is going to use the application could be proven wrong at the and of your analysis. This brings us to the next characteristic, The Paradigm Shift...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Paradigm Shift&lt;/span&gt;&lt;br /&gt;Over a period of time in a project, the team develops an idea of how a user is going to use the application. A bunker buster has the potential of changing this basic usage paradigm. Let's take an example here.&lt;br /&gt;&lt;br /&gt;Imagine a phone book application. This application allows Adding, Editing, Viewing and Deleting phonebook entries. The team envisaged this application thus:&lt;br /&gt;- The user will search or browse the phone book to find a particular entry.&lt;br /&gt;- The user will then view the details of the selected entry.&lt;br /&gt;- The user then has the option to Edit or Delete an entry&lt;br /&gt;- The function for adding a new entry is available throughout.&lt;br /&gt;&lt;br /&gt;Now after some time into the project, the business and the analysts realized that the users that search, browse or view entries are different from the users that add, edit or delete entries. The solution was to select a mode while entering the application. The user would be able to only add entries in the "Add" mode. While the "View" mode would let users only view an entry.&lt;br /&gt;&lt;br /&gt;This is a paradigm shift. While most bunker busters we see in reality are not of this magnitude, I hope you get the idea.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Extra Long Analysis Phase&lt;/span&gt;&lt;br /&gt;Both the above lead to an unusually long analysis phase for this particular story. Another fact that contributes to this is the fear that there might be exceptions. While the new usage paradigm makes sense from the usability point of view, there might be functionality which will make less / no sense if the user is going to use the application in a different way!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Approach&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;To get consensus of all the stakeholders on this new paradigm, to clear up confusions, to find and take care of exceptions (if any) and to present all this in the form of a small, independent, testable and valuable story is a mammoth task. To make this a tad easier, here's a list of things to take care of when dealing with a bunker buster. I have divided this by stake holder because the underlying gist is to communicate constantly with everybody.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Client&lt;/span&gt;&lt;br /&gt;Communication with the client is always crucial. After sometime into a project analysts generally split into areas and so do the members of the client team. While handling a bunker buster however, constant communication with the complete client team is essential. I would include all business as well as technical users in this. End users, sponsors, client's system administrators, deployment team (in case you are building a product) and of course the complete client team that defines requirements. The shift in usage paradigm is a key decision on which you would need all kinds of input and a consensus from all the mentioned parties.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BAs&lt;/span&gt;&lt;br /&gt;Other business analysts are the best people to talk to when it comes to finding exceptions. They will have complete knowledge of the respective areas that they are working on. Also, early communication of this kind will help them analyse the future functionality keeping the bunker buster in mind.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;QAs&lt;/span&gt;&lt;br /&gt;One thing that closely matches the way an application is going to be used is the functional test suite. Functional tests are the most valuable and the most fragile tests on a project. A bunker buster can render loads of them useless if they are not refactored to accommodate the new usage paradigm in time. Depending on the size of the functional test suite, the QAs will have to decide whether to refactor them or throw them away or leave them untouched. The QAs can leave the tests untouched if the application can provide useful hacks, like switching security off. Of course there are other functional tests that test security. Personally, I think this is the last resort. Functional tests should always be in sync with the way the application will be used.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Developers&lt;/span&gt;&lt;br /&gt;Communication with developers is of vital importance because a bunker buster has potential to change the domain model in unexpected ways. Validating the feasibility of the change and it's estimation is absolutely crucial. While the bunker buster is in play, I would suggest even pairing with the developers. One area where it will most hurt is the amount of detail in the story itself. Due to the long phase of analysis, accommodating all the detail in the final story is all the more difficult. Remember that while you are busy preparing this story for play, there is functionality being added to the application. I think this is one more place where it would be much better to leave the story at a high-level, do a careful kickoff and if possible pair up with the developers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Timing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;As mentioned before, timing is possibly the only parameter that we can tweak as a team and taking full advantage of this fact is very important. Due to the consequences mentioned above, I think it is best to play a bunker buster at the very beginning of a release. That way the UAT for the previous release can go smoothly. The team also gets a logical break point to adopt this new way of thinking about the solution... Mentally(analysis) as well as physically (code and tests).&lt;br /&gt;&lt;br /&gt;Scary as all this may sound, I guess successfully embracing changes like these is the ultimate value that an agile team delivers.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-115601243648780352?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/hGrCiwVHQSM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/115601243648780352/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=115601243648780352" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/115601243648780352?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/115601243648780352?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/hGrCiwVHQSM/embracing-bunker-busters.html" title="Embracing Bunker Busters" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2006/08/embracing-bunker-busters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AARHkyfyp7ImA9WxZSEUU.&quot;"><id>tag:blogger.com,1999:blog-24663619.post-115549816310115464</id><published>2006-08-13T12:20:00.000-07:00</published><updated>2008-01-24T07:49:05.797-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-24T07:49:05.797-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="patterns" /><category scheme="http://www.blogger.com/atom/ns#" term="bunker busters" /><category scheme="http://www.blogger.com/atom/ns#" term="user stories" /><title>Avoiding Bunker Busters</title><content type="html">&lt;div style="text-align: justify;"&gt;"Prevention is better than cure" and one good way of handling &lt;a href="http://agileanalysis.blogspot.com/2006/08/grenades-shells-bunker-busters.html"&gt;Bunker Busters&lt;/a&gt; is to avoid them. Agile teams seem to be wary of handling anything by prevention, as it requires thinking ahead and taking care of things to come rather than things that are. While this makes perfect sense for Grenades and Shells, Bunker Busters have much more potential for damage and it is worthwhile trying to prevent them rather than handling them when they come.&lt;br /&gt;&lt;br /&gt;There are areas in every application which can prove to be huge bunker busters if not handled in advance. Teams are even aware of there existence but still choose to handle them "when they come". One such area is "Application Security" and I have heard about (and experienced) this quite a lot so I think it makes a good, simple example.&lt;br /&gt;&lt;br /&gt;Let's go back to the way we write stories. The story aims at stating a particular requirement in the form of an &lt;span style="font-weight: bold;"&gt;action&lt;/span&gt;, which a particular &lt;span style="font-weight: bold;"&gt;role&lt;/span&gt; wants to perform to achieve a specific, measurable, achievable, realistic and time-bound &lt;span style="font-weight: bold;"&gt;goal&lt;/span&gt;. The generally accepted form of such a story is a single sentence as follows:&lt;br /&gt;As a &amp;lt;role&amp;gt;&lt;br /&gt;I would like to &amp;lt;action&amp;gt;&lt;br /&gt;So that &amp;lt;immediate goal&amp;gt;&lt;br /&gt;&lt;br /&gt;A Grenade in this form would look like:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;As an&lt;/span&gt; administrator,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I would like to&lt;/span&gt; add a new book to the library,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So that&lt;/span&gt; the book can be borrowed by the borrowers.&lt;/blockquote&gt;&lt;br /&gt;Now this is a good story because it can be easily implemented to achieve the following:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;A form which only the administrator can access [role]&lt;/li&gt;&lt;li&gt;Logic to validate &amp; persist the information entered into the form [action]&lt;/li&gt;&lt;li&gt;tests to check if the book can be borrowed by the borrowers (which is another role BTW). [goal]&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;The "So that" clause here does two things. It sets the testability of the story as well as clearly mentions the dependancy.&lt;br /&gt;&lt;br /&gt;Leveraging all clauses of the story in this way (and firstly writing stories in this way) can go a long way in favour of the project.&lt;br /&gt;&lt;br /&gt;The same story would become a Shell, like this:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;As an&lt;/span&gt; administrator,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I would like to&lt;/span&gt; restrict other borrowers from adding a new book to the library,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So that&lt;/span&gt; I can control the books added the library.&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(this will be played in addition to the first story, because we decided to do security later)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Sounds worse, does it?? But it can get even worse like this:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;As an&lt;/span&gt; administrator,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I would like to&lt;/span&gt; restrict borrowers from adding new books to the library, editing book information, deleting books from the library, viewing x,y and z reports and configuring x, y and z,&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So that&lt;/span&gt; I have full control of the admin functionality of the application.&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(this story will be played after the stories for all the above functionality have been played...)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is a bunker buster; and the worse part is that this could be avoided.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(Note: the second and third stories aim at delivering the same functionality, although the reader might think that these are stories will let the administrator "configure" access restriction to the mentioned parts of the application.)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24663619-115549816310115464?l=agileanalysis.blogspot.com'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/agilebusinessanalysis/~4/CmS_Hf8PmNw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://agileanalysis.blogspot.com/feeds/115549816310115464/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=24663619&amp;postID=115549816310115464" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/115549816310115464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/24663619/posts/default/115549816310115464?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/agilebusinessanalysis/~3/CmS_Hf8PmNw/avoiding-bunker-busters.html" title="Avoiding Bunker Busters" /><author><name>Akshay Dhavle</name><uri>http://www.blogger.com/profile/03105245771080772055</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="12195761378702377781" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://agileanalysis.blogspot.com/2006/08/avoiding-bunker-busters.html</feedburner:origLink></entry></feed>
