<?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>Master Story Teller</title>
	<atom:link href="http://masterstoryteller.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://masterstoryteller.co.uk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 19 Nov 2010 14:56:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Feeding the Story Monster</title>
		<link>http://masterstoryteller.co.uk/2010/11/19/feeding-the-story-monster/</link>
		<comments>http://masterstoryteller.co.uk/2010/11/19/feeding-the-story-monster/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 14:56:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Storytime]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=163</guid>
		<description><![CDATA[Many things are taken for granted with Agile. One of those things is that there is a product owner who:

Is      co-located
Is      always available
Knows      everything
Can      make decisions
Can      prioritise
Knows    [...]]]></description>
			<content:encoded><![CDATA[<p>Many things are taken for granted with Agile. One of those things is that there is a product owner who:</p>
<ul>
<li>Is      co-located</li>
<li>Is      always available</li>
<li>Knows      everything</li>
<li>Can      make decisions</li>
<li>Can      prioritise</li>
<li>Knows      how to write user stories</li>
<li>Can      see the ‘wood for the trees’ (is comfortable with abstraction)</li>
<li>Can      imagine a future way of working</li>
</ul>
<p>A person with these qualities does not exist on the project I’m working on at the moment. I doubt anybody’s working on a project with somebody like that; if you are – work hard to get a contract extension because that’s as good as it gets.</p>
<p>Product owners are not requirements engineers, nor do they want to be. If we, as the delivery team, sit back and wait for a prioritised and properly sized set of stories to arrive in time for our planning game, we are going to be frustrated. This is a ‘push’ model; the requirements people <em>push</em> us the stories. What do we do if the stories aren’t coming through? Well, then we have to use a ‘pull’ model to get the stories into the planning game.</p>
<p>The business knows what they want; up to a point. As far as they are concerned, they have told us what they want. It’s not enough for delivery to get on and build it, but it’s certainly a good start. We say ‘where are the requirements?’ They say ‘you know what we want.’ So what’s the problem? The problem is the devil is in the detail.</p>
<p>If we don’t have enough detail, we need to model the scenarios, look at the data, consider the alternatives, come up with our best recommendation of how the system should behave and then present the business with the findings. So, a <em>pull</em> approach to getting stories into the backlog, when the cupboard is looking bare, is you do the modelling and scenario work upfront, then you have a conversation and then you get agreement to feed the sprint.</p>
<p>The sprint is a hungry story monster that needs to be constantly fed with good quality stories. The business can get bogged down in stories, value, priorities, acceptance criteria and release plans. It’s hard. The analysts in the delivery team need to offer the business analysts/product owners a hand – whatever it takes to get the job done.</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/11/19/feeding-the-story-monster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Case for the Analyst Draftsman</title>
		<link>http://masterstoryteller.co.uk/2010/11/05/the-case-for-the-analyst-draftsman/</link>
		<comments>http://masterstoryteller.co.uk/2010/11/05/the-case-for-the-analyst-draftsman/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 11:12:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Big picture]]></category>
		<category><![CDATA[Evolutionary Agile]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=159</guid>
		<description><![CDATA[ Software engineering tries to excuse itself for problems of delivery by saying that it’s a young discipline so it can’t be expected to get it right yet. But software engineering has been going for 50 years or more, and in the same time, if bridge engineering hadn’t managed to get its act together people would still be using ferries to get across rivers; they would have concluded it couldn’t be done.]]></description>
			<content:encoded><![CDATA[<p>Real old style engineering, for building things like a steel bridge over a river, is different from building a software application because you can see and touch a bridge whereas software is invisible. If somebody tells you they are making good progress, you pretty much have to believe them. You only find out when the delivery date floats by, the code is buggy and won’t run, or the users refuse to use it because it doesn’t do what they need it to do that you’ve been a victim of what I call the ‘tyranny of optimism’ (which can be understood as ‘don’t worry, somebody else knows what is going on’).</p>
<p>Software engineering tries to excuse itself by saying that it’s a young discipline so it can’t be expected to get it right yet. But software engineering has been going for 50 years or more, and in the same time, if bridge engineering hadn’t managed to get its act together people would still be using ferries to get across rivers; they would have concluded it couldn’t be done.</p>
<p>There have obviously been software successes. It’s said the computing power in the Nasa rocket to the moon was much less than the machine I’m using to write this. Some teams are better at delivering software than others. How would it be if some bridge builders built bridges that stayed up while others built bridges that fell down. If you needed a bridge built you’d know where to go – to the successful team.</p>
<p>It’s easy to know if a bridge is successful (i.e. it doesn’t fall down), it’s easy to see what progress is being made over time and it’s easy to know if the bridge is going to come in on budget . If you were on the team whose bridges kept falling down, you would probably go and see what the successful teams were doing that was so different from what you were doing. Instead of working from a drawing scribbled on the back of a cigarette pack, you might find they had a good cohesive set of engineering diagrams and conclude that these were prerequisites of project success.</p>
<p>In the days of old, it wasn’t the bridge architect that drew the diagrams, it was the draughtsmen. Draughtsmen were the power behind the creative vision. Draughtsmen studied long and hard to learn their craft. Draftsmen would sanity check a design. They would ensure the maths were right and the bridge wouldn’t collapse. They figured out how much steel and how many rivets to buy, they drew diagrams that explained the order in which things needed to be built. They drew the bridge from different angles, they drew it from the top and from the side to provide perspectives.</p>
<p>Software engineering needs good drawings. Up until now good diagrams have defeated the software engineering community. The state of the art can describe approximately what they should look like, but the state of the practice is to forget them all together. In the old days we used to use Data Flow Diagrams (DFDs) and other arcane representations. Programmers found they were of no use. There was no way to go from the drawings to the code – so nobody could see the point. Instead, sections of the IT community decided it couldn’t be done, it was a waste of effort so they dreamed up the Agile way of working and somehow this got mis-interpreted as meaning the drawings weren’t important. They never really said that, but it was easy for programmers who always hated doing drawings anyway to interpret it that way. So they didn’t do any drawings, they didn’t believe in capturing the requirements upfront, they just believed in programmers getting their heads down and working as a band of heroes to somehow build software systems in a warm fuzzy collaborative environment where the requirements would simply present themselves as a consequence of the programmers building something and showing it to the users. Think about it – what I’m describing is a process where the making of the diagrams is too hard, so nobody bothered. And if that had worked we’d see the crisis in IT project delivery solved, but that hasn’t happened.</p>
<p>By the model described in this paper, Agile can be broken down into Agile Delivery (writing code and sprints etc.) and Agile Requirements. Agile Requirements is an approach that requires the breadth of the requirements to be articulated. It does not require the depth of the requirements to be articulated in advance; depth (or detail) can be deferred on a ‘need to know basis’. Another way of thinking about this is as a ‘just in time’ approach to requirements representation.</p>
<p>It is possible to draw good diagrams, but it can’t be done without training aimed at doing exactly that. It’s not something you learn on the job. Good drawings are mostly done in UML and are drawn according to internationally recognised standards. The drawings show the system from different perspectives including both data and behaviour. All the drawings are related, they are all cross-referenced and they all tell a different part of the story, but it’s all about the same story and it’s clear how they are related, how one starts where another ends, or how one provides an input to another.</p>
<p>Engineering drawings are divided into static and dynamic models. The important views are:</p>
<ul>
<li>Data      view</li>
<li>Use      case model view (the ‘epic’ view)</li>
<li>Activity      view (or the process models)</li>
<li>The      wireframe view</li>
</ul>
<p>These views are used for a host of purposes. The epic view is akin to the ‘table of contents and is especially useful in:</p>
<ul>
<li>defining      the user stories or iteration stories programmers use to write code      against</li>
<li>informing      release planning</li>
<li>informing      project progress reporting against the project plan</li>
<li>informing      user acceptance testing</li>
<li>defining      ‘done’ i.e. when the system is finished</li>
</ul>
<p>It takes education to produce software engineering diagrams, and it takes training and motivation to read them. To the uninformed a UML engineering diagram might be right or it might be wrong. The uninformed can’t tell the difference between good and bad. Diagrams that are not validated as correct and which do not go on to be used effectively are useless. I’ve coined the term ‘Analyst Draughtsmen’ to describe the people who produce the diagrams. Ideally, two analyst draughtsmen should work together to verify the diagrams one of them produces. The diagrams will go on to be used by the product owner, the project owner, the project manager, the software designer, the architect  the programmers and the coders.</p>
<p>A sufficiently accurate representation of the requirements can be reliably constructed through the application of <em>requirements patterns</em>. All database driven applications are similar at an abstracted level and an understanding of the patterns allows the professional analyst draftsman (or woman) to create a requirements framework very early in a project, typically taking no more than six weeks. The approach taken is both top down and bottom up (meet in the middle) where a requirements framework is created using requirements patterns that are verified with the business through interviews/workshops. All that is required to apply the requisite requirements patterns is a natural language description of the system, ideally a scope document or project mandate. This is sufficient in most cases.</p>
<p>A typical IT team is a group of people educated as programmers and computer scientists brought together and led by business people. The business people receive no training in how they are supposed to manage the IT team. It’s a formula that shouldn’t work – and normally it doesn’t. Too often the project is reduced to mutual recrimination where the business blames IT for failing to deliver and the IT team blame the business for failing to engage with the project. But nobody’s trained the business to manage the IT project – that kind of training is not currently available. This is a big obstacle and a real opportunity for forward thinking educationalists.</p>
<p>In future I envisage a Masters level degree course with two components, the first exists to train business staff to manage IT projects. The second component is for business or technical analysts who want to become analyst draughtsmen. It doesn’t sound particularly high-powered, the role of draughtsman has never attracted great status, but it is where a real difference can be made in representing requirements properly and allowing managers to make informed decisions based on a common language of understanding. The analyst draughtsman is first a technically minded analyst who understands business process and is second an <em>artiste</em> with a CASE tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/11/05/the-case-for-the-analyst-draftsman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comfort Level</title>
		<link>http://masterstoryteller.co.uk/2010/09/23/comfort-level/</link>
		<comments>http://masterstoryteller.co.uk/2010/09/23/comfort-level/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 14:31:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Storytime]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=156</guid>
		<description><![CDATA[Big stories, iteration stories, release stories and tasks. It's one thing to start from scratch greenfield, it's a completely different thing to pick up where somebody else has left off. ]]></description>
			<content:encoded><![CDATA[<p>I’ve already said that my job is to feed the programmers with work in the form of stories. The stories are designed to fit into a one week unit of work. This is useful because it shows that progress is being made. But it’s hard to tailor iteration stories to a week, and it’s even harder when the iteration story is tricky to understand in the broader context of the code to support the full user requirement. I have to understand how the small story fits into the big story – otherwise I can’t be sure the team is building something of business value – I can’t map it back. So, that’s a priority and that’s now done. I have only been able to get it verified lightly by the solution designer, architects and a couple of BA friends. But, no mattter, it’s still helpful and provides a kind of ‘table of contents’ into the wider system. I also did a surreptious end-to-end activity model. I broke it up into sub-activities based on the kind of jobs people actually do now. Activity modelling really works to show how user stories are called sequential to satisfy a particular workflow. And it’s fast. It’s pretty obvious on a high level and the high level is sufficient for this exercise.</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/09/23/comfort-level/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogging vs. Clogging</title>
		<link>http://masterstoryteller.co.uk/2010/09/23/blogging-vs-clogging/</link>
		<comments>http://masterstoryteller.co.uk/2010/09/23/blogging-vs-clogging/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 14:23:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Storytime]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=151</guid>
		<description><![CDATA[I explain my recent silence, or rather come up with a plausible excuse around how sometimes I need some time before I can write something relatively intelligent. ]]></description>
			<content:encoded><![CDATA[<p>I’ve discovered it’s hard to reflect and write on something that’s going on while doing that thing at the same time. I’m working on a big project to build a digital media warehouse covering decades of material. It’s a fascinating project with lots of talented people working to scale Agile and deliver incrementally production tools with demonstrateable advantages to the way new programmes are edited.</p>
<p>My job, as a technical analyst, is to quality control the stories arriving from the requirements team. The ‘stories’ themselves are held as issues in Jira. This illustrates the level at which the stories are broken down, as they are meant to be groomed to fit a single iteration, where an iteration is only one week. So, the stories are low level, and don’t represent business value in themselves. The stories are decomposed from higher user stories, but the link to the complete user stories has not been maintained. My job is to try and make sense of the existing backlog and try to map iteration stories onto the parent story. The other thing I’m tasked with, the over-riding priority, is to get enough stories into the sprint planning meeting to ensure the programmers are fully occupied; the aim being to have visibility over a four week period of upcoming work.</p>
<p>This is a challenging task, and why I’ve been too pre-occupied to write. I know that is no excuse, if somebody writes on a blog, they need to keep it up, or people will lose interest. This is a different style of blog then, a kind of ‘considered’ blog where I need more time to write anything I really want to say. So it’s a ‘clog. That’s it – I’ve become a clogger! After all people in clogs can’t run very fast (I don’t think…)</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/09/23/blogging-vs-clogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where has the Product Owner gone?</title>
		<link>http://masterstoryteller.co.uk/2010/06/24/where-has-the-product-owner-gone/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/24/where-has-the-product-owner-gone/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 13:31:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Evolutionary Agile]]></category>
		<category><![CDATA[Product owner]]></category>
		<category><![CDATA[Scrummy]]></category>
		<category><![CDATA[Unicorn]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=147</guid>
		<description><![CDATA[The product owner in Scrum is a very busy guy/girl. S/he’s got to:

Define features of the product (or desired outcome)
Decide release date and content
Ensure profitability
Prioritise features/outcomes
Adjust priorities
Accept or reject work

Does this person really exist? Is it possible that somebody can be found to do this job; that has the subject matter expertise and the authority [...]]]></description>
			<content:encoded><![CDATA[<p>The product owner in Scrum is a very busy guy/girl. S/he’s got to:</p>
<ul>
<li>Define features of the product (or desired outcome)</li>
<li>Decide release date and content</li>
<li>Ensure profitability</li>
<li>Prioritise features/outcomes</li>
<li>Adjust priorities</li>
<li>Accept or reject work</li>
</ul>
<p>Does this person really exist? Is it possible that somebody can be found to do this job; that has the subject matter expertise and the authority to make big decisions all wrapped up in one person? That’s a busy person. And isn’t it likely that somebody like that is too busy to participate in the Scrum team on a daily (insert time period you prefer here depending on how ‘Scrummy’ you are) basis?</p>
<p>So we come on to the subject of the proxy product owner. Where is this defined in Scrum? Roman Pichler at the Aglie Alliance writes:</p>
<p><em>Using a proxy product owner is an attempt to superficially treat a systemic issue. Rather than employing a quick fix, organizations should address the underlying issues. This might require freeing up the product owner from other obligations; colocating the product owner, ScrumMaster, and team; or even finding a new product owner.</em></p>
<p><a href="http://www.scrumalliance.org/articles/168-common-product-owner-traps">http://www.scrumalliance.org/articles/168-common-product-owner-traps</a></p>
<p>So is this Product Owner a logical role or a physical role? I think it’s supposed to be a physical role i.e. one person does it. I was talking to the owner of an Agile consultancy recently, and he said he’d never met one. I’ve never met one either. Sometimes I get the feeling that Scrum dictates what the world should be like and the world struggles to fit the definition and that’s frustrating. Which is flawed, the world or the Scrum definition?</p>
<p>What was wrong with Project sponsor, Responsible owner, Subject matter expert and Story Teller? After all, these are the competencies the Product Owner is being asked to exhibit. No wonder it’s hard to find this guy/gal. Maybe s/he’s a unicorn.</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/24/where-has-the-product-owner-gone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another View on the Agile Manifesto</title>
		<link>http://masterstoryteller.co.uk/2010/06/23/another-view-on-the-agile-manifesto/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/23/another-view-on-the-agile-manifesto/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 10:54:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Evolutionary Agile]]></category>
		<category><![CDATA[Agile manifesto]]></category>
		<category><![CDATA[alternative]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=140</guid>
		<description><![CDATA[Another re-phrasing of the Agile Manifesto]]></description>
			<content:encoded><![CDATA[<p>Agile as a term in software engineering derives its meaning from the Agile Manifesto. The Manifesto makes four simple points listed below.</p>
<p>‘We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:</p>
<ul>
<li>Individuals and interactions over processes and tools</li>
<li>Working software over comprehensive documentation</li>
<li>Customer collaboration over contract negotiation</li>
<li>Responding to change over following a plan</li>
</ul>
<p>That is, while there is value in the items on the right, we value the items on the left more.’</p>
<p>Or, a slightly longer version:</p>
<ul>
<li>Process is important, but not as important as people working in effective teams.</li>
<li>Documentation needs to be appropriate and it needs to make the delivery of working software more efficient, because working software is what is important.</li>
<li>If you have to rely on a legal contract, the relationship has probably already failed, so put a lot of effort into working with the customer as a partner.</li>
<li>Things change, people change their minds: deal with it, rather than getting hung up on a plan that is imperfect</li>
</ul>
<p>This is just a way of turning the original points around to give them added emphasis. It helps me to gain greater clarity anyway <img src='http://masterstoryteller.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/23/another-view-on-the-agile-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scaling Scrum to the Enterprise and the Challenge of Dilbert</title>
		<link>http://masterstoryteller.co.uk/2010/06/18/scaling-scrum-to-the-enterprise-and-the-challenge-of-dilbert/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/18/scaling-scrum-to-the-enterprise-and-the-challenge-of-dilbert/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 16:02:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Evolutionary Agile]]></category>
		<category><![CDATA[Agile manifesto]]></category>
		<category><![CDATA[Dilbert]]></category>
		<category><![CDATA[Dilbertesque]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[PMO]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=104</guid>
		<description><![CDATA[Scrum has shown itself to be a successful approach to software delivery in small organisations. There is sufficient enthusiasm to lead people to wonder if it can be scaled successfully to work at the enterprise level.]]></description>
			<content:encoded><![CDATA[<p>Scrum has shown itself to be a successful approach to software delivery in small organisations. There is sufficient enthusiasm to lead people to wonder if it can be scaled successfully to work at the enterprise level. Scrum has not had rapid uptake in large organisations, because large organisations are suspicious of its ‘self-organising’ nature and lack of rigid control. Simply the fact that Scrum does not have a recognisable project plan leads some people, often those working in the Project Management Office (PMO), to view it with hostility. Where hostility exists within the organisation, it is little wonder that Scrum teams fail to thrive.</p>
<p>To some degree the antipathy with which the PMO function views Scrum is mutual. This is captured in the 2001 Agile Manifesto, which can be viewed as a software engineer’s charter that bemoans the obstacles put in the face of programming teams by ‘Dilberesque’ corporations.</p>
<p>In order to succeed in the new economy, to move aggressively into the era of e-business, e-commerce, and the web, companies have to rid themselves of their Dilbert manifestations of make-work and arcane policies. This freedom from the inanities of corporate life attracts proponents of Agile Methodologies, and scares the begeebers (you can’t use the word ‘shit’ in a professional paper) out of traditionalists. Quite frankly, the Agile approaches scare corporate bureaucrats, at least those that are happy pushing process for process sake versus trying to do the best for the &#8220;customer&#8221; and deliver something timely and tangible and &#8220;as promised&#8221; because they run out of places to hide.</p>
<p><em>Jim Highsmith (2001) from [http://agilemanifesto.org/history.html]</em></p>
<p>The opinion expressed by Jim Highsmith is undoubtedly, in some cases, true. Where it is true, Scrum will struggle to make in-roads. Where the organisation is driven by the market and less by the needs of the organisation to service itself, Scrum has more of a chance in scaling to the enterprise. Ultimately for Scrum to work, things have got to change, and everybody knows that change is difficult. It is unlikely to happen driven from the bottom up without support and direction from the top. Perhaps one definition of an organisation that is Dilbertesque is the characteristic whereby it is dominated by layers of middle management and senior management becomes remote. So it is impossible to define scalable enterprise Scrum without first defining the characteristics of the organisation where Scrum can flourish. A seed cannot grow in soil that will not support it.</p>
<p>As an aside, the interested reader would do worse than to read:</p>
<p>(http://monster-island.org/tinashumor/humor/corpmemo.html)</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/18/scaling-scrum-to-the-enterprise-and-the-challenge-of-dilbert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEMAT, Controversy, and Pragmatism</title>
		<link>http://masterstoryteller.co.uk/2010/06/17/semat-controversy-and-pragmatism/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/17/semat-controversy-and-pragmatism/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 11:18:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Big picture]]></category>
		<category><![CDATA[Evolutionary Agile]]></category>
		<category><![CDATA[controversy]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[pragmatism]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[SEMAT]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=99</guid>
		<description><![CDATA[It seems to me that different organisations are going to configure their software engineering practice differently based on the nature of their business. If there is some theoretical underpinning to the idea that one size does not fit all organisations that’s a good thing.]]></description>
			<content:encoded><![CDATA[<p>Leaving aside the question of the need for a general theory of SE, I think the idea of a meta-kernel is very useful. It seems to me that different organisations are going to configure their software engineering practice differently based on the nature of their business. If there is some theoretical underpinning to the idea that one size does not fit all organisations that’s a good thing. Let’s assert that this meta-kernal includes the following placeholders [opportunity, way of working, requirements, system, architecture, team, governance]. If I were to treat those placeholders in the kernal as holes into which I could mix and match practices, I would have something useful. Here’s where my thinking comes from…</p>
<p>I was watching a Jeff Sutherland video at (<a href="http://www.youtube.com/watch?v=9y10Jvruc_Q">http://www.youtube.com/watch?v=9y10Jvruc_Q</a>) where he talks about Scrum and Google building Adwords, and it seemed to me that the way they did that made sense for them. Not everybody is Google. We might classify Google as an ‘information company’, and Microsoft as a sealed package company, and PatientKeeper as a ‘managed service’ company. But that still leaves lots of organisations where software is not what they fundamentally offer, what they ‘do’, what they sell. So it stands to reason the way those organistions organise themselves to build software is going to be different. Not everybody is going to be an XP shop (clearly), not everybody thinks Scrum will do everything.</p>
<p>So with a meta-kernal if Bank of America want to combine [RUP, use cases, Java, MVC, cross-functional teams, Scrum, PMBOK] then why not? There are a lot more organisations out there like banks, insurance companies, stock brokers etc. manufacturers, wholesalers etc. who are never going to be cutting edge Agile houses, but maybe they can use bits and pieces from different practices that work for them and maybe that would be OK. Why not? Now that would make a meta-kernal really useful and whether or not it provides the foundation of a universal SE engineering doesn’t matter for this application because it provides a universal notion of how different practices in different fundamental areas of software engineering concern can be combined.</p>
<p>If you find this interesting read &#8216;Agile and the Universals of Software Engineering&#8217; (an earlier posting&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/17/semat-controversy-and-pragmatism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile and the ‘Universals’ of Software Engineering</title>
		<link>http://masterstoryteller.co.uk/2010/06/17/agile-and-the-%e2%80%98universals%e2%80%99-of-software-engineering/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/17/agile-and-the-%e2%80%98universals%e2%80%99-of-software-engineering/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 08:35:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Big picture]]></category>
		<category><![CDATA[delivery]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[PMO]]></category>
		<category><![CDATA[SEMAT]]></category>
		<category><![CDATA[universals]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=87</guid>
		<description><![CDATA[Different kinds of organisation build software differently. Why might that be? Maybe that's the way it's supposed to be...]]></description>
			<content:encoded><![CDATA[<p>Different kinds of organisation build software differently. Why might that be? Maybe it’s true that for some organisations Prince2 or PMBOK, or Scrum are absolutely the right choices. Maybe for a certain organisation .net is the way to go or Java, or Ruby on Rails. Perhaps your organisation captures requirements in natural language, or with use cases, or in user stories and that works fine for you. Probably every organisation in the world uses software, but for some software is the centre of their universe and for others it is a support function.</p>
<p>A company like Microsoft is likely to have a very different way of building software from a government department, or from a 3<sup>rd</sup> party supplier of software who wins their business in open competition. One way of describing organisations based on how they use software is presented below:</p>
<ul>
<li>Sealed Packaged solutions e.g. Microsoft, Apple<br />
Build software products and sell them.</li>
<li>Unsealed Package solutions e.g. Siebel, SAP<br />
Build software products, sell them and configure them</li>
<li>Managed services e.g. PatientKeeper,<br />
Build a single software service and sell access to the service.</li>
<li>Information provider: e.g. Reuters, The Guardian, Google<br />
Build and platform that gives access to valuable information.</li>
<li>Professional services, (incl. Government, Manufacturer/Supplier): e.g. Aviva, Barclays, Lloyds of London<br />
Provide banking, insurance, order processing, manufacturing support, government services etc. and use IT to support the business.</li>
<li>3<sup>rd</sup> party supplier: e.g. mPhasis, Tata, Logica<br />
Build software and services on behalf of other professional services or information providers.</li>
</ul>
<p>How core software is to what the organisation does is going to affect the way an organisation configures itself with respect to software engineering.</p>
<p><strong>The ‘Universals’</strong></p>
<p>If you want to build software, what are the kinds of things you need to worry about? Have you got all the bases covered? That’s the question the group ‘Software Engineering Methods and Theory’ (SEMAT) have been asking themselves. SEMAT aim to come up with a design for a meta-method-kernel. This is perhaps not a fundamental theory of software engineering [1], it is however a useful thing to have [2] because everybody building software should have thought about the tasks they are going to be faced with and can at least make a rational decision on what practices they should adopt. The decision they make will be affected by the type of organisation they are and the centrality of software to their core mission.</p>
<p>SEMAT haven’t finished their work yet, (and perhaps they never will!) but we don’t have to wait to propose one view of what that kernel of software concerns might look like.</p>
<p><a href="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-empty-kernal.jpg"><img class="aligncenter size-full wp-image-88" title="My empty kernal" src="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-empty-kernal.jpg" alt="" width="321" height="338" /></a></p>
<p>Figure 1: A version of the Universal kernel of software engineering concerns</p>
<p>The kernel in figure 1 is a collection of placeholders and it is up to the organisation to put some practices into the holes. It can be argued that there will always be something in the holes, even if the something is actually an ad hoc practice. Having watched Jeff Sutherland talk about the work at Google to build Adwords, one is left with the impression that Scrum pretty much does it all [3].</p>
<p><a href="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-Google-Adwords-kernal.jpg"><img class="aligncenter size-full wp-image-89" title="My Google Adwords kernal" src="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-Google-Adwords-kernal.jpg" alt="" width="321" height="338" /></a></p>
<p>Figure 2: a populated kernel as Jeff Sutherland might have visualised it working on Adwords.</p>
<p>That could be absolutely fine for Google, because they are pretty good at building software and they have access to their product owners on a daily basis. The culture of Google is to have few managers and it is led by engineers. Not all companies are like Google though and therefore there is no need to copy them, because the way they do things may just not be right for the way you do things.</p>
<p>Consider a different kind of organisation, such as an insurance company. This company spends a lot of money on I.T., they used to do it in-house and now they’ve outsourced it to Eastern Europe. They have a Programme Management Office (PMO), they have people who want to manage risk, and are interested in ‘quality’. It’s not my job as a person interested in methodologies to tell them they should change before I can help them build better software. I can work with them to demonstrate that maybe there is a better way and if that is successful they can choose to change themselves.</p>
<p>In the meantime it’s perfectly possible for them to take advantage of the kernel of concerns and define a set of good practices that work for them to improve their software delivery.</p>
<p><a href="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-populated-kernal-2.jpg"><img class="aligncenter size-full wp-image-90" title="My populated kernal 2" src="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/My-populated-kernal-2.jpg" alt="" width="322" height="341" /></a></p>
<p>Figure 3: a populated version of the universals kernel that would be appropriate for an organisation where software was not its primary product.</p>
<p>In Figure 3, our imaginary insurance company has chosen a set of practices that suits it, its culture and the degree to which software is integral to its business. One of the benefits of this way of visualising a software engineering practice is that it makes it easier to ‘hot swap’ one practice out for another without disturbing the others. This is the familiar concept of ‘encapsulation’.</p>
<p>My particular areas of interest in this topic include:</p>
<ul>
<li>Opportunity: Demand management, Ideas management, and Benefits Analysis</li>
<li>Requirements: Agile Requirements Practice</li>
<li>Way of working: Unified Process lifecycle</li>
<li>Governance: PrinceLite www.princelite.co.uk</li>
</ul>
<p><strong>References:</strong></p>
<p>[1] &#8216;Why We Need a Theory for Software Engineering&#8217;, Dr Dobbs, Jabobson I, Spence I, [2009] http://www.drdobbs.com/architecture-and-design/220300840;jsessionid=RZLXNZ2D4154PQE1GHOSKHWATMY32JVN</p>
<p>[2] ‘A Detailed Critique of the SEMAT Initiative’, Cockburn, <a href="http://alistair.cockburn.us/A+Detailed+Critique+of+the+SEMAT+Initiative">http://alistair.cockburn.us/A+Detailed+Critique+of+the+SEMAT+Initiative</a> [2009]</p>
<p>[3] Scrum Tuning: Lessons learned from Scrum implementation, Jeff Sutherland, [2006] http://www.youtube.com/watch?v=9y10Jvruc_Q</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/17/agile-and-the-%e2%80%98universals%e2%80%99-of-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Agile Broad Enough?</title>
		<link>http://masterstoryteller.co.uk/2010/06/11/is-agile-wide-enough/</link>
		<comments>http://masterstoryteller.co.uk/2010/06/11/is-agile-wide-enough/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 09:44:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Big picture]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[agile evolution]]></category>
		<category><![CDATA[cultural resistance]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[governance]]></category>
		<category><![CDATA[idea management]]></category>
		<category><![CDATA[value analysis]]></category>

		<guid isPermaLink="false">http://masterstoryteller.co.uk/?p=74</guid>
		<description><![CDATA[It is widely accepted that Agile delivery demonstrateably adds value to software teams and their ability to bring software to fruition. There is however a question around whether Agile can achieve its full potential in the face of cultural resistance within the wider enterprise.]]></description>
			<content:encoded><![CDATA[<p>It is widely accepted that Agile delivery demonstrateably adds value to software teams and their ability to bring software to fruition. There is however a question around whether Agile can achieve its full potential in the face of cultural resistance within the wider enterprise. For some there is now the acceptance that IT has the potential to be more than a cost burden; it is actually an avenue to compete more effectively in the market. IT is a strategic tool where projects with quantified business value deliver everything from streamlined internal processes to new customers through social networking sites. The better able the enterprise is in harnassing IT the better it will prosper, however it is not easy and they achieve varying degrees of success.</p>
<p>Set against a wider context of the end-to-end business process, actually delivering some working code comes far downstream. What needs to happen first? First ideas need to emerge in the organisation, gain momentum, become scoped, costed and valued and then, if all goes well, the initiative results in working system.</p>
<p><a href="http://masterstoryteller.co.uk/wp-content/uploads/2010/06/big-picture-activity-1.jpg"></a></p>
<p>Given the project delivers a working service, we would be interested in a retrospective aimed at measuring success. For instance, certain assumptions were made regarding how much value the project would bring and how much it would cost to bring to fruition. We want to know whether it was ultimately worth taking this project forward once it has had a chance to ‘bed down’ because that information is valuable. Ideally a cycle can be established where the assertions and outcomes of initiatives are tested so that they may inform future estimation activity resulting in the ‘go/no go’ decision that governs all intiatives becoming more accurate. In this scenario, the estimates of future projects (cost and value) are compared with the resulting outcomes ultimately leading to the enterprise fully directing the IT function and reaping maximum competitive advantage.</p>
<p>Tags: idea management, governance, PMO, Programme management, Project management, effort estimation, value analysis, agile evolution</p>
]]></content:encoded>
			<wfw:commentRss>http://masterstoryteller.co.uk/2010/06/11/is-agile-wide-enough/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

