<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Milena Mastrasso</title>
	<atom:link href="http://agileculture.net/mmastrasso/feed/" rel="self" type="application/rss+xml" />
	<link>http://agileculture.net/mmastrasso</link>
	<description>Software Engineering Experiences</description>
	<pubDate>Sun, 05 Sep 2010 22:55:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Writing User Stories</title>
		<link>http://agileculture.net/mmastrasso/2010/09/05/writing-user-stories/</link>
		<comments>http://agileculture.net/mmastrasso/2010/09/05/writing-user-stories/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 22:43:00 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agile Methodologies]]></category>

		<category><![CDATA[Bussines Analysis]]></category>

		<category><![CDATA[Scrum]]></category>

		<category><![CDATA[User Stories]]></category>

		<category><![CDATA[Estimation]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=99</guid>
		<description><![CDATA[In other posts I mention about Scrum and the use of User Stories to estimate and schedule your project. Today I focus on  what a story is and how do you write this stories.
What is a User Story?
A user story is a description of a valuable functionality of the software. Much development teams write this [...]]]></description>
			<content:encoded><![CDATA[<p>In other posts I mention about <a href="http://agileculture.net/mmastrasso/2009/03/01/an-introduction-to-scrum/">Scrum </a>and the use of User Stories to <a href="http://agileculture.net/mmastrasso/2009/08/16/how-to-avoid-influence-in-estimations/">estimate </a>and schedule your project. Today I focus on  what a story is and how do you write this stories.</p>
<p><strong>What is a User Story?</strong></p>
<p>A user story is a description of a valuable functionality of the software. Much development teams write this stories in cards which are divided in three important parts:</p>
<ul>
<li>The description: Is the main part of the user story, it must be brief and you should notice that this “represent a customer requirement rather than document it”</li>
</ul>
<ul>
<li>The conversations: All the stories must be discussed with the team. In this conversation some important details come up. This details give a better approach for the development and you could write it briefly here.</li>
</ul>
<ul>
<li>The test: are based on the expectation of the project’s users and are written as Acceptance Test, a reminder on how to test. This are meant to be short and are written on the back of the card.</li>
</ul>
<p><a href="http://agileculture.net/mmastrasso/files/2010/09/image.png"><img style="float: none;margin: 0px auto" src="http://agileculture.net/mmastrasso/files/2010/09/image-thumb.png" border="0" alt="image" width="550" height="278" /></a></p>
<p><a href="http://agileculture.net/mmastrasso/files/2010/09/image.png"></a><strong>What is a good User Story? </strong></p>
<p>You need to focus on some attributes that a good user story should consider. A good user story is:</p>
<ul>
<li><strong>Independent</strong>. Is important to not introduce dependences between stories. Dependencies create problems with planning and prioritization. For example if you have a user story for each credit card you can estimate some hours to the first one, and much less to the other, is better to combine them in only one card.</li>
</ul>
<ul>
<li><strong>Negotiable</strong>. Cards are not a contract, it’s a reminder of what you have to do, are little descriptions of required functionality, details have to be negotiated in conversations.</li>
</ul>
<ul>
<li><strong>Valuable to user or customers</strong>. You must avoid stories which have value only for developers, like connections to database or error handling.</li>
</ul>
<ul>
<li><strong>Estimable</strong>. Stories must be estimable, if the developers lack the domain or technical knowledge or if the story is too large may be inestimable. You can split big stories to be able to estimate them.</li>
</ul>
<ul>
<li><strong>Small</strong>. The story size should be the right size, if them are large or small can’t be well estimated. Right size is determined in the velocity team and the used technology, you can combine or split stories to make it the right size.</li>
</ul>
<ul>
<li><strong>Testable</strong>. Stories need to be testable, must be written to be tested.  Successfully passing the test proves that the story has been successfully developed, and show the development team when they have finished coding. Some test could be automated, others require human intervention.</li>
</ul>
<p><strong></strong></p>
<p><strong>What more should I consider to improve user stories?</strong></p>
<p>To improve user stories you have to consider the user roles, the details included on the cards. This things with others will be explain in other posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2010/09/05/writing-user-stories/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free time is fuel for our minds</title>
		<link>http://agileculture.net/mmastrasso/2009/09/24/free-time-is-fuel-for-our-minds/</link>
		<comments>http://agileculture.net/mmastrasso/2009/09/24/free-time-is-fuel-for-our-minds/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 02:23:26 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Pomodoro technique]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=95</guid>
		<description><![CDATA[All of you knows that working or studying for long periods of time is difficult, concentration grows down through hours, inversely anxiety for results increases. Francesco Cirillo create a technique to accomplish our tasks in the way we want to do those tasks in a schedule period of time. This method, called The Pomodoro Technique, [...]]]></description>
			<content:encoded><![CDATA[<p align="left">All of you knows that working or studying for long periods of time is difficult, concentration grows down through hours, inversely anxiety for results increases. Francesco Cirillo create a technique to accomplish our tasks in the way we want to do those tasks in a schedule period of time. This method, called <a href="http://www.pomodorotechnique.com/">The Pomodoro Technique</a>, is based in time-box periods of working time.</p>
<p align="left"><strong>What a Pomodoro is?</strong></p>
<p align="left"><a href="http://agileculture.net/mmastrasso/files/2009/09/pomodoro.jpg"><img style="margin-left: 0px;margin-right: 0px" src="http://agileculture.net/mmastrasso/files/2009/09/pomodoro-thumb.jpg" border="0" alt="pomodoro" width="112" height="90" align="left" /></a>A pomodoro is a kitchen timer, and we will use it to control and administrate our time. We will set the timer duration on 30 minutes, 25 minutes of work and a 5 minutes break.  When a pomodoro starts it can’t be stopped, it’s indivisible. After four pomodoros you have a longer break (15 to 30 minutes).</p>
<p align="left">Maybe you are thinking about the title of my post, this means that the recess must be respected, and it based on the idea of Francesco put in his book:</p>
<blockquote>
<p align="left">This leisure time is fuel for our minds. Without it, creativity, interest, and curiosity are lost, and we run ourselves down until our energy is depleted. Without gas, the engine won’t run.</p>
</blockquote>
<p align="left"><strong>How can this technique works?</strong></p>
<p align="left">You have your timer and are ready to start working, but what you will do? You have to do a list of your planned tasks in order of priority and a section labeled “Unplanned &amp; Urgent Activities” where any unexpected tasks that have to be dealt with should be listed as they come up.</p>
<p align="left"><a href="http://agileculture.net/mmastrasso/files/2009/09/image.png"><img style="float: none;margin-left: auto;margin-right: auto" src="http://agileculture.net/mmastrasso/files/2009/09/image-thumb.png" border="0" alt="image" width="629" height="105" /></a></p>
<p align="left">If some interrupts the pomodoro it can’t be consider complete. When a pomodoro rings you have to do a cross next to the activity you have been working and take your 5 minutes break. This time allow you to disconnect from work and do other activities which take a little time.</p>
<p align="left">When you finish a task you have to cross it out, and remember that a pomodoro is indivisible, so if you have time left use it to review all the things you have done, but if you finish it on the five first minutes of the pomodoro you can void it.</p>
<p align="left"><a href="http://agileculture.net/mmastrasso/files/2009/09/image1.png"><img style="float: none;margin-left: auto;margin-right: auto" src="http://agileculture.net/mmastrasso/files/2009/09/image-thumb1.png" border="0" alt="image" width="630" height="106" /></a></p>
<p align="left">Up to this point all be right, but what happen with interruptions, sometimes appear and it can be consider a real problem, so you have to learn to manage all of them. Interruptions can be urgent or not, imagine you are in the middle of a pomodoro and realize that you are really hungry and want to eat pizza, or maybe you remember a concert and you want to call a friend to invite him.</p>
<p align="left">This interruptions are different, but if you postpone them you don’t have to void your pomodoro. You take note of that and continuing working. To control the interruptions you have to do a mark on the activity, use different marks to different types of interruptions.</p>
<p align="left"><img style="float: none;margin-left: auto;margin-right: auto" src="http://agileculture.net/mmastrasso/files/2009/09/image-thumb2.png" border="0" alt="image" width="627" height="247" /></p>
<p align="left">Francesco said:</p>
<blockquote><p>The first objective to achieve in cutting down on interruptions is to be aware of the number and<br />
type of internal interruptions. Observe them, accept them, and schedule them or delete them, as<br />
the case may be.</p>
<p>The second objective to achieve in order to cut down on interruptions is to be aware of<br />
the number and type of external interruptions. Negotiate them and reschedule them depending<br />
on the real degree of urgency.</p></blockquote>
<p align="left">This is the first step of applying this technique, then you can set your available pomodoros and estimate your activities to do the technique more effective. You can <a href="http://www.pomodorotechnique.com/resources/cirillo/ThePomodoroTechnique_v1-3.pdf">download the book</a> and continues improving.</p>
<p align="left"><strong>How can it be related with software engineering?</strong></p>
<p align="left">Some people use this technique to do development tasks, and some mix it with agile methodologies, but some people said that it can bring some problems because individuals may tend to meet personal goals and not team goals.</p>
<p align="left">I invite you to talk about your experiences using the pomodoro technique in both scenarios, personal and team work.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/09/24/free-time-is-fuel-for-our-minds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to avoid influence in estimations</title>
		<link>http://agileculture.net/mmastrasso/2009/08/16/how-to-avoid-influence-in-estimations/</link>
		<comments>http://agileculture.net/mmastrasso/2009/08/16/how-to-avoid-influence-in-estimations/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 02:59:03 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agile Methodologies]]></category>

		<category><![CDATA[Agiles@Argentina]]></category>

		<category><![CDATA[Scrum]]></category>

		<category><![CDATA[Software Estimation]]></category>

		<category><![CDATA[Agiles@BsAs]]></category>

		<category><![CDATA[Planning Poker]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=85</guid>
		<description><![CDATA[Software estimation is the ghost of the process, always is difficult to estimate how much time it will cost, you can do it in different ways, with different techniques, by intuition, by the quantity of code lines or story points, by experience of someone or because you compare the project with other projects.
In the last [...]]]></description>
			<content:encoded><![CDATA[<p>Software estimation is the ghost of the process, always is difficult to estimate how much time it will cost, you can do it in different ways, with different techniques, by intuition, by the quantity of code lines or story points, by experience of someone or because you compare the project with other projects.</p>
<p>In the last meeting of agiles@bsas we were talking about software estimation in agile projects, we were discussing some different techniques. One of them is known as Planning Poker and I found it very interesting and let me explain why.</p>
<p><strong>Starting the Estimation Process</strong></p>
<p>To start the process someone tell what are a user story about, then all the people think which is the cost of this story and tell to the others. Up to this point all be right excepting for something that I take notice after some projects: <em>the first person who say which is his estimation influence the decision of the others<strong>. </strong></em></p>
<p>Imagine that instead of saying which is the estimation of each member you write it in a peace of paper and facedown and then all the papers turn over, no one knows what is written in the other papers, so there is no influence.</p>
<p><strong>Planning Poker</strong></p>
<p>The planning poker is a funny way to do the paper games but using a deck of card like this one:</p>
<p style="text-align: center"><a href="http://agileculture.net/mmastrasso/files/2009/08/planningpokerdeck.jpg"><img class="aligncenter" style="float: none;margin-left: auto;margin-right: auto" src="http://agileculture.net/mmastrasso/files/2009/08/planningpokerdeck-thumb.jpg" border="0" alt="PlanningPokerDeck" width="357" height="264" /></a></p>
<p>You can notice that there aren’t all the numbers. This is because the objective is that estimation is not accurate, so each card must be bigger enough  than the previous.</p>
<p>So, after the user story explanation, each member put his card face down, and all together turn over. If there are lot of differences between  the estimations they discuss his opinions and re-estimate. If there are agreement the estimation is over.</p>
<p><strong>Some considerations </strong></p>
<ul>
<li>If a user story needs one hundred card it means that is too big or is incompressible, so the client or the Product Owner must divide it to decrease the complexity.</li>
<li>When someone put a zero card it means that this task is already done or should take no more than a few minutes of work.</li>
<li>The cup means that the team member is tired to think and need a break.</li>
<li>The question mark card means “I have no idea”. If this card is used too often, the team needs to discuss the stories more and try to achieve better knowledge spread within the team.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/08/16/how-to-avoid-influence-in-estimations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to explain to your girlfriend&#8230;</title>
		<link>http://agileculture.net/mmastrasso/2009/07/17/how-to-explain-to-your-girlfriend/</link>
		<comments>http://agileculture.net/mmastrasso/2009/07/17/how-to-explain-to-your-girlfriend/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 20:33:55 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agile Methodologies]]></category>

		<category><![CDATA[Agile Culture]]></category>

		<category><![CDATA[Agile Process]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=81</guid>
		<description><![CDATA[Sometimes you have to explain someone what agile means, you start talking but the other person seems to misunderstand every word you said. So how do you explain agile culture to this person?
I’m going to tell you what happened to me last night…
There are 8.45 pm, I arrived to my boyfriend home hoping that he [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you have to explain someone what agile means, you start talking but the other person seems to misunderstand every word you said. So how do you explain agile culture to this person?</p>
<p>I’m going to tell you what happened to me last night…</p>
<blockquote><p>There are 8.45 pm, I arrived to my boyfriend home hoping that he has bought something for dinner. Fortunately he had!  He was craving to eat chicken with Champignons’ sauce,  easy to prepare if you have the right things…</p>
<p>So I open the fridge and start preparing the dinner. A bit of this, a bit of that… and suddenly… oohh ohhh! Where is the cream darling?</p>
<p>He forgot to buy it, chicken is cooking and the sauce is in middle of preparation… I have to replace the cream!</p>
<p>I open the cupboard, the fridge and start to look for something that can help. Thinking a bit I found some pieces of different cheeses, so I change the dinner… Chicken and Champignons with Chesses sauce!</p></blockquote>
<p>I found this experience similar to agile software development, you have something to do, but you could found some issues, requirements could change and YOU, the agile team, must be prepare to adapt to this changes!</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/07/17/how-to-explain-to-your-girlfriend/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What do you do in your first iteration?</title>
		<link>http://agileculture.net/mmastrasso/2009/07/04/what-do-you-do-in-your-first-iteration/</link>
		<comments>http://agileculture.net/mmastrasso/2009/07/04/what-do-you-do-in-your-first-iteration/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 05:40:43 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agile Methodologies]]></category>

		<category><![CDATA[Agiles@Argentina]]></category>

		<category><![CDATA[Agiles@BsAs]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=78</guid>
		<description><![CDATA[I want to share with you my first experience at Agiles@Argentina, this is a little (but growing) group of people that enjoy sharing their knowledge about agile practices and how they apply this on daily work.  In my last post I talked about this meetings.
Last time we were talking about “What do you do in [...]]]></description>
			<content:encoded><![CDATA[<p>I want to share with you my first experience at <a href="http://tech.groups.yahoo.com/group/agiles-argentina/" target="_blank">Agiles@Argentina</a>, this is a little (but growing) group of people that enjoy sharing their knowledge about agile practices and how they apply this on daily work.  In my last <a href="http://agileculture.net/mmastrasso/2009/06/03/a-place-to-share-our-knowledge/" target="_blank">post</a> I talked about this meetings.</p>
<p>Last time we were talking about “What do you do in your first iteration?” and I would like to present some of the models proposed in that talk.</p>
<p>Some of the participants announced that they were using Scrum. However, I found an interesting difference, all of them talked about <strong>short</strong> Sprints, but the duration of this Sprint various between one and four weeks depending on the speaker.</p>
<p>Another speaker announced that their projects always start with a Retrospective meeting where the team discuss about “Which are the objectives for the project?” and “What could and could not be done taking into the experience of past projects?”</p>
<p>I also note that almost always the project initiate with a pre-sales process where they can take the “big picture” of the client requirements and then they formally start the project delivering in the first iteration a piece of final product which is made of:</p>
<ol>
<li>Architecture document</li>
<li>Product Backlog and User Stories</li>
<li>Iteration Planning</li>
</ol>
<p>Now I invite you to tell me and all the readers what do you do in your first iteration? what do you deliver? and How do you estimate what shall you do in each iteration?</p>
<p>If you want to share or learn something about agile estimation this is the topic of the next meeting (Tuesday July 14) at Microsoft Argentina offices, you can register <a href="http://tech.groups.yahoo.com/group/agiles-argentina/message/108">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/07/04/what-do-you-do-in-your-first-iteration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A place to share our knowledge</title>
		<link>http://agileculture.net/mmastrasso/2009/06/03/a-place-to-share-our-knowledge/</link>
		<comments>http://agileculture.net/mmastrasso/2009/06/03/a-place-to-share-our-knowledge/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 21:38:09 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agiles@Argentina]]></category>

		<category><![CDATA[Agiles@BsAs]]></category>

		<category><![CDATA[Share Knowledge]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=74</guid>
		<description><![CDATA[I recently found a group called Agiles@Argentina, this is a yahoo group which discuss about agile software development methodologies and organize meetings to share our knowledge in different parts of Argentina.
Particularly in Buenos Aires, the meetings are scheduled the 2nd Tuesday of each month in Microsoft Argentina offices. This time they will discuss some related [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found a group called <a href="http://tech.groups.yahoo.com/group/agiles-argentina/" target="_blank">Agiles@Argentina</a>, this is a yahoo group which discuss about agile software development methodologies and organize meetings to share our knowledge in different parts of Argentina.</p>
<p>Particularly in Buenos Aires, the meetings are scheduled the 2nd Tuesday of each month in Microsoft Argentina offices. This time they will discuss some related topics like:</p>
<ul>
<li>How to initiate projects</li>
<li>What do you do in fist iteration?</li>
<li>What do you deliver at this time?</li>
<li>How do you estimate?</li>
<li>What are your decisions?</li>
<li>What are the activities you do at first time?</li>
</ul>
<p>They use <strong>Lightning Talks</strong>, 3 slides in a slot of 7 seven minutes to share what you do and what you think.</p>
<p>I invite you to visit and join this group to take notice about the places where are organizing other meeting, some agile training courses.</p>
<p>See you! <img src='http://agileculture.net/mmastrasso/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/06/03/a-place-to-share-our-knowledge/feed/</wfw:commentRss>
		</item>
		<item>
		<title>If it works, do it!</title>
		<link>http://agileculture.net/mmastrasso/2009/05/19/if-it-works-do-it/</link>
		<comments>http://agileculture.net/mmastrasso/2009/05/19/if-it-works-do-it/#comments</comments>
		<pubDate>Tue, 19 May 2009 18:40:49 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Post-Agilism]]></category>

		<category><![CDATA[Post-Agilism Manifesto]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=71</guid>
		<description><![CDATA[I have recently read about a Post-Agile Manifesto by Jason Gorman.  Jason said that Post-Agilism is simply doing what works for you. And he explain that in this ideas:

If it Works, do it!
If it Works, do it! It woks
If it seems to Work,do it! It probably woks
If it seems to Work, do it! It probably [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently read about a <a href="http://parlezuml.com/blog/postagile.pdf" target="_blank">Post-Agile Manifesto</a> by Jason Gorman.  Jason said that Post-Agilism is simply <strong><em>doing what works for you</em></strong>. And he explain that in this ideas:</p>
<ul>
<li>If it Works, do it!</li>
<li>If it Works, <span style="text-decoration: line-through">do it!</span> It woks</li>
<li>If it <em><strong>seems</strong> to </em>Work,<span style="text-decoration: line-through">do it!</span> It <em><strong>probably</strong></em> woks</li>
<li>If it <em><strong>seems</strong> to </em>Work, <span style="text-decoration: line-through">do it!</span> It <em><strong>probably</strong></em> woks <strong><em>(and might work again)</em></strong></li>
</ul>
<p>Really it is not a manifesto, there aren’t a group or association investigating and promoting that. So if it isn’t a manifesto… What it is? It’s a phenomenon around the world where people who have worked with different agile methodologies and have decided to move on. </p>
<p>Investigating a bit more about this topic I found a <a href="http://www.kohl.ca/blog/archives/000184.html" target="_blank">Post-Agilism FAQ</a> at Jonathan Kohl&#8217;s blog which said:</p>
<blockquote><p>Post-Agilism is:</p>
<ol>
<li>a growing movement of former Agilists who have moved beyond Agile methods, using a wide variety of software development tools and methodologies in their work.</li>
<li>an emerging era. Now that the Agile movement has moved to the mainstream, what&#8217;s next?</li>
</ol>
</blockquote>
<p>Some people think that the post-agilism is  a fallacy, and that the people who consider part of this group are anti-agilist and “process mash up”. In this same article Kohl explain why they consider that this accusations are false.</p>
<p>Personally, I use Scrum and consider that the failure of agile methodologies are because people try to change and mix methodologies to adapt it to their necessities.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/05/19/if-it-works-do-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Software Design Manifesto</title>
		<link>http://agileculture.net/mmastrasso/2009/04/02/software-design-manifesto/</link>
		<comments>http://agileculture.net/mmastrasso/2009/04/02/software-design-manifesto/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 22:06:30 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Software Design]]></category>

		<category><![CDATA[Software Design Manifesto]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=69</guid>
		<description><![CDATA[I was reading some articles about software engineering when I found a Software Design Manifesto by Mitchell Kapor (also known as Mitch). He study different careers, he was the creator of Lotus 1-2-3, chair of Mozilla Foundation and founder of Open Source Application Foundation, between others.
In 1990, Kapor deliver a software design manifesto where he [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading some articles about software engineering when I found a Software Design Manifesto by <a href="http://en.wikipedia.org/wiki/Mitch_Kapor" target="_blank">Mitchell Kapor</a> (also known as Mitch). He study different careers, he was the creator of Lotus 1-2-3, chair of Mozilla Foundation and founder of Open Source Application Foundation, between others.</p>
<p>In 1990, Kapor deliver a software design manifesto where he has eloquently made the case that we need to think of software design as a <em>profession</em>, rather than as a side task of a manager or a programmer.</p>
<blockquote><p>The most important social evolution within the computing professions would be to create a role for the software designer as a champion of the user experience&#8230;. What is design? &#8230; It’s where you stand with a foot in two worlds—the world of technology and the world of people and human purposes—and you try to bring the two together.</p></blockquote>
<p>Some important is that software design is not UI design. And neither software engineering nor computer science are software design.</p>
<blockquote><p>Design disciplines are concerned with making artifacts for human use … One of the main reasons most computer software is so abysmal is that it’s not designed at all, but merely engineered</p></blockquote>
<p>He consider that software designers are the architects of software which has the responsibility of integrate design and software development; architects and engineers are involved in building the application, and programmers are who develop the application. A perspective and skills that are critical to good design are typically absent from the development process, or, if present, exist only in an underground fashion.</p>
<p><strong>A software design manifesto.</strong></p>
<p><img src="http://ecx.images-amazon.com/images/I/5133y0xpo9L._SL500_AA240_.jpg" border="0" alt="" width="171" height="171" align="left" /></p>
<p>Mitch Kapor first presented his <a href="http://hci.stanford.edu/bds/1-kapor.html">Software Design Manifesto</a> at PC Forum in 1990. It got published in Dr. Dobbs’ Journal in 1991, and later appeared as the first chapter of Terry Winograd’s book <em>Bringing Design to Software.</em></p>
<p>A good software design must have:</p>
<ul>
<li><strong>Firmness</strong>: A program should not have any bugs that inhibit its function.</li>
<li><strong>Commodity</strong>: A program should be suitable for the purposes for which it was intended.</li>
<li><strong>Delight</strong>: The experience of using the program should be pleasurable one.</li>
</ul>
<p> </p>
<p>Mitch Kapor wrote this manifesto some time ago. Do you think this is still accurate? Why?</p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/04/02/software-design-manifesto/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Does personal commitment mean working overtime?</title>
		<link>http://agileculture.net/mmastrasso/2009/03/20/does-personal-commitment-mean-working-overtime/</link>
		<comments>http://agileculture.net/mmastrasso/2009/03/20/does-personal-commitment-mean-working-overtime/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 00:11:57 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Scrum]]></category>

		<category><![CDATA[overtime]]></category>

		<category><![CDATA[personal commitment]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=56</guid>
		<description><![CDATA[Sometimes I have heard about some business that are committed to their projects, so the employees must working overtime to deliver projects on time.
I have heard in some occasions a project manager telling someone that he is not committed with the project because this person doesn’t stay at office more time than expected.
Personally, I think [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I have heard about some business that are committed to their projects, so the employees must working overtime to deliver projects on time.</p>
<p>I have heard in some occasions a project manager telling someone that he is not committed with the project because this person doesn’t stay at office more time than expected.</p>
<p>Personally, I think if people often need to do overtime is a clear fault in project management. You know the capacities and capabilities of your team. If a team regularly need to do overtime there are a problem.</p>
<p>I have write some time ago about <a href="http://agileculture.net/mmastrasso/2009/03/01/an-introduction-to-scrum/" target="_blank">Scrum</a>. This methodology works over personal commitment of each member on the team. Teams are self-organized. Each member knows his timetable, and commit to do what he is sure he could do in this time.</p>
<p>So, if a person is committed to the project success must do overtime to complete it? Answer is <strong>no</strong>. You have to be realistic on your commitments, you have to be committed to do this things that are possible.</p>
<p>Is known that any person can works as a robot for to much hours. As the hours runs the ability of concentration diminishes. Its not new. There are some studies that said that making overtime can improve the velocity and quality of the team works in the short-term, but with some days employees start to get tired and people make mistakes and lose incentive to do high quality work. <strong>Results gets down! </strong></p>
<p><strong>Don’t confuse personal commitment with working overtime. </strong></p>
<p>Personal commitment frequently leads to developers working overtime to finish their tasks. However, overtime is not a requirement of personal commitment. You can be really committed with the project, also with your time-box planification.</p>
<p> </p>
<p>A personal piece of advice: Hard-working is ok, rest &amp; social life too. Keep balanced. <img src='http://agileculture.net/mmastrasso/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/03/20/does-personal-commitment-mean-working-overtime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The business analyst role at agile software development</title>
		<link>http://agileculture.net/mmastrasso/2009/03/05/the-business-analyst-role-at-agile-software-development/</link>
		<comments>http://agileculture.net/mmastrasso/2009/03/05/the-business-analyst-role-at-agile-software-development/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 20:23:31 +0000</pubDate>
		<dc:creator>mmastrasso</dc:creator>
		
		<category><![CDATA[Agile Methodologies]]></category>

		<category><![CDATA[Bussines Analysis]]></category>

		<category><![CDATA[Agile business analyst]]></category>

		<category><![CDATA[Business Analysis]]></category>

		<guid isPermaLink="false">http://agileculture.net/mmastrasso/?p=43</guid>
		<description><![CDATA[I work as business analysis. I have learn traditional business analysis (like Unified Process, Cascade, between others), but I found some problems with this and other prescriptive methodologies. One of this problems, in my opinion the most important, is that this type of methodologies consider that the clients always know what they want, and could [...]]]></description>
			<content:encoded><![CDATA[<p>I work as business analysis. I have learn traditional business analysis (like <a href="http://en.wikipedia.org/wiki/Unified_Process">Unified Process</a>, Cascade, between others), but I found some problems with this and other prescriptive methodologies. One of this problems, in my opinion the most important, is that this type of methodologies consider that the clients always know what they want, and could explain it in the right way.  In addition all the prescriptive methodologies consider that documenting before development is important, and this documentation won’t change. My experience said that <strong>it is unfortunately false</strong>.</p>
<p>Some time ago I used to be a .Net developer when I start reading about agile software development. I found it really interesting because it focuses on the working software, it allow teams to develop high quality software and produce retrospective in the short-term. I consider this important things to do a successful project.</p>
<p>So I start thinking about the business analyst role in agile methodologies, because one of the <a href="http://agilemanifesto.org/">agile manifesto</a> rules said:</p>
<blockquote><p><span>Working software over comprehensive documentation</span></p></blockquote>
<p>If business analysts don’t spend several hours of their working time documenting, modeling and writing about lot of requirements. What are their responsibilities?</p>
<p><strong>The business analyst must collaborate with the team.</strong></p>
<p>As I mention in one of my last posts about <a href="http://agileculture.net/mmastrasso/2009/02/18/the-people-factor-at-software-agile-development/">people factor at agile software development</a>, collaboration between all the team members is essential. Business analyst is the expert on understanding client requirements, he knows what the client is expecting about the system behavior. He will spent more time collaborating with whole team working on how the system will behave instead documenting.</p>
<p>Some projects need to write requirements because organization formality requires it.</p>
<p><strong>How does the business analyst document this without investing too much time on it?</strong></p>
<p>Requirements and specifications are written as user stories. A user story is a description of a requirement, but it is not a full specification.</p>
<p>Besides user stories describe a functionality, this are also useful to prioritize requirements and estimate costs.</p>
<p>Each user story could be code in an iteration or increment, so the specification must be smaller enough to could develop it in a small period of time, but it must be detail enough to estimate the work. Every user story must have acceptance tests attached, allowing the developer to test when the user story is done and also allowing the customer to verify it.</p>
<p>In addition, user stories must avoid dependencies of other stories, but you can combine some of them to deliver in the same iteration.</p>
<p><strong>Which skills are needed to be an agile business analyst? </strong></p>
<p>I mention before that business analyst have to document requirements in a different way, less detailed. So he must learn a new way of writing and documenting.</p>
<p>He also have to improve his communication and collaboration skills because he has the responsibility of translate business requirements to the technical  members team. He is not the unique responsible of making specification, he must work in group and involve other team members in this activity.</p>
<p>If the business analyst have good concepts of software architecture will help to reduce the gap to the development team and the business. He can understand and explain better how the system will be implementing.</p>
<p><strong>Is the business analyst needed in any agile software development?</strong></p>
<p>Some projects don’t need a business analyst,  sometimes a product owner (view my post of <a href="http://agileculture.net/mmastrasso/2009/03/01/an-introduction-to-scrum/">Scrum</a>) is enough. When the project has a grater need of defining requirements and writing specifications is business analyst is added in the agile team. However, including a business analyst can perform the team comprehension requirements.</p>
<p><strong>Conclusion</strong> </p>
<p>Software development processes are changing, any time much more business adopt agile methodologies. The biggest business (like Google, Microsoft, Yahoo) are using Scrum, other business are adopting this or other agile methodologies. They consider that adopting a methodology that give flexibility and quick response to changes is very important.</p>
<p>I think that a good business analyst must work on acquire and improve some skills to be competitive in the actual market. If a business analyst wants to work in a agile software development is completely possible.</p>
<p>He has to learn a bit about agile methodologies and is necessary that he wants to works in groups with cross-functionality. It is a way of sharing experiences and knowledge, this makes it possible to learn from each other.</p>
<p>Come on, it’s not so difficult! <img src='http://agileculture.net/mmastrasso/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://agileculture.net/mmastrasso/2009/03/05/the-business-analyst-role-at-agile-software-development/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
