<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ivar Jacobson International &#187; Process Improvement | Ivar Jacobson International</title>
	<atom:link href="http://blog.ivarjacobson.com/category/process-improvement/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ivarjacobson.com</link>
	<description>The Smart Blog</description>
	<lastBuildDate>Mon, 16 Jan 2012 14:12:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Potential Barriers to the Adoption of Iterative Practices</title>
		<link>http://blog.ivarjacobson.com/potential-barriers-to-the-adoption-of-iterative-practices/</link>
		<comments>http://blog.ivarjacobson.com/potential-barriers-to-the-adoption-of-iterative-practices/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 14:14:24 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Iterative]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=553</guid>
		<description><![CDATA[Understanding the potential barriers to change will help you make the right choices of timing, project, and approach. Some of the more important questions to ask include in the following: How supportive is senior management of the change? The measurements and milestones they establish can easily derail an iterative approach, as is the case when [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-554" href="http://blog.ivarjacobson.com/potential-barriers-to-the-adoption-of-iterative-practices/stopsign/"></a></p>
<p><a rel="attachment wp-att-555" href="http://blog.ivarjacobson.com/potential-barriers-to-the-adoption-of-iterative-practices/stopsign-2/" title="stopsign"><img class="alignleft size-thumbnail wp-image-555" title="stopsign" src="http://blog.ivarjacobson.com/wp-content/uploads/2011/01/stopsign1-150x100.jpg" alt="Potential Barriers to the Adoption of Iterative Practices" width="150" height="100" /></a></p>
<p>Understanding the potential barriers to change will help you make the right choices of timing, project, and approach. Some of the more important questions to ask include in the following:</p>
<ul>
<li>How supportive is senior management of the change? The measurements and milestones<br />
they establish can easily derail an iterative approach, as is the case when they ask even seemingly<br />
innocent questions such as “When will the design be completed?” or “When will requirements be<br />
signed-off?”</li>
<li>What is the scope of your authority to make changes? How much of the development lifecycle<br />
are you responsible for? For example, the requirements might have already been specified in a<br />
format and to a level of detail that would make it more difficult to adopt an iterative approach.</li>
<li>What are the team’s feelings about the changes? How enthusiastic is the team about iterating?<br />
To achieve the transition to iterative development, you will need the support of the team,<br />
especially the other members of the leadership team.</li>
<li>What else does the team have to do? How many other projects and initiatives is the team involved<br />
in? If the team is not focused on and dedicated to the project, the transition to iterative<br />
practices will probably be slower and take more time and energy to complete.</li>
<li>What capability do you need to improve? It is important to understand the capability of the<br />
team and how well the current capability supports the proposed iterative approach. For example,<br />
is there any testing capability in the team? Testing will be needed from the first iteration, which is<br />
often a problem in companies organized around the phases of a waterfall approach.<span id="more-553"></span></li>
</ul>
<p>The ideal characteristics of an iterative project, and an actual project’s characteristics should have: </p>
<ul>
<li>a co-located team,</li>
<li>of less than 10 people,</li>
<li>who are highly-skilled,</li>
<li>and largely self-organizing</li>
<li>who operate with low ceremony,</li>
<li>and who are minimally dependent on outside teams,</li>
<li>with highly-engaged business representatives.</li>
</ul>
<p>These perfect conditions, in fact, almost never exist, but understanding them will help you choose<br />
projects that are better suited to an iterative approach.</p>
<p>When you start your first iterative project, factor the successful adoption of iterative techniques into<br />
the critical success factors for the project and the career development objectives for the team members.<br />
This is especially important if circumstances require an investment in training and mentoring<br />
the team to enable the transformation to take place.</p>
<p>Conventional wisdom suggests that you should choose low-impact, non-critical projects to be the<br />
focus of early change efforts to reduce the change effort’s risk and the potential for failure. The problem<br />
with this is that although these projects are lower risk, their non-criticality usually means that<br />
they are starved for resources and not considered “mainstream” enough to ever be taken seriously as<br />
success stories. This dooms the overall change initiative. Low-priority projects are not visible enough<br />
to engender the support needed to drive the change forward.</p>
<p>Instead you should:</p>
<ul>
<li>Look for a small number of must-do projects that have organizational focus and strong support</li>
<li>Look for projects with a smaller set of stakeholders to keep communication simpler</li>
<li>Look for projects with high internal visibility—ones that would make good success stories</li>
<li>Choose projects that are shortto medium-term in length</li>
<li>Staff the projects with the best people available (respected leaders)</li>
<li>Organize projects to generate short-term wins—divide work into iterations</li>
<li>Keep the project size small in the first few iterations and then scale up</li>
<li>Focus on choosing the right projects and committing resources to them</li>
</ul>
<p>Choosing critical projects sounds risky, but the reality is that only critical projects will get the attention<br />
and resources necessary to succeed. The key is choosing projects critical enough to get resources<br />
but that can start small and then scale up in a controlled way, not becoming too large before the<br />
architecture and technical risks can be brought under control. Scaling up should be targeted for the<br />
Construction phase but not before.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/potential-barriers-to-the-adoption-of-iterative-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Light Weight Software Development Process #2</title>
		<link>http://blog.ivarjacobson.com/light-weight-software-development-process-2/</link>
		<comments>http://blog.ivarjacobson.com/light-weight-software-development-process-2/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:00:38 +0000</pubDate>
		<dc:creator>Pan-Wei Ng</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=485</guid>
		<description><![CDATA[The Software Development Process Challenge *The first post in this series can be read here Before I describe the deck of cards, I’d like to set the stage for using the cards. We can view software development from three time-scales (see Figure 1). Successful software development process is in essence, being able to coordinate the [...]]]></description>
			<content:encoded><![CDATA[<h4>The Software Development Process Challenge</h4>
<p>*The first post in this series can be read <a href="http://blog.ivarjacobson.com/light-weight-software-development-process-using-state-cards/">here</a></p>
<p>Before I describe the deck of cards, I’d like to set the stage for using the cards. We can view software development from three time-scales (see Figure 1). Successful software development process is in essence, being able to coordinate the three time-scales effectively.</p>
<ul>
<li>The broadest time scale covers from the beginning to the end of a software development cycle which is marked by several key business decision making milestones. This is of great interest to stakeholders and decision makers on whether development can proceed or whether the software is suitable for release.</li>
<li>The next time scale breaks the lifecycle into time-periods – months, or weeks, or what is known as an iteration. It is a fixed time-box where a number of target objectives are to be met by a development team. If there are multiple teams, then each team would be assigned their specific set of objectives. This is where team leaders operate.</li>
<li>The lowest time scale is what a team member does. The work done here can be in terms of hours or days depending on the complexity of the work.</li>
</ul>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-490" title="Presentation3" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/11/Presentation31-680x510.jpg" alt="Light Weight Software Development Process #2" width="580" height="410" /></p>
<p><strong>Figure </strong><strong>1</strong><strong>:</strong><strong>The Three Perspectives to </strong><strong>Software</strong><strong> Development.</strong><strong> </strong></p>
<p>A major problem I see in many development organizations is the serious disconnect between the three levels. The objectives set at the higher level do not easily translate to work at lower levels. Lower levels are unable to see their contribution to higher level objectives. There is a  miscommunication between the levels, and poor coordination within the same level, which leads to blockages which should not even happen. We need to solve this.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/light-weight-software-development-process-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stimulating a discussion: Getting to needs</title>
		<link>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/</link>
		<comments>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 13:47:43 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements Management]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[Requirements]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=457</guid>
		<description><![CDATA[One of the frequent questions we are asked is "how can I get the time to explore needs when the business says that it is already done - "it's in the business case", even when it is obviously not complete?  This is actually a pretty common occurrence - nobody wants to take time to understand needs [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-468" title="1176923_50609724" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/10/1176923_50609724-300x225.jpg" alt="Stimulating a discussion: Getting to needs" width="300" height="225" />One of the frequent questions we are asked is "how can I get the time to explore needs when the business says that it is already done - "it's in the business case", even when it is obviously not complete?  This is actually a pretty common occurrence - nobody wants to take time to understand needs because they think it has already been done. <span id="more-457"></span></p>
<p>The best way is to integrate needs analysis into the way that you discover requirements.  As new requirements (and I include user stories as  kind of requirement), make sure you understand what the need is behind it.  Use the questions I mentioned in the <a href="http://www.ivarjacobson.com/event.aspx?id=916">webinar</a> (Getting to Needs: Seeing beyond wants and wishes to find the real source of business results)  to expand your knowledge of why they "need" the system to work that way, and offer alternative solutions as you see them.  The offering of alternatives will stimulate a discussion that will either confirm your understanding of the need or help you refine your understanding.  If the alternative is actually a better way of solving the problem you will demonstrate your understanding of the need as well as help to build a reputation for adding value that will in turn improve your ability to collaborate with your business partners.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/stimulating-a-discussion-getting-to-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attitudes regarding risk and change</title>
		<link>http://blog.ivarjacobson.com/attitudes-regarding-risk-and-change/</link>
		<comments>http://blog.ivarjacobson.com/attitudes-regarding-risk-and-change/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 14:16:50 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[risk mitigation]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=446</guid>
		<description><![CDATA[Most project management approaches address risk in a fairly superficial way: risk mitigation is viewed as an important activity, but one that is largely a distraction from the main effort of the project. Risks are identified at the start of the project, they are usually assiged to someone to address the risks, but these risk-mitigation [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-448" title="risk" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/09/risk-150x100.jpg" alt="Attitudes regarding risk and change" width="150" height="100" />Most project management approaches address risk in a fairly superficial way: risk mitigation is viewed as an important activity, but one that is largely a distraction from the main effort of the project. Risks are identified at the start of the project, they are usually assiged to someone to address the risks, but these risk-mitigation activities are largely viewed as things that take away from the project work. In practice the risks are only identified once and then they are largely forgotten in the large amount of work to be done.</p>
<p>On a traditional project, change is viewed as a bad thing, and great efforts are undertaken to prevent it. Change disrupts the original plan, and it is the plan (and not value delivery) that is sacrosanct on a Traditional project.</p>
<p>Similarly, change must be embraced. Change results from new information, from feedback that something in the original plan will not result in the desired end result. Change is something that will occur as people get new information, but change is a good thing: it means convergence on the right solution.<span id="more-446"></span></p>
<p>Change is not the same as churn - churn results from the business not being clear about what it needs to achieve, or from the lack of a suitable technical solution. Churn is a sign that some basic assumptions about the project have gone horribly wrong, and the project team needs to stop and step back to reassess where it is going.</p>
<p>Aggressively attacking the project’s risk requires the process to be agile, not prescriptive. The project must be able to do whatever is required to address its most important risks and must not be limited in the set of activities that it can apply. For example, if the most important risk facing a project is the integration of several commercial products, then writing the requirements for the integration does not significantly reduce the risk; only the creation of an executable prototype that demonstrates that the products can work together truly addresses risk.</p>
<p>The fundamental problem with conventional waterfall approaches is that they postpone risk mitigation to the point where it can become too costly to recover from the risks. The waterfall approach tends to mask the real risks to a project until it is too late to do anything meaningful about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/attitudes-regarding-risk-and-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Kernel Journals 8: A little help here!</title>
		<link>http://blog.ivarjacobson.com/the-kernel-journals-8-a-little-help-here/</link>
		<comments>http://blog.ivarjacobson.com/the-kernel-journals-8-a-little-help-here/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 20:01:18 +0000</pubDate>
		<dc:creator>Roly Stimson</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Essential Practices]]></category>
		<category><![CDATA[Process Improvement]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=425</guid>
		<description><![CDATA[In the previous kernel journals we have looked at the many practical applications of a process kernel that is based on the key software development entities (known as Alphas) that software projects add value to by progressing through their value states. We have seen that there are many advantages to separating these “whats” (progressions) that [...]]]></description>
			<content:encoded><![CDATA[<h1><span style="font-weight: normal; font-size: 13px;"><img class="alignleft size-full wp-image-426" title="1139527_communicate_3" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/09/1139527_communicate_3.jpg" alt="The Kernel Journals 8: A little help here!" width="266" height="300" />In the previous kernel journals we have looked at the many practical applications of a process kernel that is based on the key software development entities (known as Alphas) that software projects add value to by progressing through their value states. We have seen that there are many advantages to separating these “whats” (progressions) that we are trying to achieve, from the many possible “hows” (software processes and practices) that describe how we might achieve and evidence these progressions, including the ability to set objectives and track progress in a common and consistent way irrespective of what specific practices a project happens to adopt.</span></h1>
<p><span style="font-weight: normal; font-size: 13px;"><span id="more-425"></span><br />
</span></p>
<p>So, our kernel gives projects advice on <em>what</em> to achieve (first / next) without providing any specific guidance on <em>how</em> to achieve it. This is both good (because we are not telling software development teams exactly how to do their job) and bad (because we aren’t giving them any help at all on how to do the things that they have to do).</p>
<p>Clearly there is no shortage of advice out there in the form of the myriad of competing software development processes. But we have seen that they have traditionally suffered from being somewhat monolithic (“all or nothing at all”), and while many contain much useful practice guidance, it is difficult to find and use the specific piece of guidance that we need without getting tangled up in a huge, prescriptive process web of activities to follow and artifacts to produce (and templates to complete).</p>
<p>What we need is a way of accessing process guidance that enables us to find our way straight from <em>what</em> we are trying to achieve here and now (such as establish a shared understanding of the value and scope of a software system) to specific guidance on <em>how</em> we can achieve it (e.g. with use-cases and use-case scenarios).</p>
<p>This is what IJI have done with their EssUP process – provide access to guidance on <em>how</em> to achieve something, that is accessible directly from the progressions that we know our project has to achieve first / next. And we have provided this guidance as a set of modular practices, so that if an organization or project does not like a particular practice (such as the use-case practice), they can “swap it out” and “swap in” a different practice into the same process space instead (such as a traditional declarative-requirements practice or a user-story based practice).</p>
<p>Organizations are now free to choose the balance that is right for them between process consistency and process freedom. At one end of the scale an organization can provide a single set of cohesive practices that provide just one single standard way of achieving all the things that projects need to achieve. At the other end of the scale, they can allow projects to select any “hows” they wish from any practice guidance that is “out there”, and to freely refine and evolve these working practices over time. A project, for example, might choose to scope its system with a use case diagram and then drive the development and test of the system with user stories. Furthermore, as we will see in the next kernel journal, we always know whether the process guidance available to a team “covers all the bases” or not (i.e. whether there are any spaces left in which people are expected to “just wing it”).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/the-kernel-journals-8-a-little-help-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let’s measure the things that really matter</title>
		<link>http://blog.ivarjacobson.com/let%e2%80%99s-measure-the-things-that-really-matter/</link>
		<comments>http://blog.ivarjacobson.com/let%e2%80%99s-measure-the-things-that-really-matter/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 17:51:04 +0000</pubDate>
		<dc:creator>Ian Spence</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[Measurement]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=431</guid>
		<description><![CDATA[As technologists, we tend to collect very detailed information and present it in a very technical way.  We talk about things like process maturity levels, and productivity indexes. I have even seen some measurement data about Agile maturity models that attempt to show how agile we are.  The problem with this kind of approach is [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-434" title="1025ruler" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/09/1025ruler-150x100.jpg" alt="Let’s measure the things that really matter" width="150" height="100" />As technologists, we tend to collect very detailed information and present it in a very technical way.  We talk about things like process maturity levels, and productivity indexes. I have even seen some measurement data about Agile maturity models that attempt to show how agile we are.  The problem with this kind of approach is it doesn’t provide anything that the business and the customers can relate to. </p>
<p>The business does not really care how agile we are, they want to see results.  They want to be able to set targets, see improvements, and understand the benefits and the quality of the results being generated by IT. Only then can they begin to put the value of Agility into context – the context of the value and improvement generated by the move to agility.<span id="more-431"></span></p>
<p>I’ve seen this conundrum many times.  At IJI, we get involved in many Agile transformations –very large scale Agile transformations.  One of the key enablers for success is to be able to demonstrate that things are getting better.  Not just better in the short term, during the first flush of enthusiasm when the A players are adopting the new techniques, but in the long term as we continue on our journey of continuous improvement - seeing improvements in every quarter, every six months, and every year.  Large scale Agile transformations are not things that happen in a few weeks.  You start to put things in place and then you continue to improve, inspect and adapt as you go forward.</p>
<p>You need a way to make visible where you are and where you are going.  You need to do it in a way that everybody understands. </p>
<p>What we see is that most measurement programs do not really achieve those kinds of goals.  A lot of them add very little value.  People look at the wrong things. They have lots of numbers, lots of quantitative measures but very few qualitative measures. They tend to measure the things that are easy to count rather than the things that are important. They tend to collect secondary rather than primary measures. For example rather than measuring, and communicating, the quality levels of the software produced, they will tell you the defect detection rate. Rather than measuring the effect of agility they will measure the number of people who think they’re agile. This leads to the classic question being asked by the business; “OK, now we’re all agile what difference has it made?”  </p>
<p>There is also too much focus on short-term rather than long-term measures. Remember, the transformation is likely to take more than a few months and you need to be able to show continuous improvements and not just the initial impact of introducing the new ways-of-working.</p>
<p>You need to find a set of measures where things are very intuitive; where everyone can understand the measures without having to have a training course or deep knowledge of IT. You need simple measures where the direction of improvement is clear. The best measures are simple and easy to understand.  They are not complex derived measures; they are not indexes that take into account project length, cost over-runs and things like that.  They are not measures based on theories that are not based on anything.</p>
<p><strong><a href="http://www.ivarjacobson.com/event.aspx?id=642">Let’s measure the things that really matter.</a>  Let’s look at the effects, as well as the causes.  Let’s make sure we have evidence that Agile is a better, faster, cheaper, and happier way of working than what has gone before.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/let%e2%80%99s-measure-the-things-that-really-matter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Are you ready for iterative development?</title>
		<link>http://blog.ivarjacobson.com/are-you-ready-for-iterative-development/</link>
		<comments>http://blog.ivarjacobson.com/are-you-ready-for-iterative-development/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 13:31:26 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Iterative]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=396</guid>
		<description><![CDATA[Iterative development is simple in concept: it is simply breaking a large project down into a series of smaller projects that deliver value in smaller steps. The hard thing about adopting it is that it requires the project team members and stakeholders to adopt a new set of attitudes and behaviors about how they work [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-397" title="Simplicity - One step at a time" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/08/images.jpg" alt="Are you ready for iterative development?" width="168" height="144" />Iterative development is simple in concept: it is simply breaking a large project down into a series of smaller projects that deliver value in smaller steps. The hard thing about adopting it is that it requires the project team members and stakeholders to adopt a new set of attitudes and behaviors about how they work together to achieve a common goal. This requires subtle but significant changes on the part of all participants, especially if they have been working on conventional projects for many years. In short, these changes include the following:</p>
<p>A new attitude is required regarding the way that projects deliver business value. The project team must start to focus on delivering immediate and realizable value back to the business.</p>
<p>A new attitude is required toward uncertainty and change: teams must recognize that change happens and there are always uncertainties, so in order to be successful they must purposefully work to manage change and reduce uncertainties.<span id="more-396"></span></p>
<p>A new attitude is required regarding team working and accountability. The project teams will • need to be assembled and encouraged to interact in new ways.</p>
<p>Most significantly, a new, more progressive attitude is required for the estimation, planning, and management of the project itself.</p>
<p>With new attitudes in place, the adoption of iterative development practices becomes easier. If the project team and stakeholders have the wrong attitudes toward iteration the early iterations are more likely to produce personal friction than project progress, in some cases generating enough opposition to prevent the project from being able to produce effective results.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/are-you-ready-for-iterative-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De wereld van Practices &#8211; Wat is een Practice?</title>
		<link>http://blog.ivarjacobson.com/de-wereld-van-practices-wat-is-een-practice/</link>
		<comments>http://blog.ivarjacobson.com/de-wereld-van-practices-wat-is-een-practice/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 13:59:09 +0000</pubDate>
		<dc:creator>Eric Lopes Cardozo</dc:creator>
				<category><![CDATA[Essential Practices]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[EssWork]]></category>
		<category><![CDATA[practice framework]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[process kernel]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=337</guid>
		<description><![CDATA[Bij IJI staan we een practice-gedreven aanpak voor. Zoals met veel concepten en principes geldt ook hier dat een goed begrip van wat ermee wordt bedoeld essentieel is om er echt de vruchten van te plukken. Een manier om daar invulling aan te geven is om te kijken naar criteria waaraan je een goede practice [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-391" title="IJhoneycomb" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/08/IJhoneycomb-300x275.jpg" alt="De wereld van Practices   Wat is een Practice?" width="171" height="141" />Bij IJI staan we een practice-gedreven aanpak voor. Zoals met veel concepten en principes geldt ook hier dat een goed begrip van wat ermee wordt bedoeld essentieel is om er echt de vruchten van te plukken. Een manier om daar invulling aan te geven is om te kijken naar criteria waaraan je een goede practice kunt herkennen. Maar voor we dat doen, is het goed om eerst te kijken naar de definitie en kenmerken van een practice en een practice-gedreven aanpak.</p>
<p>Onder een practice-gedreven aanpak verstaan we onder meer “het samenstellen van een effectieve manier van werken op basis van relevante procescomponenten”. In plaats van moeizaam te proberen een procesraamwerk toe te snijden op een specifiek project draaien we het om; we selecteren alleen relevante procescomponenten en assembleren die tot een consistent proces. En zo’n procescomponent noemen we dan een practice. <a title="Use Case Essentials" href="http://www.ivarjacobson.com/practices/use_case_essentials/" target="_blank">Use Cases</a>, User Stories en<a title="Iterative Essentials" href="http://www.ivarjacobson.com/practices/iterative_essentials/" target="_blank"> Iteratief ontwikkelen</a> zijn enkele voorbeelden van practices. Andere voorbeelden zijn Operationaliseren Systeem en Datamigratie. In deze context is het ultieme doel van een practice-gedreven aanpak “betere resultaten boeken met softwareontwikkeling”. Hierbij kun je dan denken aan betere software, goedkoper, sneller en een prettigere manier van werken.<span id="more-337"></span></p>
<p><em> </em></p>
<p>Een practice-gedreven aanpak vraagt om met een andere bril naar de totstandkoming en het gebruik van ontwikkelprocessen te kijken zodat tal van problemen worden opgelost die ons er vaak van weerhouden om echt succesvol te kunnen zijn. Deze problemen en de uitweg zijn goed beschreven in het artikel <em><a title="Enough Proces, Let's do Practices" href="http://www.ivarjacobson.com/resource.aspx?id=299" target="_blank">Enough Proces, Let's do Practices</a></em>. Het komt er kortweg op neer dat organisaties en projectteams daadwerkelijk en van dag tot dag baat moeten hebben bij een ontwikkelproces. Het komt namelijk nog vaak voor dat een ontwikkelproces niet wordt gevolgt of dat het eerder een blok aan het been is. Ook kan het zijn dat de implementatie van een procesraamwerk als geheel gewoon te veel vraagt van een organisatie of te weinig oplevert.</p>
<p>Anders kijken naar het verzamelen en delen van kennis is een deel van de oplossing. Stel je eens voor dat je:</p>
<ul>
<li>Op een elegante manier de kennis van duizenden ervaringsdeskundigen kunt ontdekken, verzamelen en vastleggen.</li>
<li>Kennis supertoegankelijk kunt maken.</li>
<li>Zeer snel toegang krijgt tot de kennis die je nodig hebt, alleen die kennis, wanneer je het nodig hebt en niet eerder.</li>
<li>Teams in staat stelt om met behoud van controle hun eigen innovatieve manier van werken samen te stellen, helemaal toegesneden op de behoefte.</li>
<li>Stapsgewijs procesverbetering mogelijk maakt zodat risico’s worden geminimaliseerd.</li>
<li>Nieuwe werkwijzen zeer eenvoudig kunt verweven met bestaande zodat je het goede kunt behouden en het nieuwe eerst op kleine schaal in de praktijk kunt beproeven.</li>
</ul>
<p>Een practice-gedreven aanpak maakt dit allemaal mogelijk.</p>
<p>Volgens de definitie is een practice een manier om op systematische en verifieerbare wijze een specifiek aspect van een probleem op te lossen. Enkele kermerken van een goede practice zijn:</p>
<ul>
<li>Een duidelijke focus op een specifiek aspect van softwareontwikkeling</li>
<li>Een aanpak om een probleem te duiden en de strategie om het probleem op te lossen</li>
<li>Instructies om te verifieren dat het probleem daadwerkelijk is opgelost en,  indien relevant, een beschrijving van welk ondersteunend bewijs hiervoor benodigd is</li>
<li>Een beschrijving van hoe de te volgen strategie in de dagelijke praktijk moet worden uitgevoerd.</li>
</ul>
<p>Hierbij is het verder belangrijk om te weten dat een practice:</p>
<ul>
<li>Niet beoogt om een probleem in zijn geheel op te lossen.</li>
<li>Daadwerkelijk door iemand in de praktijk kan worden uitgevoerd.</li>
<li>Een helder begin en eind heeft.</li>
<li>Een element van verificatie in zich heeft en zonder eigenlijk niet compleet is.</li>
</ul>
<p>Simplistisch voorgesteld beschrijft een practice: wat moet worden geproduceerd, hoe je dat moet doen en welke bekwaamheden je daarvoor nodig hebt. En zou je in <a title="EssWork" href="http://www.ivarjacobson.com/process_improvement_technology/esswork/" target="_blank">EssWork</a> naar bijvoorbeeld de <a title="Use Case Essentials" href="http://www.ivarjacobson.com/practices/use_case_essentials/" target="_blank">Use Case Essentials</a> practice kijken, dan zul je zien dat een practice meer informatie kan bevatten zoals een workflow, hints en tips, veel gemaakte fouten, beschrijvingen van concepten en compleetheidscriteria.</p>
<p>Het simpelweg verzamelen van essentiële informatie maakt een practice echter nog geen goede practice. Met name de focus op een specifiek aspect van softwareontwikkeling (of teamwork) is zeer relevant. Deze focus kunnen we concreet maken door goed te letten op het onderwerp van een practice en het aandachtgebied waarbinnen een practice zich begeeft.</p>
<p>Binnen softwareontwikkeling kan een practice zich richten op drie aandachtsgebieden, de klant (customer), de oplossing (solution) en de inspanning (endeavour).</p>
<p><strong>Customer </strong>– Ieder software project heeft een klant en ieder process dient het perspectief van die klant mee te nemen om ervoor te zorgen dat de juiste oplossing wordt ontwikkeld.<strong> </strong></p>
<p><strong>Solution</strong> – Ieder software project dient werkende software op te leveren en ieder process dient te een team een set van werkwijzen te bieden die het team helpt om op productieve en constructieve wijze goede kwaliteit software te ontwikkelen.<strong> </strong></p>
<p><strong>Endeavor</strong> – Softwareontwikkeling is een serieuze aangelegenheid die normaliter vele weken in beslag neemt, vele verschillende belanghebbenden raakt en meestal een team van specialisten vereist. Ieder practisch process dient een set werkwijzen te bieden voor het effectief plannen, leiden en bewaken van de benodige inzet van het team.</p>
<p>De onderstaande figuur geeft een overzicht van onder andere de werkproducten en activiteiten van de<a title="Use Case Essentials" href="http://www.ivarjacobson.com/practices/use_case_essentials/" target="_blank"> Use Case Essentials </a>practice.</p>
<div id="attachment_374" class="wp-caption aligncenter" style="width: 407px"><img class="size-full wp-image-374 " src="http://blog.ivarjacobson.com/wp-content/uploads/2010/08/UC-Essentials-Overview1.png" alt="De wereld van Practices   Wat is een Practice?" width="397" height="255" title="De wereld van Practices   Wat is een Practice?" /><p class="wp-caption-text">Use Case Essentials Overview</p></div>
<p>Wat bij nadere bestudering opvalt is dat alle activiteiten en werkproducten geel van kleur zijn. Dit betekent dat ze allemaal binnen het aandachtsgebied <em>Solution</em> vallen. Waren ze groen geweest, dan zouden ze binnen het aandachtsgebied <em>Customer</em> zijn gevallen of het aandachtsgebied <em>Endeavour</em> wanneer ze blauw zouden zijn geweest.</p>
<p>Samengevat geldt dat bij een goede practice alle werkproducten en activiteiten ultiem binnen één aandachtsgebied vallen. Uitzonderingen zijn mogelijk of soms noodzakelijk om de practice te kunnen laten werken. Zo kent de <a title="Architecture Essentials" href="http://www.ivarjacobson.com/practices/architecture_essentials/" target="_blank">Architecture Essentials</a> practice een <em>Coach Team</em> activiteit (Endeavour) om ervoor te zorgen dat een team zich een software architectuur goed eigen kan maken.</p>
<p>Behalve een eenduidig aandachtsgebied is er nog een manier om een practice een goede focus te geven en dat is het onderwerp van de practice. Een goede practice heeft ultiem één en soms een beperkt aantal onderwerpen. Een heel specifiek onderwerp van de Use Case Essentials practice is de <em>Use Case Module</em>, zie ook de onderstaande figuur.</p>
<div id="attachment_338" class="wp-caption aligncenter" style="width: 391px"><img class="size-full wp-image-338" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/07/UseCaseModule.png" alt="De wereld van Practices   Wat is een Practice?" width="381" height="253" title="De wereld van Practices   Wat is een Practice?" /><p class="wp-caption-text">Use Case Module Practice Card</p></div>
<p>In het kort is een Use Case Module een set van flows of delen van een use case die gezamenlijk door het ontwikkelproces gaan. Aan de linkerkant van de bovenstaande practice card staat een state machine of toestandsdiagram die de levenscyclus van een Use Case Module gedefinieerd. De figuur laat zien dat een Use Case Module vijf toestanden kent.</p>
<p>Op <strong>Scoped</strong> moet duidelijk zijn welke use-case flows, special en supplementary requirements de use case module omvat.  Op <strong>Specification Agreed</strong> moet er overeenstemming zijn over de inhoud van de Use Case Module. Op <strong>Realized</strong> moet duidelijk zijn welke componenten op welke manier gaan samenwerken om tot een executeerbaar systeem te komen. Op <strong>Implemented</strong> moet de Use Case Module executeerbaar zijn. Tot slot moet op <strong>Verified</strong> de executeerbare Use Case Module voldoen aan de specificatie.</p>
<p>De mogelijke toestanden van de Use Case Module maken inzichtelijk in welke volgorde de Use Case Module door het ontwikkelproces gaat. Of anders gezegd, op welke manier stapgewijs voortgang kan worden geboekt. Een onderwerp van een practice noemen we ook wel een <em>Alpha</em>. Alpha’s zijn die dingen die een softwareproject altijd heeft, ongeacht het type project of de aanpak. Verder zijn Alpha's ook niet tastbaar en zijn werkproducten nodig om er iets over te kunnen zeggen. Practices geven als het ware invulling aan Alpha’s. Alpha hebben ook verband naar planning en beheersing; ze geven inzicht in waar je bent en welke activiteiten je moet uitvoeren om van de ene toestand naar de volgende toestand te komen. De status van werkproducten vormen hierbij dan de bewijslast waarmee kan worden aangetoond dat een bepaalde status is behaald.</p>
<p>Samengevat geldt dat een goede practice ultiem één Alpha heeft waar alle werkproducten en activiteiten betrekking op hebben. In de praktijk kunnen we hier iets losser mee omgaan om een practice goed te kunnen laten werken.</p>
<p>De eerder getoonde overzichtskaart van de Use Case Essentials practice laat bijvoorbeeld meer Alpha’s zien dan alleen de Use Case Module: Opportunity, Requirements, Change, System, Defect, Test, Project, Risk en Task. Bijna al deze Alpha’s zijn afkomstig uit het model dat onder <a title="EssWork" href="http://www.ivarjacobson.com/process_improvement_technology/esswork/" target="_blank">EssWork</a> zit. Dit practice onafhankelijke model of <em>Kernel</em> maakt het mogelijk om meerdere practices samen te smelten tot een consistent geheel. Met practices kun je dan op relevante plekken Alpha’s aanvullen met relevante informatie, in dit geval use case specifieke zaken. Zo is Change geïntroduceerd om grip te krijgen op wijzigingen. En is System aangevuld met essentiële content in de vorm van mogelijke Changes en één of meerdere Use Case Modules en het inzicht dat deze worden beschreven middels een use case model en supplementary requirements.</p>
<p>Op dit punt aangekomen hebben we de definities en de essentie van practices en een practice-gedreven aanpak en enkele kenmerken van goede practices in het kort behandeld. Uiteraard valt er nog veel meer over te zeggen. Wanneer je meer wilt weten, bekijk dan bijvoorbeeld de video over <a title="Execute Practices" href="http://download.ivarjacobson.com/esswork/3.0/demo/executepractices/executepractices.html" target="_blank">Practice Execution</a> of stuur me een email: <span><a href="mailto:elcardozo@ivarjacobson.com"><span>elcardozo@ivarjacobson.com</span></a></span></p>
<div style="width: 1px; height: 1px; overflow: hidden;"><!--[if !mso]&gt; &lt;!  v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} -->&lt;!--[endif]--&gt;&lt;!--[if gte mso 9]&gt; &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt; Normal 0 false 21 false false false NL X-NONE X-NONE &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt; &lt;![endif]--&gt;<!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-520092929 1073786111 9 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page WordSection1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.WordSection1 	{page:WordSection1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Table Normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&quot;Times New Roman&quot;; 	mso-bidi-theme-font:minor-bidi;} --> &lt;!--[endif]--&gt;</div>
<p class="MsoNormal" style="line-height: normal"><span>De onderstaande figuur geeft een overzicht van onder andere de werkproducten, activiteiten van de </span><a title="Use  Case Essentials" href="http://www.ivarjacobson.com/practices/use_case_essentials/" target="_blank"><span>Use Case Essentials</span></a><span> practice.<span> </span></span></p>
<p class="MsoNormal" style="text-align: center;line-height: normal" align="center"><span> </span><span> </span></p>
<p class="MsoNormal" style="line-height: normal"><span>Wat bij nadere bestudering opvalt is dat alle activiteiten en werkproducten geel van kleur zijn. Dit betekent dat ze allemaal binnen het <strong>Solution </strong>aandachtsgebied vallen. Waren ze groen geweest, dan zouden ze binnen het <strong>Customer</strong> aandachtsgebied zijn gevallen of het <strong>Endeavour</strong> aandachtsgebied wanneer ze blauw zouden zijn geweest. </span></p>
<div style="width: 1px; height: 1px; overflow: hidden;">In het kort is een Use Case Module een set van flows of delen van een use case die gezamenlijk door het ontwikkelproces gaan. Aan de linkerkant van de bovenstaande practice card staat een state machine of toestandsdiagram die de levenscyclus van een Use Case Module gedefinieerd. De figuur laat zien dat een Use Case Module vijf toestanden kent.<br />
Op Scoped moet duidelijk zijn welke use-case flows, special en supplementary requirements de use case module omvat.  Op Specification Agreed moet er overeenstemming zijn over de inhoud van de Use Case Module. Op Realized moet duidelijk zijn welke componenten op welke manier gaan samenwerken om tot een executeerbaar systeem te komen. Op Implemented moet de Use Case Module executeerbaar zijn. Tot slot moet op Verified de executeerbare Use Case Module voldoen aan de specificatie.<br />
De mogelijke toestanden van de Use Case Module maken inzichtelijk in welke volgorde de Use Case Module door het ontwikkelproces gaat. Of anders gezegd, op welke manier stapgewijs voortgang kan worden geboekt. Een onderwerp van een practice noemen we ook wel een Alpha. Alpha’s zijn die dingen die een softwareproject altijd heeft, ongeacht het type project of de aanpak. Practices geven als het ware invulling aan Alpha’s. Alpha hebben altijd verband naar planning en beheersing.Ze geven inzicht in waar je bent en welke activiteiten je moet uitvoeren om van de ene toestand naar de volgende toestand te komen. De status van werkproducten vormen hierbij dan de bewijslast waarmee kan worden aangetoond dat een bepaalde status is behaald.<br />
Samengevat geldt dat een goede practice ultiem één Alpha heeft waar alle werkproducten en activiteiten betrekking op hebben. Net zoals bij de aandachtsgebieden moet hier niet te rigide mee worden omgesprongen om een practice goed te kunenn laten werken.<br />
De bovenstaande overzichtskaart van de Use Case Essentials practice laat bijvoorbeeld meer Alpha’s zien dan alleen de Use Case Module Alpha. Er zijn er behalve de Use Case Module inderdaad nog een aantal: Opportunity, Requirements, Change, System, Defect, Test, Project, Risk en Task. Bijna al deze Alpa’s zijn afkomstig uit het model dat onder EssWork zit. Dit practice onafhankelijke model, of Kernel maakt het mogelijk om meerdere practices samen te smelten tot een consistent geheel. De Alpha’s zijn dus enerzijds toegevoegd om samenwerking met andere practices mogelijk te maken. Anderzijds kunnen practices op belangrijke plekken Alpha’s aanvullen met relevante informatie, in dit geval use case specifieke zaken. Zo is Change geïntroduceerd om grip te krijgen op wijzigingen. En is System aangevuld met essentiële content in de vorm van mogelijke Changes en één of meerdere Use Case Modules en het inzicht dat deze worden beschreven middels een use case model en supplementary requirements.<br />
Op dit punt aangekomen zijn de definities en de essentie van practices en een practice-gedreven aanpak en enkele kenmerken van goede practices besproken. Uiteraard valt er nog veel meer over te zeggen. Wanneer je meer wilt weten, bekijk dan bijvoorbeeld de video over Practice Execution of neem contact op via elcardozo@ivarjacobson.com</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/de-wereld-van-practices-wat-is-een-practice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Kernel Journals 7: SatNav for Software Development Projects</title>
		<link>http://blog.ivarjacobson.com/the-kernel-journals-7-satnav-for-software-development-projects/</link>
		<comments>http://blog.ivarjacobson.com/the-kernel-journals-7-satnav-for-software-development-projects/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 02:12:06 +0000</pubDate>
		<dc:creator>Roly Stimson</dc:creator>
				<category><![CDATA[Essential Practices]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Alphas]]></category>
		<category><![CDATA[Barry Boehm]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[project milestones]]></category>
		<category><![CDATA[Rational Unified Process]]></category>
		<category><![CDATA[Unified Software Development Process]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=345</guid>
		<description><![CDATA[In the last Kernel Journal we looked at the problem that Barry Boehm was aiming to solve back in 1995 when he first proposed his three standard process milestones (which later gained industry prominence as the milestones in the Unified Software Development Process and the Rational Unified Process), namely that “the proliferation of software process [...]]]></description>
			<content:encoded><![CDATA[<p>In the last Kernel Journal we looked at the problem that Barry Boehm was aiming to solve back in 1995 when he first proposed his three standard process milestones (which later gained industry prominence as the milestones in the Unified Software Development Process and the Rational Unified Process), namely that “the proliferation of software process models provides flexibility”, but leaves us “with no common anchor points around which to plan and control.” [Barry Boehm, November 1995]. We looked at how a small set of domain entities with simple state progression models (which we call “Alphas”) can make these common anchor points much more practical and useful while ensuring that they remain process-neutral and do not become “document-driven”.</p>
<p>The alphas, when used with common milestones such as the Unified Process Milestones, can actually give us much more than this – they can provide a project status and health dashboard that can be used by the customer and supplier organizations to assess the current status and health of any / all projects, irrespective of which processes or practices they are following. The graphic below shows just such a dashboard, with a set of kernel alphas and a traffic-light status for each alpha, which is derived by comparing where the project is now (the state machine to the left of each traffic light) with where it needs to be to achieve the next project milestone (the state machine to the right of each traffic light).<img class="alignleft size-medium wp-image-352" title="Presentation2" src="http://blog.ivarjacobson.com/wp-content/uploads/2010/08/Presentation23-300x225.jpg" alt="The Kernel Journals 7: SatNav for Software Development Projects" width="300" height="225" /></p>
<p>In Kernel Journal 5: “Making the Invisible Visible” I described how we can easily “skin” a process kernel, by providing a portal for projects to capture, share and agree the essential project information that is needed to achieve each state progression (for example, using a set of templated Wiki pages). Once we have done this, we can make the alpha dashboard much more useful to the project teams themselves, by flagging which sections of the project portal need to be updated and agreed to get the project to where it needs to go next.</p>
<p>This gives us the equivalent of a Satellite Navigation System for our software projects project that enables us to:</p>
<ul>
<li>Set our journey destination and waypoints (milestones)</li>
<li>Track where we are now, compared to where we want to be</li>
<li>Get guidance on what to do next in order to progress towards our destination.</li>
</ul>
<h1><span style="font-size: small;"><span style="font-weight: normal;"><span style="font-size: xx-large;"><span><strong><br />
</strong></span></span></span></span></h1>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/the-kernel-journals-7-satnav-for-software-development-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Each Iteration Results in a “Release”</title>
		<link>http://blog.ivarjacobson.com/each-iteration-results-in-a-%e2%80%9crelease%e2%80%9d/</link>
		<comments>http://blog.ivarjacobson.com/each-iteration-results-in-a-%e2%80%9crelease%e2%80%9d/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 12:57:53 +0000</pubDate>
		<dc:creator>Kurt Bittner</dc:creator>
				<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Iterative]]></category>

		<guid isPermaLink="false">http://blog.ivarjacobson.com/?p=341</guid>
		<description><![CDATA[To ensure that the project is making progress, each iteration is forced to produce something tangible: a “release.” This release can be: A prototype that is used to demonstrate some specific capability An “internal” release that is used to elicit feedback and that serves as the basis for further development and testing An “external” release [...]]]></description>
			<content:encoded><![CDATA[<p>To ensure that the project is making progress, each iteration is forced to produce something tangible: a “release.” This release can be:</p>
<ul>
<li>A prototype that is used to demonstrate some specific capability</li>
<li>An “internal” release that is used to elicit feedback and that serves as the basis for further development and testing</li>
<li>An “external” release that is shipped to customers in some form</li>
</ul>
<p>The following is our definition of release:</p>
<p><strong>Release: A stable and executable version of a system</strong>.</p>
<p>The production of something executable during each and every iteration is so important to the iterative approach that some people even go as far as to assert that “The goal of an iteration is an iteration release: a stable, integrated and tested, partially complete system.”<span id="more-341"></span></p>
<p>In every iteration, all the software developed by all the teams involved in the project is integrated into a release. This series of releases provides the project with regular technical visibility points where the state of the project as a whole can be considered.</p>
<p>The idea that each iteration produces a release can seem confusing if you think of a release as something that is delivered to people outside the project team. When we use the term “release” we mean something that can be executed and evaluated, including things that are only evaluated internally such as prototypes, as well as external product releases. The early releases are incomplete versions of the system that demonstrate particularly important characteristics required of the system and address the major technical risks facing the project. As the project progresses, functionality is added incrementally<br />
to the software produced by the earlier iterations until sufficient functionality is available<br />
to enable the system to deliver real business value. After this point, subsequent releases can continue to be developed that implement additional capabilities.</p>
<p>An iteration’s release becomes a product release when you decide to release it to an operational environment for unconstrained use by the user community. Many of the releases produced will have the level of quality and completeness required by a product release, but not all will be worthy of release. For example, the release might contain insufficient functionality to be useful to the users, or the users might not be ready to receive the release. Each consecutive release should be marked by:</p>
<ul>
<li>A growth of functionality, as measured by the implementation of additional functionality during the iteration</li>
<li>Higher quality, as measured by a reduction in the number of product defects</li>
<li>Reduced risk, as indicated by estimate fidelity, risk magnitude, and stakeholder confidence</li>
</ul>
<p>When planning an iterative project it is important to understand the purpose of, type of, and audience for the release to be produced by each iteration.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ivarjacobson.com/each-iteration-results-in-a-%e2%80%9crelease%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

