<?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>Conscious Development &#187; agile</title>
	<atom:link href="http://samipoimala.com/it/tag/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://samipoimala.com/it</link>
	<description>Curious perversions from software development</description>
	<lastBuildDate>Wed, 07 Mar 2012 06:53:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Day one at Scanagile</title>
		<link>http://samipoimala.com/it/2009/10/15/day-one-at-scanagile/</link>
		<comments>http://samipoimala.com/it/2009/10/15/day-one-at-scanagile/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 20:31:12 +0000</pubDate>
		<dc:creator>Sami Poimala</dc:creator>
				<category><![CDATA[Conscious development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://samipoimala.com/it/?p=55</guid>
		<description><![CDATA[Here are some highlights from the first day in Scan-Agile conference. Mary Poppendieck &#8211; Leadership and Self-Organizing Teams &#8211; Incompatible or Synergistic? Leader&#8217;s job is to keep the team from their comfort zone! Too often &#8211; espeacially small &#8211; teams are aiming for consensus &#8211; leaving out most of the wisdom that individuals have. The [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some highlights from the first day in <a href="http://www.scan-agile.org">Scan-Agile</a> conference.</p>
<p><span id="more-55"></span><strong>Mary Poppendieck &#8211; Leadership and Self-Organizing Teams &#8211; Incompatible or Synergistic?</strong></p>
<ul>
<li>Leader&#8217;s job is to keep the team from their comfort zone!<br />
Too often &#8211; espeacially small &#8211; teams are aiming for consensus &#8211; leaving out most of the wisdom that individuals have. The leader has to ask unpleasant questions.</li>
<li>What differentiates a team from a workgroup is &#8216;common purpose&#8217;.<br />
A workgroup or committee is a group of people doing work together &#8211; but they don&#8217;t necessarile have the same goal. A team by definition is a group of people working together towards a shared vision or goal &#8211; common purpose.</li>
<li>Teams are dependant on their ability to make good decisions. And good decisions need:<br />
1) Diversity of opinions &#8211; all people participate in decision making<br />
2) Independence &#8211; team members may not be dependant on each other<br />
3) Decentralization &#8211; tema members are needed to have different specializations<br />
4) Aggregation &#8211; team must be able to draw conclusion from diverse opinions that come from different expertises</li>
<li>Team need two kinds of leadership:<br />
Competence leadership &#8211; like a master teacher who tells you how to play violin<br />
Product champion- like a  band leader wo is guiding the whole group</li>
<li>Competence leader assists in specialization while product champion helps in aggregation</li>
<li>There are two types of management: 1) Mission command and 2) Detailed command</li>
<li>In agile and lean development, mission command is what we need.</li>
<li>Mission commanders job (leader) is to<br />
1) State intent<br />
2) Set the tone &amp; tempo<br />
3) Make better people<br />
4) Improve the system</li>
<li>Always consider the cultural aspects of any organization and remember that different countries have totally differnet biases on what&#8217;s acceptable and what&#8217;s not.</li>
<li>When reading ANY theory, always consider in what country the author was raised up.</li>
<li>Lean originates from Japan, Agile originates from US</li>
</ul>
<p><strong>Jim Coplien &#8211; Why Lean and Agile are in conflict, and how to resolve the conflicts</strong></p>
<ul>
<li>Scrum is not about some fancy practises</li>
<li>Even the much touted Nokia test doesn&#8217;t guarantee real, suscesful Scrum implementation</li>
<li>Lean is meant to deal with complicated things while agile is meant to deal with complex things</li>
<li>Productivity is actually waste! It causes queues and inventories. You need to concentrate on ROI and the flow of value through the whole stream</li>
<li>Agile is about &#8220;doing just enough to get just enough quality&#8221; while lean is about &#8220;doing the least you can to achieve excellence&#8221;</li>
<li>Irritating fact, that seems amazingly commonly to be surprise: A hope is not a plan.</li>
<li>Scrum is not about 30% not even 100% of improvement. It&#8217;s about 2-3 orders of magnitude improvement when done correctly</li>
</ul>
<p><strong>Petri Heiramo &#8211; Scrum from the customer point of view</strong></p>
<ul>
<li>First impressions: weird terminology and a little common ground</li>
<li>Key benefits<br />
1) Improved communication<br />
2) Better visibility<br />
3) Enabling changing requirements<br />
4) Faster feedback<br />
5) Building quality in<br />
=&gt; Higher ROI</li>
<li>Success and value cannot be managed through cost. Instead, focus on<br />
1) User research&amp;business analysis<br />
2) Competence &amp; motivation of team members<br />
3) Amount of knowledge generated in every iteration<br />
4) Ability to incorporate cost<br />
=&gt; Focus on value</li>
<li>Research is completely different from development. You cannot estimate research.</li>
<li>Start from the definion of value and aim only towards generating more of it</li>
<li>Software should not be buyed be spec but by a vision instead.</li>
<li>Buying on spec causes higher cost, lower value and loss of knowledge between different phases of the project</li>
<li>You need continuous integration at project level, especially on multi-supplier projects</li>
<li>Never fix scope on a contract, even if cost and duration are fixed</li>
<li>Enable changes and early termination</li>
<li>The finnish acquisiotion law actually do not state you need waterfall. It especially makes it possible to avoid so called &#8220;open conduct&#8221; and use a &#8220;negotiative conduct&#8221; instead whenever the nature of purchase is such that the requiremetns cannot be clearly stated beforehand.</li>
</ul>
<p><strong>Karl Scotland &#8211; Five steps to kanban</strong></p>
<ol>
<li>Map the value stream</li>
<li>Visualize it</li>
<li>Limit work in progress</li>
<li>Establish cadence (pull system doesn&#8217;t need timeboxing!)</li>
<li>Reduce the kanban tokens</li>
</ol>
<ul>
<li>You need to keep the work flowing, not the workers busy</li>
<li>Ideally, development of a new feature doesn&#8217;t start before customer has paid for it.</li>
<li>Visualize the work in progress and gradually limit the number of work items in progress</li>
<li>Ideally the whole team works on a single story all the time.</li>
</ul>
<p><strong>Ari Tikka &#8211; Understanding power</strong></p>
<ul>
<li>&#8216;Power distance&#8217; is an important aspect of everyday life</li>
<li>It&#8217;s easy to be dependant on other people<br />
- The other will take care of me<br />
- I don&#8217;t have to decide<br />
=&gt; A tempting trap</li>
<li>Use of power is often constraining the system. There are two types of constraining.</li>
<li>Productive constraining. Like timeboxing &#8211; constrains the time axis</li>
<li>Bad constraining. Like micro-management that amplifies power distance and adds friction. Or conflict avoidance, which results in weaker decisions.</li>
</ul>
<p><strong>Bonus Panel &#8211; why bother with agile?</strong></p>
<p>The discussion went &#8220;a bit&#8221; off-topic, but interested discussion whatsoever <img src='http://samipoimala.com/it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li>Agility started from software development, now we need to get higher in the corporate culture</li>
<li>Agile practises have worked long time, long before agile was a buzzword.</li>
<li>The only companies that will survive are those capable of changing rapidly</li>
<li>We are pretty good at looking into the future &#8211; but too often forget that the future will not stay the same!<br />
Also, we feel unpleasant to look back into the past &#8211; which is where we could learn</li>
<li>Waterfall has itäs place and works in simple projects. Complex projects are where you need something more and agility <em><strong>may</strong></em> work. In chaotic circumstances nothing will survive.</li>
<li>The biggest mistake we made was to plan year-long projects at the day-level detail.</li>
<li>The trend is towards smaller teams, where everyone is required to participate in decision making. There&#8217;s no room for just hanging around.</li>
</ul>
<p>Of course, you can <a href="http://twitter.com/#search?q=%23scanagile">follow what is going on on Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://samipoimala.com/it/2009/10/15/day-one-at-scanagile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-competence required today</title>
		<link>http://samipoimala.com/it/2009/09/30/multi-competence-required-today/</link>
		<comments>http://samipoimala.com/it/2009/09/30/multi-competence-required-today/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 21:04:28 +0000</pubDate>
		<dc:creator>Sami Poimala</dc:creator>
				<category><![CDATA[Conscious development]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://samipoimala.com/it/?p=30</guid>
		<description><![CDATA[Today&#8217;s software development is more challenging than ever. Yes, in some part it&#8217;s a lot easier with higher generation tools compared to assembly languages, but I claim that requirements have raised even faster than the abstraction level in tooling. Technological competence &#8211; programmer My Colleaque Jouni had a nice post about what you need to [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s software development is more challenging than ever. Yes, in some part it&#8217;s a lot easier with higher generation tools compared to assembly languages, but I claim that requirements have raised even faster than the abstraction level in tooling.<span id="more-30"></span></p>
<p><strong>Technological competence &#8211; programmer</strong></p>
<p>My Colleaque <a href="http://www.heikniemi.net/hardcoded/2009/07/learning-calendar-for-microsoft-developers-2009-2010/">Jouni had a nice post </a>about what you need to learn in coming year if you are a Microsoft developer. Another colleaque, Aki, posted a nice summary of what expertise every <a href="http://akibjorklund.com/2009/areas-of-expertise">web developer should possess</a>.</p>
<p>These are nice summaries, but they still leave a lot of important skills out. Aki&#8217;s post for example leaves the server-side untouched. Usually, you don&#8217;t write xhtml and css without some kind of server technology, be it Java, .NET, Php, Ruby, Python or whatever. Each of these technologies come with their own surroundings. Let&#8217;s take .NET (the one I know best), you need to know a language (C# for example), the web framework (ASP.NET, in web forms or mvc flavor, preferably both), the huge class library (BCL) etc. Sure, you need to be competent in some data access technology (like Entity Framework, NHibernate) and seldom do you make it without touching a DBMS (like Sql Server, Oracle etc).</p>
<p>And if you really want be a competent guy, you surely do make use of unit testing, inversion of control, be familiar with collaboration envinronments and configuration management systems, handle the application server and it&#8217;s configuration, &#8230;</p>
<p><strong>From programmer to developer</strong></p>
<p>After you handle all this, it merely makes you a decent programmer. Once you get there, you need to crasp a good understanding of development methogologies and patterns, have understanding of project management and teamwork, understand the basics of software business and handle all the numerous social occasions in front of angry customers you are thrown into when something has gone wrong.</p>
<p>Understand these things, and you&#8217;ll be a good software developer.</p>
<p><strong>From developer to organizational champion</strong></p>
<p>So the days of &#8220;pure C++ developer&#8221; are long gone. You need to handle multiple technologies and understand your craft thoroughly. And one of the biggest challenges to typical programmers is to accept that programming should be the last resort to solve a problem. Most often, there are better and cheaper solutions. And when you advance in your career from mere programmer, you begin to see more and more problems.</p>
<p>All this makes me wonder, what is the point in being in business like this? For me the answer is obvious: software development is all about learning. If you are not willing to learn, software development is not for you. If you love to learn stuff all the time, enjoy the neverending journey! And as correctly executed agile development emphasizes learning, it is perfect fit. And what does agile have to do with competence? Read on&#8230;</p>
<p><strong>Cross-functional teams come from&#8230; multi-competent people!</strong></p>
<p>Yes, you could make Scrum team from one tester, three programmers, one technical writer and one project manager. But do yo think a team like that would work efficiently? I guess not. Traditionally, each person has a stigma in her forehead: &#8220;I&#8217;m a tester&#8221;, &#8220;I&#8217;m a DBA&#8221; or so. My claim is that this very specialization is the biggest obstacle to productivity. I&#8217;ve way too often witnessed value streams that go like this:</p>
<ol>
<li>Project manager (PM) listens to the customer (C)</li>
<li>PM tells the requirements to the programmer (P)</li>
<li>P implements the functionality</li>
<li>PM tells user interface designer (UID) the requirements</li>
<li>UID makes his part and notes that P should make some changes</li>
<li>PM tells P to make some changes<br />
&#8230;</li>
<li>Finally PM meets the C only to find out that both P and UID had implemented something that doesn&#8217;t please the C so let&#8217;s start from 2<br />
&#8230;</li>
<li>Repeat this cycle n times and start wondering, why we are not making profit.</li>
</ol>
<p>If we had a <em>perfect</em> human in the sense that she had all the skills of PM, P and C there would undoubtedly be no problems (of course there would, but those could be solved immediately). But we do not have perfect humans, so we need to have people with different skill sets. So here is our formula to productivity: <em><strong>The more distinct the skill sets of team members, the lower the productivity will be.</strong></em> Or the converse: <em><strong>The more diverse skill sets team members possess, the more productive team will be.</strong></em></p>
<p>As we know, each handoff to a different person needs knowledge transfer, which in turn is costly. And the more distinct skill sets, the more handoffs there will be. This can also be seen as the classic debate, <a href="http://personalbrandingblog.wordpress.com/2009/01/02/in-2009-become-a-generalist-and-a-specialist-to-keep-your-job/">generalists vs. specialists</a>.</p>
<p>I&#8217;m not saying that there&#8217;s no use to specialized expertise. What I&#8217;m saying is that general competence should be the norm and specialists are extra. What did you learn today?</p>
]]></content:encoded>
			<wfw:commentRss>http://samipoimala.com/it/2009/09/30/multi-competence-required-today/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

