<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21436926</id><updated>2012-01-20T15:23:46.903Z</updated><category term='Project Patterns'/><category term='FDD'/><category term='Waterfall'/><category term='Velocity'/><category term='Benoit Xhenseval'/><category term='xProcess Europe'/><category term='Actions'/><category term='SD Times'/><category term='Glyn Normington'/><category term='Targets'/><category term='Ken Schwaber'/><category term='Mike Cohn'/><category term='JavaOne'/><category term='Ware Myers'/><category term='User-Defined Schema'/><category term='Sam DerKazaryan'/><category term='Reporting'/><category term='white paper'/><category term='task patterns'/><category term='Parent Tasks'/><category term='Burndown Chart'/><category term='OGNL'/><category term='Kanban'/><category term='Charlie Betz'/><category term='Web Client'/><category term='Gateways'/><category term='ALF'/><category term='Outsourcing'/><category term='Size'/><category term='Larry Putnam'/><category term='Effort'/><category term='Top-down/Bottom-up Planning'/><category term='David Anderson'/><category term='ROI'/><category term='Mac Felsing'/><category term='SwiftTeams'/><category term='Isobar Global'/><category term='Alex Aptus'/><category term='Version Control'/><category term='Ron Lichty'/><category term='Overhead tasks'/><category term='GOTO Aarhus'/><category term='Workflow'/><category term='Java'/><category term='web services'/><category term='Ed Yourdon'/><category term='Pattern Parameters'/><category term='Requirements'/><category term='Folders'/><category term='ITIL'/><category term='Earned Value'/><category term='Artifacts'/><category term='Simple Process'/><category term='Gantthead'/><category term='xProcess'/><category term='Big Decimal'/><category term='XAPPA'/><category term='TOC'/><category term='Stephen Palmer'/><category term='Henrik Kniberg'/><category term='priority-driven processes'/><category term='State Transition Diagram'/><category term='Eclipse'/><category term='Issue Tracking'/><category term='Scrum'/><category term='David Rubinstein'/><category term='Dave Garrett'/><category term='Jon Kern'/><category term='Clarke Ching'/><category term='Andrea Tomasini'/><category term='BIRT'/><category term='Metrics'/><category term='Estimating'/><category term='Composite Tasks'/><title type='text'>Improving projects</title><subtitle type='html'>OpenxProcess blog...&lt;br&gt;
xProcess is a planning and process improvement environment for projects. It lets your teams update planning and process information continually, while feeding back up to the minute information on targets, forecasts and resources. The product is released under an open source license and is available from &lt;u&gt;&lt;a href="https://sourceforge.net/projects/xprocess/"&gt;Source Forge&lt;/a&gt;&lt;/u&gt; or &lt;u&gt;&lt;a href="http://www.openxprocess.com"&gt;OpenXprocess&lt;/a&gt;&lt;/u&gt;.&lt;br&gt;&lt;br&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default?start-index=101&amp;max-results=100'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>123</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21436926.post-800292165591447707</id><published>2012-01-20T15:18:00.002Z</published><updated>2012-01-20T15:23:46.959Z</updated><title type='text'>New Release for xProcess - feedback request</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-1z_Cwc1-bH8/TxmFBky8l8I/AAAAAAAABtg/Fu1Fwelj1Lc/s1600/xprocess_logo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-1z_Cwc1-bH8/TxmFBky8l8I/AAAAAAAABtg/Fu1Fwelj1Lc/s1600/xprocess_logo.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;We're planning a new full release of xProcess in the next few weeks, which will incorporate all the features released in the beta versions last year and several additional fixes and changes. If you have any feedback from previous versions which have not been shared through the forums, or if you are able to download and run the latest source code version and provide feedback, please do so as soon as possible as such feedback is invaluable prior to the release. Thanks to all our users - we really appreciate your feedback and help.&lt;br /&gt;To download the latest version use this link:&amp;nbsp;&lt;a href="https://sourceforge.net/projects/xprocess/"&gt;https://sourceforge.net/projects/xprocess/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-800292165591447707?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/800292165591447707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=800292165591447707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/800292165591447707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/800292165591447707'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2012/01/new-release-for-xprocess-feedback.html' title='New Release for xProcess - feedback request'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-1z_Cwc1-bH8/TxmFBky8l8I/AAAAAAAABtg/Fu1Fwelj1Lc/s72-c/xprocess_logo.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3482050250216301033</id><published>2012-01-05T14:44:00.001Z</published><updated>2012-01-05T15:06:31.072Z</updated><title type='text'>The Last Shall be First - Continuous Delivery</title><content type='html'>&lt;a href="http://t3.gstatic.com/images?q=tbn:ANd9GcRMB6vqPwR5OidjwKxsUh7vozhd48xfUnM2lyEuOW8FCSKZ8MxAhg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://t3.gstatic.com/images?q=tbn:ANd9GcRMB6vqPwR5OidjwKxsUh7vozhd48xfUnM2lyEuOW8FCSKZ8MxAhg" width="149" /&gt;&lt;/a&gt;One of the key lessons of agile processes is that the final step in your process - delivering software to your customers - is the first in importance. The best way to&amp;nbsp;optimize&amp;nbsp;the&amp;nbsp;process&amp;nbsp;is to work backwards compared to a traditional software lifecycle. When Dan Haywood and I laid out the outline of our "&lt;a href="http://dl.acm.org/citation.cfm?id=579933"&gt;Better Software Faster&lt;/a&gt;" book, we decided to emphasis this by putting the chapter on build and deploy at the beginning - the first after the introduction. It's where agile teams should start in new projects or process transformations. Ensure that you can automatically build, deploy and deliver a tested change to your system, before you spend a great deal of time in building anything. If you don't do this you'll end up with a great deal of wasted effort further down the line, or worse still a waterfall process struggling to free itself from inappropriate practices and vaguely agile terminology!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3482050250216301033?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3482050250216301033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3482050250216301033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3482050250216301033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3482050250216301033'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2012/01/last-shall-be-first-continuous-delivery.html' title='The Last Shall be First - Continuous Delivery'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5103741856795502571</id><published>2012-01-03T14:02:00.000Z</published><updated>2012-01-05T14:49:22.560Z</updated><title type='text'>The Seven Habits of Spectacularly Unsuccessful Executives</title><content type='html'>&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://blogs-images.forbes.com/cache/gravatars/ericjackson_136.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://blogs-images.forbes.com/cache/gravatars/ericjackson_136.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Eric Jackson&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Eric Jackson's &lt;a href="http://www.forbes.com/sites/ericjackson/2012/01/02/the-seven-habits-of-spectacularly-unsuccessful-executives/3/"&gt;article for Forbes&lt;/a&gt; under this title is illuminating. I'm afraid it put me in mind of some CEO's I have worked with (and I hope there are enough of those over my long career in the business to keep the libel lawyers at bay!). More than anything I think the tendency - not just in CEOs of course - to attribute success simply to one's own genius / hard work / insight / inspiration, and all failures to the work of others, is the destructive habit I would pick over all others. When circumstances and good work conspire together to provide outstanding rewards, one does well to recognise that it is not simply one's own talent that has produced it. When CEOs and management boards believe all the success was down to them, their companies are in serious danger!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5103741856795502571?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5103741856795502571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5103741856795502571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5103741856795502571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5103741856795502571'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2012/01/seven-habits-of-spectacularly.html' title='The Seven Habits of Spectacularly Unsuccessful Executives'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7324607633895328390</id><published>2011-10-31T10:59:00.001Z</published><updated>2011-10-31T11:40:18.578Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='David Anderson'/><category scheme='http://www.blogger.com/atom/ns#' term='Kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='TOC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ken Schwaber'/><category scheme='http://www.blogger.com/atom/ns#' term='Henrik Kniberg'/><title type='text'>Kanban vs Scrum - less shootout more engagement needed!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://ecx.images-amazon.com/images/I/51lWg--m5rL._SL500_SS225_.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://ecx.images-amazon.com/images/I/51lWg--m5rL._SL500_SS225_.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;David Anderson's book on Kanban provides a real insight into the practices and essentially the motivations for Kanban, particularly applied to process improvement. Since my reading happened to coincide with Ken Schwabers's dismissive posting about the method - saying that in contrast to the serious nature of Scrum it was a "&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-size: 14px; line-height: 18px;"&gt;nice distraction, for distracted people&lt;/span&gt;", it was helpful for me to look at all the examples, practices and theory in the book with as critical an eye as possible. I am a supporter of Scrum and believe it is the best starting point for team's starting out with a mandate to choose their process. However my recent clients have over 100 scrums working in parallel with a lot of other process surrounding them. They need methods for&amp;nbsp;analyzing&amp;nbsp;the waste in&amp;nbsp;the&amp;nbsp;processes and incrementally improving, based on sound metrics and evidence.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://ecx.images-amazon.com/images/I/41CLbwnyCBL._SL500_SS225_.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://ecx.images-amazon.com/images/I/41CLbwnyCBL._SL500_SS225_.jpg" /&gt;&lt;/a&gt;&lt;a href="http://ecx.images-amazon.com/images/I/41CLbwnyCBL._SL500_SS225_.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Kanban provides this kind of framework for improvement and I would strongly recommend&amp;nbsp;such&amp;nbsp;clients use it, as the basis for informed process development. As Henrik Kniberg points out in his companion volume to Anderson's, "Kanban and Scrum making the most of both", the methods are not incompatible. The fewer constraints that Kanban imposes on processes means that from a Scrum starting point, some of the constraints of scrum could be relaxed if benefit was deemed to flow from it. I presume this is why Schwaber objects to the method so strongly - if the starting point of the process is waterfall, one might end up with a slightly improved waterfall but not the major benefit that would flow from a true agile process. However if Kanban is followed effectively changes to a Scrum starting point would only be made if evidence was available for incremental improvements in the key business metrics. Yes there are risks involved in moving away from tried and tested agile processes. But that's where rewards lie too.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;I'm not convinced by arguments between methods that focus on the character of those proposing them, when the substance of the methodologies are not examined. I expect more from the proponents in this case, more substance, evidence... and maybe a little more humility. Process improvement is not a one shot change from waterfall to agile. It requires insights from many different quarters to produce the best possible result for the business.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7324607633895328390?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7324607633895328390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7324607633895328390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7324607633895328390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7324607633895328390'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2011/10/david-andersons-book-on-kanban-provides.html' title='Kanban vs Scrum - less shootout more engagement needed!'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8233871146275666869</id><published>2011-10-13T16:31:00.000+01:00</published><updated>2011-10-13T16:37:41.773+01:00</updated><title type='text'>Why?</title><content type='html'>If you've not already picked up Simon Sinek's "Why?" video it's worth a watch. Thanks to Jean Tabaka for highlighting and expanding this thought in &lt;a href="http://gotocon.com/aarhus-2011/presentation/Tell%20Me%20Why:%20The%20Golden%20Circle%20of%20Agile%20Transformation"&gt;her presentation&lt;/a&gt; at GOTO Aarhus. Inspiring.&lt;br /&gt;&lt;br /&gt;&lt;object height="374" width="526"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2009X/Blank/SimonSinek_2009X-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SimonSinek-2009X.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=848&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=simon_sinek_how_great_leaders_inspire_action;year=2009;theme=not_business_as_usual;theme=a_taste_of_tedx;theme=unconventional_explanations;event=TEDxPuget+Sound+;tag=Business;tag=bullseye;tag=entrepreneur;tag=leadership;tag=sales;tag=selling;tag=success;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2009X/Blank/SimonSinek_2009X-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SimonSinek-2009X.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=848&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=simon_sinek_how_great_leaders_inspire_action;year=2009;theme=not_business_as_usual;theme=a_taste_of_tedx;theme=unconventional_explanations;event=TEDxPuget+Sound+;tag=Business;tag=bullseye;tag=entrepreneur;tag=leadership;tag=sales;tag=selling;tag=success;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8233871146275666869?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8233871146275666869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8233871146275666869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8233871146275666869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8233871146275666869'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2011/10/why.html' title='Why?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7530698190150223879</id><published>2011-10-10T15:42:00.001+01:00</published><updated>2011-10-13T16:36:52.280+01:00</updated><title type='text'>Google announces new programming language for the web at GOTO Aarhus</title><content type='html'>&lt;a href="http://www.dartlang.org/" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="86" src="http://3.bp.blogspot.com/-XYGFppwK-v4/TpMFW3Ql1vI/AAAAAAAAAo4/Z0TCiQCSEC0/s200/dart-logo.png" width="200" /&gt;&lt;/a&gt;Gilad Bracha and&amp;nbsp;Lars Bak, designers of Dart, Google's potential replacement for JavaScript, came on stage at &lt;a href="http://gotocon.com/aarhus-2011/"&gt;GOTO Aarhus&lt;/a&gt; this morning both dressed as Darth Vader, proclaiming they had gone over to the Dart side. While replacing the lingua franca of the web is not going to happen any time soon (even in the opinion of these guys), the language does look interesting. It has &lt;i&gt;optional&lt;/i&gt;&amp;nbsp;strong typing claiming both the flexibility and ease of running of a language like Smalltalk, with type safety (to a point), modularity / team programming features and better code completion tools of languages like Java.&lt;br /&gt;&lt;br /&gt;Interestingly the second presentation of the day was also from a Googler (Alex Russell) whose contention was that the problem for web developers was not the language (!) but the platform, with most of delays and impediments to powerful web programs coming from the need for network roundtrips.&lt;br /&gt;&lt;br /&gt;Anyway, it's definitely worth taking a look at the early prototype release of Dart which is available here:&amp;nbsp;&lt;a href="http://www.dartlang.org/"&gt;http://www.dartlang.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7530698190150223879?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7530698190150223879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7530698190150223879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7530698190150223879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7530698190150223879'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2011/10/google-announces-new-programming.html' title='Google announces new programming language for the web at GOTO Aarhus'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-XYGFppwK-v4/TpMFW3Ql1vI/AAAAAAAAAo4/Z0TCiQCSEC0/s72-c/dart-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3135329310587204074</id><published>2011-10-06T18:36:00.000+01:00</published><updated>2011-10-07T09:44:19.450+01:00</updated><title type='text'>Finding tasks in your Personal Planner</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-dE-60C84zSU/To3m4SsuXkI/AAAAAAAAAn4/cTIKoP-3_Ls/s1600/personalplanner.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-dE-60C84zSU/To3m4SsuXkI/AAAAAAAAAn4/cTIKoP-3_Ls/s320/personalplanner.jpg" width="319" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;If you can't see the tasks you expect in xProcess Personal Planner check the filters. If all the boxes are unchecked, all tasks assigned to you should show up. You can then reduce the list shown using the filters.&lt;span id="goog_1731390044"&gt;&lt;/span&gt;&lt;span id="goog_1731390045"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"&gt;Another thing that can make tasks harder to manage is if you are assigned to several projects. In this case consider using just one xProcess project and moving the other tasks to parent tasks with this project. The auto-scheduler in xProcess handles each project separately so if you are assigned to several you have to divide your availability between the projects first. On the other hand if you have just one xProcess project you can control the order in which the various parts of the work are schedule using priorites (see "&lt;a href="http://xprocess.blogspot.com/2010/03/driven-by-priority-practical-tips.html"&gt;Driven by priority&lt;/a&gt;").&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3135329310587204074?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3135329310587204074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3135329310587204074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3135329310587204074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3135329310587204074'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2011/10/if-you-cant-see-your-tasks-in-xprocess.html' title='Finding tasks in your Personal Planner'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-dE-60C84zSU/To3m4SsuXkI/AAAAAAAAAn4/cTIKoP-3_Ls/s72-c/personalplanner.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8192811379693646495</id><published>2011-10-03T16:33:00.002+01:00</published><updated>2011-10-04T10:21:45.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GOTO Aarhus'/><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><title type='text'>Measuring Progress and Performance in Large Agile Developments</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nDqzs5j2V5E/TonR5JgzG6I/AAAAAAAAAng/GZNDMCxcMWw/s1600/Untitled.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="188" src="http://1.bp.blogspot.com/-nDqzs5j2V5E/TonR5JgzG6I/AAAAAAAAAng/GZNDMCxcMWw/s320/Untitled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Large agile programmes can suffer from the worst of all worlds - management managing with "on-time-on-scope-on-budget" in mind with a methodology which is designed to allow all three of these variables to change during the project. Having spent the past 18 months grappling with this problem in one of the largest agile projects in Europe, I'm off to Denmark for the&amp;nbsp;&lt;a href="http://gotocon.com/aarhus-2011/presentation/Measuring%20Progress%20and%20Performance%20in%20Large%20Agile%20Developments:%20Lessons%20from%20the%20Centrica%20Experience"&gt;GOTO Aarhus&lt;/a&gt;&amp;nbsp;conference&amp;nbsp;next week to share some of my conclusions with delegates - and hopefully learn from others' experiences.&lt;br /&gt;&lt;br /&gt;The concept of measurement in software projects is not new. But nor, over decades of trying, has it it been hugely successful. While it is tempting to draw up very long lists of what can and should be measured to improve team performance, I am very much of the opinion that less is more, and that the place to start is the basics. Every project must measure cost; and if they look at the calendar they can measure time. Agile methods use story points to measure size, which although it is a relative metric, only providing an estimate to the story's size compared to others in the team's backlog, it is possible to build a picture across many teams of the backlog size for a whole programme. These 3 metrics of cost, time and size are the foundation metrics that all teams need. While Earned Value Management (EVM) is a traditional method for measuring the degree to which a team is following a plan, it can be modified for use with agile projects where the scope of the backlog is dynamic. It's potentially a very powerful tool for management to home in on problem areas and it's one of the techniques that I recommend for hybrid life-cycle projects.&lt;br /&gt;&lt;br /&gt;The 3 metrics (cost, time, size) provide the basis for moving on to more interesting but much less measurable parameters such as quality, business value and productivity. These are the real&amp;nbsp;quantities&amp;nbsp;we'd like to know definitively. Unfortunately "interesting" maps to "elusive". As&amp;nbsp;W. Edwards Deming said, "The most important figures that one needs for management are unknown or unknowable... successful management must nevertheless take account of them".&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8192811379693646495?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8192811379693646495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8192811379693646495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8192811379693646495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8192811379693646495'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2011/10/measuring-progress-and-performance-in.html' title='Measuring Progress and Performance in Large Agile Developments'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-nDqzs5j2V5E/TonR5JgzG6I/AAAAAAAAAng/GZNDMCxcMWw/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8951793553678668654</id><published>2010-08-02T18:57:00.007+01:00</published><updated>2011-10-05T20:12:59.087+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>The New Action Mechanism</title><content type='html'>&lt;span style="font-family: arial;"&gt;With the release of xProcess v3.5 we have implemented a new way of collecting data through Actions:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/apps/mediawiki/xprocess/index.php?title=Reporting" style="font-family: arial;"&gt;http://sourceforge.net/apps/mediawiki/xprocess/index.php?title=Reporting&lt;/a&gt;&lt;span style="font-family: arial;"&gt; (the Recursive Solution). Existing actions can still be used but those that have a tendency to generate large amounts of data may need to be rewritten in order to get the benefit of the new mechanism.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The following example reworks the Work Log for Person action.  &lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;In which ever Process you want to, create a new Action called 'Get DailyRecords for Person'. This will return a set of daily records in a date range and is the FetchSet Action.&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;The first difference we see in v3.5 is that there is a new Editor for Actions. The Editor is split into three tabs:&lt;/div&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Editor tab – a text area for the  OGNL Expression&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_HgsqJQrwthg/TFcIk3jb1iI/AAAAAAAAAAc/FQEWXgL8yI8/s1600/editor1.png" style="font-family: arial;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5500874899337238050" src="http://4.bp.blogspot.com/_HgsqJQrwthg/TFcIk3jb1iI/AAAAAAAAAAc/FQEWXgL8yI8/s320/editor1.png" style="cursor: pointer; display: block; height: 289px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; page-break-before: always;"&gt;Details Tab:&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_HgsqJQrwthg/TFcI2IIwkrI/AAAAAAAAAAk/Gug4pNMOgLY/s1600/editor2.png" style="font-family: arial;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5500875195846529714" src="http://2.bp.blogspot.com/_HgsqJQrwthg/TFcI2IIwkrI/AAAAAAAAAAk/Gug4pNMOgLY/s320/editor2.png" style="cursor: pointer; display: block; height: 287px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Action Name - the name of the  action&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Applicable to - What it is  applicable to (any element is the default)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;UI Action - should it appear on  context menu for element its applicable to?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;On this tab are a further two  tabs; Parameters: add the Parameters that will be presented to the  user when the Action is run. These parameter values are sent into  the OGNL expression when run. We will come onto the Export tab  later.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm; page-break-before: always;"&gt;Test  Action Tab:&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_HgsqJQrwthg/TFcJO-c0AiI/AAAAAAAAAAs/dAeEQswpahc/s1600/editor3.png" style="font-family: arial;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5500875622743015970" src="http://1.bp.blogspot.com/_HgsqJQrwthg/TFcJO-c0AiI/AAAAAAAAAAs/dAeEQswpahc/s320/editor3.png" style="cursor: pointer; display: block; height: 287px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;On the Test Action Tab you can choose an Element to  run the Action on to test it and enter the parameters for that  action. It is recommended that you create test Elements for this, as  the Action may change that Elements data.   &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;The lower part of this tab shows  the output when the test it run&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;For the 'Get DailyRecords for Person' we just need the OGNL for retrieving the daily records, so in the Actions Editor we enter in:&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#project = projects.isEmpty() ? null : projects.iterator().next(),#from  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;= (#project != null) ? #project.getDayProperty("fromDateForReport") :  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;null,#to = (#project != null) ?  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#project.getDayProperty("toDateForReport") : null,&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#dailyrecords = getWorkLog(#from,#to,null)&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;Hit Ctrl+S to save the Action.&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;The next Action to create is the 'Generate Work Log Details'. This Action is the Subordinate Action. You can have one or more Subordinate Actions, and these Actions are run against the data set that the FetchSet Action returns. The OGNL to enter in this Actions Editor is:&lt;/div&gt;&lt;blockquote style="font-family: arial;"&gt;&lt;/blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#output = '"' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;day + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;assignment.task.project.label + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;assignment.task.label + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;assignment.requiredResource.roleType.label + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;time/60.0 + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;logEntry + '","' +&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;confirmed + '"',&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#output = #output + '\n',&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#output&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;Hit Ctrl+S to save the Action.&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;The final Action is the 'New Work Log for Person'. It's OGNL gets called before the FetchSet and Subordinate Actions, so we use that to provide the column header that will be written to file:&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#project = projects.isEmpty() ? null : projects.iterator().next(),#from  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;= (#project != null) ? #project.getDayProperty("fromDateForReport") :  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;null,#to = (#project != null) ?  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#project.getDayProperty("toDateForReport") : null,&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#output = 'Work Log for: ' + label + '\n'&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;+ 'From: ' +  ((#from==null) ? 'earliest booked time in data source'  &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;: #andfrom) + ' To: ' + ((#to==null) ? #$today : #to) +'\n'&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;+ 'Date,Project,Task,Role,Hours,Log Entry,Confirmed\n',&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;#output&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;&lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;Then go to the Details tab and:&lt;/div&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Make the Action applicable to  Person&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Click on the Export tab and tick  the Export Action checkbox. Give it a .csv extension&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;On the FetchSet Field click on the  '…' and select the ' Get DailyRecords for Person' Action&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Now click on the Add button in the  Subordinate section, and select the ' Generate Work Log Details'  Action&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="margin-bottom: 0cm;"&gt;Hit Ctrl+S to save the Action&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;We can now test the Action via File | Export | xProcess Export | Custom Reports. When the Action runs it uses the FetchSet Action to retrieve a set of Daily Records on Projects for the selected Person. This Daily Record set is then iterated over passing in the Daily Records to the Subordinate Action. &lt;/div&gt;&lt;div style="font-family: arial; margin-bottom: 0cm;"&gt;Since each time a Daily Record is iterated over a line is written out to file, it prevents the building up of large data to be written out to file, and possible memory issues.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8951793553678668654?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8951793553678668654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8951793553678668654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8951793553678668654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8951793553678668654'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/08/new-action-mechanism.html' title='The New Action Mechanism'/><author><name>Tim Shelley</name><uri>http://www.blogger.com/profile/05812687446714607148</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HgsqJQrwthg/TFcIk3jb1iI/AAAAAAAAAAc/FQEWXgL8yI8/s72-c/editor1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8179002282390967114</id><published>2010-04-05T11:16:00.004+01:00</published><updated>2011-10-05T20:18:28.292+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='Simple Process'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><title type='text'>Reporting in xProcess</title><content type='html'>The mechanism for defining custom reports in xProcess is straightforward. It uses "Actions" (expressions which use OGNL as the language for navigating the xProcess model) and the string returned by the Action is exported to a file with whatever file extension is appropriate. There are several examples delivered with the Simple Process which are worth exploring and maybe modifying if you need a specific type of report for your project. See &lt;a href="http://xprocess.blogspot.com/2009/03/how-to-define-custom-report-in-v3.html"&gt;"How to define a custom report in v3"&lt;/a&gt; for more details.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently with users defining larger reports on projects that have been running for multiple years a problem has emerged with this mechanism - out-of-memory errors. As the text for the report is held in its entirety in memory, prior to any of it being written to file, it is clearly not too difficult to define an Action that will fail in this way if you have a reasonably large data source. To see and comment on the technical solution proposed for this problem, see the wiki for the open source project here: &lt;a href="https://sourceforge.net/apps/mediawiki/xprocess/index.php?title=Core_Design"&gt;https://sourceforge.net/apps/mediawiki/xprocess/index.php?title=Core_Design&lt;/a&gt;. The new mechanism allows records to be written out one by one, but it will require reporting Actions to be rewritten to take advantage of the mechanism.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Watch this space for more details.&lt;br /&gt;&lt;br /&gt;Update! See Tim's article on the new mechanism -&amp;nbsp;&lt;a href="http://xprocess.blogspot.com/2010/08/new-action-mechanism.html"&gt;http://xprocess.blogspot.com/2010/08/new-action-mechanism.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8179002282390967114?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8179002282390967114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8179002282390967114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8179002282390967114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8179002282390967114'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/04/reporting-in-xprocess.html' title='Reporting in xProcess'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5914689273053876825</id><published>2010-04-01T10:20:00.004+01:00</published><updated>2010-04-01T10:43:53.559+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Powered-by-xProcess Applications</title><content type='html'>As discussions continue about opening up the xProcess world to other applications through the web services interface, it's worth considering the types of application this could enable. From an automatically scheduled to-do list on an i-Phone through to case-management support applications, the scope is of course boundless. But where are the quick wins? Most people who have seen the potential of xProcess, recognise that it's firstly in the context of supporting standard software engineering and project management processes such as Scrum, FDD, Prince and UP. The process definition gives teams access to standard patterns of tasks, if necessary with standard templates for associated artefacts and quality gateways. But processes are everywhere in the business landscape and if they are processes that need planning, resource allocation and forecasting, it may well be that the xProcess model provides just the foundation for powerful on-line support. Furthermore alternatives in this space are much less prevalent.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The web services interface means that full access to the underlying model will no longer be restricted to the Eclipse-based RCP client. Mash-ups which combine multiple sources of information can use the xProcess data source as the process and scheduling engine while application-specific views and data can be integrated seamlessly. If you've ideas for applications or would like to know how you can use the xProcess model for your project, do get in touch. The link to the Source Forge project is here: &lt;a href="https://sourceforge.net/projects/xprocess/"&gt;https://sourceforge.net/projects/xprocess/&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5914689273053876825?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5914689273053876825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5914689273053876825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5914689273053876825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5914689273053876825'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/04/powered-by-xprocess-applications.html' title='Powered-by-xProcess Applications'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4076257703062010179</id><published>2010-03-26T13:24:00.014Z</published><updated>2010-03-26T14:44:25.932Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ROI'/><category scheme='http://www.blogger.com/atom/ns#' term='TOC'/><category scheme='http://www.blogger.com/atom/ns#' term='Clarke Ching'/><title type='text'>Cycle time and cashflow</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/S6y2ajzJf0I/AAAAAAAAAYc/64juROq8PH4/s1600/Picture1.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/S6y2ajzJf0I/AAAAAAAAAYc/64juROq8PH4/s320/Picture1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5452933816241454914" /&gt;&lt;/a&gt;Cycle time is not merely an academic concern. In times like these it may involve your job security, your project's viability and your company's future.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Clarke Ching amusingly points this out in his latest biztech parable "&lt;i&gt;&lt;a href="http://www.rocksintogold.com/"&gt;Rocks into Gold&lt;/a&gt;&lt;/i&gt;"  with a tale of a back-from-the-brink project that found a simple way to justify its existence and solve the cashflow problem. It a quick read that's well worth the effort.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Graph's like the one above also bring home the message that even a small reduction in cycle time - specifically the time to external release of new features of a product - can result in major improvements in economic performance measured by return on investment (ROI), time to pay back, and profitability.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Agile processes - influenced for example by Goldratt's Theory of Constraints (TOC) - stress the need for rapid turn around and frequent releases, and the key drivers for this are the financial benefits from early release. The inhibitors to frequent and early release of new features are usually lack of automated testing and incomplete continuous integration. Using the financial arguments, particularly improving ROI, is the best way to justify and assess investment in this area. Automating acceptance tests in particular involves considerable effort and expense, but if it results in reduced cycle times and improved quality the financial justification is clear.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4076257703062010179?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4076257703062010179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4076257703062010179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4076257703062010179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4076257703062010179'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/03/cycle-time-and-cashflow.html' title='Cycle time and cashflow'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/S6y2ajzJf0I/AAAAAAAAAYc/64juROq8PH4/s72-c/Picture1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6083297504033445372</id><published>2010-03-25T10:48:00.008Z</published><updated>2011-10-07T09:51:31.435+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='priority-driven processes'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Folders'/><title type='text'>Driven by priority - practical tips</title><content type='html'>&lt;div style="text-align: left;"&gt;Agile processes are designed to support changing activities when the business environment changes. This after all is the natural understanding of the word agile - the ability to change direction quickly. What this means in practice is the tasks in plans - backlog items in a release say - have to be prioritised and changed when priorities change. This has always been a feature of &lt;i&gt;xProcess&lt;/i&gt;, but in the very earliest releases the priorities list was a single list. We soon found when we had up to 1000 stories, features requests and defects to prioritise against each other it was an almost impossible task to get your brain round it all. This led to the current model in the product where groups of tasks can be defined and prioritised relative to one another, and then the groups themselves can be given a "weight" relative to other groups so that the overall priority list can be derived. This allowed us for example to prioritize bugs relative to one another and then decide on the balance between bug-fixing and new features in any given release. It made the whole process much more manageable.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The screen shot below shows a single "Priority Group" being prioritised, either by dragging and dropping tasks or by giving them a priority number.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; color: #0000ee;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5452526016943275730" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/S6tDhhB6vtI/AAAAAAAAAYM/SenHOJAM6DQ/s400/prioritisingTasks.JPG" style="cursor: pointer; display: block; height: 346px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; color: #0000ee;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Recently a user of the xProcess "Basic Scrum" process raised the issue that the relative priorities of user stories get lost if stories are moved from one Sprint to another (for example if they are incomplete at the end of the Sprint). Here's my reply:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;xProcess has a very flexible mechanism for defining priorities using "Priority Groups" which allows any Folder or Parent Task which has been "prioritised" to support ordering of tasks within it. Each Priority Group can be given a "weight" so that all the priorities can be combined into the ordered list that the scheduler uses. As with many of the very flexible mechanisms in the product, when you actually tailor the product for a given process (Basic Scrum in this case), you have to make some decisions about the normal way to use the features.&lt;br /&gt;&lt;br /&gt;Basic Scrum defines Sprints as prioritised Parent Tasks with diminishing weight (later Sprints therefore have lower weight and are scheduled after the earlier ones). As you've observed when you move a task from one Sprint to the next the priorities they had in the previous Sprint gets lost. So if this is a normal part of your process - I can understand why it could be - why not define another prioritised group (say a Folder called Release Backlog) where you can give your stories a longer lasting relative priority. The weight for this group does not need to be high because it will just be the "tie-breaker" when stories have the same priority in Sprint. I think this should achieve what your aiming for.&lt;/blockquote&gt;There are many different way to use Priority Groups, some of which have been incorporated into the standard processes released with xProcess. For example the Simple Process has the facility to add "High", "Medium" and "Low" categories to the project so that just by categorising tasks they get prioritised appropriately.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6083297504033445372?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6083297504033445372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6083297504033445372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6083297504033445372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6083297504033445372'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/03/driven-by-priority-practical-tips.html' title='Driven by priority - practical tips'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/S6tDhhB6vtI/AAAAAAAAAYM/SenHOJAM6DQ/s72-c/prioritisingTasks.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3758588074127661468</id><published>2010-03-19T10:04:00.006Z</published><updated>2010-04-01T10:19:45.613+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Accessing xProcess via Web Services</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/S6NSloZoWEI/AAAAAAAAAYE/iy1kpkvkR9I/s1600-h/web1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 137px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/S6NSloZoWEI/AAAAAAAAAYE/iy1kpkvkR9I/s200/web1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5450290780501989442" /&gt;&lt;/a&gt;Wouldn't it be great if you could build your own web interfaces which integrate project process and scheduling information from the xProcess model? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We thought so too. That's why we've started an inititative in the open source project to provide access to xProcess via Web Services. This will be a different server to the current xProcess web server (see screen shot) which uses Tapestry and has facilities for supporting participants on xProcess projects (booking hours to tasks, closing tasks with gateways, access artifacts and assigning tasks). There will be a considerable amount of common code however as the authentication, integration with Subversion, scheduling and multi-threading will all follow the same design. However the web services interface is intended to give full flexible access to the complete underlying data model of xProcess. The first services being defined allow you to access and update project data, but the mechanisms of data exchange and update are generic so almost anything is possible!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you think this project might be of interest to your needs, or if you're interested in participating in it, please contact us. Your input will be most welcome. There are further details on the Wiki about how to use the source code once downloaded: &lt;a href="http://sourceforge.net/apps/mediawiki/xprocess/index.php?title=WebServices"&gt;http://sourceforge.net/apps/mediawiki/xprocess/index.php?title=WebServices&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3758588074127661468?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3758588074127661468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3758588074127661468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3758588074127661468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3758588074127661468'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/03/accessing-xprocess-via-web-services.html' title='Accessing xProcess via Web Services'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/S6NSloZoWEI/AAAAAAAAAYE/iy1kpkvkR9I/s72-c/web1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-9036889570192432803</id><published>2010-03-12T09:13:00.003Z</published><updated>2010-03-12T09:24:50.222Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Velocity'/><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Effort'/><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><title type='text'>Precision and accuracy in estimating</title><content type='html'>The difference between precision and accuracy has always been important to engineers and it is vital to understand too in the context of estimating for software projects. One approach to estimating a project is to create a detailed work breakdown structure and estimate each task, say in person-hours. A friend told me recently she had consulted on a project which had estimated its size as 135,213 person-hours! The precision in this case is 6 significant figures. As to the accuracy however, previous projects had errors or between 10 and 200%. The precision actually gets in the way of understanding the estimate, particularly as crucial business decisions involving significant proportions of a company's revenue may be based on such numbers. While three-point estimating (3pe) provides one way of capturing risk estimates along with the estimate themselves, the main contribution of agile methods in this area is the tight feedback loop from measured velocity timebox by timebox. Check out some of the links below to see how xProcess supports these concepts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-9036889570192432803?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/9036889570192432803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=9036889570192432803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9036889570192432803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9036889570192432803'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/03/precision-and-accuracy-in-estimating.html' title='Precision and accuracy in estimating'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-902058847890911947</id><published>2010-03-09T11:29:00.010Z</published><updated>2010-03-15T16:39:28.178Z</updated><title type='text'>Naked Objects</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/S5YzkJMsh9I/AAAAAAAAAX8/_jjGZKbsc9M/s1600-h/41ROiSuNC7L._SL500_SX85_.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 85px; height: 105px;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/S5YzkJMsh9I/AAAAAAAAAX8/_jjGZKbsc9M/s400/41ROiSuNC7L._SL500_SX85_.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5446597495388669906" /&gt;&lt;/a&gt;I recently received and re-read Dan Haywood's excellent "&lt;a href="http://www.amazon.co.uk/Domain-Driven-Design-Objects-Pragmatic-Programmers/dp/1934356441/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1268670950&amp;amp;sr=8-1"&gt;Domain-Driven Design  Using Naked Objects&lt;/a&gt;" (I'd read a review copy some months ago). It's definitely worth the effort and I'm hoping to get some of the exercises done too as this means I can get up to speed with where the Naked Objects framework currently is these days.One of the first pieces of prototyping we did with xProcess (back in 2003) was to create a domain model (using TogetherSoft's "Together") and then connect it to Naked Objects so we could dynamically interact with those early models of Project, Task and Person. Naked Object effectively animates a domain model so you have an instant user interface to manipulate the domain objects. I believe the approach helped us then and I would certainly recommend projects consider doing the same - particularly in early stages of a project - as getting good domain models early pays off many times over at the end of the day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-902058847890911947?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/902058847890911947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=902058847890911947' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/902058847890911947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/902058847890911947'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/03/naked-objects.html' title='Naked Objects'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/S5YzkJMsh9I/AAAAAAAAAX8/_jjGZKbsc9M/s72-c/41ROiSuNC7L._SL500_SX85_.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-1536940811684779078</id><published>2010-02-19T12:46:00.004Z</published><updated>2010-02-19T12:53:07.068Z</updated><title type='text'>CSV Import in xProcess</title><content type='html'>We're currently working on new import mechanism in xProcess that is both more powerful and more flexible. It builds on the recently released facility to define custom columns in tables for tasks and other elements in the "rich-client" implementation. This allows you to display information about elements, say a calculated value based on standard or customised fields of a task. You can export values displayed in a table into a CSV (comma-separated values) file. The new facility will allow CSV files to be imported and the values in columns to be imported as properties of the elements imported. If you'd like to know more about this facility or be involved in beta testing the feature do let us know. You can contact the development team via the forum in the SourceForge project: &lt;a href="http://sourceforge.net/projects/xprocess/develop"&gt;http://sourceforge.net/projects/xprocess/develop&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-1536940811684779078?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/1536940811684779078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=1536940811684779078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1536940811684779078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1536940811684779078'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2010/02/csv-import-in-xprocess.html' title='CSV Import in xProcess'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6319186377657793405</id><published>2009-11-27T16:10:00.004Z</published><updated>2009-11-27T16:44:13.142Z</updated><title type='text'>Video on xProcess</title><content type='html'>There is a new training video available for xProcess developed by Dr Vic Uzumeri of &lt;a href="http://www.ipov.net"&gt;Interactive Point of View&lt;/a&gt;. Click on the link below to try it.&lt;div&gt;&lt;br /&gt;&lt;a href="http://demo.cosolvent.com/ccs/main.php?g2_itemId=10470"&gt;xProcess Tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It may take a minute because of the file size, depending on connection speed. Also as it's embedded in a PDF you need a compatible version of Adobe Acrobat. We may get a more generic and faster playing web-based version later so please let me know if you have any problems with this link.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6319186377657793405?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6319186377657793405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6319186377657793405' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6319186377657793405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6319186377657793405'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/11/video-on-xprocess.html' title='Video on xProcess'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-9180240559468704886</id><published>2009-09-22T18:09:00.004+01:00</published><updated>2009-09-22T18:21:28.133+01:00</updated><title type='text'>Training graduates in Software Engineering</title><content type='html'>When gaps in the Blog occur it's a clue something rather distracting is going on! For me it was a long (10 week) assignment in North Carolina training software graduates in the induction programme of a major financial institution. Both challenging and fun, it was also an opportunity to think about the future of the industry in a challenging business environment. To me it is clear that business models are changing so rapidly - frequently totally overturning only recently established major successes - that new approaches to business and software process will sweep through many traditional firms. We taught both agile and iterative-incremental lifecycles (with more emphasis on the latter). However I expect agile to be the only option on such programmes in years to come.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although I've had less opportunity to participate in xProcess development, we've seen healthy activity on the project over the summer and new interest from projects. For more details check out the SourceForge site here: &lt;a href="http://sourceforge.net/projects/xprocess/"&gt;http://sourceforge.net/projects/xprocess/&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-9180240559468704886?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/9180240559468704886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=9180240559468704886' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9180240559468704886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9180240559468704886'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/09/training-graduates-in-software.html' title='Training graduates in Software Engineering'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-71738420291199511</id><published>2009-05-20T14:55:00.006+01:00</published><updated>2009-05-20T15:18:19.360+01:00</updated><title type='text'>Randomness</title><content type='html'>It seems that nearly everything that we are formally "taught" turns out to be useless. Yet a few of the so-called "useless" things we do turn out to be invaluable - incredibly useful. And without the "useless" things we do, that do indeed turn out to be useless, we would never have found those incredibly useful ones!&lt;br /&gt;&lt;br /&gt;I was struck by &lt;a href="http://www.fooledbyrandomness.com/"&gt;Nassim Taleb&lt;/a&gt;'s story in &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1400063515/nassimtalebsfavo/002-8533486-7104820"&gt;The Black Swan&lt;/a&gt; about the inventor of the laser. Far from having eyesight correction, compact disks, fibre optics, data storage or microsurgery in mind when he invented it, he was just satisfying his desire to split light beams. As Taleb observed "We build toys. Some toys change the world."&lt;br /&gt;&lt;br /&gt;The moral of the story to me is simple: &lt;a href="http://helens-learn-play.blogspot.com/"&gt;learn play&lt;/a&gt;! Rather than seeing education as the process of acquiring knowledge, we should see it as the first steps in learning to think. The knowledge we acquired may be dangerous, particularly as it displaces the unacquired knowledge that may turn out to be more useful in a particular real-life situation. Where it is useful it can often be acquired when needed, provided our education gave us the means to learn and to inquire.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-71738420291199511?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/71738420291199511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=71738420291199511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/71738420291199511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/71738420291199511'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/randomness.html' title='Randomness'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5770127944022966046</id><published>2009-05-14T13:08:00.005+01:00</published><updated>2009-05-27T13:09:49.283+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Effort'/><category scheme='http://www.blogger.com/atom/ns#' term='Overhead tasks'/><title type='text'>What is an "overhead" task?</title><content type='html'>When starting to use xProcess there are a number of terms that may be unfamiliar. What for example is an "overhead" task?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Sh0tXEwnYrI/AAAAAAAAAX0/ZfJfA5k6kzo/s1600-h/blog38.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 72px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Sh0tXEwnYrI/AAAAAAAAAX0/ZfJfA5k6kzo/s400/blog38.JPG" alt="" id="BLOGGER_PHOTO_ID_5340474607569167026" border="0" /&gt;&lt;/a&gt;In general terms an overhead task is one which &lt;span style="font-style: italic;"&gt;does not directly result in the modification or qualification of a required project deliverable&lt;/span&gt;. Under this definition most management activities, meetings, planning and monitoring are overheads, while specifying, designing, coding, documenting and testing are "payload" activities.&lt;br /&gt;&lt;br /&gt;In xProcess there are 2 ways of specifying how a task will be scheduled: &lt;span style="font-style: italic;"&gt;date-based &lt;/span&gt;or &lt;span style="font-style: italic;"&gt;effort based&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Date-based tasks are generally more applicable to overheads. They run from a date to a date (the date may be derived from other dates such as project start and end or target dates) and have a specified time (or percentage of available time) to determine the effort required per day. If there are no resources available to carry out the task the start and end date are not changed - they will just consume less time in the schedule.&lt;br /&gt;&lt;br /&gt;Effort-based tasks are the more normal type of task in xProcess. They have a specified size and required effort (see this link for the &lt;a href="http://xprocess.blogspot.com/2007/03/estimating-size-and-effort-why-are-they.html"&gt;difference between size and effort&lt;/a&gt;). Their start and end dates are derived from the effort required and the availability of suitable resources (people who have matching role types and skills).&lt;br /&gt;&lt;br /&gt;You don't have to use overhead tasks in your process - for example you could include in your estimates the time that will be required for these other activities. However it is useful to get a view from the time booked to overheads of the efficiency of your process and where improvements might be made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5770127944022966046?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5770127944022966046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5770127944022966046' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5770127944022966046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5770127944022966046'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/what-is-overhead-task.html' title='What is an &quot;overhead&quot; task?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/Sh0tXEwnYrI/AAAAAAAAAX0/ZfJfA5k6kzo/s72-c/blog38.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7526034045315652954</id><published>2009-05-07T16:58:00.007+01:00</published><updated>2009-05-07T17:15:10.460+01:00</updated><title type='text'>Nominate xProcess for the Source Forge Community Choice Awards</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 151px; height: 137px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/SgMIv6pG26I/AAAAAAAAAXs/CVuzy2KZNYE/s400/cca_nominate.png" alt="" id="BLOGGER_PHOTO_ID_5333116003025345442" border="0" /&gt;&lt;/a&gt;Source Forge today opened nominations for its &lt;span style="font-weight: bold;"&gt;Community Choice Awards&lt;/span&gt;. Why not nominate xProcess now in any or all of these categories:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Best New Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Best Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Best Project for the Enterprise&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Best Tool or Utility for Developers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Best Commercial Open Source Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/community/cca09/nominate/?project_name=xProcess&amp;amp;project_url=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxprocess%2F"&gt;Most Likely to Change the Way You Do Everything&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Vote now - it only takes a click!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7526034045315652954?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7526034045315652954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7526034045315652954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7526034045315652954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7526034045315652954'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/nominate-xprocess-for-source-forge.html' title='Nominate xProcess for the Source Forge Community Choice Awards'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/SgMIv6pG26I/AAAAAAAAAXs/CVuzy2KZNYE/s72-c/cca_nominate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-9074751847953374901</id><published>2009-05-07T10:22:00.008+01:00</published><updated>2009-05-07T11:43:44.890+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Resourcing your Scrum Project</title><content type='html'>In a &lt;a href="http://xprocess.blogspot.com/2009/04/scrum-xprocess-step-by-step.html"&gt;previous article&lt;/a&gt; I explained how to set up a Scrum project in xProcess and the steps to go through to set up a Scrum project in xProcess:&lt;ol&gt;&lt;li&gt;I&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SgKpotMdsfI/AAAAAAAAAXE/Ng4RZwxnWM0/s1600-h/blog36.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 99px; height: 139px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SgKpotMdsfI/AAAAAAAAAXE/Ng4RZwxnWM0/s400/blog36.JPG" alt="" id="BLOGGER_PHOTO_ID_5333011425551823346" border="0" /&gt;&lt;/a&gt;mport the Scrum process into your data source.&lt;/li&gt;&lt;li&gt;Create a project (setting the various parameters in the New Project dialog)&lt;/li&gt;&lt;li&gt;Add project resources and give people the appropriate Scrum role (e.g. Product Owner, Scrum Master or Team Member)&lt;/li&gt;&lt;li&gt;Create the first Sprint&lt;/li&gt;&lt;li&gt;Create backlog items&lt;/li&gt;&lt;li&gt;Create a Delivery&lt;/li&gt;&lt;li&gt;Ensure Team Members update their tasks regularly.&lt;/li&gt;&lt;/ol&gt;Here I want to look in a bit more detail at adding project resources.&lt;br /&gt;&lt;br /&gt;Clicking the &lt;span style="font-style: italic;"&gt;Resources&lt;/span&gt; icon on the Project Toolbar (see image above) takes you to the resources tab for the project where you can add people to the project and also change their roles. There are 3 roles defined in the Basic Scrum process: Product Owner, Scrum Master and Team Member. Adding in people with these role types is the next step.&lt;br /&gt;&lt;br /&gt;The tasks for Product Owner and Scrum Master are defined under "Administration and overheads" in the task hierarchy and they are date-based tasks. This means they run between specific dates (in this case the dates of the project) and are assumed to take a fixed amount or proportion of time each day. You can change these amounts by double-clicking on the task and adjusting the Required Resources. Some teams don't need to track time spent on Product Owner tasks and only wish to record work on stories and technical tasks in Sprints. If so you can can remove this task from the plan and leave the Product Owner out of the resources. It just depends what information you need, or might use later to improve your process.&lt;br /&gt;&lt;br /&gt;Once you've defined your resources, here's what the "Available Resources" tab of the project might look like:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/SgKuhrNgZvI/AAAAAAAAAXU/pmuomDpJJwc/s1600-h/blog37.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 339px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/SgKuhrNgZvI/AAAAAAAAAXU/pmuomDpJJwc/s400/blog37.JPG" alt="" id="BLOGGER_PHOTO_ID_5333016802318378738" border="0" /&gt;&lt;/a&gt;You can see the hours available for each person on the project and also the roles. If you need to change availability either at the company level, an individual level or for the project you can do this by opening the Availability tab of the organization or person, or by using the "Manage Project Availability for..." button on the project's "Available Resources" tab.&lt;br /&gt;&lt;br /&gt;The Scrum configuration has one other field which uses the resource levels on the project. It's on the "Set up" tab which is found at the bottom of the project window. The field is called "Number in team member role" and it is used to size Sprints correctly when they are first created. You should enter the number of teams members (assuming they are all full time). If some are part-time, or some like the Scrum Master working on other tasks as well, remember to allow for the "Overheads level", which by default is 80%.&lt;br /&gt;&lt;br /&gt;The next task then is to define Sprints. More later...&lt;br /&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SgKuOgkiV9I/AAAAAAAAAXM/wPRLC3XGZT8/s1600-h/blog37.JPG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-9074751847953374901?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/9074751847953374901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=9074751847953374901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9074751847953374901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9074751847953374901'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/resourcing-your-scrum-project.html' title='Resourcing your Scrum Project'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/SgKpotMdsfI/AAAAAAAAAXE/Ng4RZwxnWM0/s72-c/blog36.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8651335740054265594</id><published>2009-05-06T15:58:00.004+01:00</published><updated>2009-05-13T18:20:51.741+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><title type='text'>Using the Workflow Server</title><content type='html'>A number of people have enquired about the xProcess Workflow Server recently and whether they can download it from &lt;a href="https://sourceforge.net/projects/xprocess/"&gt;SourceForge&lt;/a&gt; and run it. Though you can download and build the source code (see instructions on the &lt;a href="http://xprocess.wiki.sourceforge.net/HowTo+EclipseSetup"&gt;Wiki &lt;/a&gt;to find out how to do this - and which projects &lt;a href="http://xprocess.wiki.sourceforge.net/xProcess+Workflow+Projects"&gt;here&lt;/a&gt;), we’ve not included the Workflow Server in the pre-built packages for download. Instead we are supplying it as part of a support package for clients in order to ensure that we can put all the components in place for any specific implementation of workflow.&lt;br /&gt;&lt;br /&gt;The xProcess Workflow Server runs on Tomcat and is designed to respond to events that occur within the xProcess Data Source (detected by the DataSourceMonitor) or in external systems (detected by custom Monitors). Typical uses for the Workflow Server are&lt;br /&gt;&lt;ul&gt;&lt;li&gt; to integrate with other systems, such as bug tracking systems, that are running in your environment &lt;/li&gt;&lt;li&gt; to notify users by email of changes to plans or processes &lt;/li&gt;&lt;li&gt; to update external systems with changes that have occurred in xProcess. &lt;/li&gt;&lt;/ul&gt; There are some useful blog articles (referenced below) that help understand more about the Workflow Server:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://xprocess.blogspot.com/2008/02/developing-your-own-workflow-monitor.html"&gt;Developing your own workflow monitor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xprocess.blogspot.com/2006/12/from-tracking-to-planning.html"&gt; Discussion of a typical tracking system integration&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://xprocess.blogspot.com/2006/12/new-diagram-in-xprocess.html"&gt;Example State-transition-diagram (STD)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The last article in the list discusses the use of the in-built STD for definition the actions triggered by internal changes (e.g. sending &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/SgGrPrzcH1I/AAAAAAAAAW8/68M3CjhFYls/s1600-h/std.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 192px; height: 200px;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/SgGrPrzcH1I/AAAAAAAAAW8/68M3CjhFYls/s200/std.JPG" alt="" id="BLOGGER_PHOTO_ID_5332731719728242514" border="0" /&gt;&lt;/a&gt;notifications when the state of tasks, targets or resources change). Only this mechanism allows workflow mechanisms to be changed without writing Java code. However even this mechanism requires a significant amount of set up, for example to include email servers and to define OGNL actions, which are triggered on state changes. This is why it is best to download the source code itself if you want to really unleash the full potential of this feature of xProcess. You can build the Workflow Server directly, set up email servers and other configurations, and integrate with your own code for external system monitors.&lt;br /&gt;&lt;br /&gt;Also included in the source code are a number of examples of workflow usage, including and integration with the “&lt;a href="http://flyspray.org/"&gt;Flyspray&lt;/a&gt;” bug tracking system. When running, this automatically creates tasks to correspond with confirmed bugs in Flyspray, and also updates the status of the issues when the xProcess tasks are closed for example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8651335740054265594?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8651335740054265594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8651335740054265594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8651335740054265594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8651335740054265594'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/using-workflow-server.html' title='Using the Workflow Server'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/SgGrPrzcH1I/AAAAAAAAAW8/68M3CjhFYls/s72-c/std.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-9178478918566033060</id><published>2009-05-01T00:55:00.006+01:00</published><updated>2009-05-01T01:03:04.298+01:00</updated><title type='text'>Open Source Announcement for OpenXprocess</title><content type='html'>This press release is hot off the press. You read it here first!&lt;br /&gt;&lt;br /&gt;Date: 1st May, 2009&lt;br /&gt;Location: SOUTHAMPTON, UK.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ivis Technologies and xProcess Europe announced today that xProcess will now be available under an open source license, expanding its already substantial user base to a much wider community.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Also announced today was the setting up of a new company, OpenXprocess Ltd, to own, manage and support xProcess and supply training mentoring and maintenance services to users worldwide.&lt;br /&gt;&lt;br /&gt;xProcess allows users to define project management processes (for example task patterns, artifacts, gateways and workflows) and then run live projects while monitoring targets, deliveries and process compliance. Agile methods for software development such as Scrum, FDD and variants of Unified Process are particularly well supported by the technology, which provides priority-driven ordering of activities and resource balancing. The free download of the product includes pre-configured processes for Scrum and other methods. &lt;a href="http://www.openxprocess.com/pr/pr090501.htm"&gt;Read more…&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-9178478918566033060?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/9178478918566033060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=9178478918566033060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9178478918566033060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/9178478918566033060'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/05/open-source-announcement-for.html' title='Open Source Announcement for OpenXprocess'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5777811228737686676</id><published>2009-04-02T13:12:00.009+01:00</published><updated>2009-05-07T11:43:07.259+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Scrum-xProcess: step by step</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SdS_5If6ThI/AAAAAAAAAWs/_P_GSKGzFCI/s1600-h/blog35.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 166px; height: 200px;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SdS_5If6ThI/AAAAAAAAAWs/_P_GSKGzFCI/s200/blog35.JPG" alt="" id="BLOGGER_PHOTO_ID_5320088048086175250" border="0" /&gt;&lt;/a&gt;I always tell people who are starting with xProcess to try the simplest things first, and in particular to try out "Simple Process" before embarking on processes which have more complex features configured, like the Scrum and FDD processes. This is just so you get the idea of what the scheduler does, how to reprioritise tasks and the effects of adding resources, manually assigning tasks, adding constraints (dependencies) and using the gantt and burndown charts. So it's a good idea to read &lt;a href="http://xprocess.blogspot.com/2009/02/simplest-possible-project.html"&gt;The Simplest Possible Way to Get a Project Plan&lt;/a&gt; before reading this article because that takes you very quickly through those first steps.&lt;br /&gt;&lt;br /&gt;So I'm assuming you've had a play with those first steps of setting up a project in xProcess and now you're ready to use a more configured process, in fact to use Basic Scrum 3. (Note processes can be easily changed in xProcess so it's very possible further changes have been made to this process by the time you read this article! The principles should hold though.)&lt;br /&gt;&lt;br /&gt;These are the steps to go through to set up a Scrum project in xProcess:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Import the Scrum process into your data source.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a project (setting the various parameters in the New Project dialog)&lt;/li&gt;&lt;li&gt;Add project resources and give people the appropriate Scrum role (e.g. Product Owner, Scrum Master or Team Member)&lt;/li&gt;&lt;li&gt;Create the first Sprint&lt;/li&gt;&lt;li&gt;Create backlog items&lt;/li&gt;&lt;li&gt;Create a Delivery&lt;/li&gt;&lt;li&gt;Ensure Team Members update their tasks regularly.&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/SdTUmPIEdDI/AAAAAAAAAW0/84uczQ36oeE/s1600-h/blog3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 247px; height: 320px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/SdTUmPIEdDI/AAAAAAAAAW0/84uczQ36oeE/s320/blog3.JPG" alt="" id="BLOGGER_PHOTO_ID_5320110813191894066" border="0" /&gt;&lt;/a&gt;The first two steps can be done separately or together. Firstly ensure you are in the Project Manager perspective (if you see either "Project Participant" or "Process Engineer" on the toolbar, click the icon and change to "Project Manager"). Then click on the "Projects" button on the Project Toolbar (on left usually) and then select "New". This brings up the dialog shown at the top of this page. Here you can select the Basic Scrum process and import it. Then at the top of the same dialog select this process and hit next. This brings up the dialog shown here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xprocess.blogspot.com/2009/05/resourcing-your-scrum-project.html"&gt;More to come...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5777811228737686676?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5777811228737686676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5777811228737686676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5777811228737686676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5777811228737686676'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/04/scrum-xprocess-step-by-step.html' title='Scrum-xProcess: step by step'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SdS_5If6ThI/AAAAAAAAAWs/_P_GSKGzFCI/s72-c/blog35.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2110365634660355143</id><published>2009-04-02T12:48:00.003+01:00</published><updated>2009-04-02T13:24:10.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Getting started with Scrum-xProcess</title><content type='html'>There are several useful articles on Scrum-xProcess in the blog and if you're starting using the process it's worth having a browse of these to guide your initial set-up.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;Using the pre-defined Scrum process&lt;/a&gt; - this is the first of a series of articles on using Scrum-xProcess. You can follow them sequentially from this article.&lt;br /&gt;&lt;a href="http://xprocess.blogspot.com/search/label/Scrum"&gt;Don't burn out... Burn Down!&lt;/a&gt; - discussion of burndown charts.&lt;br /&gt;&lt;a href="http://xprocess.blogspot.com/2008/02/calculating-team-velocity.html"&gt;Calculating team velocity&lt;/a&gt; - discussion of velocity and productivity.&lt;br /&gt;&lt;a href="http://xprocess.blogspot.com/2008/11/rescheduling-tasks-to-date-you-want.html"&gt;Rescheduling tasks to the date you want&lt;/a&gt; - what to do when then auto-scheduler doesn't schedule a task when you want it!&lt;br /&gt;&lt;br /&gt;I'm going to start a new article now to take you through step by step of setting up a Scrum process. Here's the link to that one... &lt;a href="http://xprocess.blogspot.com/2009/04/scrum-xprocess-step-by-step.html"&gt;Scrum-xProcess: step by step&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2110365634660355143?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2110365634660355143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2110365634660355143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2110365634660355143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2110365634660355143'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/04/getting-started-with-scrum-xprocess.html' title='Getting started with Scrum-xProcess'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4774966386071106911</id><published>2009-04-01T16:56:00.003+01:00</published><updated>2009-04-19T00:32:42.554+01:00</updated><title type='text'>Opening the source...</title><content type='html'>The source code of xProcess is finally being released today after several months discussion and negotiation concerning the ownership and licensing terms for the code. We settled on the GNU Affero General Public License and having dotted all the i's and crossed all the t's in the legal documents, it's finally out there. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4774966386071106911?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4774966386071106911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4774966386071106911' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4774966386071106911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4774966386071106911'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/04/opening-source.html' title='Opening the source...'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-461797010186705542</id><published>2009-03-26T09:55:00.012Z</published><updated>2009-03-28T15:58:36.303Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><title type='text'>In search of a definition of uncertainty in three point estimates</title><content type='html'>I've written elsewhere in this blog about the value and theory of three-point estimating (3PE). See "&lt;a href="http://xprocess.blogspot.com/2006/01/3pe-why-i-use-three-estimates-where.html"&gt;3PE - why I use three estimates where one might do!&lt;/a&gt;". The main practical snag with using 3PE in an agile context is the additional overhead of thinking of 3 numbers every time you want to confirm "effort to complete" - ideally something people can quickly update even on a daily basis.&lt;br /&gt;&lt;br /&gt;So I'm working on a mechanism which shows the &lt;span style="font-style: italic;"&gt;level of uncertainty&lt;/span&gt; in an estimate to complete which takes into account the effort completed to date (T) and the three points of the estimate: best case (b), most likely (m) and worst case (w). If you're interested in the intricacies of such things, please read on!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/Sctb7ZehEfI/AAAAAAAAAWk/FLl2RjDWeT4/s1600-h/blog34.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 100px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/Sctb7ZehEfI/AAAAAAAAAWk/FLl2RjDWeT4/s400/blog34.JPG" alt="" id="BLOGGER_PHOTO_ID_5317444861050294770" border="0" /&gt;&lt;/a&gt;The composite estimate (E) is the estimate is the derived "median" which is used when one number is required (as for example in the "Total" field in the screenshot above). It is derived from best case (b), most likely (m) and worst case (w) as follows based on assumptions about distribution of cases between best and worst:&lt;br /&gt;&lt;br /&gt;E = (b + 4m + w) / 6&lt;br /&gt;&lt;br /&gt;Various formulae are possible for our &lt;span style="font-style: italic;"&gt;level of uncertainty &lt;/span&gt;or estimate risk (R). Here's a starting point expressed in terms of just b and w as follows:&lt;br /&gt;&lt;br /&gt;R = (w - b) / (w + b - 2T)                                                                ..................................[1]&lt;br /&gt;&lt;br /&gt;This expresses the average "error", (w-b)/2, as a proportion of the average time to complete, (w+b-2T)/2. However since it ignores the most likely estimate, it doesn't take into account that for example the worst case may be much further away from the most likely than the most likely is from the best case. An alternative formula would therefore be:&lt;br /&gt;&lt;br /&gt;R = (w - m) / (m -T)                                                                         ........................................[2]&lt;br /&gt;&lt;br /&gt;But this formula ignores the best case completely. One could say the "error" should be defined as whichever is greater out of (w-m) or (m-b), but actually it's not this aspect that worries me practically. The worst case is always more significant from a forecasting viewpoint, and from an estimating viewpoint it is the one that can be much further in error than the best case, which can never go lower than T and in practice will always be a little bit higher than T (or you can forget about estimating and just finish it!).&lt;br /&gt;&lt;br /&gt;So a better approach is to define the "error" in the formula for R relative to the median estimate, E, all three points are then taken into account. It's much more satisfactory.&lt;br /&gt;&lt;br /&gt;Following this approach, here's the formula for the uncertainty in the estimates (estimate risk) that I'll be using:&lt;br /&gt;&lt;br /&gt;R = (w - E) / (E - T) ........................................[3]&lt;br /&gt;&lt;br /&gt;For those interested in the mechanisms within &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; to use this formula, there'll be a discussion on that project's  &lt;a href="http://xprocess.wiki.sourceforge.net/Setting+Estimate+Risk"&gt;wiki&lt;/a&gt; about how users can set estimate to complete and &lt;span style="font-style: italic;"&gt;level of uncertainty&lt;/span&gt; rather than worrying about 3pe every time they update time to complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-461797010186705542?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/461797010186705542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=461797010186705542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/461797010186705542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/461797010186705542'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/03/in-search-of-definition-of-uncertainty.html' title='In search of a definition of uncertainty in three point estimates'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/Sctb7ZehEfI/AAAAAAAAAWk/FLl2RjDWeT4/s72-c/blog34.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7839993080820940378</id><published>2009-03-19T09:40:00.006Z</published><updated>2009-03-19T10:41:45.855Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Inaugural meeting of the Southern UK Scrum User Group</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/ScITpFbmWmI/AAAAAAAAAWc/2NrvaE7AN8c/s1600-h/iof.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 134px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/ScITpFbmWmI/AAAAAAAAAWc/2NrvaE7AN8c/s200/iof.jpg" alt="" id="BLOGGER_PHOTO_ID_5314832106804107874" border="0" /&gt;&lt;/a&gt;Several scrum enthusiasts in the South of England have decided that, rather than spending a few hours on the train to get to the London Scrum meeting, it would be a good idea to get together more locally to talk about Scrum. The inaugural meeting was last night at the Inn on the Furlong in Ringwood (easy reach of Southampton, Bournemouth, Winchester, Salisbury and so on). Apart from some excellent discussions about people's experiences with Scrum we were able to savour the very fine selection of real ales from the Ringwood brewery. If you're in the South of England and interested in joining us next time check out the group's forum discussions on LinkedIn &lt;a href="http://www.linkedin.com/groups?gid=1802122&amp;amp;trk=anetsrch_name&amp;amp;goback=.gdr_1237396983984_5"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7839993080820940378?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7839993080820940378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7839993080820940378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7839993080820940378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7839993080820940378'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/03/inaugural-meeting-of-southern-uk-scrum.html' title='Inaugural meeting of the Southern UK Scrum User Group'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/ScITpFbmWmI/AAAAAAAAAWc/2NrvaE7AN8c/s72-c/iof.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2154542098977523134</id><published>2009-03-17T18:49:00.017Z</published><updated>2009-03-18T14:40:00.294Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>How to define a custom report in v3</title><content type='html'>There are 2 ways to generate a report on a project. One is to right-click on a project and select "Reports", and the other is to select from the File menu: File -&gt; Menu -&gt; Custom Reports and then select the type of report you want and its subject. For example using File-&gt;Export we can select a "Work Log" report for a person or a task.&lt;br /&gt;&lt;br /&gt;What if the report we want isn't in the list? Can you write your own report template? Yes you can - that's what this article is about.&lt;br /&gt;&lt;br /&gt;Let's say I want a report on a task in the project. I need to define an "Action" in the process I'm using, identify that action as an "Export Action" (checkbox in the Action &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/ScDBuhnDuwI/AAAAAAAAAWU/O1kP_1Mt65Q/s1600-h/blog33.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 235px; height: 320px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/ScDBuhnDuwI/AAAAAAAAAWU/O1kP_1Mt65Q/s320/blog33.JPG" alt="" id="BLOGGER_PHOTO_ID_5314460565337520898" border="0" /&gt;&lt;/a&gt;dialog) and define the file extension for the report. Let's say in this case we want an html file. You can see in the screenshot this action being defined. Note that the "Applicable to:" field has been filled in as "Task" and also the "Expression:" field has been given the value "name". This won't be a terribly fascinating report but even so let's run it!&lt;br /&gt;&lt;br /&gt;Use the File-&gt; Export-&gt; Custom Reports menu and select one of the tasks in your project as the subject of the report. Once you've supplied a filename and pressed "Finish" you should find that a browser is launched and a page generated containing the name of your task. Congratulations you've generated your first xProcess custom report!&lt;br /&gt;&lt;br /&gt;So what about doing someting a bit more interesting. As you've probably guessed by now that will mean looking in a bit more detail at the "Expression" field. The script that goes in this field must be written in &lt;a href="http://www.opensymphony.com/ognl/"&gt;OGNL&lt;/a&gt; so you need to know a bit about that language - if you'd like to read the (quite small) reference manual click &lt;a href="http://www.opensymphony.com/ognl/html/LanguageGuide/index.html"&gt;here&lt;/a&gt; - and a little bit about the xProcess Java API. (You'll also find the OGNL reference manual in the xProcess Help documentation.)&lt;br /&gt;&lt;br /&gt;So let's try a slightly larger bit of OGNL to generate our task report. How about this:&lt;br /&gt;&lt;blockquote&gt;'&amp;lt;h1&amp;gt;' + name + '&amp;lt;/h1&amp;gt;' + '&amp;lt;br&amp;gt;' +&lt;br /&gt;description + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'Start: ' + start + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'End: ' + end50 + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'Closed?: ' + closed&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;You could even turn this into a report on all tasks in your project. First change the "Applicable to:" field to "Project" (this will also mean you can invoke it by right-clicking on your project) and turn the above code into a subroutine that can be called for every task. Like this...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#taskReport = :[&lt;br /&gt;#output = #output +&lt;br /&gt;'&amp;lt;h1&amp;gt;' + name + '&amp;lt;/h1&amp;gt;' + '&amp;lt;br&amp;gt;' +&lt;br /&gt;description + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'Start: ' + start + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'End: ' + end50 + '&amp;lt;br&amp;gt;' +&lt;br /&gt;'Closed?: ' + closed&lt;br /&gt;],&lt;br /&gt;#output = '',&lt;br /&gt;allTasks.{#taskReport(#this)},&lt;br /&gt;#output&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Browse other Actions in the predefined processes to see other examples of using OGNL. Then if you make a report you think others will find useful - or if you need help with syntax or the API - post it to one of the xProcess Forums on SourceForge. See &lt;a href="https://sourceforge.net/forum/?group_id=251380"&gt;xProcessForums&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2154542098977523134?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2154542098977523134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2154542098977523134' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2154542098977523134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2154542098977523134'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/03/how-to-define-custom-report-in-v3.html' title='How to define a custom report in v3'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/ScDBuhnDuwI/AAAAAAAAAWU/O1kP_1Mt65Q/s72-c/blog33.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3698543674775087724</id><published>2009-03-11T10:18:00.004Z</published><updated>2009-03-18T11:27:51.585Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><title type='text'>Define the process behind your projects</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/SbeRG4096kI/AAAAAAAAAWM/ek-exVdyZDY/s1600-h/processModelling.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/SbeRG4096kI/AAAAAAAAAWM/ek-exVdyZDY/s400/processModelling.JPG" alt="" id="BLOGGER_PHOTO_ID_5311873833026579010" border="0" /&gt;&lt;/a&gt;To get started with &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;it's sensible to start with a pre-defined process - the &lt;span style="font-style: italic;"&gt;Simple Process&lt;/span&gt; for example (see &lt;a href="http://xprocess.blogspot.com/2009/02/simplest-possible-project.html"&gt;"The Simplest Possible Way to Get a Project Plan?"&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;However defining your own process in &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; needn't be complicated. First thing is to switch to the &lt;span style="font-style: italic;"&gt;Process Engineer &lt;/span&gt;perspective via the toolbar across the top of the screen (from the default &lt;span style="font-style: italic;"&gt;Project Manager &lt;/span&gt;perspective). The explorer view in this perpective shows you the processes that have already been imported into your data source and you can create a new process simply by clicking on the process icon in the task bar on the left hand side.&lt;br /&gt;&lt;br /&gt;Here are some of the other things you can create in a process:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project pattern(s)&lt;/li&gt;&lt;li&gt;Task patterns&lt;/li&gt;&lt;li&gt;Role Types&lt;/li&gt;&lt;li&gt;Category Types&lt;/li&gt;&lt;li&gt;Gateway Types&lt;/li&gt;&lt;li&gt;Workflow Packages&lt;/li&gt;&lt;li&gt;Artifacts and Artifact Types&lt;/li&gt;&lt;/ul&gt;Start by looking at some of the Task Patterns in pre-defined processes like Basic Scrum and Basic FDD which come included in the download. You can see the structure of the task and project patterns by using the hierarchy or process diagram.  When you define a parent task in a pattern you can define what kind of child tasks can be created in the parent by right-clicking on the task and selecting New -&gt; More Patterns... This makes it easier for Project Managers to build sets of tasks that match the process you are defining.&lt;br /&gt;&lt;br /&gt;There are many other aspects of Process Engineering with xProcess to discover. If you are interested in taking the on-line course for the Certified xProcess Engineer qualification, contact us now through the xProcess site on &lt;a href="https://sourceforge.net/forum/forum.php?forum_id=910968"&gt;SourceForge&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3698543674775087724?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3698543674775087724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3698543674775087724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3698543674775087724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3698543674775087724'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/03/define-process-behind-your-projects.html' title='Define the process behind &lt;i&gt;your&lt;/i&gt; projects'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/SbeRG4096kI/AAAAAAAAAWM/ek-exVdyZDY/s72-c/processModelling.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-897985563664132008</id><published>2009-03-03T21:05:00.008Z</published><updated>2010-03-26T14:37:29.072Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='priority-driven processes'/><category scheme='http://www.blogger.com/atom/ns#' term='David Anderson'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Felsing'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Palmer'/><category scheme='http://www.blogger.com/atom/ns#' term='TOC'/><title type='text'>Theory of Constraints and Agile Project Management</title><content type='html'>Recently on the LinkedIn forum &lt;a href="http://www.linkedin.com/groups?home=&amp;amp;gid=1779396&amp;amp;trk=anet_ug_hm"&gt;PM Toolbox&lt;/a&gt;, &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=581828&amp;amp;authToken=6qjz&amp;amp;authType=name" class="fn" title="View Arash Sadati's profile"&gt;Arash Sadati&lt;/a&gt; asked for comments about tool support for how Goldratt's Theory of Constraints (TOC) or Critical Chain Project Management can be integrated as part of the Agile Project Management. Here are my thoughts on the subject.&lt;br /&gt;&lt;blockquote&gt;One thing all agile projects share is that - because of a conscious removal of dependencies between features wherever possible - they will be resource constrained rather than critical path constrained (a generalisation but broadly valid). Methods like Scrum-XP try to avoid specific role constraints (e.g. we can't make progress because we don't have a BA or a GUI expert or a middleware expert available) by specifying only 3 role types (Product Owner, Scrum Master, Team Member). So the team as a whole must to some extent be generalists (or at least prepared to learn / fill in specific roles) to reduce the risk of role constraints. In any real application of Scrum of course such role constraints may be real and teams will have to pay attention to them. The default condition though is worth understanding because it's a means to keep the effect of role constraints to a minimum.&lt;br /&gt;&lt;br /&gt;FDD defines many more roles and I think as a result there is a greater risk of role constraints. Availability of specific class owners for example is a typical problem which Palmer and Felsing discuss in their book on FDD. Flexibility, especially in small teams, for people to wear multiple role "hats" is crucial. The really interesting observation in comparing agile to waterfall is the requirements process where detailed specification of features is ideally "just in time". David Anderson and others point out that it is a serious waste of precious resources to allow too much work to be done on future requirements when the critical constraint is the development team.&lt;br /&gt;&lt;br /&gt;When we were specifying the xProcess product which is designed to support any priority-driven process (any agile process in other words), we did want to be able to give visibility to problems arising from role or resource constraints. Patterns of tasks can be defined in custom processes that require specific or general roles - or even allocation to specific team members - so that forecasting can take into account not only the total development effort available, but in the cases where specialised roles are required. It can therefore show the impact of limited availability of critical roles. Custom reports can be generated to show resource utilisation, and where these show less than 100% utilisation, the situation is likely to be one where specific roles are "critical", requiring other roles to wait for them. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-897985563664132008?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/897985563664132008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=897985563664132008' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/897985563664132008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/897985563664132008'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/03/theory-of-constraints-and-agile-project.html' title='Theory of Constraints and Agile Project Management'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8491915706267421035</id><published>2009-02-18T11:47:00.009Z</published><updated>2009-03-03T21:14:30.954Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><title type='text'>The Simplest Possible Way to Get a Project Plan?</title><content type='html'>I want some work done - so make a new project...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZv2RE6PGcI/AAAAAAAAAVw/6YOZ3gXOfTw/s1600-h/creatingNewProject.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZv2RE6PGcI/AAAAAAAAAVw/6YOZ3gXOfTw/s400/creatingNewProject.JPG" alt="" id="BLOGGER_PHOTO_ID_5304103759395101122" border="0" /&gt;&lt;/a&gt;Ok. Here are the tasks that need doing (I can enter them as a comma separated list).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SZv2C0fTMfI/AAAAAAAAAVo/OYCeFYfUw-0/s1600-h/creatingNewTasks.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SZv2C0fTMfI/AAAAAAAAAVo/OYCeFYfUw-0/s400/creatingNewTasks.JPG" alt="" id="BLOGGER_PHOTO_ID_5304103514468987378" border="0" /&gt;&lt;/a&gt;My task list forecasts that these tasks are never going to complete. I guess that's because I don't have anyone to work on them. So add myself as a resource to the project.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/SZv15FBdo4I/AAAAAAAAAVg/jYTWULzd3oc/s1600-h/addNewProjectResource.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/SZv15FBdo4I/AAAAAAAAAVg/jYTWULzd3oc/s400/addNewProjectResource.JPG" alt="" id="BLOGGER_PHOTO_ID_5304103347108553602" border="0" /&gt;&lt;/a&gt;Good. They're now being scheduled but I don't think the most important things are being done first. I need to prioritise...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZv1wW2GljI/AAAAAAAAAVY/LEWZ9As1aHY/s1600-h/prioritisingTasks.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZv1wW2GljI/AAAAAAAAAVY/LEWZ9As1aHY/s400/prioritisingTasks.JPG" alt="" id="BLOGGER_PHOTO_ID_5304103197273921074" border="0" /&gt;&lt;/a&gt;That's fine. They're in order and I can create a Timebox to show what will be done in the first two weeks. Let's have a look at the forecast Gantt and Burndown charts...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SZv1n7NLc4I/AAAAAAAAAVQ/uyjj1uVMjTw/s1600-h/forecastBurndownAndGanttCharts.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 346px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SZv1n7NLc4I/AAAAAAAAAVQ/uyjj1uVMjTw/s400/forecastBurndownAndGanttCharts.JPG" alt="" id="BLOGGER_PHOTO_ID_5304103052415562626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Seems ok but all the tasks have the default estimate of 2 days. Next job is to estimate those tasks  properly. Oh and I also need to add in the other project resources, and when they're going to be available to the project. Once that's done I'll have a plan I can show my manager.&lt;br /&gt;&lt;br /&gt;Mmmm... That didn't take too long!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8491915706267421035?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8491915706267421035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8491915706267421035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8491915706267421035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8491915706267421035'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/02/simplest-possible-project.html' title='The Simplest Possible Way to Get a Project Plan?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SZv2RE6PGcI/AAAAAAAAAVw/6YOZ3gXOfTw/s72-c/creatingNewProject.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4243888259237742399</id><published>2009-02-13T10:55:00.005Z</published><updated>2009-02-13T14:28:07.991Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><title type='text'>FDD sub-processes in context</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZVT_duk1uI/AAAAAAAAAVI/x4-nROM5UFA/s1600-h/FDD+in+context.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 174px;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SZVT_duk1uI/AAAAAAAAAVI/x4-nROM5UFA/s400/FDD+in+context.JPG" alt="" id="BLOGGER_PHOTO_ID_5302236486075471586" border="0" /&gt;&lt;/a&gt;Like most agile processes FDD doesn't pretend to cover every aspect of the software development life-cycle. Just the essentials for establishing a common approach. In particular FDD doesn't explicitly state how and when releases of software occur during or following an FDD iteration.&lt;br /&gt;&lt;br /&gt;Here's a diagram that attempts to put the releases in context and also shows the distinction between the first 3 sub-processes which &lt;span style="font-style: italic;"&gt;define&lt;/span&gt; the project (or iteration), and the multiple instances of the 4th and 5th sub-processes which &lt;span style="font-style: italic;"&gt;develop&lt;/span&gt; the project (iteration). There can be just one release at the end of an FDD iteration or (more normally?) several releases which &lt;span style="font-style: italic;"&gt;deploy &lt;/span&gt;the developed software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4243888259237742399?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4243888259237742399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4243888259237742399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4243888259237742399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4243888259237742399'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/02/fdd-sub-processes-in-context.html' title='FDD sub-processes in context'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SZVT_duk1uI/AAAAAAAAAVI/x4-nROM5UFA/s72-c/FDD+in+context.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-1759346651761571980</id><published>2009-02-04T10:12:00.004Z</published><updated>2009-02-16T15:43:25.062Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Folders'/><title type='text'>What's different about Folders?</title><content type='html'>When you're deciding on the structure of project patterns for a new process, often the first thing to consider is how to represent the different hierarchies of elements that make up projects.&lt;br /&gt;&lt;br /&gt;In FDD for example there is the hierarchy of features, normally described as being Features, which are contained in Feature Sets, which are contained in Business Areas or Major Feature Sets. This logical grouping of functionality is independent of priority and time-ordering. It may well correspond to the structure of the user manual for example or the Functional Specification should such a document be required. It doesn't give us any time view. On the other hand the hierarchy from Releases -&gt; containing Timeboxes -&gt; containing Features is a time-based structure. Similarly the hierarchy based on the five subprocesses of FDD also will have a time correspondence: The Definition Stage -&gt; containing FDD#1 Develop Overall Model, FDD#2 Build Feature List, and FDD#3 Plan by Feature; The Build Stage -&gt; containing many instances (for each feature) of FDD#4 Design by Feature and FDD#5 Build by Feature; and the Release/Deployment Stage following completion of a release.&lt;br /&gt;&lt;br /&gt;Each of these hierachies is an important view of the tasks and artifacts in the project. However when defining a process in xProcess you must decide which hierarchy will define where a task "lives". This is the parent-child hierarchy of tasks and is analogous to a directory structure which tells you where a file is located. All the other relevant hierachies can be represented with Folders which contain explicit or implicit (defined by rule) references to the tasks. This means that different features may appear in different Timeboxes and Releases, and indeed different subtasks of a feature may appear in different folders (design and build for example may appear in different timeboxes; build and certify a feature may appear in different stages). Since Folders may contain Folders in xProcess as many hierarchies can be provided as are required to understand the process, each to several containment layers if this helps understand the view.&lt;br /&gt;&lt;br /&gt;So Folders provide an alternative hierarchy of tasks to the main parent-child structure. Their membership is defined either explicitly (because the process has put them there or the user has dragged them into the Folder) or implicitly (because the task has a matching category to the category of the Folder). In some methods it is sensible to use the parent-child hierarchy for time-based structure (Basic Scrum 3.0.1 follows this scheme for example). In others using a more static structure such as Business Areas/Feature Sets in FDD or a Work Breakdown Structure in traditional methods, gives the preferred structure for parents-children with more dynamic hierachies being represented with Folders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-1759346651761571980?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/1759346651761571980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=1759346651761571980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1759346651761571980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1759346651761571980'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/02/whats-different-about-folders.html' title='What&apos;s different about Folders?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5280990258079532094</id><published>2009-01-30T16:55:00.003Z</published><updated>2009-02-13T14:30:17.261Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><title type='text'>Description of the xProcess product</title><content type='html'>&lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;xProcess  allows projects to define their own &lt;span style="font-weight: bold;"&gt;processes&lt;/span&gt;... and make and monitor &lt;span style="font-weight: bold;"&gt;plans &lt;/span&gt;that conform to those processes.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;Projects may start from predefined processes such as those for Scrum, FDD, Iconix, Unified Process or Prince  2, or define their own. Using their process definition, projects can be defined, resources added and  tasks defined, estimated and prioritised. xProcess then provides forecasts for  the project against which targets can be set.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;Once a  project is started the participants on the project can access the tasks they  have been assigned and record hours worked against tasks, adjust estimates of  time to complete, add artifacts (such as documents or links to managed files)  and close tasks, including (if the process requires it) completing task  "gateways" to show compliance with intermediate steps of the  task.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;Thus  xProcess supports process definition (including several graphical views of the  process patterns), project management (including defining and estimating tasks,  forecasting, timeboxing, target definition and monitoring, gantt, pert and  burndown charts) and project execution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;The main  client for accessing xProcess information is an Eclipse RCP application. There  is also a web server which provides browser access for project participants. The  RCP client has 3 perspectives for: Process Engineers (defining processes);  Project Managers (defining and monitoring projects); Participants (reviewing and  recoding their work on the project).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5280990258079532094?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5280990258079532094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5280990258079532094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5280990258079532094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5280990258079532094'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/01/description-of-xprocess-product.html' title='Description of the xProcess product'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7885914082974956012</id><published>2009-01-30T16:46:00.002Z</published><updated>2009-02-13T14:30:59.009Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><title type='text'>xProcess project on Source Forge</title><content type='html'>With various announcements, activities and releases in the pipeline, you may be interested to know that there is now an xProcess projects on SourceForge. The site is &lt;a href="http://xprocess.sourceforge.net/"&gt;http://xprocess.sourceforge.net&lt;/a&gt; and althought as of this moment there are no downloads available there, the forums, announcements, wikis, etc. of the project will all be moving up there soon. Why not &lt;a href="http://sourceforge.net/forum/forum.php?forum_id=910968"&gt;post a message there now&lt;/a&gt;?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7885914082974956012?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7885914082974956012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7885914082974956012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7885914082974956012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7885914082974956012'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/01/xprocess-project-on-source-forge.html' title='xProcess project on Source Forge'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7502146862529555632</id><published>2009-01-08T17:20:00.004Z</published><updated>2009-02-13T14:30:59.014Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><title type='text'>Calling Software Development Process experts!</title><content type='html'>&lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;Did you know that from January 2009 the xProcess  project is going &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;open  source&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;This means that projects worldwide will be able to download  and use free process definition and project management software and, if they are so inclined, configure and improve it for their own use. At the same time we  are launching a new services company OpenXprocess. This company will incorporate  xProcess Europe (and xProcess US), and manage the ongoing enhancement of the product, while  offering services to users of xProcess such as: training in Scrum, FDD, Agile,  Iconix Process, Unified Process, Prince and other configured processes of  xProcess; configuration of the product to companies’ own development processes;  and a support package which includes the web server for access to project data  from browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;This is where the software process experts come in. Would you be interested in learning about xProcess and potentially offering  services to configure processes or consult with clients using existing  configurations? The Scrum configuration in xProcess for example provides a  number of unique features which are not available in other Scrum tools (task  matching, forecasting, three-point estimating, target management,  multi-dimensional prioritisation) as well as familiar Scrum tools such as  burndown charts (including burndown forecasts), Gantt charts (auto-generated)  and backlog management. If you would like to be involved I’d very much like to  hear from you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;The process configuration  capabilities of xProcess, particularly now it’s an open source product, offer  important innovations for the industry, and I’m particularly keen to involve  experienced software consultants in this area. In the past  process definitions have been of only passing interest to project managers,  useful guidance but completely separate from the plans they work on day by day.  xProcess changes this relationship since it is now possible to define processes  that instantiate directly into project plans and aid conformance with the  process (or highlight differences) as plans are  implemented.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;Project processes are often  described with Activity diagrams or similar notations. But these are notoriously  difficult to map to the actual activities of a project. With xProcess the  process is described in terms of &lt;i&gt;&lt;span style="font-style: italic;"&gt;task  patterns&lt;/span&gt;&lt;/i&gt; which, when instantiated within the initial &lt;i&gt;&lt;span style="font-style: italic;"&gt;project pattern&lt;/span&gt;&lt;/i&gt;, show the trackable tasks  that are required to complete that part of the process. Where aspects of the  process involve activities that are below the level of trackable tasks – for  example a development task may involve say, coding, testing, integrating and  building – these &lt;i&gt;&lt;span style="font-style: italic;"&gt;steps&lt;/span&gt;&lt;/i&gt; may also  be captured in the process definition through xProcess’s Gateways, which are  defined in task patterns and are completed as questions and answers on closing a  trackable task. And because task patterns may themselves contain task patterns  the process definition language gives as much flexibility to define optional,  repeating or iterating structures as activity diagrams do, but with the  important difference that they map directly into the plan structure that  projects implement.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;If you’ve read this far I hope that  means I’ve at least aroused your curiosity to investigate further. You can  download the product from &lt;a href="http://www.ivis.com/"&gt;www.ivis.com&lt;/a&gt; (soon to be &lt;a title="blocked::http://www.openxprocess.com/" href="http://www.openxprocess.com/"&gt;www.openxprocess.com&lt;/a&gt;) and I very much  hope you’ll do this and encourage colleagues and clients to do likewise. But you  might also be interested in getting directly involved. In Q1 2009  I’ll be conducting some training workshops for potential xProcess consultants or  process engineers (probably in &lt;st1:city st="on"&gt;Denver&lt;/st1:city&gt; and  &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;London&lt;/st1:place&gt;&lt;/st1:city&gt;). Please  let me know if this might be of interest. The training will last 2 days with the  opportunity for a further 3 days collaborative work on a process of your  choosing – this can be carried out either immediately following the training  event or remotely at your convenience, with access to me via phone, skype or  teleconference. Following completion of this we will offer certification as  “Certified xProcess Consultant” so that you can offer services to clients  directly or through OpenXprocess. OpenXprocess will only use certified personnel  for training and consulting services and will support certified consultants in  the field to help ensure your success.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;If you know of others who may be  interested in this, or companies who you feel might want to adopt xProcess,  please let me know.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="" lang="EN-GB"&gt;Wishing you all the best for  2009.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="EN-GB" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: arial;"&gt;Andy  Carmichael.&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7502146862529555632?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7502146862529555632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7502146862529555632' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7502146862529555632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7502146862529555632'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2009/01/calling-software-development-process.html' title='Calling Software Development Process experts!'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8362111300903261770</id><published>2008-12-04T15:48:00.003Z</published><updated>2009-02-13T14:31:23.602Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Folders'/><title type='text'>Folders are changing</title><content type='html'>There's a new spec for Folders in xProcess that should be released shortly in the v3 programme. The new feature let's you define a hierarchy of Folders and it clarifies the difference between folders with "explicit" members (the tasks are in the folder because someone &lt;span style="font-style: italic;"&gt;put&lt;/span&gt; them there) and "implicit" members (the tasks are there because they fulfil the criteria for the folder - usually that they are in the appropriate category.&lt;br /&gt;&lt;br /&gt;Email me or post a comment below if you would like a preview of this spec.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8362111300903261770?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8362111300903261770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8362111300903261770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8362111300903261770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8362111300903261770'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/12/folders-are-changing.html' title='Folders are changing'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3535536164746634180</id><published>2008-11-01T13:23:00.012Z</published><updated>2008-11-04T10:45:18.201Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Rescheduling tasks to the date you want</title><content type='html'>I was asked by someone recently to help them get their task to be scheduled on the date they wanted. One thing xProcess doesn't give you (except for overhead tasks whose size is defined by their duration rather than the estimated effort) is the ability to state when a task should start and stop. This is what the auto-scheduler does, based on your estimates, constraints (e.g. dependencies on other tasks or specific dates), your priorities and your available resources. So what if you have a task which is not being scheduled when you think it should?&lt;p&gt;&lt;/p&gt;Here's the checklist I gave my colleague:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If the task being scheduled &lt;i&gt;&lt;span style="font-style: italic;"&gt;too&lt;/span&gt;&lt;/i&gt; &lt;i&gt;&lt;span style="font-style: italic;"&gt;soon&lt;/span&gt;&lt;/i&gt; you can add a constraint to the task  by opening its editor (double-click) and selecting the “Constraints” where you  can add the constraint (e.g. a dependency on another task or a “start after &lt;&lt;date&gt; &lt;span style="font-style: italic;"&gt;date &lt;/span&gt;&gt;” constraint). &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/date&gt;&lt;/li&gt;&lt;li&gt;It may be though that the task is being scheduled  &lt;i&gt;&lt;span style="font-style: italic;"&gt;too late &lt;/span&gt;&lt;/i&gt;and you want it  scheduled sooner. A quick and easy way to achieve this is to make it “active” as then it  will be scheduled immediately. (Just right-click on the task and select “Make  active”. This can also be done from the web client too and it’s worth checking that  the team always make the tasks they are working on active so that they are always scheduled immediately and not postponed when higher priority tasks are defined unless they make them inactive.)&lt;/li&gt;&lt;li&gt;If it’s not currently being worked  on (so not “active”), but you want it scheduled earlier (for example as soon as current active tasks are complete) then increase it's priority. Here's how:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;blockquote&gt;&lt;li&gt;If the task is not in the current  sprint (assuming you're using the Scrum process) it will be scheduled after this sprint, so drag it into the current  sprint from its current location&lt;o:p&gt;&lt;/o:p&gt; &lt;/li&gt;&lt;li&gt;If it is in the current sprint but  still not being scheduled soon enough, use the “Priorities” button on the tool bar,  which takes you to the “priority groups” tab for the project. Maximize the  window so you can see it all and select the current sprint. In the lower list  you can see the relative priorities of all the tasks in the sprint. Change  them so your task is near the top.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check in the first tab of this  window “All tasks in Schedule Order” that your task is high enough. (You will  see for example all the active tasks near the top of this  list.)&lt;/li&gt;&lt;/blockquote&gt;&lt;/ul&gt;Finally one more thing to check. Make sure the task doesn't have constraints on it's start or end, for example a dependency on another task that won't complete for some time. This will also cause it to be scheduled later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3535536164746634180?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3535536164746634180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3535536164746634180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3535536164746634180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3535536164746634180'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/11/rescheduling-tasks-to-date-you-want.html' title='Rescheduling tasks to the date you want'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6729446682796020018</id><published>2008-10-27T11:40:00.008Z</published><updated>2008-10-27T13:12:59.200Z</updated><title type='text'>IT&amp;T Conference Galway</title><content type='html'>Ireland seems to be a second home for me at present with &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SQWqsQXPlsI/AAAAAAAAAOk/P96Fv7W14Kc/s1600-h/gmit.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 95px;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SQWqsQXPlsI/AAAAAAAAAOk/P96Fv7W14Kc/s200/gmit.jpg" alt="" id="BLOGGER_PHOTO_ID_5261799416935716546" border="0" /&gt;&lt;/a&gt;a number of clients using my services for migrating to agile practices through partners &lt;a href="http://www.neueda.com"&gt;Neueda Technologies&lt;/a&gt;. So it was a pleasure to be back in sunny Galway (in the gaps between the gales!) for this conference at &lt;a href="http://www.ittconference.ie/mainleft.php?ID2=6"&gt;GMIT&lt;/a&gt;. My tutorial was on "&lt;a href="http://www.itag.ie/Home/tabid/81/ctl/View/mid/475/Event/518/Date/20081014/Start/200810230200/End/200810230430/Default.aspx"&gt;Agility: driving software projects for value and quality&lt;/a&gt;" and apart from giving an overview of agile methods, particularly Scrum, it looked at some of the key issues for scaling agile processes including design, continuous integration and team structures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6729446682796020018?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6729446682796020018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6729446682796020018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6729446682796020018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6729446682796020018'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/10/it-conference-galway.html' title='IT&amp;T Conference Galway'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/SQWqsQXPlsI/AAAAAAAAAOk/P96Fv7W14Kc/s72-c/gmit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2200988604868635653</id><published>2008-10-20T13:23:00.014+01:00</published><updated>2008-12-18T13:54:24.500Z</updated><title type='text'>Project  Home Page</title><content type='html'>xProcess allows you to define a wiki, blog or other site as your project's home page. If you can see this page from with your project in xProcess you are pointed at the default page. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/SQiOnzdlT5I/AAAAAAAAAOs/BPadprY6Q6E/s1600-h/jackhammer2.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5262612979062755218" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 100px; CURSOR: pointer; HEIGHT: 113px" alt="" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/SQiOnzdlT5I/AAAAAAAAAOs/BPadprY6Q6E/s320/jackhammer2.gif" border="0" /&gt;&lt;/a&gt;Why not change this to a site where you can add details of your own project and invite team members to contribute.&lt;br /&gt;&lt;br /&gt;Some processes are configured to expect a Wiki site rather than a blog. These sites generally allow pages which do not yet exist to be referenced by url. In such processes a reference to a new page is generated when a new task or project is created, allowing the user to create the corresponding page, at the same time as and already linked to the task or project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2200988604868635653?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2200988604868635653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2200988604868635653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2200988604868635653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2200988604868635653'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/10/project-home-page.html' title='Project  Home Page'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/SQiOnzdlT5I/AAAAAAAAAOs/BPadprY6Q6E/s72-c/jackhammer2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6944853851332778791</id><published>2008-10-09T11:45:00.006+01:00</published><updated>2008-10-28T11:43:47.193Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>New Scrum Process for v3</title><content type='html'>With the release of xProcess v3 drawing closer here's an overview of some of the improvements that are in the pipeline enabled by new features in the product. In this article we look at the steps to create Scrum projects and the backlog, then to prioritize them and allocate them t&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SO3jNtnTJUI/AAAAAAAAAOM/RklCKNAptG4/s1600-h/blog31.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SO3jNtnTJUI/AAAAAAAAAOM/RklCKNAptG4/s320/blog31.JPG" alt="" id="BLOGGER_PHOTO_ID_5255106164933469506" border="0" /&gt;&lt;/a&gt;o Sprints. In subsequent articles we'll consider how you can use the same features used in the Scrum process to tailor development processes for your organisation.&lt;br /&gt;&lt;br /&gt;Here's the dialog for a new Scrum project. It shows the parameters used to set up the project including the location where Wiki pages may be created (including a home page for the project) and the Sprint duration which is used when Sprints (the timeboxes of the Scrum process) are created.&lt;br /&gt;&lt;br /&gt;As the next screenshot shows there are now more patterns to choose from when you hit the "New" button in the project toolbar. We'll be looking at exactly what all these patterns are for in subsequent articles. For now let's just look at the "backlog items". &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SO3n1RJ_AUI/AAAAAAAAAOc/OmmytndYvXo/s1600-h/blog32.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SO3n1RJ_AUI/AAAAAAAAAOc/OmmytndYvXo/s400/blog32.JPG" alt="" id="BLOGGER_PHOTO_ID_5255111242535600450" border="0" /&gt;&lt;/a&gt;The patterns for these are User Story, Technical Task, Defect Fix and Delivery. In fact you can see just this menu of items if you right-click on the "Backlog..." task (or a Sprint if you've created one) and select "New" there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6944853851332778791?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6944853851332778791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6944853851332778791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6944853851332778791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6944853851332778791'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/10/new-scrum-process-for-v3.html' title='New Scrum Process for v3'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SO3jNtnTJUI/AAAAAAAAAOM/RklCKNAptG4/s72-c/blog31.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6773837581992819693</id><published>2008-09-16T14:40:00.003+01:00</published><updated>2009-01-08T17:20:05.022Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Defects kill Sprint Planning</title><content type='html'>Burning down user stories sprint by sprint at a nice constant velocity is what we hope to be seeing on agile projects. What happens though if there are defects in the work we've delivered and we have to start planning the defect fixing as well as the new work? How should this situation be approached?&lt;br /&gt;&lt;br /&gt;Firstly, don't deliver defects! Easy to say but we know that all teams deliver defects at some points. If you start getting a lot of defects back though it's a pretty sure sign that you have a false velocity - you're reporting work as done when it isn't really. It simply hasn't been tested enough. So the second point is that you have to face reality about the velocity of your team. Get the testing done and automated before you deliver the next set of stories.&lt;br /&gt;&lt;br /&gt;All well and good but what about planning the next few sprints? How do we plan reliably now when we are not sure how much defect fixing we're going to have to do along side the new user stories. Here's one approach that seems to work... 2 velocities!&lt;br /&gt;&lt;br /&gt;The overall velocity of the team is how many "points" the team burns down in a sprint. We want to ensure this is pretty constant, always assuming that the team stays constant and we're not carrying over too much work in progress at sprint boundaries (see here for a previous discussion of that problem). The second important velocity though is "effective velocity" - the amount of new client-required work that is burned down per sprint. This excludes work on defects (which means the higher velocity reported in sprints when you delivered the defects is balanced) and work on refactoring and process improvement (necessary but not what the client is paying for). You can see the effective velocity sprint by sprint by creating a new folder each sprint to contain just the new work completed/targeted).&lt;br /&gt;&lt;br /&gt;Giving the team visibility of these metrics is important so they can see the impact of defects and also appreciate improvements when the effective velocity is restired.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6773837581992819693?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6773837581992819693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6773837581992819693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6773837581992819693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6773837581992819693'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/09/defects-kill-sprint-planning.html' title='Defects kill Sprint Planning'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3353126809005117498</id><published>2008-09-15T10:55:00.004+01:00</published><updated>2008-09-15T11:58:47.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Running xProcess with a console</title><content type='html'>It seems I missed out a vital piece of information in the previous blog - how do you create a shortcut that runs xProcess with a console. Actually it's pretty simple: add "- console" to the target command. So on a Windows machine the Target field of the shortcut should look something like this...&lt;br /&gt;&lt;blockquote&gt;"C:\Program Files\Ivis\xProcess 2\xProcess\xprocess.exe" -console&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3353126809005117498?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3353126809005117498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3353126809005117498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3353126809005117498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3353126809005117498'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/09/running-xprocess-with-console_15.html' title='Running xProcess with a console'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5844473035590107354</id><published>2008-09-12T18:32:00.019+01:00</published><updated>2008-09-15T18:10:42.533+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Reporting and exporting from xProcess 2.9</title><content type='html'>A project I've been working with recently has been needing to get reports and data out of xProcess to integrate with other &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SMqqHmXm29I/AAAAAAAAAOE/yNtPoaYZwKY/s1600-h/blog30.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SMqqHmXm29I/AAAAAAAAAOE/yNtPoaYZwKY/s200/blog30.JPG" alt="" id="BLOGGER_PHOTO_ID_5245191763561733074" border="0" /&gt;&lt;/a&gt;management reports. This hasn't proved as easy as I would have hoped with the product's standard reports, custom reports through BIRT, exporting and other options failing to give us what we needed. I decided to do some more experimenting with "UI Actions", which use OGNL to navigate over the data. Turns out this is a pretty good option with writing the required scripts being quite straightforward. The hardest thing turned out to be actually getting the export file which was a bit more of a hassle. I'm told all this will be great in v3 but for now here's my solution.&lt;br /&gt;&lt;br /&gt;First you need to create a new Action in your process, and set it applicable to "Task" (or whatever type of object you want to report on) and "UI Action to "true". The only other crucial bit in this stage is writing the OGNL Expression. My script is below so you can always paste that in, see what it does and then change it!&lt;br /&gt;&lt;br /&gt;We wanted to extract a set of key attributes of tasks (like dates and size) and display them in a spreadsheet.The script produces a set of comma-separated values (csv format). Unfortunately v2.9 doesn't give you an easy way to save this in a file. Instead the script outputs the values to the console (so you have to start xProcess with a console window). Once the output has been produced you then have to cut and paste the data into a csv file -- yes that's the "clonky" bit. Still it doesn't take a moment and you then have the data in a spreadsheet where you can mess with it to your heart's content. Brill!&lt;br /&gt;&lt;br /&gt;All I want now is v3 so I can get this sort of report through a nice clean user interface. Here's the script...&lt;br /&gt;&lt;blockquote&gt;"-- Output to console action - summarises task information --",&lt;br /&gt;&lt;br /&gt;#categoryName ='Importance',&lt;br /&gt;#category = #this.getProcess().getCategoryTypeByName(#categoryName),&lt;br /&gt;&lt;br /&gt;#output='\n\nTabular output for: ' + getName() +'\n'+&lt;br /&gt;'Name,'+&lt;br /&gt;'Parent Task,'+&lt;br /&gt;'Start,'+&lt;br /&gt;'End,'+&lt;br /&gt;'Target End,'+&lt;br /&gt;#categoryName + (#category==null ? ' (WARNING - no such category)' : '') +','+&lt;br /&gt;'Size (points),'+&lt;br /&gt;'Estimate (person-hours),'+&lt;br /&gt;'Actual/Planned (person-hours),'+&lt;br /&gt;'Actual to date (person-hours),'+&lt;br /&gt;'Closed?,'+&lt;br /&gt;'Assigned to' +&lt;br /&gt;'\n',&lt;br /&gt;&lt;br /&gt;"-- First define the different functions for Leaf and Parent tasks --",&lt;br /&gt;&lt;br /&gt;#leafOutput = :[&lt;br /&gt;#output = #output +&lt;br /&gt;name +','+&lt;br /&gt;parent.name +','+&lt;br /&gt;start +','+&lt;br /&gt;end50 +','+&lt;br /&gt;(targetEnd==null ? '' : targetEnd) +','+&lt;br /&gt;(#cat=getCategoryInType(#category), #cat ==null ? '' : #cat.label) +','+&lt;br /&gt;size + ','+&lt;br /&gt;estimateOfEffort/60.0 +','+&lt;br /&gt;bookedTime/60.0 +','+&lt;br /&gt;bookedTimeToDateIncludingConfirmedTimeToday/60.0 +','+&lt;br /&gt;closed,&lt;br /&gt;getCurrentManualAssignments().{#output = #output + ',' + person.label},&lt;br /&gt;#output = #output + '\n'&lt;br /&gt;],&lt;br /&gt;&lt;br /&gt;#parentOutput = :[&lt;br /&gt;#output = #output +&lt;br /&gt;'REST OF ' + name +','+&lt;br /&gt;(parent==null ? '' : parent.name) +','+&lt;br /&gt;start +','+&lt;br /&gt;end50 +','+&lt;br /&gt;(targetEnd==null ? '' : targetEnd) +','+&lt;br /&gt;(#cat=getCategoryInType(#deliveryCategory), #cat ==null ? '' : #cat.label) +','+&lt;br /&gt;(topDown ? (#result = size - sizeRolledUpFromChildren, #result&gt;0 ? #result : 0) : '') + ','+&lt;br /&gt;(topDown ? (#effort = estimateOfEffort - estimateOfEffortRolledUpFromChildren, #effort&gt;0 ? #effort/60.0 : 0) : '') + ','+&lt;br /&gt;bookedTime/60.0 +','+&lt;br /&gt;bookedTimeToDateIncludingConfirmedTimeToday/60.0 +','+&lt;br /&gt;closed,&lt;br /&gt;getCurrentManualAssignments().{#output = #output + ',' + person.label},&lt;br /&gt;#output = #output + '\n'&lt;br /&gt;],&lt;br /&gt;&lt;br /&gt;"-- Then process all the tasks, including the one selected --",&lt;br /&gt;&lt;br /&gt;#tasks = getAllTasks(),&lt;br /&gt;#tasks.add(#this),&lt;br /&gt;#tasks.{&lt;br /&gt;#this.isDesignatedAsParent() ? #parentOutput(#this): #leafOutput(#this)&lt;br /&gt;},&lt;br /&gt;#$sysout.println(#output),&lt;br /&gt;&lt;br /&gt;"-- Inform the user where the output is",&lt;br /&gt;&lt;br /&gt;#$dialog.informUser('Output to console: ' + getName(), 'The result of this action has been sent to the console.\nCut and paste the output into a Spreadsheet and use Data-&gt;Text to Columns... to create the table.\n\n'+&lt;br /&gt;'Note: If you do not have a visible console, close xProcess and restart it from a command line window, or run xProcess with a console by adding "- console" to the target command. (E.g. on a Windows machine the Target field of the shortcut should look something like:\n\n"C:\\Program Files\\Ivis\\xProcess 2\\xProcess\\xprocess.exe" -console')&lt;/blockquote&gt;Note: one of the columns this scripts outputs is a category value ("Importance"). You could use the same pattern to display other relevant categories - "Target Delivery" for example if this was a  category defined in your data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5844473035590107354?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5844473035590107354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5844473035590107354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5844473035590107354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5844473035590107354'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/09/reporting-and-exporting-from-xprocess.html' title='Reporting and exporting from xProcess 2.9'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SMqqHmXm29I/AAAAAAAAAOE/yNtPoaYZwKY/s72-c/blog30.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2211437775114546937</id><published>2008-08-06T11:43:00.003+01:00</published><updated>2008-08-06T11:56:24.650+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>How long should a Sprint be?</title><content type='html'>Generally I'd I'd say between 2 and 4 weeks. How long can the business leave the team alone to get on with what they've planned (the "no interruptions"rule) is one constraint. The other is how frequently do we need to update the release plan - we only really get feedback on velocity at sprint boundaries.&lt;br /&gt;&lt;br /&gt;I've been working with a team recently where establishing a constant velocity has been very difficult. They are basically dealing with a large backlog of defects from previous iterations where they weren't using an agile process. Until this backlog is cleared it's largely academic how long the sprint is - they still get interrupted with a significant number of urgent defect fix tasks every week. Perhaps going to a weekly sprint, at least until this backlog is effectively cleared would help. That way the defects being worked on in that week would be known, with analysis only being done on new defect reports during the week. The sprint planning for the following week can then re-prioritize the work for the following week. This is an example of where the sprint needs to be short in order to handle rapidly changing priorities. However it also demonstrates the difficulty of trying to apply an agile process when a clear quality baseline has not yet been established.&lt;br /&gt;&lt;br /&gt;In other circumstances I favour a longer sprint rather than a short one - at least 3 weeks. It gives the team a chance to establish it rhythm of delivering backlog items without the overheads of sprint planning and retrospectives interrupting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2211437775114546937?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2211437775114546937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2211437775114546937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2211437775114546937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2211437775114546937'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/08/how-long-should-sprint-be.html' title='How long should a Sprint be?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3988406738306095495</id><published>2008-06-12T10:08:00.003+01:00</published><updated>2008-06-12T10:16:53.835+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>Requirements, requirements, requirements</title><content type='html'>Is it possible to implement an agile project without overhauling your requirements process? I think not. The key economic benefits flow from agile methods ability to reduce "work in progress" compared to traditional methods [Anderson]. This means specifiers must take a much lighter approach to distant requirements and have much greater involvement, for example as "on-site customers" or product owners, in requirements currently being implemented.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;[Anderson]&lt;em&gt; Agile Management&lt;/em&gt;, Prentice-Hall (2003)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3988406738306095495?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3988406738306095495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3988406738306095495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3988406738306095495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3988406738306095495'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/06/requirements-requirements-requirements.html' title='Requirements, requirements, requirements'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2854085173044582717</id><published>2008-05-30T16:22:00.004+01:00</published><updated>2008-05-30T16:57:41.502+01:00</updated><title type='text'>Availability - how much and who to?</title><content type='html'>When you're specifying your availability in &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;there are 2 parts to the information required: when are you available? and to which projects? If you are wanting to change availability for people in your project from the assumed defaults (usually 8 hours each weekday), then here are a few hints to get you started.&lt;br /&gt;&lt;br /&gt;The first part - your overall availability - can be specified for both organisations and for individuals Open an editor for either a person or organisation and you'll find (at the bottom of the editor pane) a tab labelled "Availability". This shows the &lt;span style="font-style: italic;"&gt;availability records&lt;/span&gt; that have been defined. Each record has a from and to date ("..." means "forever" in this context, either in the past for the "from" date, or in the future for the "to" date).  For each day of the week you can either specify a specific number of hours or inherit the hours specified on another person or organisation.&lt;br /&gt;&lt;br /&gt;By default organisations at the top level (that is organisations with no parent organisation) are created with availability of 8 hours on Monday to Friday. Sub-organisations or persons within an organisation are created to inherit availability from their parent organisation. So for example public holidays can be defined by adding &lt;span style="font-style: italic;"&gt;availability records &lt;/span&gt;at the top level and personal holidays defined on the individual person in the same way.&lt;br /&gt;&lt;br /&gt;The second part of defining availability is to divide your time between one or more projects. When the Project Manager adds a resource to his team he must specify the percentage availability (default 100%) and the from and to dates for this person (defaults to the start and end of the project). To change the percentage of time available to any one project, hit the "Resources" button in the Project Manager perspective "Tools" panel, or open the project editor and go to the "Available Resources" tab. You can then select the relevant person and use the "Manage Project Availability for..." button. Again &lt;span style="font-style: italic;"&gt;availability records&lt;/span&gt; can be added for a period specifying a percentage of the overall time the person is available on each day of the week. (The default in this case is 100% each day.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2854085173044582717?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2854085173044582717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2854085173044582717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2854085173044582717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2854085173044582717'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/05/availability-how-much-and-who-to.html' title='Availability - how much and who to?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2889680873147240001</id><published>2008-05-28T12:38:00.015+01:00</published><updated>2008-05-30T16:08:36.906+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Parent Tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Process patterns: what are "composites"?</title><content type='html'>The key to defining the task structure in a process definition is the &lt;span style="font-style: italic;"&gt;task pattern&lt;/span&gt;. Task patterns consist of &lt;span style="font-style: italic;"&gt;prototype &lt;/span&gt;tasks, optionally contained in a prototype project. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SD1GCzBx3OI/AAAAAAAAAN0/G3dGaJ7Bn1Y/s1600-h/fddFeaturePatternDetail.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SD1GCzBx3OI/AAAAAAAAAN0/G3dGaJ7Bn1Y/s320/fddFeaturePatternDetail.JPG" alt="" id="BLOGGER_PHOTO_ID_5205393758181514466" border="0" /&gt;&lt;/a&gt;This is the task pattern for a "Feature" in the FDD process and it results in the creation of a set of subtasks and artifacts when the Feature pattern is "instantiated". This is quite a simple pattern and it doesn't include any &lt;span style="font-style: italic;"&gt;composite tasks&lt;/span&gt;, which are structures to allow multiple tasks, optional tasks and iterations of tasks (repeated tasks that follow on one after the other). It is composites that allow arbitary process diagrams, drawn say using UML's activity diagram format, to be translated into &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;processes. Here's an example of a task pattern, this time shown in the Hierarchy Diagram view, which does contain a composite. It's the "Feature Set" pattern from the same process.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/SD1L7zBx3PI/AAAAAAAAAN8/whrioberwug/s1600-h/fddFeatureSet.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/SD1L7zBx3PI/AAAAAAAAAN8/whrioberwug/s320/fddFeatureSet.JPG" alt="" id="BLOGGER_PHOTO_ID_5205400234992196850" border="0" /&gt;&lt;/a&gt;The composite task in this example is called "Features: $Name$" (this is a pattern so the $Name$ will be substituted by the user supplied name when the pattern is instantiated). It contains a choice of 3 patterns: "Defect", "Feature" and "Task". Any of these patterns may be instantiated multiple times within the composite task.&lt;br /&gt;&lt;br /&gt;Composite tasks are &lt;span style="font-style: italic;"&gt;parent&lt;/span&gt; tasks, in other words they do (or will) contain child tasks, and they also define constraints on what type of child tasks can be created through the &lt;span style="font-style: italic;"&gt;patterns &lt;/span&gt;they contain. In the latest version of &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; composites can be &lt;span style="font-style: italic;"&gt;instances &lt;/span&gt;(only one pattern can be instantiated in the composite), &lt;span style="font-style: italic;"&gt;collections &lt;/span&gt;(an arbitrary number of patterns can be instantiated in them) or &lt;span style="font-style: italic;"&gt;iterations&lt;/span&gt; (similar to collections but each pattern will be constrained to start after previously instantiated tasks have completed). Composites contain one or more patterns which define the options available when creating new tasks in the composite. In the example above, Defects, Features or Tasks can all be instantiated within the composite.&lt;br /&gt;&lt;br /&gt;So the composite mechanism gives the Process Engineer the ability to define task patterns with loops, sequences and optional paths. More or less any pattern that can be represented in a flow chart or activity diagram can be created in an &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; pattern by using composites. Composites go further though. Because of &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt;' support for top-down estimation, composites have their own estimates and resource requirements so that they can be scheduled even before the detailed decisions about how many tasks, iterations or options have been made.&lt;br /&gt;&lt;br /&gt;To understand how these top-down estimates work in practice, see this blog article: &lt;a href="http://xprocess.blogspot.com/2007/07/latest-patterns-for-scrum.html"&gt;Latest Patterns for Scrum&lt;/a&gt; which shows how the top-down estimate for a Sprint is used for scheduling resources, up to the point that all the backlog items have been created within it.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;Footnote Question (for the techies among you!):&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Are all &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;parent tasks  &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;also &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;composites &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;as well as vice versa?&lt;/span&gt;&lt;br /&gt;Well firstly all &lt;span style="font-style: italic;"&gt;composites&lt;/span&gt; &lt;u&gt;are&lt;/u&gt; &lt;span style="font-style: italic;"&gt;parent tasks. &lt;/span&gt;Even if they as yet contain no child tasks they are classified as parent tasks because they allow task patterns to be instantiated in them. On the other hand &lt;span style="font-style: italic;"&gt;parent tasks &lt;/span&gt;are only &lt;span style="font-style: italic;"&gt;composites &lt;/span&gt;if they contain a set of patterns. This set defines the patterns that can be instantiated in the composite /parent task. So a parent task without such a set of patterns is not a composite and (in version 2.x) any non-hidden task pattern maybe instantiated in it.&lt;br /&gt;[&lt;span style="font-style: italic;"&gt;Note in version 3 this behaviour is likely to be changed, effectively removing any distinction between parents and composites. If the parent task does not contain any patterns, no patterns will be able to be instantiated in it. This will allow Process Engineers to create project patterns where, &lt;/span&gt;&lt;span style="font-style: italic;"&gt;for example, &lt;/span&gt;&lt;span style="font-style: italic;"&gt; certain tasks have a fixed set of children which cannot be added to.&lt;/span&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2889680873147240001?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2889680873147240001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2889680873147240001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2889680873147240001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2889680873147240001'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/05/process-patterns-what-are-composites.html' title='Process patterns: what are &quot;composites&quot;?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/SD1GCzBx3OI/AAAAAAAAAN0/G3dGaJ7Bn1Y/s72-c/fddFeaturePatternDetail.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6310079204359591570</id><published>2008-05-27T14:29:00.008+01:00</published><updated>2008-05-27T17:58:50.513+01:00</updated><title type='text'>Not just project management - not just process improvement</title><content type='html'>Explaining xProcess's position in the market of agile management products is something I never find straightforward. On the one hand it's important to emphasize the way you can simply define a set of tasks a team will be working on and immediately generate a plan (which you can then monitor in real time as tasks are re-prioritised, started and completed). On the other hand there's all that cool stuff you can do defining the task patterns, artifact templates, gateways and workflows that make up the process definitions behind different project approaches. I guess it all depends who you're talking to. If they're project managers needing something to get them started quickly, emphasize the simplest possible agile approach (prioritizing a list of tasks, defining the resources available and generating the plan). If they're process gurus - it has to be said these guys are thinner on the ground! - try impressing them the process modelling facilities xProcess provides for you. Producing the graphical task patterns and even workflows is a great starting point.&lt;br /&gt;&lt;br /&gt;If you're going for the "simplest possible" approach, try these steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create a new Data Source (or open an existing one) and switch to Project Manager perspective&lt;/li&gt;&lt;li&gt;Create a new Project (hit the "New" button in the "Tools" panel)&lt;/li&gt;&lt;li&gt;Define your tasks (hit "New", select "Task" and create multiple tasks in a comma-separated list)&lt;/li&gt;&lt;li&gt;Define your resources (hit the "Resources" button, then "Add/New Project Resource" and select yourself as the project resource&lt;/li&gt;&lt;li&gt;Hit the "Tasks" button to see forecast dates for your new tasks&lt;/li&gt;&lt;li&gt;View Gantt and Burndown charts for your plan&lt;/li&gt;&lt;li&gt;Add further resources if available and see the forecast dates and charts change&lt;/li&gt;&lt;li&gt;Hit the "Priorities" button and make one of the later scheduled tasks highest priority (drag-and-drop or type "0" in  its priority field and save the change using Ctrl-S)&lt;/li&gt;&lt;li&gt;View the change to the task order in the Gantt chart.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6310079204359591570?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6310079204359591570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6310079204359591570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6310079204359591570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6310079204359591570'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/05/not-just-project-management-not-just.html' title='Not just project management - not just process improvement'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-889930153881448575</id><published>2008-05-02T19:19:00.007+01:00</published><updated>2008-05-02T19:36:53.582+01:00</updated><title type='text'>SpringSource Application Platform released</title><content type='html'>An interesting announcement this week that you may have missed is the release of the SpringSource Application Platform. Effectively this is a lightweight but &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/SBtcygJhvSI/AAAAAAAAANs/44hW6wzALTQ/s1600-h/RodJohnson2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/SBtcygJhvSI/AAAAAAAAANs/44hW6wzALTQ/s200/RodJohnson2.jpg" alt="" id="BLOGGER_PHOTO_ID_5195848617795108130" border="0" /&gt;&lt;/a&gt;high-performance platform providing most of the functionality of existing application servers in a much simpler, small-footprint package. SpringSource CEO Rod Johnson has been quoted as saying that it will  provide a &lt;span id="bwanpa19"&gt;"&lt;/span&gt;leaner and more powerful solution.&lt;span id="bwanpa20"&gt;"&lt;/span&gt; He continued. "The SpringSource Application Platform, comprised of the dm-Kernel we developed, along with the proven Spring, Eclipse Equinox and Apache Tomcat technologies inside, provides the industry with the leanest, most flexible server for running enterprise Java applications". Paul Kuzan, a leading software architect and part of the team that put together &lt;span style="font-style: italic;"&gt;xProcess, &lt;/span&gt;has been contributing to the open source code in the SpringSource platform. "It's a really exciting development in the app server world", said Paul, "and one that is likely to make a very big impact in the years ahead. Watch this space!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-889930153881448575?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/889930153881448575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=889930153881448575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/889930153881448575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/889930153881448575'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/05/springsource-application-platform.html' title='SpringSource Application Platform released'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/SBtcygJhvSI/AAAAAAAAANs/44hW6wzALTQ/s72-c/RodJohnson2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4212868444259469217</id><published>2008-04-14T15:14:00.008+01:00</published><updated>2008-04-14T16:11:07.069+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><title type='text'>UK Earned Value Conference announced</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/SANn0vSWzHI/AAAAAAAAANE/n5AajWbOF0M/s1600-h/eva13.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/SANn0vSWzHI/AAAAAAAAANE/n5AajWbOF0M/s320/eva13.JPG" alt="" id="BLOGGER_PHOTO_ID_5189105351405259890" border="0" /&gt;&lt;/a&gt;For another opportunity to hear my thoughts on using Earned Value analysis within agile develop- ment processes, check out this conference in London in June. My presentation is on the Wednesday (11th June) entitled &lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Applying Earned Value in Agile Projects&lt;/span&gt;. I'll be reporting on the work to integrate EV analysis into the xProcess project-process improvement environment, highlighting  essential modifications that make it possible to apply EV within agile projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4212868444259469217?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4212868444259469217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4212868444259469217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4212868444259469217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4212868444259469217'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/04/uk-earned-value-conference-announced.html' title='UK Earned Value Conference announced'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/SANn0vSWzHI/AAAAAAAAANE/n5AajWbOF0M/s72-c/eva13.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6248300681341809070</id><published>2008-04-10T12:33:00.014+01:00</published><updated>2008-06-10T15:46:22.338+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Velocity'/><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Sample project revisited</title><content type='html'>The last time we looked at progress on the blog's sample &lt;span style="FONT-STYLE: italic"&gt;x&lt;/span&gt;&lt;span style="FONT-STYLE: italic"&gt;Process &lt;/span&gt;project we were looking at the way that project velocity measured simply as "points per sprint" can vary significantly (&lt;a href="http://xprocess.blogspot.com/2008/02/calculating-team-velocity.html"&gt;Calculating team velocity&lt;/a&gt;, 24.02.08). If we can gather accurate data about team availability and overhead activity, using a simple measure of productivity produces much better forecasts. Here's the burndown chart as last seen on 24th February.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_38uufMJpI/AAAAAAAAAM8/7Exu6j0xvpc/s1600-h/blog26.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5187580225483712146" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_38uufMJpI/AAAAAAAAAM8/7Exu6j0xvpc/s400/blog26.JPG" border="0" /&gt;&lt;/a&gt;This sprint completed the target 69 points although as can be seen by the slightly changed positions of the steps on the burndown, some individual tasks completed on different days to the forecast.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_379ufMJmI/AAAAAAAAAMk/0bDgnkzByrA/s1600-h/blog27.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5187579383670122082" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_379ufMJmI/AAAAAAAAAMk/0bDgnkzByrA/s400/blog27.JPG" border="0" /&gt;&lt;/a&gt;The following sprint also completed 77 points, again showing the problem of "yesterday's weather" forecasting, albeit within a reasonably acceptable 10% margin of error. However the productivity measure is much more stable, only varying from 0.91 to 0.90.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_38SufMJnI/AAAAAAAAAMs/MO0C9afhl0o/s1600-h/blog28.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5187579744447374962" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_38SufMJnI/AAAAAAAAAMs/MO0C9afhl0o/s400/blog28.JPG" border="0" /&gt;&lt;/a&gt;Here's the state of the current sprint. In this case we're forecasting 64 points to be completed.&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5187580062274954882" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R_38lOfMJoI/AAAAAAAAAM0/1ZrNZAfdjes/s400/blog29.JPG" border="0" /&gt;&lt;/p&gt;&lt;p&gt;To follow through a series of articles on Scrum in &lt;em&gt;xProcess&lt;/em&gt; start with this article on &lt;em&gt;"&lt;/em&gt;&lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;&lt;em&gt;Using the pre-defined Scrum process&lt;/em&gt;&lt;/a&gt;&lt;em&gt;"&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6248300681341809070?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6248300681341809070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6248300681341809070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6248300681341809070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6248300681341809070'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/04/sample-project-revisited.html' title='Sample project revisited'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R_38uufMJpI/AAAAAAAAAM8/7Exu6j0xvpc/s72-c/blog26.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-874611883092132042</id><published>2008-04-07T17:42:00.005+01:00</published><updated>2008-04-08T14:38:48.889+01:00</updated><title type='text'>Converting Eclipse RCP applications to Web apps</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_pRoXKcCoI/AAAAAAAAAMc/SZFWSbnLebs/s1600-h/screens.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R_pRoXKcCoI/AAAAAAAAAMc/SZFWSbnLebs/s200/screens.png" alt="" id="BLOGGER_PHOTO_ID_5186547674724960898" border="0" /&gt;&lt;/a&gt;We're exploring a new technology called the &lt;a href="http://www.eclipse.org/rap/"&gt;Rich AJAX Platform&lt;/a&gt; (RAP) at present which converts Eclipse Rich Client Platform (RCP) applications into AJAX-enabled Web applications. It looks very interesting. For those of you interested to find out more here's a link to a useful webinar...&lt;br /&gt;&lt;p&gt;&lt;a href="http://live.eclipse.org/node/450"&gt;http://live.eclipse.org/node/450&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Since xProcess is an Eclipse RCP application you might gues the reason for my interest. The main advantage of this technology is the ability to share the same Java code base for the RCP and web applications.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-874611883092132042?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/874611883092132042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=874611883092132042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/874611883092132042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/874611883092132042'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/04/converting-eclipse-rcp-applications-to.html' title='Converting Eclipse RCP applications to Web apps'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R_pRoXKcCoI/AAAAAAAAAMc/SZFWSbnLebs/s72-c/screens.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3197939507000048186</id><published>2008-04-02T17:06:00.006+01:00</published><updated>2008-05-28T16:49:19.686+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess Europe'/><title type='text'>Whitepapers available for download</title><content type='html'>A number of whitepapers relating to process modelling and agile development are now available for download via the xProcess Europe web site. These include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers/EVM%20and%20Agile%20Processes%2002.pdf"&gt;EVM and Agile Processes – an investigation of applicability and benefits&lt;/a&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Priority-Driven Processes&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Planning by Priority&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Managing Processes with Agility and Transparency&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers/BT%20CMMI%20%20Agile%20_2_.pdf"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;Building Agility into a CMMI-oriented culture - the BT experience&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The last of these is a report into the BT experience of transforming a traditional CMMI-oriented culture with the adoption of agile techniques. This paper was published in 2005 and since that time more experience papers relating to the cross-over between software engineering focused organisations and the agile community have appeared. It remains though a gulf that is only rarely bridged by companies and communities - generally people prefer to stay one side or the other. I heard recently of a major bank that had implemented a major new project management methodology, standardising the approach for all its IT projects with the exception of - wait for it - agile projects! Surely it behoves us to understand the strengths and weaknesses of each other's approaches rather than merely excluding whole classes of projects. On the other hand I expect major gains to be made in the next few years by organisations who look to embrace both the lessons of agile methods and the best software engineering practices that have evolved over the lifetime of the discipline's existence. Thesis, antithesis, synthesis: it's a good pattern for progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3197939507000048186?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3197939507000048186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3197939507000048186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3197939507000048186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3197939507000048186'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/04/whitepapers-available-for-download.html' title='Whitepapers available for download'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5006048227386922971</id><published>2008-03-28T22:09:00.002Z</published><updated>2008-05-28T16:48:29.414+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gateways'/><title type='text'>Modelling processes to scale</title><content type='html'>Tasks in process models come in varying sizes. There is a key distinction that divides tasks in process models into two classes: is this task at the "plannable" or "sub-plannable" level. Plannable tasks appear on plans, Gantt charts, burndowns and crucially time-sheets. They are the kind of tasks that take from several hours to days or even weeks. Plannable tasks are the trackable planned, estimated and costed elements in xProcess. However in some processes we wish to define (and monitor) tasks at the sub-plannable level. For example if my tasks is to distil a certain compound from ingredients (in a  chemical process), the steps in the process may need to separately defined and tracked to ensure quality compliance. xProcess provides a mechanism to support this in the "Gateway Type". While these steps form only a simple sequence in v2, we've recently been experimenting with a richer model for gateways that will allow the same kind of forms - selections, collections, iterations and sequences - that are supported in plannable tasks through the composite structures. Together these facilities make a continuum of process modelling from from large to small scale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5006048227386922971?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5006048227386922971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5006048227386922971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5006048227386922971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5006048227386922971'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/03/modelling-processes-to-scale.html' title='Modelling processes to scale'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8596142493236029051</id><published>2008-03-22T09:52:00.001Z</published><updated>2008-05-28T16:49:03.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess Europe'/><title type='text'>Better Faster Audit</title><content type='html'>I've recently been asked to outline the structure for our process audit service offering at xProcess Europe. The product is called the "&lt;a href="http://www.xprocess.eu.com/consulting/bsfpa.html"&gt;Better Software Faster Process Audit&lt;/a&gt;" and is based on the structure of Dan Haywood's and my book of the same name(&lt;span style="font-style: italic;"&gt;&lt;a href="http://www.bettersoftwarefaster.com/"&gt;Better Software Faster&lt;/a&gt;)&lt;/span&gt;. It covers 7 crucial aspects of &lt;span style="font-style: italic;"&gt;any &lt;/span&gt;software development process:&lt;br /&gt;&lt;big&gt;&lt;big&gt;&lt;span style="font-family:Garamond;"&gt;&lt;ul&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The last step - Build and Deploy&lt;br /&gt;&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The first step - Modelling and design&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The stakeholder step - Requirements&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The controlling step - Management&lt;br /&gt;&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The continuous step - Quality measurement&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The micro step - Development&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;small style="font-family: Century Schoolbook;"&gt;The macro step - Architecture&lt;/small&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/big&gt;&lt;/big&gt;Starting with the last step usually throws people, but given one of the key criteria for improvement is agility, it makes sense to start with seeing how close a team is to fully automating their build and test suite. There's no excuse for not fixing this area if you're using languages like Java or C# but with some older languages it can be tough to provide continuous integration for every change made by a developer.&lt;br /&gt;&lt;br /&gt;Quality Measurement is another related area which is sometimes overlooked. Every team has some means to assess quality. For some teams "release the product and monitor the bug reports" seems to be their preferred way of working. Not recommended!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8596142493236029051?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8596142493236029051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8596142493236029051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8596142493236029051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8596142493236029051'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/03/better-faster-audit_22.html' title='Better Faster Audit'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7521950887600286744</id><published>2008-03-06T12:45:00.004Z</published><updated>2008-03-06T13:07:29.734Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><title type='text'>EVM and Agile Processes</title><content type='html'>I am presenting a paper on EVM and xProcess next week at the &lt;a href="http://www.pmtoday.co.uk/content/en/event_details.aspx?guid=64BB535A-6C81-44E9-A763-2C27E46E7A06"&gt;2nd  EVM Conference in Birmingham, UK&lt;/a&gt;. I’d love to see you at the conference but if you’re not able to make it and  would like a copy of the paper you can  download it now from the &lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;xProcess Europe&lt;/a&gt; or &lt;a href="http://www.ivis.com/"&gt;Ivis&lt;/a&gt; web sites. Here's the abstract...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;&lt;span&gt;EVM and Agile Processes – an investigation of applicability and benefits&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Earned Value Management (EVM) is  a technique for understanding the degree to which a project is following a plan.  A prerequisite for EVM as traditionally applied is therefore a stable baseline  plan with a fixed scope. Agile processes for software development by contrast  are designed to be responsive to a changing environment and enable discovery of  requirements through their lifecycle. Agile plans are rarely stable or of fixed  scope. However both approaches share the goal of producing plans that provide  stakeholders with immediate feedback on the daily progress of projects and they  share common needs in understanding and reporting progress and productivity. In  addition the fact that agile processes map requirements to plannable tasks means  that requirements may change without invalidating the baseline for progress  reporting. This paper reports on work to develop tool support based on the  &lt;i&gt;&lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;&lt;/i&gt;process and planning  product to apply EVM to agile processes. It shows how the metrics for schedule  and cost efficiency can be modified for compatibility with agile approaches, and  how they help effective management of agile projects, particularly when  supplemented with tool support for project forecasting and  monitoring.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7521950887600286744?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7521950887600286744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7521950887600286744' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7521950887600286744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7521950887600286744'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/03/evm-and-agile-processes-investigation.html' title='EVM and Agile Processes'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5796467999196569211</id><published>2008-02-22T10:34:00.024Z</published><updated>2008-02-26T09:33:00.933Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Effort'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Larry Putnam'/><title type='text'>Calculating team velocity</title><content type='html'>Why is it that agile methods use &lt;span style="font-style: italic;"&gt;timeboxes &lt;/span&gt;containing broadly similar sets of activities - as opposed to &lt;span style="font-style: italic;"&gt;phases&lt;/span&gt; favoured by more traditional methods, which contain different types of activity in each phase through the lifecycle? A key reason is that stakeholders in the project get quicker and more effective &lt;span style="font-style: italic;"&gt;feedback&lt;/span&gt; on the progress and direction of the project. As a consequence planners can judge more accurately the effectiveness of the project and what it is likely to achieve over its full duration. One of the most useful metrics planners get from each timebox is the &lt;span style="font-style: italic;"&gt;velocity&lt;/span&gt; of the team. Scrum projects usually usually use the velocity from previous sprints to forecast their likely progress - a technique often referred to as "yesterday's weather" since it effectively assumes the next period will be broadly the same as the previous. In this article we discuss what velocity is, how to calculate it in &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt;, and how to go beyond "yesterday's weather" by calculating and using &lt;span style="font-style: italic;"&gt;simple productivity&lt;/span&gt; for improved forecasting.&lt;br /&gt;&lt;br /&gt;Velocity is defined as the amount of required work &lt;span&gt;delivered&lt;/span&gt; per time period. In the Scrum process for example, required work is called the &lt;span style="font-style: italic;"&gt;Backlog&lt;/span&gt;, and its component parts, the &lt;span style="font-style: italic;"&gt;Backlog Items&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;are individually sized and prioritised. &lt;span&gt;The &lt;/span&gt;&lt;span style="font-style: italic;"&gt;size &lt;/span&gt;of an item is not the same as the &lt;span style="font-style: italic;"&gt;effort&lt;/span&gt; required to complete it, though size and effort are related and may  - once the velocity of the team is known - be derived one from the other (see &lt;a href="http://xprocess.blogspot.com/2008/02/developing-your-own-workflow-monitor.html"&gt;here &lt;/a&gt;for further discussion of &lt;span style="font-style: italic;"&gt;size &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;effort&lt;/span&gt;). The size of backlog items is usually estimated in a team-specific measure called &lt;span style="font-style: italic;"&gt;points &lt;/span&gt;(sometimes called &lt;span style="font-style: italic;"&gt;Story Points&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Feature Points&lt;/span&gt; or, if related to the amount of work a team member could carry out in a full uninterrupted day, &lt;span style="font-style: italic;"&gt;Ideal Days&lt;/span&gt;)&lt;span style="font-style: italic;"&gt;. &lt;/span&gt;&lt;span&gt;T&lt;/span&gt;he size estimates therefore really only give a relative size for the backlog items. However once a timebox has been completed - in Scrum timeboxes are called &lt;span style="font-style: italic;"&gt;Sprints&lt;/span&gt; - the team has a measure of how many points they were able to complete and so have the first reading for velocity in &lt;span style="font-style: italic;"&gt;Points per Sprint&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;When using &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; for Scrum you can see the velocity of completed Sprints from the burndown chart. For example in the Sprint shown below you can see that a total of 91 points were completed, giving the team a velocity of 91 &lt;span style="font-style: italic;"&gt;points per sprint.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R7611pxqYjI/AAAAAAAAAL0/vm5Cfyc4yE4/s1600-h/blog22.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R7611pxqYjI/AAAAAAAAAL0/vm5Cfyc4yE4/s400/blog22.JPG" alt="" id="BLOGGER_PHOTO_ID_5169769355619754546" border="0" /&gt;&lt;/a&gt;Using the principle of &lt;span style="font-style: italic;"&gt;yesterday's weather&lt;/span&gt; it might be natural for the team to commit to a similarly sized set of backlog items in the next sprint. Before doing so they might be wise to look at all the history on the project. Here are the burndown charts for the previous two months, first Sprint 02 and then Sprint 01...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R764GZxqYkI/AAAAAAAAAL8/MxlfkNYkcNA/s1600-h/blog23.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R764GZxqYkI/AAAAAAAAAL8/MxlfkNYkcNA/s400/blog23.JPG" alt="" id="BLOGGER_PHOTO_ID_5169771842405818946" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R764JpxqYlI/AAAAAAAAAME/uQc0hTtbgZk/s1600-h/blog24.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R764JpxqYlI/AAAAAAAAAME/uQc0hTtbgZk/s400/blog24.JPG" alt="" id="BLOGGER_PHOTO_ID_5169771898240393810" border="0" /&gt;&lt;/a&gt;As we can see from the respective velocities of 40 &lt;span style="font-style: italic;"&gt;points per sprint&lt;/span&gt; and 73 &lt;span style="font-style: italic;"&gt;points per sprint&lt;/span&gt;, velocity is not always constant and, if we look at the reasons behind this, we may be able to forecast the velocity for the next sprint more effectively. Why did Sprint 02 for example do so badly?&lt;br /&gt;&lt;br /&gt;Well one clue is in the dates for this Sprint. This won't be the only team to have discovered their productivity was lower between mid-December and mid-January! All the team were on holiday for at least some of the Sprint, and when they were in they probably discovered someone they needed to speak to was away, or that there were other activities they had to attend to which were not related to the sprint backlog. Another factor was that this sprint had a number of items that had been worked on but not completed at the end of the sprint. Since they are not finished they cannot be counted in the size of work "done". Backlog items like this do not necessarily get done in the following sprint since other priorities may be introduced to the team at that point. However if they are carried forward (as they were in this case), there will be considerably less work left to complete in the following sprint. This at least partially explains why Sprint 03 was such a productive one.&lt;br /&gt;&lt;br /&gt;So what velocity should the team predict for Sprint 04? This is where other information from &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;comes in very handy in the planning process. &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;allows team members to record when they were working on overhead tasks (like management meetings, email and admin, training courses and office parties) as opposed to backlog items themselves. &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;also give us information about the amount of time spent on backlog items that were not completed in the sprint.&lt;br /&gt;&lt;br /&gt;The key metrics we want to derive in order to better predict the next sprint are these:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;simple productivity (size of work done in points per ideal person-day)&lt;/li&gt;&lt;li&gt;overhead percentage (what proportion of people's time is applied to non-backlog-item tasks)&lt;/li&gt;&lt;li&gt;availability (when are people available to the project)&lt;/li&gt;&lt;/ul&gt;We'll leave discussion of overhead tasks and availability to another occasion, though they can be set simply in &lt;span style="font-style: italic;"&gt;xProcess.&lt;/span&gt; The simple productivity measure of &lt;span style="font-style: italic;"&gt;Size/Effort&lt;/span&gt; can be calculated automatically by &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt;. I say &lt;span style="font-style: italic;"&gt;simple&lt;/span&gt; productivity measure since, as &lt;a href="http://xprocess.blogspot.com/2007/04/great-resources-for-advice-on.html"&gt;Putnam and Myers&lt;/a&gt; point out, it is more complex to derive a true &lt;span style="font-style: italic;"&gt;process productivity&lt;/span&gt; for a project, taking into account that size and effort do not follow a linear relationship when the duration under consideration varies. This non-linearity can be broadly discounted however if the duration of the sprint does not vary. (One of the reasons why agile methods recommend fixed durations for timeboxes is to ensure that feedback from one&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span&gt;timebox &lt;/span&gt;&lt;span style="font-style: italic;"&gt;is&lt;/span&gt; applicable to the next.)&lt;br /&gt;&lt;br /&gt;Simple productivity for a given period (a sprint for example or the whole project) takes into account all the non-overhead tasks booked to during the period. It also takes into account tasks which were incomplete at the start and end of the period. Once the simple productivity factor has been calculated for previous sprint (or for the project so far), the value can be use to set new effort estimates based on size using the &lt;span style="font-style: italic;"&gt;&lt;a href="http://xprocess.blogspot.com/2008/02/set-effort-to-match-size.html"&gt;Set effort to match size&lt;/a&gt; &lt;/span&gt;UI Action described in a previous article.&lt;br /&gt;&lt;br /&gt;The simple productivity currently being used on this project is 1.0 - in other words a backlog item estimated as size 1 will be scheduled with an estimated required effort of 1.0 ideal person-days. Using this factor the current state of the burndown chart for Sprint 04 is as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R77mz5xqYmI/AAAAAAAAAMM/yhEXqn04O2w/s1600-h/blog25.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R77mz5xqYmI/AAAAAAAAAMM/yhEXqn04O2w/s400/blog25.JPG" alt="" id="BLOGGER_PHOTO_ID_5169823201624744546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;However using the history from the previous 3 sprints, &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;can calculate the actual productivity in &lt;span style="font-style: italic;"&gt;points per ideal person-day&lt;/span&gt;. In this case it was found to be 0.91 - in other words  historically a task of size 1 has taken on average about 8.8 person-hours to complete. Using the &lt;a href="http://xprocess.blogspot.com/2008/02/set-effort-to-match-size.html"&gt;&lt;span style="font-style: italic;"&gt;Set effort to match size&lt;/span&gt;&lt;/a&gt; action, we can quickly adjust the estimates of all the open tasks in the project to reflect this factor. Once all this is applied (see burndown chart below), the state of Sprint 04 now reflects the true situation that certain tasks are at higher risk of not completing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/R79Fw5xqYnI/AAAAAAAAAMU/-nl_h0cmfO0/s1600-h/blog26.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/R79Fw5xqYnI/AAAAAAAAAMU/-nl_h0cmfO0/s400/blog26.JPG" alt="" id="BLOGGER_PHOTO_ID_5169927603689775730" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5796467999196569211?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5796467999196569211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5796467999196569211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5796467999196569211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5796467999196569211'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/02/calculating-team-velocity.html' title='Calculating team velocity'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/R7611pxqYjI/AAAAAAAAAL0/vm5Cfyc4yE4/s72-c/blog22.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7385395707285158248</id><published>2008-02-21T16:04:00.009Z</published><updated>2008-02-21T17:35:31.849Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><title type='text'>Developing your own workflow monitor</title><content type='html'>Just occasionally I'm tempted to post a really techie article that will probably only be of interest to hard-core xProcess enthusiasts! This is one of those occasions. I've written elsewhere about some of the aspects of workflow support in xProcess (see for example the article on &lt;a style="font-style: italic;" href="http://xprocess.blogspot.com/2006/12/new-diagram-in-xprocess.html"&gt;State Diagram support&lt;/a&gt; which explains how to define triggers for internal events graphically, and "&lt;a href="http://xprocess.blogspot.com/2006/12/from-tracking-to-planning.html"&gt;&lt;span style="font-style: italic;"&gt;From tracking to planning and back&lt;/span&gt;&lt;/a&gt;" which discusses how tracker products can be linked to xProcess via workflow). This article though will go a bit further and give you some hints about how the Workflow Server works and how you can link in your own programs to detect workflow events and trigger actions on them.&lt;br /&gt;&lt;br /&gt;The Workflow Server sits in a &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt; instance watching the outside world (and the inside world of the xProcess Data Source) through a set of monitors. When these monitors discover &lt;span style="font-style: italic;"&gt;events &lt;/span&gt;that might be of interest, they tell the Workflow Server which checks whether any object in the xProcess Data Source has registered an interest in that type of event. If it has it invokes the defined &lt;span style="font-style: italic;"&gt;action(s)&lt;/span&gt; for that event, potentially committing changes to the xProcess data or indeed to external systems. Several monitors are delivered with the xProcess Workflow Server. There's the DataSourceMonitor itself which monitors state transitions within the Data Source.There are also monitors for the &lt;a href="http://flyspray.org/"&gt;Flyspray&lt;/a&gt; bug tracking system, for &lt;a href="http://www.collab.net/products/enterprise_edition/proj_tracker.html"&gt;CollabNet's Project Tracker&lt;/a&gt; and a general purpose email monitor. However if you want to integrate external systems with xProcess this is exactly the way to do it - write your own monitor. In spite of my introduction to this blog article, this is quite straightforward to do. There are 3 key elements:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A monitor class (inheriting from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;com.ivis.xprocess.workflowserver.monitors.MonitorImpl&lt;/span&gt;&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Methods for this class which initialize it, find the events&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[optionally] An event class (inheriting from &lt;span style=";font-family:courier new;font-size:85%;"  &gt;com.ivis.xprocess.workflowserver.ExternalEvent&lt;/span&gt;) and possibly useful methods that may be called when the event is triggered.&lt;/li&gt;&lt;/ol&gt;Here (below) is a code snippet for a sample monitor which show the key methods init(), which is called when the Workflow Server starts up, and findEvents(), which is called periodically by the server in order for this monitor to query its external system and provide the events to the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public class &lt;/span&gt;&lt;span style="font-size:85%;"&gt;SampleSystemMonitor &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;extends &lt;/span&gt;&lt;span style="font-size:85%;"&gt;MonitorImpl {&lt;br /&gt;   SortedSet events;&lt;br /&gt;     &lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public static&lt;/span&gt;&lt;span style="font-size:85%;"&gt; String &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;EXTERNAL_SYSTEM_NAM&lt;/span&gt;&lt;span style="font-size:85%;"&gt;E = "My External System";&lt;br /&gt;     &lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public static&lt;/span&gt;&lt;span style="font-size:85%;"&gt; String &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;EXTERNAL_EVENT_NAME&lt;/span&gt;&lt;span style="font-size:85%;"&gt; = "My event name";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public String &lt;/span&gt;&lt;span style="font-size:85%;"&gt;getSystemName() {&lt;br /&gt;                  &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;return &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;EXTERNAL_SYSTEM_NAME&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;       &lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public &lt;/span&gt;&lt;span style="font-size:85%;"&gt;String[] getEventNames() {&lt;br /&gt;         &lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;return new &lt;/span&gt;&lt;span style="font-size:85%;"&gt;String[] { &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;EXTERNAL_EVENT_NAME&lt;/span&gt;&lt;span style="font-size:85%;"&gt; };&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   @Override&lt;br /&gt;&lt;/span&gt;    &lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;public void &lt;/span&gt;&lt;span style="font-size:85%;"&gt;init(DataSource dataSource) &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;throws &lt;/span&gt;&lt;span style="font-size:85%;"&gt;WorkflowException {&lt;br /&gt;         &lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;super&lt;/span&gt;&lt;span style="font-size:85%;"&gt;.init(dataSource);&lt;br /&gt;         &lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;// TODO initialize connection with external system&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   @Override&lt;br /&gt;&lt;/span&gt;    &lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;protected &lt;/span&gt;&lt;span style="font-size:85%;"&gt;SortedSet findEvents() &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;throws &lt;/span&gt;&lt;span style="font-size:85%;"&gt;WorkflowException {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   events = &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;new &lt;/span&gt;&lt;span style="font-size:85%;"&gt;TreeSet();&lt;br /&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;         &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;// TODO query external system for new events, e.g.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;   // loop&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;   ExternalEvent xevent = &lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;new &lt;/span&gt;&lt;span style="font-size:85%;"&gt;SampleSystemEvent(&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;new &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Date(), &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;EXTERNAL_EVENT_NAME&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Map&lt;string,&gt; map = xevent.getMap();&lt;br /&gt;         &lt;/string,&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;string,&gt;&lt;span style="font-style: italic;"&gt;//TODO set map values so they can be referenced in the triggered&lt;/span&gt; action, e.g. ...&lt;br /&gt; map.put("name", "New Task");&lt;br /&gt;&lt;/string,&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;string,&gt;   events.add(xevent);&lt;br /&gt;         &lt;/string,&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;string,&gt;&lt;span style="font-style: italic;"&gt;// end loop&lt;/span&gt;&lt;br /&gt;         &lt;/string,&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;                   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;string,&gt;&lt;span style="font-weight: bold;"&gt;return &lt;/span&gt;events;&lt;br /&gt;&lt;/string,&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;string,&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/string,&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;string,&gt;&lt;/string,&gt;The monitors are singleton objects and are instantiated within the server by &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;. So having written your monitor you can inform the Workflow Server that it should be called simply by modifying the xprocess.xml in the Tomcat WEB-INF directory (following the pattern of other monitors). Specific objects in the xProcess Data Source can respond to the events and trigger specific &lt;span style="font-style: italic;"&gt;actions &lt;/span&gt;through their "WorkflowPackage" - which is declared in the process definition.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7385395707285158248?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7385395707285158248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7385395707285158248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7385395707285158248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7385395707285158248'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/02/developing-your-own-workflow-monitor.html' title='Developing your own workflow monitor'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8568803674059847464</id><published>2008-02-06T21:59:00.012Z</published><updated>2008-02-22T15:08:32.149Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Set effort to match size</title><content type='html'>A previous entry provided the script required to define an action shortcut for setting the Size of tasks based on existing estimates for the effort required (see &lt;a href="http://xprocess.blogspot.com/2007/06/set-size-to-match-effort.html"&gt;&lt;span style="font-style: italic;"&gt;Set size to match effort&lt;/span&gt;&lt;/a&gt;). In some cases the inverse of this operation - &lt;span style="font-style: italic;"&gt;Set effort to match size&lt;/span&gt; - is the useful operation. Here's the code you need for that one. Once again you should make it a "UI Action" by setting this field to &lt;span style="font-style: italic;"&gt;True&lt;/span&gt; so that it appears on the &lt;span style="font-style: italic;"&gt;right-click&lt;/span&gt; menu when you select a task or set of tasks.&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Action Name:&lt;/span&gt;     Set effort to match &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;size&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Expression:&lt;/span&gt;&lt;br /&gt;#factor = getProject().getFloatProperty( "CurrentProductivity_pointsPerIdealPersonDay"),&lt;br /&gt;#factor = (#factor &lt; 0.01) ? 1.0 : #factor,&lt;br /&gt;#size = getSize(),&lt;br /&gt;setBest(#size/#factor*240.0),&lt;br /&gt;setMostLikely(#size/#factor*480.0),&lt;br /&gt;setWorst(#size/#factor*720.0) &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Applicable to:&lt;/span&gt; Task&lt;span style="font-weight: bold;"&gt;  &lt;br /&gt;UI Action:&lt;/span&gt;         True&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Parameters:&lt;/span&gt;       &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;(none)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Note that the operation uses a factor to scale the mapping between size points and effort. If this factor is 1.0 the mapping is 8 hours effort (480 minutes) per size point.&lt;br /&gt;&lt;br /&gt;Perhaps - like it's inverse operation, this will one day appear in the preconfigured operations of the &lt;span style="font-style: italic;"&gt;Simple Process&lt;/span&gt;. Note that is very similar to the &lt;span style="font-style: italic;"&gt;Set estimates&lt;/span&gt; action which is delivered in this process. However that operation is designed to take &lt;span style="font-style: italic;"&gt;Size &lt;/span&gt;as a parameter (usually during the instantiation of a pattern) and so it is not suitable to make that one into a UI Action for operating directly on existing tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8568803674059847464?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8568803674059847464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8568803674059847464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8568803674059847464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8568803674059847464'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/02/set-effort-to-match-size.html' title='Set effort to match size'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7531379122339276766</id><published>2008-01-30T14:48:00.001Z</published><updated>2008-02-04T11:40:28.770Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>Traceability through a simple metamodel</title><content type='html'>When people start defining processes with total traceability between every aspect, the sight is often not very pretty! When traceability adds multiple layers of complexity it rarely pays for itself in terms of improved quality or maintainability.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R6CREVaQbSI/AAAAAAAAALk/OLGO0_uKvuo/s1600-h/minimumMetamodel.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R6CREVaQbSI/AAAAAAAAALk/OLGO0_uKvuo/s200/minimumMetamodel.JPG" alt="" id="BLOGGER_PHOTO_ID_5161284676619365666" border="0" /&gt;&lt;/a&gt;This is one of the reason why we defined what we termed the "minimum metamodel" in the &lt;a href="http://www.bettersoftwarefaster.com/"&gt;&lt;span style="font-style: italic;"&gt;Better Software Faster&lt;/span&gt;&lt;/a&gt; book on agile development. The diagram shown here is this model in its simplest form. The questions traceability should answer are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How is this requirement tested?&lt;/li&gt;&lt;li&gt;How is this requirement implemented?&lt;/li&gt;&lt;li&gt;How is this part of the design tested?&lt;/li&gt;&lt;li&gt;Why is this part of the design needed?&lt;/li&gt;&lt;/ul&gt;It's a useful starting point when defining the artifacts required in a software development process, and the references they should contain to enable these questions to be answered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7531379122339276766?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7531379122339276766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7531379122339276766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7531379122339276766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7531379122339276766'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/minimum-traceability.html' title='Traceability through a simple metamodel'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/R6CREVaQbSI/AAAAAAAAALk/OLGO0_uKvuo/s72-c/minimumMetamodel.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6974960692451441582</id><published>2008-01-24T12:31:00.000Z</published><updated>2008-01-24T13:17:57.490Z</updated><title type='text'>The Role of the Process Engineer</title><content type='html'>Since xProcess provides configurability of processes, it also introduces a new role to projects - that of the Process Engineer. Of course the role may be played by a project manager or process consultant, or simply by one of the members of the project, but it's an important role and one that can greatly enhance the success of projects using xProcess.&lt;br /&gt;&lt;br /&gt;Several Process Engineers have already created the processes that come bundled with xProcess (Basic Scrum, Basic FDD, Simple Process) and there are others such WPM Prince 2, Web Development, Issue Management and Basic UP that are available in the community. So the likelihood is that most Process Engineers will start with one of these processes as the baseline. As experience with a process is gained, the details of the way it is being used by the projects can be understood and the sorts of useful modifications or additions to the patterns, actions and workflows can be specified.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6974960692451441582?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6974960692451441582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6974960692451441582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6974960692451441582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6974960692451441582'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/role-of-process-engineer.html' title='The Role of the Process Engineer'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8096848890111217551</id><published>2008-01-22T11:14:00.001Z</published><updated>2008-01-30T15:14:45.844Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Simple Process'/><category scheme='http://www.blogger.com/atom/ns#' term='Pattern Parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Using parameters in task patterns</title><content type='html'>Processes are defined in xProcess  through &lt;span style="font-style: italic;"&gt;Patterns - &lt;/span&gt;patterns for sets of tasks, for projects, for priority groupings (e.g.&lt;span style="font-style: italic;"&gt; Folders&lt;/span&gt;) and patterns for artifacts. By constructing sets of patterns, including patterns within patterns (&lt;a href="http://xprocess.blogspot.com/search/label/Composite%20Tasks"&gt;&lt;span style="font-style: italic;"&gt;Composite Tasks&lt;/span&gt;&lt;/a&gt;), a complete definition of the process behind a family of projects can be built up. A key part of pattern definition is the specification the pattern's parameters. This is what this article looks at.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R52v5VaQbOI/AAAAAAAAALE/TLpKwQiStec/s1600-h/blog20.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R52v5VaQbOI/AAAAAAAAALE/TLpKwQiStec/s400/blog20.JPG" alt="" id="BLOGGER_PHOTO_ID_5160474147571133666" border="0" /&gt;&lt;/a&gt;The diagram above shows the editor for a typical pattern from the Simple Process, showing the 4 parameters that this pattern has: &lt;span style="font-style: italic;"&gt;Name, Project Home Page, Start Date, Duration&lt;/span&gt;&lt;span style="font-style: italic;"&gt;. &lt;/span&gt;These are the values that the user can supply when creating an instance of the pattern. Parameters always have default values which are used if the user does not change them, but you can add an action to a parameter - a &lt;span style="font-style: italic;"&gt;DefaultValueGetter&lt;/span&gt; - which will set the default value at run time based on teh context or time at which the pattern is being instantiated. You can see in this case that &lt;span style="font-style: italic;"&gt;Start Date&lt;/span&gt; has such an action attached which sets the start date to the current date. Parameters also have a type which can be one of: Integer, Floating Point, Boolean, String or Rich Text.&lt;br /&gt;&lt;br /&gt;Having set up the parameters of your pattern you can then use these values to set values within the elements that are created by your pattern. Typically these will be projects, tasks and artifacts any or all which can be modified from the state of the prototype elements in the pattern to the real elements made when a user uses the pattern.&lt;br /&gt;&lt;br /&gt;Th first way to use a parameter is by string substitution. Any text field in your prototypes, for example the prototype project's name, can include a parameter substitution. Simply enclose the parameter name with 'Simple Project pattern, the name of the prototype project is $Name$, showing that when the pattern is used the name of the project comes from this parameter. It's also used in the case of the &lt;span style="font-style: italic;"&gt;Project Home Page&lt;/span&gt; parameter, which sets the description field to point to this url.&lt;br /&gt;&lt;br /&gt;You can even use string substitution with artifacts, provided that the artifact uses a text-based, rather than binary format (e.g. rtf, xml, csv formats). In this case just put the substitution string, say $Name$ inside the file attached to your pattern. You'll find when you use the pattern that the corresponding artifact has this string substitution applied. Several patterns in the &lt;span style="font-style: italic;"&gt;Basic FDD&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;/span&gt; signs in the field, and when the pattern is instantiated the parameter value will appear at this point instead. You can see an example of this type of parameter use in nearly all the pre-defined patterns delivered with xProcess. In our example here, the &lt;span style="font-style: italic;"&gt;Simple Project &lt;/span&gt;pattern, the name of the prototype project is $Name$, showing that when the pattern is used the name of the project comes from this parameter. It's also used in the case of the &lt;span style="font-style: italic;"&gt;Project Home Page&lt;/span&gt; parameter, which sets the description field to point to this url.&lt;br /&gt;&lt;br /&gt;You can even use string substitution with artifacts, provided that the artifact uses a text-based, rather than binary format (e.g. rtf, xml, csv formats). In this case just put the substitution string, say $Name$, inside the file attached to your pattern. You'll find when you use the pattern that the corresponding artifact has this string substitution applied. Several patterns in the &lt;span style="font-style: italic;"&gt;Basic FDD &lt;/span&gt;&lt;span&gt;process have artifacts that use this feature.&lt;br /&gt;&lt;br /&gt;The second important way that parameters are used is in actions. As well as &lt;span style="font-style: italic;"&gt;DefaultValueGetters&lt;/span&gt;, patterns have another very useful type of action - &lt;span style="font-style: italic;"&gt;InstantiationActions&lt;/span&gt;. These actions are called when a pattern is used. When you define &lt;span style="font-style: italic;"&gt;InstantiationActions &lt;/span&gt;you specify which of the prototype tasks you want to be transformed by the the action, and which particular action you wish to be called.&lt;/span&gt; Here's the InstantiationAction used in the &lt;span style="font-style: italic;"&gt;Simple Project &lt;/span&gt;pattern.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/R52421aQbPI/AAAAAAAAALM/_k2kgV-r7pE/s1600-h/blog21.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/R52421aQbPI/AAAAAAAAALM/_k2kgV-r7pE/s400/blog21.JPG" alt="" id="BLOGGER_PHOTO_ID_5160484000226110706" border="0" /&gt;&lt;/a&gt;It uses the &lt;span style="font-style: italic;"&gt;Set project dates&lt;/span&gt; action which sets a number of dates (targets and scheduler dates) associated with the project. It is this code which ensures projects you create start on the date provided by the &lt;span style="font-style: italic;"&gt;Start Date &lt;/span&gt;parameter. One thing to note about parameters appearing in OGNL code is that spaces in parameter names are replaced by underscores and non-alphanumeric codes are ignored. Also following &lt;a href="http://xprocess.blogspot.com/2007/02/action-stations.html"&gt;OGNL&lt;/a&gt; conventions the parameter is preceded by a hash (#). Note that the &lt;span style="font-style: italic;"&gt;Set project dates&lt;/span&gt; action uses both the &lt;span style="font-style: italic;"&gt;Start Date&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Duration&lt;/span&gt; parameters.&lt;br /&gt;&lt;br /&gt;When you're starting to use parameters in your patterns the best approach is to look at patterns delivered with the pre-configured processes in xProcess and to re-use actions that these patterns use. The Simple Process for example provides the following actions that you can re-use in your own patterns:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Next timebox date&lt;/span&gt; (Project): finds the latest finishing folder/timebox and adds a day to its end date&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set required role type&lt;/span&gt; (Task): finds a RoleType matching the supplied string and sets this as the required role type for the task&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set target dates&lt;/span&gt; (Task): sets targets&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Get today with offset&lt;/span&gt;: returns a date relative to the current date&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set max participants&lt;/span&gt; (Task): sets the number of people for a task&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set project dates &lt;/span&gt;(Project): sets target and schedule dates&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Assign to account name &lt;/span&gt;(Task): searches for a matching user and assigns to the task&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Get earliest start or end date &lt;/span&gt;(Task): returns either &lt;span style="font-style: italic;"&gt;today&lt;/span&gt; or the task's project's &lt;span style="font-style: italic;"&gt;scheduleStart&lt;/span&gt; if this is later&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set target dates and weight&lt;/span&gt; (Folder): sets the folder's targets and priority weighting based on that of preceding folders/timeboxes&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Next timebox name &lt;/span&gt;(Project): finds the name of the latest finishing folder/timebox with the appropriate name and returns a name with its number incremented&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set estimates&lt;/span&gt; (Task): sets three-point estimates based on &lt;span style="font-style: italic;"&gt;Size&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Set importance&lt;/span&gt; (Task): categorizes task into High, Medium or Low categories.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Note: there are also some &lt;span style="font-style: italic;"&gt;UI &lt;/span&gt;&lt;span style="font-style: italic;"&gt;Actions&lt;/span&gt; in the set of actions supplied by the Simple Process. See for example this article: &lt;a href="http://xprocess.blogspot.com/2007/06/set-size-to-match-effort.html"&gt;Set size to match effort&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8096848890111217551?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8096848890111217551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8096848890111217551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8096848890111217551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8096848890111217551'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/using-parameters-in-task-patterns.html' title='Using parameters in task patterns'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/R52v5VaQbOI/AAAAAAAAALE/TLpKwQiStec/s72-c/blog20.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-1372735066008107925</id><published>2008-01-22T11:13:00.000Z</published><updated>2008-01-24T00:40:53.970Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Artifacts'/><title type='text'>Artifact templates</title><content type='html'>When you're defining the process for your project don't forget that a major part of this is defining the standards for the files, documents and records (artifacts) that are created, modified and qualified as a result of the process. xProcess provides excellent support for defining the types of artifacts that will be used in a process. Furthermore it stores both the document templates and the resulting documents within its version control system so you can not only reliably access the most up to date version, but also compare it with previous versions if necessary. Here's a task pattern showing artifact templates that have been added to each of the subtasks in the pattern.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R5YHZArUMHI/AAAAAAAAAK8/FOocpe8r3_w/s1600-h/scrum19.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R5YHZArUMHI/AAAAAAAAAK8/FOocpe8r3_w/s400/scrum19.JPG" alt="" id="BLOGGER_PHOTO_ID_5158318549459284082" border="0" /&gt;&lt;/a&gt;You can do this simply by right-clicking on the task and adding a "reference" to a new artifact - an attached file, form or hyperlink. (To learn more about the different types of artifacts supported in xProcess see &lt;a href="http://services.ivis.com/help/reference/artifact/createartifact.html"&gt;Creating Artifacts&lt;/a&gt; in the Help system). Once you've done this, every time you make an instance of this pattern a clone of your artifact template will be created for use with that instance. Another nice feature is that you can substitute text in the file when you instantiate it, using the values that the user enters into the parameters of the pattern.&lt;br /&gt;&lt;br /&gt;Actually parameters of patterns are discussed in the next article in this series, so see &lt;a href="http://xprocess.blogspot.com/2008/01/using-parameters-in-task-patterns.html"&gt;Using parameters in task patterns&lt;/a&gt; for more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-1372735066008107925?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/1372735066008107925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=1372735066008107925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1372735066008107925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1372735066008107925'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/artifact-templates.html' title='Artifact templates'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/R5YHZArUMHI/AAAAAAAAAK8/FOocpe8r3_w/s72-c/scrum19.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5723087053399397438</id><published>2008-01-22T11:12:00.001Z</published><updated>2008-01-24T00:39:49.054Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gateways'/><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><title type='text'>Adding gateways to task patterns</title><content type='html'>An important part of defining the process for your project is defining how to know when a task is complete. Is a development task complete before unit testing for example? Almost certainly not. But if acceptance testing for an enhancement is a separate task in your process, at what stage does the developer hand it over for acceptance testing?&lt;br /&gt;&lt;br /&gt;One way to define this in xProcess is to define a gateway for the task so that the user is prompted by a checklist to ensure he has completed the required work.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R5XURgrUMFI/AAAAAAAAAKs/Tnid4Mc0s-Q/s1600-h/scrum17.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R5XURgrUMFI/AAAAAAAAAKs/Tnid4Mc0s-Q/s400/scrum17.JPG" alt="" id="BLOGGER_PHOTO_ID_5158262345517248594" border="0" /&gt;&lt;/a&gt;In the task pattern shown above you can see that a gateway called "Feature complete" has been added to the "Develop" task. To do this in one of your patterns simply switch from the &lt;span style="font-style: italic;"&gt;Project Manager&lt;/span&gt; perspective to the &lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Process Engineer&lt;/span&gt; perspective, you can thenopen the pattern diagram for your pattern (right-click on the pattern). You can then select "Gateway Type" from the palette and drop it on the task in the pattern that you want to have a gateway.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/R5XR8wrUMEI/AAAAAAAAAKk/ua3EzKt8vBU/s1600-h/scrum16.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/R5XR8wrUMEI/AAAAAAAAAKk/ua3EzKt8vBU/s320/scrum16.JPG" alt="" id="BLOGGER_PHOTO_ID_5158259790011707458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The content of the gateway is defined by creating or editing a Gateway Type in your process. Right-clicking on your process and selecting &lt;span style="font-style: italic;"&gt;New -&gt; Type of Gateway&lt;/span&gt; opens an editor like the one shown here on the right. This is where you can enter in the questions / checklist items that are presented to the user when he closes one of these tasks. In this case the questions are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tests complete and pass?&lt;/li&gt;&lt;li&gt;Documentation complete?&lt;/li&gt;&lt;li&gt;User approved?&lt;/li&gt;&lt;/ul&gt;In each case we must also specify the set of possible answers and whether the answer represents a "pass" or "fail" condition.&lt;br /&gt;&lt;br /&gt;Let's now see how this shows up when a participant on the project closes one of these tasks using the web client. Here's the gateway screen that a user would complete before closing one of these tasks (&lt;span style="font-style: italic;"&gt;click on the image to enlarge&lt;/span&gt;).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R5X_jQrUMGI/AAAAAAAAAK0/90E_mKXh1Xc/s1600-h/scrum18.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R5X_jQrUMGI/AAAAAAAAAK0/90E_mKXh1Xc/s400/scrum18.JPG" alt="" id="BLOGGER_PHOTO_ID_5158309929459920994" border="0" /&gt;&lt;/a&gt;You can see that for questions where a "fail" response is selected a comment is required in order that a reviewer can understand why this was done. You can learn more about gateways in xProcess from the help files. See for example &lt;a href="http://services.ivis.com/help/webclient/gateways.html"&gt;Answering Gateways&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The next article in this series concerns &lt;a href="http://xprocess.blogspot.com/2008/01/artifact-templates.html"&gt;Artifact Templates&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5723087053399397438?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5723087053399397438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5723087053399397438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5723087053399397438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5723087053399397438'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/adding-gateways-to-task-patterns.html' title='Adding gateways to task patterns'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R5XURgrUMFI/AAAAAAAAAKs/Tnid4Mc0s-Q/s72-c/scrum17.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2290721746665990631</id><published>2008-01-08T11:50:00.001Z</published><updated>2008-02-26T22:24:56.574Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><title type='text'>EV for Agile</title><content type='html'>Earned Value analysis is really designed for showing how closely you are tracking a pre-defined plan. Schedule efficiency and cost efficiency give separate measures of the degree to which you are "on-time" and on-budget". The problem with agile plans is that the scope of the project is expected to change as it progresses, usually with the aim of keeping schedule and cost more or less constant. Is EV analysis simply not applicable in this case? Actually in the context of a forecasting environment like xProcess, EV can still provide some most valuable metrics to agile plans. I've been invited to present a paper on EV for agile projects in a few months time and so I'd be most interested to hear of others applying EV with plans that must vary over time. Drop me a line if that's you!&lt;br /&gt;&lt;br /&gt;If you're interested in receiving a copy of the paper btw &lt;a href="http://www.xprocess.eu.com/consulting/whitepapers.html"&gt;click here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2290721746665990631?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2290721746665990631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2290721746665990631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2290721746665990631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2290721746665990631'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2008/01/ev-for-agile.html' title='EV for Agile'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4740041815197797014</id><published>2007-12-28T12:59:00.000Z</published><updated>2007-12-28T16:44:28.099Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XAPPA'/><title type='text'>The headaches of centralised data</title><content type='html'>The UK government's woes concerning the potential loss of personal data has received a lot of publicity in recent months. It calls into question the whole strategy adopted by governments to build ever larger centralised databases containing more and more integrated data from multiple applications such as passports, social security, driving licences and health service. An insurmountable security nightmare arises from developing such databases. Just who can you trust  absolutely to control access to such universal data sources?&lt;br /&gt;&lt;br /&gt;Here's a radical thought - instead of centralising the data and building multiple applications around the same centralised database, why not build applications that can safely access multiple data sources, allowing departmental control of the more localised data sources with full version control and audit of all data access. Interestingly when we built xProcess, the data architecture we adopted lends itself to just such an approach. We've since named the framework XAPPA (eXtensible APPlication Architecture) and its continued development promises much in terms of rapid, model-driven application development for distributed systems.&lt;br /&gt;&lt;br /&gt;Key benefits include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lets multiple “centres” manage the data they own and freely link to data owned by other centres.&lt;/li&gt;&lt;li&gt;Each centre manages access and audit&lt;/li&gt;&lt;li&gt;All data versioned&lt;/li&gt;&lt;li&gt;All access auditable&lt;/li&gt;&lt;li&gt;Every change recorded&lt;/li&gt;&lt;li&gt;Uses industry standard protocols for versioning&lt;/li&gt;&lt;li&gt;Uses XML files (optionally encrypted)&lt;/li&gt;&lt;li&gt;Transfer objects support Web2 applications and tools&lt;/li&gt;&lt;li&gt;Applications built with MDA/DSM&lt;/li&gt;&lt;li&gt;Applications can share data sources.&lt;/li&gt;&lt;/ul&gt;Frameworks like XAPPA may yet provide the means for both the integration and distributed management of data that future personal data systems will need. While all data storage and retrieval systems suffer from the risk of penetration, distributed systems at least limit the risk of &lt;span style="font-style: italic;"&gt;total &lt;/span&gt;data penetration, which is the doomsday scenario few seem to realise is only too likely with conventional database approaches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4740041815197797014?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4740041815197797014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4740041815197797014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4740041815197797014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4740041815197797014'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/12/headaches-of-centralised-data.html' title='The headaches of centralised data'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-2633537669923363361</id><published>2007-12-01T12:12:00.000Z</published><updated>2007-12-01T12:46:39.351Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Artifacts'/><title type='text'>Document-driven processes</title><content type='html'>Many processes are driven by documents. Documents are the resulting artifacts from tasks of the process, as well as being the inputs or informing artifacts for subsequent tasks. Examples of such processes range from drug administration, planning applications, legal processes of many kinds and financial control.  Since many of these processes are also subject to regulatory control and audits it makes sense to define and monitor them within an environment like xProcess, which not only provides feedback on the forecasts and targets for task completion, but also can handle the version control of the document templates, and the documents themselves.&lt;br /&gt;&lt;br /&gt;Modelling these processes requires understanding of what the key documents are, their format (which can be captured as document templates) and the transformation work which takes place through the process (which can be captured as task patterns). The quality control to be executed at each stage can be captured as gateways.&lt;br /&gt;&lt;br /&gt;Here's a simple example.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R1FXkan78EI/AAAAAAAAAKc/oP3770Di8yI/s1600-R/doc-process.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R1FXkan78EI/AAAAAAAAAKc/Fect7-AoDpU/s400/doc-process.JPG" alt="" id="BLOGGER_PHOTO_ID_5138984932940181570" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-2633537669923363361?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/2633537669923363361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=2633537669923363361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2633537669923363361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/2633537669923363361'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/12/document-driven-processes.html' title='Document-driven processes'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/R1FXkan78EI/AAAAAAAAAKc/Fect7-AoDpU/s72-c/doc-process.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5493274860023896343</id><published>2007-11-30T18:15:00.000Z</published><updated>2007-12-01T10:46:21.455Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Midway through Sprint 01</title><content type='html'>Time to revisit our example &lt;a href="http://xprocess.blogspot.com/2007/11/prioritising-backlog.html"&gt;Scrum Project&lt;/a&gt; started a couple of weeks back. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R1BT3r6p7GI/AAAAAAAAAKM/Q1--bU3irTQ/s1600-R/scrum8.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R1BT3r6p7GI/AAAAAAAAAKM/vwaZjdQV-jQ/s200/scrum8.JPG" alt="" id="BLOGGER_PHOTO_ID_5138699390976388194" border="0" /&gt;&lt;/a&gt;How's our team doing? Here's the burndown as it was 2 weeks ago.&lt;br /&gt;&lt;br /&gt;When we left it, the Sprint was &lt;span style="font-style: italic;"&gt;red&lt;/span&gt; indicating an overcommitment based on current estimates. Either the team would need to negotiate a slight reduction in scope for the Sprint or risk disappointing the project stakeholders at the end of the period.&lt;br /&gt;&lt;br /&gt;Here's the situation today (&lt;span style="font-style: italic;"&gt;click for an enlarged view&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R1BVcb6p7HI/AAAAAAAAAKU/304OUFWOA-Y/s1600-R/scrum15.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R1BVcb6p7HI/AAAAAAAAAKU/BV6NVyFuf28/s400/scrum15.JPG" alt="" id="BLOGGER_PHOTO_ID_5138701121848208498" border="0" /&gt;&lt;/a&gt;The status of the Sprint is now &lt;span style="font-style: italic;"&gt;amber&lt;/span&gt;. Comparing the charts carefully one can tell from the reduced size of the work that there is a reduction in scope (also visible from the task lists) but there is good progress visible from the closed tasks to date. Other things to note in the screenshot are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alerts (showing where some open tasks have exceeded their "best-case" estimates - they are prompts that the 3-point estimates for these tasks may need review);&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Closed tasks in the Explorer view (show with check mark); and&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The task list for the Sprint (sorted by end date so that the at-risk backlog item is highlighted at the top).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5493274860023896343?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5493274860023896343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5493274860023896343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5493274860023896343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5493274860023896343'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/midway-through-spint-01.html' title='Midway through Sprint 01'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R1BT3r6p7GI/AAAAAAAAAKM/vwaZjdQV-jQ/s72-c/scrum8.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6676727576543139031</id><published>2007-11-30T16:22:00.000Z</published><updated>2008-01-21T19:37:05.986Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Client'/><title type='text'>Participating in the project</title><content type='html'>The key thing about defining processes and project in xProcess is that the participants on a project can interact with the plans day by day, making them not just a view of what someone once hoped might happen, but an up to date record of the most likely outcome given progress so far.&lt;br /&gt;&lt;br /&gt;The &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R1A8EL6p7FI/AAAAAAAAAKE/vhe88O58FZE/s1600-R/login.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R1A8EL6p7FI/AAAAAAAAAKE/uQ2d4F6huf4/s200/login.JPG" alt="" id="BLOGGER_PHOTO_ID_5138673217445686354" border="0" /&gt;&lt;/a&gt;easiest way for project members to update their estimates, progress and plans is to use the web client of xProcess. By installing the xProcess server, this becomes accessible to team members using just a browser. They log in using their Subversion password and can then see their task assignments and update time bookings, which tasks are active, task estimates and descriptions, and other aspects of the plan relevant to their work. Here's a typical screen shot taken from our Scrum Project example (&lt;span style="font-style: italic;"&gt;click on the image to enlarge&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/R1A4_76p7DI/AAAAAAAAAJ0/Eiwc3tzRbFs/s1600-R/scrum14.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/R1A4_76p7DI/AAAAAAAAAJ0/hARDA7k8ibw/s400/scrum14.JPG" alt="" id="BLOGGER_PHOTO_ID_5138669845896358962" border="0" /&gt;&lt;/a&gt;Different filters can be used to show either just tasks scheduled for this week or all tasks assigned to the participant. Clicking on a task bring the task details in to the lower panel where they can be reviewed and edited. If there are documents or other artifacts associated with the task these can be seen and downloaded from this screen.&lt;br /&gt;&lt;br /&gt;This article is part of a series of posts on &lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;Using the pre-defined Scrum Process&lt;/a&gt;. Check out the next article in the series here: &lt;a href="http://xprocess.blogspot.com/2007/11/midway-through-spint-01.html"&gt;Midway through Sprint 01&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6676727576543139031?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6676727576543139031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6676727576543139031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6676727576543139031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6676727576543139031'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/participating-in-project.html' title='Participating in the project'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/R1A8EL6p7FI/AAAAAAAAAKE/uQ2d4F6huf4/s72-c/login.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-1841158294963725233</id><published>2007-11-24T12:39:00.000Z</published><updated>2008-01-30T14:29:51.927Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Adding structure, artifacts and gateways to task patterns</title><content type='html'>Task patterns can be very simple (just one task with no extras) or a quite complex template controlled by several parameters and providing the implementer of the task with template documents, quality checklists (gateways), variable estimates and a family of subtasks. It's important to note that often &lt;span style="font-style: italic;"&gt;simplest is best&lt;/span&gt;! Or at least (following Einstein) "as simple as possible but no simpler". We already discussed this issue in the blog with regards patterns for FDD (see &lt;a href="http://xprocess.blogspot.com/2006/12/comparing-big-patterns-and-small-ones.html"&gt;&lt;span style="font-style: italic;"&gt;Comparing big patterns and small ones&lt;/span&gt;&lt;/a&gt;). In Scrum, we've shown that different patterns can be used in addition to or instead of the &lt;span style="font-style: italic;"&gt;Backlog Item &lt;/span&gt;pattern (see &lt;a href="http://xprocess.blogspot.com/2007/11/different-patterns-for-backlog-items.html"&gt;previous posting&lt;/a&gt;). Now let's look at what additional features might be useful to add to our &lt;span style="font-style: italic;"&gt;Enhancement &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Defect&lt;/span&gt; patterns.&lt;br /&gt;&lt;br /&gt;Depending on the size of Scrum team you may have specialist roles that go beyond those of&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Product Owner &lt;/li&gt;&lt;li&gt;ScrumMaster &lt;/li&gt;&lt;li&gt;Team Member&lt;/li&gt;&lt;/ul&gt;For example the specialist role of &lt;span style="font-style: italic;"&gt;Tester &lt;/span&gt;is useful on nearly all but very small projects. &lt;span style="font-style: italic;"&gt;Developers &lt;/span&gt;must also write tests and test their code but &lt;span style="font-style: italic;"&gt;Testers &lt;/span&gt;are generally more focused on end-to-end tests, user acceptance tests and full system tests. They may also have a role to play in accepting enhancements and defect-fixes. So for example we could identify subtasks in the &lt;span style="font-style: italic;"&gt;Enhancement &lt;/span&gt;pattern with these different roles.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R02k_b6p7CI/AAAAAAAAAJs/ghEu1TbNEsw/s1600-h/scrum13.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R02k_b6p7CI/AAAAAAAAAJs/ghEu1TbNEsw/s400/scrum13.JPG" alt="" id="BLOGGER_PHOTO_ID_5137944159632092194" border="0" /&gt;&lt;/a&gt;The alternative to multiple tasks, each requiring a single person with a single role, is to specify one task with multiple people, possibly with multiple roles. This would mean that each of these people would book time to the same task. Although this results in fewer tasks ,it's not necessarily simpler since the completion of the task is less well defined - basically the last one to finish closes the task. Experiment with what works best in your team - and let us know the outcome. We find such feedback invaluable.&lt;br /&gt;&lt;br /&gt;In subsequent posts we'll look at:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://xprocess.blogspot.com/2008/01/adding-gateways-to-task-patterns.html"&gt;Adding gateways&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xprocess.blogspot.com/2008/01/artifact-templates.html"&gt;Artifact templates&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://xprocess.blogspot.com/2008/01/using-parameters-in-task-patterns.html"&gt;Using parameters&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;These are all ways to enhance the task patterns and make them easier for managers and team members to use and be productive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-1841158294963725233?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/1841158294963725233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=1841158294963725233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1841158294963725233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1841158294963725233'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/adding-structure-artifacts-and-gateways.html' title='Adding structure, artifacts and gateways to task patterns'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R02k_b6p7CI/AAAAAAAAAJs/ghEu1TbNEsw/s72-c/scrum13.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-1490397072883856145</id><published>2007-11-23T16:35:00.000Z</published><updated>2008-01-21T19:04:45.917Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Different patterns for Backlog Items</title><content type='html'>If you've followed through the series of articles on Scrum (see &lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;&lt;span style="font-style: italic;"&gt;Using the pre-defined Scrum Process&lt;/span&gt;&lt;/a&gt;) you'll know they've covered making a Scrum project in xProcess and setting up a backlog of tasks that you can prioritise, forecast and display in Burndown or other charts. Participants on the project can access their tasks in the plan and update progress or modify estimates to complete them. But the pre-defined "Basic Scrum" process is just that - basic. It doesn't take into account the type of project you are doing with Scrum (it may not even be a  software development project), nor the specifics of your company's or your team's process. With a little process engineering we can make things much more specific, and sometimes that's very useful.&lt;br /&gt;&lt;br /&gt;The types of things you might want to consider once you're up and running with the basic process include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adding different role types if there are areas of specialisation within the team&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Adding artifact templates for essential documents&lt;/li&gt;&lt;li&gt;Adding gateways to tasks (quality checklists)&lt;/li&gt;&lt;li&gt;Adding structure to the "Backlog Item" pattern, for example subtasks of a standard form&lt;/li&gt;&lt;li&gt;Adding different types of Backlog Item with different roles, estimates, gateways, structure and so on.&lt;/li&gt;&lt;/ul&gt;For example you might want to distinguish between a defect and an enhancement and use a slightly different structure of subtasks and roles for each. If you want both patterns to be used as backlog items you need to modify the &lt;span style="font-style: italic;"&gt;Scrum Project&lt;/span&gt; pattern&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R0gaur6p7AI/AAAAAAAAAJc/HkInWguJ1uI/s1600-h/scrum11.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R0gaur6p7AI/AAAAAAAAAJc/HkInWguJ1uI/s320/scrum11.JPG" alt="" id="BLOGGER_PHOTO_ID_5136384764381096962" border="0" /&gt;&lt;/a&gt; so that they can be added by Project Managers / Scrum Masters to Sprints and the &lt;span style="font-style: italic;"&gt;Unscheduled Backlog&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;This diagram shows the hierarchy in the &lt;span style="font-style: italic;"&gt;Scrum Project &lt;/span&gt;pattern. It consists of a project, named in the pattern as "&lt;span style="font-style: italic;"&gt;$Name$&lt;/span&gt;" (this string will be substituted with the name the user supplies for the project). It has a &lt;span style="font-style: italic;"&gt;General Overheads... &lt;/span&gt;task and a &lt;span style="font-style: italic;"&gt;Scrum administration... &lt;/span&gt;task, both of which cover background work not related to backlog items. The &lt;span style="font-style: italic;"&gt;Backlog Item &lt;/span&gt;pattern appears 3 times within the project pattern: in the first sprint, &lt;span style="font-style: italic;"&gt;Sprint 01&lt;/span&gt;; within the &lt;span style="font-style: italic;"&gt;Sprint &lt;/span&gt;pattern (which can be instantiated within the &lt;span style="font-style: italic;"&gt;Sprints&lt;/span&gt; parent task as many times as required for &lt;span style="font-style: italic;"&gt;Sprint 02&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; Sprint 03&lt;/span&gt;, etc.); and within the &lt;span style="font-style: italic;"&gt;Unscheduled Backlog&lt;/span&gt; task. In order to add&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R0d7Fb6p6_I/AAAAAAAAAJU/jDV7vpWZZus/s1600-h/scrum12.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R0d7Fb6p6_I/AAAAAAAAAJU/jDV7vpWZZus/s320/scrum12.JPG" alt="" id="BLOGGER_PHOTO_ID_5136209233362676722" border="0" /&gt;&lt;/a&gt; additional or alternative patterns, all 3 of these locations will need to be modified slightly so that the new patterns appear in place of, or additional to, the &lt;span style="font-style: italic;"&gt;Backlog Item &lt;/span&gt;pattern.&lt;br /&gt;&lt;br /&gt;Here's the situation after adding 2 new patterns for &lt;span style="font-style: italic;"&gt;Defect &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Enhancement&lt;/span&gt; as alternatives to the general &lt;span style="font-style: italic;"&gt;Backlog Item. &lt;/span&gt;&lt;span&gt;This will give the Project Manager&lt;/span&gt;&lt;span&gt; a choice of the types of backlog item she wants to make in each case.&lt;br /&gt;&lt;br /&gt;One word of confession here: to add extra pattern shortcuts like this means that the composite task that contains them (&lt;span style="font-style: italic;"&gt;Sprint 01&lt;/span&gt; for example) must be &lt;span style="font-style: italic;"&gt;a selection&lt;/span&gt; composite rather than a &lt;span style="font-style: italic;"&gt;collection  &lt;/span&gt;composite. In version Basic Scrum 2.9.0 they are &lt;span style="font-style: italic;"&gt;collections&lt;/span&gt; so you either need to change this or, to save hassle, use version 2.9.0a or later of the process (if this is not yet available for download, email &lt;a href="mailto://support@xprocess.eu.com"&gt;support@xprocess.eu.com&lt;/a&gt; to get it.)&lt;br /&gt;&lt;br /&gt;Next we'll look at &lt;a href="http://xprocess.blogspot.com/2007/11/adding-structure-artifacts-and-gateways.html"&gt;adding structure, artifacts and gateways&lt;/a&gt; to our new patterns. Or check out the next article in the Using Scrum series: &lt;a href="http://xprocess.blogspot.com/2007/11/participating-in-project.html"&gt;Participating in the Project&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-1490397072883856145?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/1490397072883856145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=1490397072883856145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1490397072883856145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/1490397072883856145'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/different-patterns-for-backlog-items.html' title='Different patterns for Backlog Items'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R0gaur6p7AI/AAAAAAAAAJc/HkInWguJ1uI/s72-c/scrum11.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5070438508470751219</id><published>2007-11-19T18:03:00.000Z</published><updated>2007-11-23T13:27:11.092Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Andrea Tomasini'/><category scheme='http://www.blogger.com/atom/ns#' term='Alex Aptus'/><title type='text'>Agile 42 at the Scrum Gathering</title><content type='html'>It was great to get together last week with old friends and colleagues &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=217084"&gt;Alex Aptus&lt;/a&gt; and &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=37857"&gt;Andrea Tomasini&lt;/a&gt;, who were over in London for the &lt;a href="http://www.scrumalliance.org/events/2-scrum-gathering"&gt;Scrum Gathering 2007&lt;/a&gt;. They are both doing Scrum consulting and training in Germany. Andrea's company is called &lt;a href="http://www.agile42.com/"&gt;&lt;span style="font-style: italic;"&gt;Agile42&lt;/span&gt;&lt;/a&gt; and if you think about it the name has some logic to it - "agile" is the undisputed answer to all the major questions of software engineering (mmm...?) in the same way that 42 is the answer to that only slightly larger chestnut: &lt;a href="http://en.wikipedia.org/wiki/The_Answer_to_Life,_the_Universe,_and_Everything"&gt;life, the universe and everything&lt;/a&gt;. Actually I'd recommend Alex and Andrea's work precisely because they understand that the answers to large questions are not trite or formulaic. If you manage to engage them for your project you'll not only get excellent training in standard methods but thoughtful and experienced consultants that will help you solve the hard questions too.&lt;br /&gt;&lt;br /&gt;Another highlight of our meeting was seeing the newly opened &lt;a href="http://www.stpancras.com/going-to-stpancras/st-pancras-present"&gt;St Pancras&lt;/a&gt; station &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.stpancras.com/vgallery.aspx"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R0H8F76p69I/AAAAAAAAAJE/-8QD5YG8XGw/s320/about-col-feature1.jpg" alt="" id="BLOGGER_PHOTO_ID_5134662229092330450" border="0" /&gt;&lt;/a&gt;on the day that the first Eurostar train arrived there from Paris. The queues at Europe's longest champagne bar meant that we weren't able to order their most expensive bottle at (literally) £2800 a pop!&lt;br /&gt;&lt;br /&gt;By the way Andrea has a blog on &lt;a href="http://processinpractice.andreat.de/index.html"&gt;&lt;span style="font-style: italic;"&gt;Software Development Process in Practice&lt;/span&gt;&lt;/a&gt;. Why not check it out. He has a thoughtful article for example on requirements management. Here's the link: &lt;a style="font-style: italic;" href="http://processinpractice.andreat.de/2006/09/agile-product-development-how-to.html#links"&gt;Software Development Process in Practice: Agile Product Development... How to manage Requirements?&lt;/a&gt; Effective requirements management has been shown time and again to be the most crucial aspect of successful projects so it's a worthy topic for discussion. I think it's an area that all of us involved with agile processes should be examining. My feeling is that agile methods stop too readily at the level of "features" without also trying to capture other aspects of requirements.  &lt;a href="http://xprocess.blogspot.com/2007/02/3-types-of-requirement.html"&gt;&lt;span style="font-style: italic;"&gt;3 Types of Requirement&lt;/span&gt;&lt;/a&gt; tries to explain this - it summarises the results of some consulting in this area for a client adopting agile methods on very large projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5070438508470751219?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5070438508470751219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5070438508470751219' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5070438508470751219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5070438508470751219'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/agile-42-at-scrumworks-conference.html' title='Agile 42 at the Scrum Gathering'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/R0H8F76p69I/AAAAAAAAAJE/-8QD5YG8XGw/s72-c/about-col-feature1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7687505560818883950</id><published>2007-11-19T10:58:00.000Z</published><updated>2008-01-21T19:00:15.791Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Top-down or bottom up planning for Sprints</title><content type='html'>xProcess supports two ways to specify the required resources for a parent task: &lt;span style="font-style: italic;"&gt;top-down &lt;/span&gt;or &lt;span style="font-style: italic;"&gt;bottom-up&lt;/span&gt;.&lt;br /&gt;&lt;blockquote&gt;The simpler approach is &lt;span style="font-style: italic; font-weight: bold;"&gt;bottom-up&lt;/span&gt;. A parent task has subtasks with their own estimates of size and effort. The parent task size is therefore just the sum of subtasks' sizes.&lt;br /&gt;&lt;br /&gt;What if you don't yet know what all the subtasks are? In this case - or if you want to specify some contingency or slack without inflating the estimates for the subtasks (&lt;a href="http://en.wikipedia.org/wiki/Parkinson%27s_law"&gt;Parkinson's Law&lt;/a&gt; would suggest this is a good idea) - then you can supply an independent estimate for the parent task by specifying it as &lt;span style="font-style: italic; font-weight: bold;"&gt;top-down&lt;/span&gt;.&lt;/blockquote&gt;A previous entry, &lt;a href="http://xprocess.blogspot.com/2007/05/parents-tasks-and-top-down-planning.html"&gt;&lt;span style="font-style: italic;"&gt;Parent Tasks and Top-down Planning&lt;/span&gt;&lt;/a&gt;, has already discussed this feature and shows the user-interface for using top-down estimates. The question here  (since this is part of the series on &lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;&lt;span style="font-style: italic;"&gt;Using the pre-defined Scrum Process&lt;/span&gt;&lt;/a&gt;) is how to use it for Sprints in Scrum.&lt;br /&gt;&lt;br /&gt;Let's take a look at the current state of "Sprint 01" in our example Scrum project. Although this is quite a detailed screenshot, just look particularly at the &lt;span style="font-style: italic;"&gt;red&lt;/span&gt; figures in the middle and the Alerts at the bottom of the screen (&lt;span style="font-style: italic;"&gt;click on image to make larger&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/R0GCvb6p66I/AAAAAAAAAIs/xyUjnl7bDGM/s1600-h/scrum9.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/R0GCvb6p66I/AAAAAAAAAIs/xyUjnl7bDGM/s400/scrum9.JPG" alt="" id="BLOGGER_PHOTO_ID_5134528801638312866" border="0" /&gt;&lt;/a&gt;The negative numbers for the estimates of size and effort for the "REST" of this task, and the Alerts, tell the same story. The backlog items in this sprint exceed the size of the top-down estimate. (See &lt;a href="http://xprocess.blogspot.com/2007/11/prioritising-backlog.html"&gt;&lt;span style="font-style: italic;"&gt;Prioritising the backlog&lt;/span&gt;&lt;/a&gt; for how and why these items were added to the Sprint.)&lt;br /&gt;&lt;br /&gt;In this state the top-down estimate really is of no use since the larger amount of effort required for the child tasks will determine the time it takes and the top-down estimate of the parent task will effectively be ignored by the auto-scheduler. The &lt;span style="font-style: italic;"&gt;auto-fix&lt;/span&gt; for the Alerts provides 2 ways to solve this situation:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/R0GGk76p68I/AAAAAAAAAI8/q1GlBtSVMOo/s1600-h/scrum10.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/R0GGk76p68I/AAAAAAAAAI8/q1GlBtSVMOo/s320/scrum10.JPG" alt="" id="BLOGGER_PHOTO_ID_5134533019296197570" border="0" /&gt;&lt;/a&gt;You can either increase the estimates so that once again the top-down estimate is greater than (or equal to) the sum of the subtasks, or simply convert it to bottom-up so that the estimate for the Sprint just reflects the size of its parts.&lt;br /&gt;&lt;br /&gt;So Sprints which already have a complete set of tasks added to them should usually be set to bottom up. However Sprints which do not yet have their backlog items defined should be top-down. That's why when you create Sprints for the first time they are top-down, and as a result you can see the forecast assignments for people  and the projected cost of each Sprint of the project, based on its top-down estimate.&lt;br /&gt;&lt;br /&gt;The general rule for how to decide whether to use top-down or bottom-up is this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;if you think that you have captured all the work required in the subtasks, then use bottom-up&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;if you think that having completed all the identified subtasks that there may be some others, then use top-down and provide an estimate for how large these other subtasks are in the top-down estimate.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;These other subtasks are what is referred to in xProcess as the "REST" of a parent task, or the &lt;span style="font-weight: bold;"&gt;R&lt;/span&gt;emaining &lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;ssential &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;ub-&lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;asks. When you discover them you can create them in the parent task and task-by-task the size of the REST will be reduced, Or you may become confident as time progresses that you have indeed identified all the subtasks so you can then convert the parent task to bottom-up estimating and the REST will be removed.&lt;br /&gt;&lt;br /&gt;One more point about parent tasks: team members cannot book their time directly to a parent task, only to a  leaf-level task. So if they find that they are carrying out part of the parent task, but not one of the identified subtasks, they may need to create a subtask so they can book to it. This is another way in which the REST of the parent task may be reduced.&lt;br /&gt;&lt;br /&gt;The next article on using the Scrum process in xProcess concerns configuring your process with &lt;a href="http://xprocess.blogspot.com/2007/11/different-patterns-for-backlog-items.html"&gt;Different Patterns for Backlog Items.&lt;/a&gt; Or if you're more interested in how participants on your project can use the &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;web client, see &lt;a href="http://xprocess.blogspot.com/2007/11/participating-in-project.html"&gt;Participating in the Project&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7687505560818883950?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7687505560818883950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7687505560818883950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7687505560818883950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7687505560818883950'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/top-down-or-bottom-up-planning-for.html' title='Top-down or bottom up planning for Sprints'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/R0GCvb6p66I/AAAAAAAAAIs/xyUjnl7bDGM/s72-c/scrum9.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4597465250185412010</id><published>2007-11-17T10:41:00.000Z</published><updated>2008-01-21T18:43:27.996Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='priority-driven processes'/><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Prioritising the backlog</title><content type='html'>The key point about priority-driven planning approaches like Scrum - common in fact to all agile processes - is that the set of tasks undertaken by the team are ordered by priority rather than by a pre-determined procedure. (Priority is usually assessed based on business benefit and risk.) This article focuses on this particular aspect of using Scrum with xProcess and it covers:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adding backlog items to specific Sprints&lt;/li&gt;&lt;li&gt;Showing a Sprint in Burndown and Gantt charts, and finally&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Prioritising the backlog&lt;/li&gt;&lt;/ul&gt;Having created a Scrum project with resources and a set of backlog items (see the &lt;a href="http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html"&gt;previous post&lt;/a&gt; in this series) our next step is to prioritise the backlog. Our starting point here is a project which has three Sprints defined and a number of backlog items that have been estimated for approximate size. For simplicity in this example I've created 26 backlog items (with single character names from 'a' to 'z') with sizes of between 1 and 5 "points" (points being nominal units of size corresponding approximately to an ideal day's work for the average worker - see &lt;a href="http://xprocess.blogspot.com/2007/03/estimating-size-and-effort-why-are-they.html"&gt;earlier post&lt;/a&gt; for more about this topic). Here's a view of my project at this point (&lt;span style="font-style: italic;"&gt;click on the image to make it larger&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz8ixL6p6zI/AAAAAAAAAH0/x6LGgoPLmTE/s1600-h/scrum3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz8ixL6p6zI/AAAAAAAAAH0/x6LGgoPLmTE/s400/scrum3.JPG" alt="" id="BLOGGER_PHOTO_ID_5133860328633396018" border="0" /&gt;&lt;/a&gt;For the backlog items to be scheduled they must be moved from the "Unscheduled Backlog" task to one of the Sprints. Maybe you have an idea at this stage  about the most important tasks, or maybe you want to see how long they would all take given the current estimates and resources. In either case just select the backlog items in the task list and drag-and-drop them to the first sprint ("Sprint 01"). As you'll see in the screenshot, I've opened the Project Explorer pane to do this. It's a view that can be selected from the "Window" menu - or simply click on the project icon next to the project name on the "Tools" pane. Once the backlog items are in a Sprint you'll begin to see the forecast start and end dates for them. You can now hit the "Priorities" button on the Tools pane and begin to put them in priority order. First though let's look at the Gantt chart for "Sprint 01" having added backlog items 'a' to 'v' to it. Double-click on "Sprint 01" to see its details and click on the "Gantt Chart" button. You can view other charts for the Sprint in a similar way, for example by clicking on the "Burndown Chart" button. In the screenshot below you'll also see that I've put the task list in reverse End Date order (by clicking on the column heading) and on the Gantt chart I've scrolled down to show the tasks at the end of the Sprint.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz8skr6p61I/AAAAAAAAAIE/wMjPswOuW1k/s1600-h/scrum4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz8skr6p61I/AAAAAAAAAIE/wMjPswOuW1k/s400/scrum4.JPG" alt="" id="BLOGGER_PHOTO_ID_5133871109001309010" border="0" /&gt;&lt;/a&gt;The Gantt Chart shows the forecast start and end dates of the tasks based on resources and estimates so far defined. As time progresses and tasks are started, re-estimated, completed or changed this chart will also change of course - it gives us a view of the likely outcomes based on information currently available. The risk element of the estimates is shown by the 75/95% extensions on the Gantt bars (see&lt;a href="http://xprocess.blogspot.com/2006/01/3pe-why-i-use-three-estimates-where.html"&gt; "Why I use 3 estimates..."&lt;/a&gt; for a discussion of this feature). Given that the target end date for this Sprint is December 19th, we can see that 2 items ('n' and 'a') are in the &lt;span style="font-style: italic;"&gt;red&lt;/span&gt; zone and not forecast to finish in time and several others are in the &lt;span style="font-style: italic;"&gt;amber&lt;/span&gt; zone and at risk of not finishing. This would therefore prompt review with the team and the client to whom commitments are being made so that expectations are set appropriately.&lt;br /&gt;&lt;br /&gt;Now what if 'n' and 'a' are actually the most important items to get done in this Sprint, or what if there are dependencies between some of the tasks? How are these handled? Well dependencies can be added simply by dragging-and-dropping a task on the task it is dependent on. But it's important for flexibility to keep such dependencies to a minimum. The main way to order tasks in the Scrum process is by priority. To see and change priorities click on the "Priorities" button on the Tools pane. Here's what you might see...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/Rz8wh76p62I/AAAAAAAAAIM/2a14JYSQaDw/s1600-h/scrum5.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/Rz8wh76p62I/AAAAAAAAAIM/2a14JYSQaDw/s400/scrum5.JPG" alt="" id="BLOGGER_PHOTO_ID_5133875459803179874" border="0" /&gt;&lt;/a&gt;The priorities of all the tasks in "Sprint 01" are all the same (they're &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; priority one!). As a result the scheduling of the tasks is effectively random. Let's prioritise then in alphabetical order. Here's what the priorities list looks like then...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz8zQr6p63I/AAAAAAAAAIU/gg5MxL8cN88/s1600-h/scrum6.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz8zQr6p63I/AAAAAAAAAIU/gg5MxL8cN88/s400/scrum6.JPG" alt="" id="BLOGGER_PHOTO_ID_5133878461985319794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Changing priority changes the order that the tasks are scheduled, so the Gantt chart now reflects the alphabetical priority ordering. Here's the resulting Gantt chart for "Sprint 01".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz828L6p64I/AAAAAAAAAIc/tiCcSh8GzvY/s1600-h/scrum7.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz828L6p64I/AAAAAAAAAIc/tiCcSh8GzvY/s400/scrum7.JPG" alt="" id="BLOGGER_PHOTO_ID_5133882507844512642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And here's the projected Burndown chart for the same  Sprint. It still shows  a &lt;span style="font-style: italic;"&gt;red &lt;/span&gt;status as we've not removed tasks by prioritising,  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz84hr6p65I/AAAAAAAAAIk/xgFF9aOWSr8/s1600-h/scrum8.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz84hr6p65I/AAAAAAAAAIk/xgFF9aOWSr8/s400/scrum8.JPG" alt="" id="BLOGGER_PHOTO_ID_5133884251601234834" border="0" /&gt;&lt;/a&gt;but it reflects when the newly ordered tasks are forecast to close. For more on  how burndown charts are used as the Sprint progresses, see "&lt;a href="http://xprocess.blogspot.com/2007/03/dont-burn-out-burn-down.html"&gt;Don't burn out - burn down&lt;/a&gt;!".&lt;br /&gt;&lt;br /&gt;The next article in this series  looks at the significance of &lt;a href="http://xprocess.blogspot.com/2007/11/top-down-or-bottom-up-planning-for.html"&gt;Top-down or  Bottom-up planning&lt;/a&gt; for Sprints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4597465250185412010?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4597465250185412010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4597465250185412010' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4597465250185412010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4597465250185412010'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/prioritising-backlog.html' title='Prioritising the backlog'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz8ixL6p6zI/AAAAAAAAAH0/x6LGgoPLmTE/s72-c/scrum3.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-323387276858450638</id><published>2007-11-16T10:56:00.000Z</published><updated>2007-11-17T10:53:27.561Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Using the pre-defined Scrum process</title><content type='html'>I've recently been asked for more guidance about using the pre-defined Scrum process in version 2.9 of xProcess. It uses some of the new features for process definition (like Composite tasks) and also has "top-down" estimating for projects built-in, which is useful for resource planning and financial reporting. So I'm planning to post a series of blog entries on the process and in this one I'll focus on getting started with this process "out of the box". Here's what it covers:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Creating a Scrum project&lt;/li&gt;&lt;li&gt;Adding resources to the project&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Adding Sprints to the project (a Sprint in Scrum is like a "timebox" in other methods)&lt;/li&gt;&lt;li&gt;Adding Backlog Items to the project (Backlog Items are the tasks the project must achieve)&lt;/li&gt;&lt;/ul&gt;So step one is to select the Project Manager perspective (the default) and hit the "New" button so we can make a Scrum project. The New project dialog shows the processes that are available for import, so if you've not already done so this is the point to import "Basic Scrum 2.9.0" and then select "Scrum Project" as your type of project. You can fill in the name and other details of the project (such as the number of 4-week Sprints and a location of a Wiki if you are using one) on this dialog.&lt;br /&gt;&lt;br /&gt;At this point take a look at the set of tasks that are already in the project (hitting the "Tasks" button is the quickest way to do this. Here's what you might see (&lt;span style="font-style: italic;"&gt;click on the image to make it full size&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz2AcL6p6wI/AAAAAAAAAHc/EG0CP3mOE8c/s1600-h/scrum1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz2AcL6p6wI/AAAAAAAAAHc/EG0CP3mOE8c/s400/scrum1.JPG" alt="" id="BLOGGER_PHOTO_ID_5133400371995732738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; some overhead tasks (&lt;span style="font-style: italic;"&gt;green &lt;/span&gt;because they have fixed start and end dates and are within the target dates of the project)&lt;/li&gt;&lt;li&gt;A "Sprints" parent task containing one sprint "Sprint 01" (these tasks are &lt;span style="font-style: italic;"&gt;red &lt;/span&gt;since they have NEVER end dates, clearly after the project target)&lt;/li&gt;&lt;li&gt;An "Unscheduled Backlog" (which is grey as this task is specified as &lt;span style="font-style: italic;"&gt;not to be scheduled, &lt;/span&gt;also resulting in NEVER end dates).&lt;/li&gt;&lt;/ul&gt;In the pane below the project details, you can also see there are some alerts displayed telling us that this project needs resources with particular role types. That's a clue to our next step - add resources. Hit the "Resources" button on the "Tools" pane and you'll see an "Add/New Project Resource" button. If you've already defined or imported a set of people you can select those who are going to be on the project, or you can create new persons at this point. Add six team members (Participant role) and one team leader (Scrum Master role) to the project.&lt;br /&gt;&lt;br /&gt;At this point we should see actual end dates appearing for the Sprints and the overall project and we can even see a Gantt chart and projected Burndown chart. The Burndown chart is slightly more interesting if we add 2 more Sprints to the project (hit the "New" button and select "Sprint").  Then hit the "Burndown Chart" button on the project pane and you should see something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz2Exr6p6xI/AAAAAAAAAHk/JpbR5Lc7dFc/s1600-h/scrum2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rz2Exr6p6xI/AAAAAAAAAHk/JpbR5Lc7dFc/s400/scrum2.JPG" alt="" id="BLOGGER_PHOTO_ID_5133405139409431314" border="0" /&gt;&lt;/a&gt;Now it's important to note that as yet we've entered very little information about this project other than the number of Sprints and the people on the project and their availability. The projected burndown is only reflecting this simple data showing when the work in each Sprint (based on estimates for the amount of work in a Sprint which is modifiable in the process definition or, for a specific Sprint by modifying the estimates in its "Required Resources"). To use Scrum in earnest we need some actual "Backlog Items". Backlog Items are identifiable tasks that in a software development project for example could correspond to features to be built or defects to be corrected. The next step therefore is to add such items.&lt;br /&gt;&lt;br /&gt;Hit the "New" button again and select "Backlog Item" (and then "Next"). We have a choice of the 3 Sprints we've defined or the "Unscheduled Backlog" as valid parent tasks for these items. Setting the parent task as Unscheduled Backlog means that we can create a set of tasks without them changing the scheduling of the project. We can then decide later in which Sprint specific tasks should be completed. So with Unscheduled Backlog as the parent task you can give the backlog iten a name and a size (size is measured in "ideal days" by the way), and hit "Finish" and the task will created. If you already have a list of tasks you can copy and paste a comma-separated list into the name field of the "New" dialog, check the "Create Multiple" check-box and several items will be created in one go.&lt;br /&gt;&lt;br /&gt;Now we have a project some resources and set of tasks to be completed. The next step is prioritising.  We'll look at that in the &lt;a href="http://xprocess.blogspot.com/2007/11/prioritising-backlog.html"&gt;next posting&lt;/a&gt; in this series.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-323387276858450638?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/323387276858450638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=323387276858450638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/323387276858450638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/323387276858450638'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/using-pre-defined-scrum-process.html' title='Using the pre-defined Scrum process'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/Rz2AcL6p6wI/AAAAAAAAAHc/EG0CP3mOE8c/s72-c/scrum1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5918644854181112020</id><published>2007-11-15T10:45:00.000Z</published><updated>2007-11-17T13:43:09.954Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='priority-driven processes'/><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><category scheme='http://www.blogger.com/atom/ns#' term='State Transition Diagram'/><category scheme='http://www.blogger.com/atom/ns#' term='Metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Searching the blog by topic</title><content type='html'>Blogspot offers some useful facilities for finding blog entries by topic. Below most entries there are a series of labels. Clicking on any of these will bring up other related articles on the same topic. Try it our with the labels below this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5918644854181112020?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5918644854181112020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5918644854181112020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5918644854181112020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5918644854181112020'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/searching-blog-by-topic.html' title='Searching the blog by topic'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-581335587171652117</id><published>2007-11-15T10:06:00.000Z</published><updated>2007-11-15T10:55:47.456Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess Europe'/><title type='text'>xProcess Europe</title><content type='html'>On November 6th Ivis announced that it had demerged its European operation (see &lt;a href="http://www.ivis.com/pressreleases/xProcess%20Europe%20Press%20Release%2003.pdf"&gt;Press Release&lt;/a&gt;) . The new company is known as &lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.xprocess.eu.com/"&gt;xProcess Europe&lt;/a&gt; &lt;/span&gt;and it's owned by former members of the UK team including Andy Carmichael and Paul Kuzan both seminal thinkers in the evolution of xProcess.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Andy Carmichael:&lt;/span&gt; "Paul Kuzan and I are both very pleased to be involved with the on-going evolution of the xProcess product and brand, and we believe &lt;span style="font-style: italic;"&gt;xProcess Europe &lt;/span&gt;provides a great opportunity, particular for developing the services offering that customers adopting xProcess are often looking for. Providing better support and expertise for companies wanting to improve the processes behind their project and portfolio management will be one of the main focuses of the new company. While our product sales and support work will primarily be targeting the European market, we will continue to offer process improvement services world-wide, wherever the needs exist."&lt;/blockquote&gt;xProcess Europe and Ivis Technologies are both supporters and contributors to this blog. From time to time you'll find links and references to both companies here. For more details try their web sites: &lt;a href="http://www.ivis.com/"&gt;www.ivis.com&lt;/a&gt; and &lt;a href="http://www.xprocess.eu.com/"&gt;www.xprocess.eu.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-581335587171652117?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/581335587171652117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=581335587171652117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/581335587171652117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/581335587171652117'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/11/xprocess-europe.html' title='xProcess Europe'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7643268904897595220</id><published>2007-09-05T15:01:00.000+01:00</published><updated>2007-11-17T19:23:47.226Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Simple Process'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>The Simple Process... or is it?</title><content type='html'>The Simple Process in xProcess is the first one you are likely to use. It contains basic patterns for a project, a task a timebox and so on, and it also has some useful actions in there that can be used in your own patterns or even exposed as "User Actions" so they can be called on your projects.&lt;br /&gt;&lt;br /&gt;The Simple Process has several elements that you cannot delete as for example xProcess assumes that even if no other Role Types exist (such as Project Manager, Developer, Tester and so on) at the very least the Participant role type will exist. When you define your own process it's likely that you will inherit Simple Process patterns (though you can hide them by defining your own hidden patterns with the same name. So it's definitely worth taking a snoop at all the elements in there. You might even want to cut and paste some bits into your own processes and modify their behaviour.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7643268904897595220?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7643268904897595220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7643268904897595220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7643268904897595220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7643268904897595220'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/09/simple-process-or-is-it.html' title='The Simple Process... or is it?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7025043013030980945</id><published>2007-07-31T13:21:00.000+01:00</published><updated>2007-11-17T13:11:40.913Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Latest patterns for Scrum</title><content type='html'>xProcess 2.8 is being released this week and among the exciting new capabilities are some new sample processes, including updates to the Scrum patterns. Here are some of the highlights.&lt;br /&gt;&lt;br /&gt;Firstly the project pattern for the "Basic Scrum" process is now built from composite tasks so that there is a standard structure that is provided for all its projects. The Hierarchy diagram shows the structure, having top-level tasks for: &lt;span style="font-style: italic;"&gt;General &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Scrum administration overheads &lt;/span&gt;(overheads are unplanned or unplannable tasks that take up a proportion of everyone's time); the &lt;span style="font-style: italic;"&gt;Sprints &lt;/span&gt;(a composite task which contains an iteration of &lt;span style="font-style: italic;"&gt;Sprint &lt;/span&gt;instances); and the &lt;span style="font-style: italic;"&gt;Unscheduled Backlog&lt;/span&gt; (a composite which contains a collection of &lt;span style="font-style: italic;"&gt;Backlog Items&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/RrnaiFHvhFI/AAAAAAAAAFE/uefeVc2QQZ8/s1600-h/scrumPattern.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/RrnaiFHvhFI/AAAAAAAAAFE/uefeVc2QQZ8/s320/scrumPattern.JPG" alt="" id="BLOGGER_PHOTO_ID_5096344732371485778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can also see from this diagram the structure of the &lt;span style="font-style: italic;"&gt;Sprint &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Backlog Item &lt;/span&gt;patterns. &lt;span style="font-style: italic;"&gt;Sprint &lt;/span&gt;is a collection of the &lt;span style="font-style: italic;"&gt;Backlog Items&lt;/span&gt; to be scheduled over the period, and  consists of a single task. The beuty of xProcess of course is that these patterns can be modified to match the way your team is working or the particular application of Scrum that you are using. For example if you are using Scrum with XP you might want to rename the &lt;span style="font-style: italic;"&gt;Backlog Item &lt;/span&gt;pattern to &lt;span style="font-style: italic;"&gt;User Story&lt;/span&gt; and perhaps provide some structure to the set of tasks and role types that corresponds to0 the way you are using the method.&lt;br /&gt;&lt;br /&gt;When you make a new Scrum Project in xProcess you'll be prompted for values of the parameters of the pattern. You can see these &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/RrnerlHvhGI/AAAAAAAAAFM/DCuub4zPzzg/s1600-h/newScrum.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RrnerlHvhGI/AAAAAAAAAFM/DCuub4zPzzg/s320/newScrum.JPG" alt="" id="BLOGGER_PHOTO_ID_5096349293626754146" border="0" /&gt;&lt;/a&gt;in this screenshot, where as well as defining the name of the project the start date, duration (the number of 4 week Sprints) and the Wiki location.&lt;br /&gt;The Wiki location is not a required field but we've found many people find &lt;a href="http://en.wikipedia.org/wiki/Wiki"&gt;wikis&lt;/a&gt; are a convenient way to group documentation. By providing the location of the wiki in this dialog the descriptions of your backlog items are automatically transferred to a wiki page while also being browsable and editable in xProcess views.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/RrnyA1HvhHI/AAAAAAAAAFU/l0LfHouz3As/s1600-h/scrumResources.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RrnyA1HvhHI/AAAAAAAAAFU/l0LfHouz3As/s320/scrumResources.JPG" alt="" id="BLOGGER_PHOTO_ID_5096370549419902066" border="0" /&gt;&lt;/a&gt;Having created your Scrum project from this pattern, the next thing to do is add your resources. You need to add someone with a &lt;span style="font-style: italic;"&gt;Scrum Master &lt;/span&gt;role and the others with &lt;span style="font-style: italic;"&gt;Participant &lt;/span&gt;roles - let's say six participants in this example.&lt;br /&gt;&lt;br /&gt;Because the tasks in the Scrum pattern are defined as &lt;span style="font-style: italic;"&gt;top-down&lt;/span&gt;, even at this stage xProcess is able to provide a project schedule, based on the specified duration of the project. More usefully though, this is the time to create the first &lt;span style="font-style: italic;"&gt;Sprint &lt;/span&gt;(right-click on the &lt;span style="font-style: italic;"&gt;Sprints &lt;/span&gt;task and select &lt;span style="font-style: italic;"&gt;New&lt;/span&gt;...) and then create some &lt;span style="font-style: italic;"&gt;Backlog Items&lt;/span&gt;, either in the Sprint or in the &lt;span style="font-style: italic;"&gt;Unscheduled Backlog &lt;/span&gt;if we don't yet know which Sprint we want them to be completed in. &lt;span style="font-style: italic;"&gt;Backlog Items&lt;/span&gt; are prioritized, firstly from the particular Sprint into which they are created or moved, and secondly by the priority order of the tasks within a Sprint. You can edit this priority order by opening the Sprint editor, clicking on the priorities tab and either dragging and dropping or changing the priority number.&lt;br /&gt;&lt;br /&gt;Once you have a Sprint which contains the items the team will be implementing, open the Burndown view. This provides both the history of how much work has been completed so far in the Sprint and a forecast of what should be completed. You'll see immediately for example if there's too much work in there and forecast dates are beyond the end of the Sprint. Here's an example of just one such Sprint... &lt;span style="font-style: italic;"&gt;(click on the image to see more detail)&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rrn_xFHvhJI/AAAAAAAAAFk/bwcG_g5P7WY/s1600-h/scrumBD.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rrn_xFHvhJI/AAAAAAAAAFk/bwcG_g5P7WY/s400/scrumBD.JPG" alt="" id="BLOGGER_PHOTO_ID_5096385671999751314" border="0" /&gt;&lt;/a&gt;Looks like some discussion needs to go on as to whether all the functionality is vital this time round!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7025043013030980945?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7025043013030980945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7025043013030980945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7025043013030980945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7025043013030980945'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/07/latest-patterns-for-scrum.html' title='Latest patterns for Scrum'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/RrnaiFHvhFI/AAAAAAAAAFE/uefeVc2QQZ8/s72-c/scrumPattern.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7803149425411267222</id><published>2007-07-31T13:20:00.000+01:00</published><updated>2007-11-20T12:02:23.231Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Felsing'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Palmer'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Latest patterns for FDD</title><content type='html'>The release of 2.8 this week sees some interesting updates to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;FDD&lt;/span&gt; patterns. Like the &lt;a href="http://xprocess.blogspot.com/search/label/Scrum"&gt;Scrum&lt;/a&gt; updates for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;xProcess&lt;/span&gt;, the new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;FDD&lt;/span&gt; process uses "composite tasks" &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGiG1HvhNI/AAAAAAAAAGE/sU0WCtyh11Y/s1600-h/fddHierarchy.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGiG1HvhNI/AAAAAAAAAGE/sU0WCtyh11Y/s320/fddHierarchy.JPG" alt="" id="BLOGGER_PHOTO_ID_5098534491382580434" border="0" /&gt;&lt;/a&gt;to define the structure of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;FDD&lt;/span&gt; projects, allowing them to be expanded &lt;span style="font-style: italic;"&gt;top down&lt;/span&gt; as the details of feature sets and features are defined.&lt;br /&gt;&lt;br /&gt;This hierarchy diagram shows the structure of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;FDD&lt;/span&gt; project pattern. For those familiar with the method, the 5 stage process is visible in the top-level tasks:&lt;br /&gt;&lt;ol&gt;&lt;li style="font-weight: bold;"&gt;Develop an Overall Model&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Build a Features List&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;Plan by Feature &lt;span style="font-weight: normal;"&gt;and&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;combined with&lt;/span&gt; 5. Design by Feature - Build by Feature. &lt;/li&gt;&lt;/ol&gt;Note that the darker blue nodes are patterns, so these can be further expanded in the hierarchy diagram or viewed in the graphical pattern editor.&lt;br /&gt;&lt;br /&gt;Here for example is the hierarchy view of the &lt;span style="font-style: italic;"&gt;Feature Set&lt;/span&gt; pattern, which groups together a set of related features into a deliverable package which can be scheduled for a particular release. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/RsGqllHvhOI/AAAAAAAAAGM/FbNSUHl0wbg/s1600-h/fddFeatureSet.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RsGqllHvhOI/AAAAAAAAAGM/FbNSUHl0wbg/s320/fddFeatureSet.JPG" alt="" id="BLOGGER_PHOTO_ID_5098543815756580066" border="0" /&gt;&lt;/a&gt;Note that here the "Features" composite task, as well as containing &lt;span style="font-style: italic;"&gt;Features&lt;/span&gt;, may also group &lt;span style="font-style: italic;"&gt;Defects&lt;/span&gt; (work on correcting issues from previous releases) and &lt;span style="font-style: italic;"&gt;Tasks &lt;/span&gt;(any other work related to the &lt;span style="font-style: italic;"&gt;Feature Set&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-style: italic;"&gt;Feature &lt;/span&gt;pattern has already been the subject of a number of postings on this blog (see for example...). The pattern diagram shown here uses a quite traditional view of the tasks required to deliver a feature with the emphasis on &lt;span style="font-style: italic;"&gt;Specify &lt;/span&gt;(the "design by feature" part) and &lt;span style="font-style: italic;"&gt;Develop &lt;/span&gt;(the "build by feature" part). &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGtN1HvhQI/AAAAAAAAAGc/ybJktrLxQLg/s1600-h/fddFeaturePattern.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGtN1HvhQI/AAAAAAAAAGc/ybJktrLxQLg/s400/fddFeaturePattern.JPG" alt="" id="BLOGGER_PHOTO_ID_5098546706269570306" border="0" /&gt;&lt;/a&gt;We can see more detail of this task pattern by using "Go Into" in the pattern editor. Here the specific artifacts and quality gateways that are associated with each task, as well as the number and types of roles required to carry out the task, can be reviewed and modified.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGuC1HvhRI/AAAAAAAAAGk/somVFZIRyKM/s1600-h/fddFeaturePatternDetail.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGuC1HvhRI/AAAAAAAAAGk/somVFZIRyKM/s400/fddFeaturePatternDetail.JPG" alt="" id="BLOGGER_PHOTO_ID_5098547616802637074" border="0" /&gt;&lt;/a&gt;Clearly other ways of breaking these tasks down are possible, and some of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;FDD&lt;/span&gt; literature (for example Palmer and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Felsing's&lt;/span&gt; book &lt;span style="font-style: italic;"&gt;&lt;a href="http://www.amazon.com/o/ASIN/0130676152/103-5537346-4575060?SubscriptionId=1XFK01HK9NZWGPENWGG2"&gt;Feature Driven Development&lt;/a&gt;) &lt;/span&gt;provide alternative schemes that place stronger emphasis for example on design and code &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;walkthroughs&lt;/span&gt; rather than the test-driven approach implied here.&lt;br /&gt;&lt;br /&gt;The beauty of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;xProcess&lt;/span&gt; is that the task patterns are all easily and graphically editable so you can make this method match exactly what you want the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;FDD&lt;/span&gt; teams to carry out. As all plans, tasks, artifacts, processes and time records are stored in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;xProcess&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;versioned&lt;/span&gt; data stores, the compliance with your process can be monitored at any time, either to improve the process patterns where teams have discovered better ways of working, or to improve the teams' approach by following the best practice captured in your process patterns.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;FDD&lt;/span&gt; has a three-level hierarchy of functionality: Features, Feature Sets and Major Feature Sets (also referred to as Business Areas). So far we've seen where Features and Feature Sets appear within the hierarchy of a project. Major Feature Sets (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;MFS's&lt;/span&gt;) are handled slightly differently. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;MFS's&lt;/span&gt; are created by an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;xProcess&lt;/span&gt; pattern in a similar way to the other patterns we've looked at, but they result in categorized &lt;span style="font-style: italic;"&gt;folders &lt;/span&gt;rather than tasks which are part of the project hierarchy. This is so that the Feature Sets are visible within the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Gantt&lt;/span&gt; charts and release schedules. Because of the scope of major Feature Sets, they generally do not have such a clearly delineated start and end date and so it would not make the project schedule clearer to include them in that way. So opening a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;MFS&lt;/span&gt; folder shows you all the feature sets and features in that category. You can then review and prioritize the features in just this one business area. Here's an example of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;MFS&lt;/span&gt; in a particular project with its corresponding &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Gantt&lt;/span&gt; chart &lt;span style="font-style: italic;"&gt;(click on the diagram to see more detail)&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/RsGzxFHvhSI/AAAAAAAAAGs/ktosgxJFHSA/s1600-h/fddMFSscreen.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/RsGzxFHvhSI/AAAAAAAAAGs/ktosgxJFHSA/s400/fddMFSscreen.JPG" alt="" id="BLOGGER_PHOTO_ID_5098553908929725730" border="0" /&gt;&lt;/a&gt;Finally in this brief review of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;xProcess&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;FDD&lt;/span&gt;, the pattern for a &lt;span style="font-style: italic;"&gt;Release&lt;/span&gt; is also instructive. Again a  prioritized folder is used for the Release pattern, rather than a task in the project task hierarchy (see the &lt;a href="http://xprocess.blogspot.com/2007/07/latest-patterns-for-scrum.html"&gt;Scrum&lt;/a&gt; method for an example of a process that uses this alternative). By default just one release will be created in the project (with a target close to the end of the project). However the Project Manager can create as many additional interim releases as he requires. The "scope" of the release is defined by moving the required features/feature sets/tasks into the release folder. The scheduler of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;xProcess&lt;/span&gt; uses the implied and defined priorities of these tasks to calculate completion dates and provide alerts if targets are unlikely to be met. As the project progresses, the scheduler uses the input from team members completing and possibly re-estimating the required effort for tasks to give immediate visibility of targets' status and costs providing all stakeholders of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;FDD&lt;/span&gt; projects timely and detailed information to support decision making and further planning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7803149425411267222?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7803149425411267222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7803149425411267222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7803149425411267222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7803149425411267222'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/07/latest-patterns-for-fdd.html' title='Latest patterns for FDD'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/RsGiG1HvhNI/AAAAAAAAAGE/sU0WCtyh11Y/s72-c/fddHierarchy.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8611586537107058793</id><published>2007-06-20T10:42:00.000+01:00</published><updated>2007-09-05T16:08:46.859+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Simple Process'/><category scheme='http://www.blogger.com/atom/ns#' term='Effort'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Set size to match effort</title><content type='html'>I explained in &lt;a href="http://xprocess.blogspot.com/2007/03/estimating-size-and-effort-why-are-they.html"&gt;another entry&lt;/a&gt; that size and effort are distinct metrics for tasks. However it's useful to keep the overhead of estimating two closely related items to an absolute minimum. This is why the patterns in the "Simple Process" uses the user's input of a size metric (in "ideal days") to automatically complete the effort estimates (usually displayed in person-hours or person-days). They can be changed subsequently though and if you want to re-synchronize them at some point - say when you a re baselining a plan - a utility for doing so is useful.&lt;br /&gt;&lt;br /&gt;Here's a simple Action that you can define in your process (make it a "UI Action" by setting this field to &lt;span style="font-style: italic;"&gt;True&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Action Name:&lt;/span&gt;     Set size to match effort&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Expression:&lt;/span&gt;       setSize(getEffortIncludingChildren()/480.0)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Applicable to:&lt;/span&gt; Task&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    UI Action:&lt;/span&gt;         True&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;    Parameters:&lt;/span&gt;       &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;(none)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Having done this you can expand your task hierarchy in the explorer, select the tasks you wish to set size on, and then right-click and select &lt;span style="font-style: italic;"&gt;UI Action -&gt; Set size to match effort &lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Note:  &lt;/span&gt;&lt;/span&gt;From version 2.9 of xProcess this action is included in the Simple Process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8611586537107058793?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8611586537107058793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8611586537107058793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8611586537107058793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8611586537107058793'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/06/set-size-to-match-effort.html' title='Set size to match effort'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5749537205216218092</id><published>2007-06-07T15:33:00.000+01:00</published><updated>2007-06-13T10:21:08.649+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ITIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Charlie Betz'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>ITIL We Meet Again</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.itil.co.uk/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RmlZqj9gN2I/AAAAAAAAAE8/osNvZRv_wqk/s200/ITIL_logo.gif" alt="" id="BLOGGER_PHOTO_ID_5073685042952157026" border="0" /&gt;&lt;/a&gt;I was talking with &lt;a href="http://www.linkedin.com/pub/0/1b8/518"&gt;Charlie Betz&lt;/a&gt; recently about &lt;a href="http://en.wikipedia.org/wiki/ITIL"&gt;ITIL&lt;/a&gt;,  the best practices framework for delivery of IT services, and how xProcess might be used to support service delivery applying these practices. xProcess is well suited to "case management" type projects because of its ability to handle relatively small task patterns and create composite patterns of collections, iterations or selections of smaller patterns. With v3 of ITIL taking a more "lifecycle" approach, it brings a greater emphasis on process and stronger motivation to understand and improve underlying process models. That's why I'm particularly interested to find ITIL professionals wanting to model their processes with xProcess.&lt;br /&gt;&lt;br /&gt;Any way I've been browsing Charlie's blog which has some interesting observations, and not just on ITIL. This entry highlights some frustrations with ITIL from an SDLC perspective:&lt;a href="http://erp4it.typepad.com/erp4it/2007/06/my_first_itil_v.html#more"&gt; My first ITIL v3 presentation&lt;/a&gt;. It brought a smile to my face at least.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Apologies to Diana Ross for the title of this entry.)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5749537205216218092?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5749537205216218092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5749537205216218092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5749537205216218092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5749537205216218092'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/06/itil-we-meet-again.html' title='ITIL We Meet Again'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/RmlZqj9gN2I/AAAAAAAAAE8/osNvZRv_wqk/s72-c/ITIL_logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-7965363220038957541</id><published>2007-06-01T23:49:00.000+01:00</published><updated>2007-06-04T17:42:16.651+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='David Rubinstein'/><category scheme='http://www.blogger.com/atom/ns#' term='SD Times'/><title type='text'>xProcess wins in the "Tools and Environments" category of the SD Times 100 Awards</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.sdtimes.com/static/sdtimes100-07.html"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/RmCnV1musTI/AAAAAAAAAEs/ukxZ_iFIfLM/s200/pic_sd100_175_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5071237174027792690" border="0" /&gt;&lt;/a&gt;The 5th annual SD Times 100 recognizes the leaders and innovators of the software development industry. The 2007 SD Times 100 was posted on the &lt;a href="http://www.sdtimes.com/static/sdtimes100-07.html"&gt;sdtimes.com&lt;/a&gt; Web site today, and it names Ivis's &lt;span style="font-weight: bold; font-style: italic;"&gt;xProcess&lt;/span&gt;  as a winner in the &lt;span style="font-style: italic;"&gt;Tools and Environments &lt;/span&gt;category. The award citation reads:&lt;br /&gt;&lt;blockquote style="font-family: arial;"&gt;xProcess changes those lovely best practices into die-cast working frameworks for your developers. The easiest way to push some sanity into the development process.&lt;/blockquote&gt;David Rubinstein, Editor-in-Chief of SD Times, said "The winners of this year's SD Times 100 awards have demonstrated their leadership in shaping the software development industry. We took into account each nominee's products and services, its reputation among development managers, and the new ideas it brought out. These select individuals and organizations are the ones we've identified as helping to move the art of development forward."&lt;br /&gt;&lt;br /&gt;The team at Ivis are proud to be a part of this select band creating the new breed of tools that will equip organizations and projects to&lt;span style="font-style: italic;"&gt; deliver more, faster with less&lt;/span&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-7965363220038957541?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/7965363220038957541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=7965363220038957541' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7965363220038957541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/7965363220038957541'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/06/xprocess-wins-in-tools-and-environments.html' title='xProcess wins in the &quot;Tools and Environments&quot; category of the SD Times 100 Awards'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/RmCnV1musTI/AAAAAAAAAEs/ukxZ_iFIfLM/s72-c/pic_sd100_175_01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-54456186167895522</id><published>2007-05-30T10:20:00.000+01:00</published><updated>2007-11-17T19:44:16.349Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top-down/Bottom-up Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='Parent Tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Parent Tasks and Top-Down Planning</title><content type='html'>A key aspect of agile planning is that you &lt;span style="font-style: italic;"&gt;expect &lt;/span&gt;the plan to change. That doesn't make it a bad plan, it's just the baseline from which you can judge whether to accept certain changes and what impact can be expected. To help you build flexible plans xProcess supports a very important feature - top-down planning. Parent or composite tasks can have their own effort and size estimates which are independent from the size of their children. Alternatively you can select Bottom-Up planning of the parent task and its size will be defined entirely by its children.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rl18ZVmusRI/AAAAAAAAAEc/8DRCz84Ez6c/s1600-h/topDown.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/Rl18ZVmusRI/AAAAAAAAAEc/8DRCz84Ez6c/s400/topDown.JPG" alt="" id="BLOGGER_PHOTO_ID_5070345530227208466" border="0" /&gt;&lt;/a&gt;The above screenshot is part of a task editor that is defined as a top-down parent task. It displays the size (15 points) and effort estimate (120 hours) but also shows how much of this is already allocated to subtasks and how much remains in the REST of the parent task.&lt;br /&gt;&lt;br /&gt;The advantage of this approach is that parent tasks can be defined and estimated before the details of their subtasks have been defined. This works for both parent tasks and &lt;span style="font-style: italic;"&gt;composite&lt;/span&gt; tasks which are collections, iteration or selections of task patterns. As Project Manager you can plan near-term activities in fine detail while leaving tasks that are further into the future as larger activities that will be planned in more detail as time progresses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-54456186167895522?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/54456186167895522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=54456186167895522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/54456186167895522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/54456186167895522'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/05/parents-tasks-and-top-down-planning.html' title='Parent Tasks and Top-Down Planning'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/Rl18ZVmusRI/AAAAAAAAAEc/8DRCz84Ez6c/s72-c/topDown.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4549504106197988669</id><published>2007-05-02T09:19:00.000+01:00</published><updated>2007-06-04T17:44:13.189+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outsourcing'/><category scheme='http://www.blogger.com/atom/ns#' term='SwiftTeams'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Outsourcing for quality</title><content type='html'>Some people think that outsourcing is about minimizing the costs by moving work to wherever rates happen to be lowest at the time. The costs of distributing software teams can be high however and such a strategy may fail to reduce costs at all, and worst of all it can impact quality and agility.&lt;br /&gt;&lt;br /&gt;There are good reasons to distribute teams however - for example to maximize quality by picking the best available expertise.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/RlrdCFmusQI/AAAAAAAAAEU/IGefdOt1LvU/s1600-h/team1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/RlrdCFmusQI/AAAAAAAAAEU/IGefdOt1LvU/s400/team1.jpg" alt="" id="BLOGGER_PHOTO_ID_5069607358493012226" border="0" /&gt;&lt;/a&gt;Ivis found such a partner in &lt;a href="http://www.swiftteams.com/"&gt;SwiftTeams&lt;/a&gt; who are based in St Petersburg. Their expertise in graphical editors for development tools is second to none, and the xProcess product has benefited enormously as a result.&lt;br /&gt;&lt;br /&gt;How then do you overcome the difficulties of planning and coordinating teams that are geographically distributed? This is one of the key motivations of course for deploying xProcess.  It provides the key visibility and communication layer and minimizes the negative impact of having a few thousand miles between the sponsors, planners and specifiers and the implementers. A number of key enhancements to xProcess in recent months have been motivated  by improving our application of the Scrum process with SwiftTeams. We'll be looking for more in the coming months too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4549504106197988669?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4549504106197988669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4549504106197988669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4549504106197988669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4549504106197988669'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/05/outsourcing-for-quality.html' title='Outsourcing for quality'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/RlrdCFmusQI/AAAAAAAAAEU/IGefdOt1LvU/s72-c/team1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4805175270681783598</id><published>2007-04-24T17:42:00.000+01:00</published><updated>2007-11-28T12:42:21.276Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Earned Value'/><title type='text'>Have you earned value today?</title><content type='html'>There are many ways to track progress on projects - see "&lt;span style="font-style: italic;"&gt;&lt;a href="http://xprocess.blogspot.com/2007/03/dont-burn-out-burn-down.html"&gt;Don't burn out - burndown&lt;/a&gt;" &lt;/span&gt;for example. Burndown is particularly useful in agile projects with timeboxes where the targets are set at quite short notice - month by month for example. Earned Value (EV) analysis on the other hand is a great technique for tracking progress against a stable plan (ultra-agile teams go and read that burndown article instead of this one - stable plans are a luxury you rarely see!).&lt;br /&gt;&lt;br /&gt;With EV tracking the value of completing tasks is calculated from its originally planned cost. There are some disadvantages of this - not least that the whole method relies on having the well-estimated plan to start from - however its advantage is that efficiency of execution can be measured day by day on the project.There are two relevant measures of efficiency that EV analysis provide: cost efficiency (how much better or worse you are doing than the baseline plan with regards the cost of the tasks you have delivered so far); and schedule efficiency (how much more or less value you have delivered at this point in time compared to the baseline plan).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/R0yKib6p7BI/AAAAAAAAAJk/hXx-3UzZuo8/s1600-h/evGraphs.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/R0yKib6p7BI/AAAAAAAAAJk/hXx-3UzZuo8/s400/evGraphs.JPG" alt="" id="BLOGGER_PHOTO_ID_5137633599136853010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;xProcess supports EV analysis in the Executive Dashboards client (see screenshot). The Executive Dashboards provide an overview of multiple projects (or just one project if you like) so it's an ideal place to look at these efficiency levels in different projects. We may revisit how to use the views provided in later blog entries so watch this space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4805175270681783598?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4805175270681783598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4805175270681783598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4805175270681783598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4805175270681783598'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/04/have-you-earned-value-today.html' title='Have you earned value today?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/R0yKib6p7BI/AAAAAAAAAJk/hXx-3UzZuo8/s72-c/evGraphs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5884797513301068895</id><published>2007-04-20T15:30:00.000+01:00</published><updated>2007-06-11T22:07:26.383+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mike Cohn'/><category scheme='http://www.blogger.com/atom/ns#' term='Larry Putnam'/><category scheme='http://www.blogger.com/atom/ns#' term='Metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><category scheme='http://www.blogger.com/atom/ns#' term='Ware Myers'/><category scheme='http://www.blogger.com/atom/ns#' term='Ed Yourdon'/><title type='text'>Great resources for estimating</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/RijnWbCVIyI/AAAAAAAAAD0/zwnXtjvAK1E/s1600-h/estimatingBooks.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RijnWbCVIyI/AAAAAAAAAD0/zwnXtjvAK1E/s400/estimatingBooks.JPG" alt="" id="BLOGGER_PHOTO_ID_5055544954124051234" border="0" /&gt;&lt;/a&gt;There are two new books on estimating that I've been finding very useful recently, and one older one. The older one first; and here you understand I'm not referring to Larry Putnam Senior himself! It's his book, co-authored with Ware Myers, &lt;span style="font-style: italic;"&gt;"&lt;a href="http://www.qsm.com/resources_book.htm"&gt;Measures for Excelence: Reliable software on time on budget&lt;/a&gt;" &lt;/span&gt;that remains a classic, full of helpful advice and packed with actual measures from real projects. I met Larry in 1992 just after his book came out, when I was in Washington with Ed Yourdon presenting some research on software reuse from Japan. He kindly gave me a signed copy and it has been in frequent use since that time, and was a key source for my own book &lt;span style="font-style: italic;"&gt;"Better Software Faster"&lt;/span&gt; published in 2002. Putnam and Myers' latest book &lt;span style="font-style: italic;"&gt;"&lt;a href="http://www.qsm.com/resources_book.htm"&gt;Five Core Metrics&lt;/a&gt;" &lt;/span&gt;is another excellent resource which highlights the essentials that all software projects should measure, with practical information about how to do it. In case you're wondering the five are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Time&lt;/li&gt;&lt;li&gt;Effort&lt;/li&gt;&lt;li&gt;Quality&lt;/li&gt;&lt;li&gt;Productivity&lt;/li&gt;&lt;li&gt;Size&lt;/li&gt;&lt;/ul&gt;While Putnam and Myers experience covers projects ranging from the small to the truly massive, using a wide range of methodologies and covering five decades of software projects, Mike Cohn's book &lt;span style="font-style: italic;"&gt;"&lt;a href="http://www.mountaingoatsoftware.com/book/1"&gt;Agile Estimating and Planning&lt;/a&gt;"&lt;/span&gt; is focused very much on the agile development processes of more recent history. It is similarly an excellent read with a mass of very practical advice for project managers of agile projects. I particularly liked the "Planning Poker" variant of the &lt;a href="http://en.wikipedia.org/wiki/Wideband_delphi"&gt;Wideband Delphi&lt;/a&gt; approach (!) but there are many other practical suggestions and insights, including discussions of burndown charts, velocity and prioritisation.&lt;br /&gt;&lt;br /&gt;The challenge for me, working as I am on the product direction of &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; &lt;/span&gt;is to ensure that the full range of techniques and processes represented in these books is well supported by the underlying model and user interface of the product. xProcess has always been about agility, and in particular bringing powerful techniques from established project management methods and making them available to managers and participants of agile projects in such a way that they &lt;span style="font-style: italic;"&gt;remain&lt;/span&gt; agile. These books similarly contribute to that drive to achieve controlled, productive and agile software projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5884797513301068895?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5884797513301068895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5884797513301068895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5884797513301068895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5884797513301068895'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/04/great-resources-for-advice-on.html' title='Great resources for estimating'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/RijnWbCVIyI/AAAAAAAAAD0/zwnXtjvAK1E/s72-c/estimatingBooks.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4105738329173491680</id><published>2007-04-19T13:43:00.000+01:00</published><updated>2007-06-08T14:39:11.293+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parent Tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='Composite Tasks'/><title type='text'>Hierachy Diagrams</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/RidkdrCVIuI/AAAAAAAAADU/VP8dXDztAhU/s1600-h/hierarchyDiag.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RidkdrCVIuI/AAAAAAAAADU/VP8dXDztAhU/s320/hierarchyDiag.JPG" alt="" id="BLOGGER_PHOTO_ID_5055119567678153442" border="0" /&gt;&lt;/a&gt;Hierarchy diagrams in &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;are a good way to see an overview of a project or of process patterns. The diagram on the left is a project that is following a Prince2 style project - actually using a process defined by  the &lt;a href="http://www.wpm-group.com/"&gt;WPM Group&lt;/a&gt;, leading project management consultants and a company I've been doing some work with recently.&lt;br /&gt;&lt;br /&gt;The Hierachy Diagram is a good way to show Work Breakdown Structures for projects, and they are also useful editor views, where you can expand/collapse regions of the hierarchy and edit tasks via their &lt;span style="font-style: italic;"&gt;right-click&lt;/span&gt; menu.&lt;br /&gt;&lt;br /&gt;One more thing to try with Hierachy Diagrams... turn on the constraints on the diagram via the filter button and (as in this example) you'll see all the dependencies between the various tasks. Very useful for understanding the constraints imposed on the ordering of tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4105738329173491680?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4105738329173491680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4105738329173491680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4105738329173491680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4105738329173491680'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/04/hierachy-diagrams.html' title='Hierachy Diagrams'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/RidkdrCVIuI/AAAAAAAAADU/VP8dXDztAhU/s72-c/hierarchyDiag.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-6442309696976732907</id><published>2007-03-30T10:03:00.001+01:00</published><updated>2009-05-14T11:17:24.984+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Size'/><category scheme='http://www.blogger.com/atom/ns#' term='Effort'/><category scheme='http://www.blogger.com/atom/ns#' term='Metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='Estimating'/><title type='text'>Estimating size and effort - Why are they different?</title><content type='html'>A common question I get asked about estimating in xProcess (after &lt;a href="http://xprocess.blogspot.com/2006/01/3pe-why-i-use-three-estimates-where.html"&gt;three-point estimating&lt;/a&gt; of course, which is another popular question!) is: "&lt;span style="font-style: italic;"&gt;What's the difference between a task's estimate for size and its (three-point) estimate for effort... and why do I need both?&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;There are several ways to answer this, but perhaps a starting point is to ask why we think they're the same. If I ask you the size of your swimming pool you're more like to give me an answer in feet or metres that to reply with the number of person days it took to build the pool. (Building swimming pools is an &lt;span style="font-style: italic;"&gt;xProcess&lt;/span&gt; application by the way - but that's another story!) When we are discussing the planning of a project the first thing to consider is the size (in whatever units are appropriate) of the deliverables of that project. Then we need a function (based on previous experience) to map from size to the estimate of the effort and consumables required to provide those deliverables.&lt;br /&gt;&lt;br /&gt;Because the size of the things we want to deliver are measured in many different units, all of which we want to map eventually to an estimate of effort, it is common for projects to estimate directly in effort units such as person-days, person-hours or person-years. However if we do this, we lose a very important measure of the effectiveness of the project. Questions of team velocity or productivity become somewhat meaningless (except as a correction factor on original estimates of effort, compared to actual effort expended).&lt;br /&gt;&lt;br /&gt;So if we can agree size is an important metric for projects, the next question is what units should it be estimated in, and can we compare the estimates with actuals at the end of the project. Software projects in particular are notoriously difficult to find an appropriate measure for size. Lines of source code is commonly used (because they are easy to count) but they don't readily map either to effective functionality delivered nor to effort required to develop them. Function points is another option and more recently "story points" (for an XP user story) or simply "points" have gained popularity where these are arbitrary units that are comparable only within the single project where they are being used. Another useful measure is "ideal-days" - in other words the amount that can be produced by a typical team member in a completely uninterrupted day. We rarely get such days (if ever) so it will take most of us more than a day to implement an ideal-day's worth of size. Nevertheless it is an understandable and reasonably verifiable measure of size.&lt;br /&gt;&lt;br /&gt;In xProcess the units of size are common to the whole Data Source (they can be set in Data Source Preferences) and the value is used in several important places. When creating tasks the size value is often used in process patterns to set initial values for three-point estimates. The size units are used in burndown charts and earned-value plots to show progress of a project towards creating its deliverables. And size is also used to calculate productivity measures such as team velocity and software productivity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-6442309696976732907?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/6442309696976732907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=6442309696976732907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6442309696976732907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/6442309696976732907'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/03/estimating-size-and-effort-why-are-they.html' title='Estimating size and effort - Why are they different?'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-500379513226772004</id><published>2007-03-20T10:41:00.000Z</published><updated>2007-03-20T13:27:54.162Z</updated><title type='text'>Project Challenge! On your bike...</title><content type='html'>The National Motorcycle Museum in Birmingham was the setting for last week's Project Challenge exhibition. It was the first opprotunity to see the new Executive Dashboard for &lt;span style="font-style: italic;"&gt;xProcess &lt;/span&gt;in action, as well as to hear yours truly speaking about process modeling as a route to improve project performance. Needless to say the Executive Dashboard was clearly the highlight!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rf-62Y1Kp2I/AAAAAAAAAC4/ERrurMgZ0HE/s1600-h/projchallenge07.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/Rf-62Y1Kp2I/AAAAAAAAAC4/ERrurMgZ0HE/s400/projchallenge07.jpg" alt="" id="BLOGGER_PHOTO_ID_5043955551219394402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Guy's interest in the dashboard in this photo is not merely a pose for the camera. The show was also the first opportunity for the sales team to see this feature, which was turning a lot of heads (not just ours!). The ability to create additional views of interesting project data "on-the-fly" is a particularly impressive aspect of the facility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-500379513226772004?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/500379513226772004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=500379513226772004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/500379513226772004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/500379513226772004'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/03/project-challenge-on-your-bike.html' title='Project Challenge! On your bike...'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/Rf-62Y1Kp2I/AAAAAAAAAC4/ERrurMgZ0HE/s72-c/projchallenge07.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8029374836889269830</id><published>2007-03-08T23:51:00.000Z</published><updated>2007-11-27T21:34:53.896Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Burndown Chart'/><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Don't burn out... Burn Down!</title><content type='html'>Following in the tradition of you heard it here first, here's another sneak preview of soon to be released functionality on xProcess. The burndown chart is a key visualisation that was developed in Scrum and now used with a number of agile methods. Currently you can use the reporting feature in xProcess to generate a burndown chart for your project or timebox.  However there's a new feature in the wings that shows you the burndown instantly (history and forecast) on any project, parent task or folder. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/RfCjUV8n8XI/AAAAAAAAACY/YSOAJG84l8Q/s1600-h/bd1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/RfCjUV8n8XI/AAAAAAAAACY/YSOAJG84l8Q/s400/bd1.JPG" alt="" id="BLOGGER_PHOTO_ID_5039707552911716722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This timebox (Timebox 01) runs for about 3 weeks and the scope of work targeted is forecast to complete right at the end of the timebox -- indeed a couple of the tasks are alread critical. (This diagram is looking forward, predicting when tasks will close, and thus when the work in each task will burn down). Look at the same time box a couple of days later.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/Rf-_1o1Kp3I/AAAAAAAAADA/Z0uPc-XI27U/s1600-h/bd2a.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/Rf-_1o1Kp3I/AAAAAAAAADA/Z0uPc-XI27U/s400/bd2a.JPG" alt="" id="BLOGGER_PHOTO_ID_5043961035892631410" border="0" /&gt;&lt;/a&gt;Now -- perhaps because tasks have been re-estimated or resources changed -- we can see some tasks are forecast to finish beyound the end of the timebox. The chart is consequently shown as "red" status. Even at this early stage in the timebox we can predict that some deliverables are at risk and so take appropriate action. In this case some additional resources have been found and the some tasks excluded from the targets. Once the changes have been made, the effect can be seen and assessed immediately...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/RfCm7V8n8ZI/AAAAAAAAACo/3Lms95WE3iY/s1600-h/bd3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/RfCm7V8n8ZI/AAAAAAAAACo/3Lms95WE3iY/s400/bd3.JPG" alt="" id="BLOGGER_PHOTO_ID_5039711521461498258" border="0" /&gt;&lt;/a&gt;The timebox is "green" and all systems are go! Day by day as the timebox progresses we can monitor our progress and ensure the whole team stays on track!&lt;br /&gt;&lt;br /&gt;When we visit the team half way through the timebox we can see from the burn down chart that they are still very much on track and confidence will be high that this team will deliver on its promises.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6d1lKM7g5c4/RfCt-18n8aI/AAAAAAAAACw/DiHkz_SmOi8/s1600-h/bd4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RfCt-18n8aI/AAAAAAAAACw/DiHkz_SmOi8/s400/bd4.JPG" alt="" id="BLOGGER_PHOTO_ID_5039719278172434850" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8029374836889269830?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8029374836889269830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8029374836889269830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8029374836889269830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8029374836889269830'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/03/dont-burn-out-burn-down.html' title='Don&apos;t burn out... Burn Down!'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/RfCjUV8n8XI/AAAAAAAAACY/YSOAJG84l8Q/s72-c/bd1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-3769632147948577812</id><published>2007-02-28T12:59:00.000Z</published><updated>2007-02-28T13:12:20.107Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='white paper'/><title type='text'>New project Pattern for FDD</title><content type='html'>The project pattern for the Basic FDD process, which is delivered with xProcess is changing in version 2.7.2. Here's a preview.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6d1lKM7g5c4/ReV9hPYqpvI/AAAAAAAAACM/ekUidAULqYc/s1600-h/FDDprojectPattern.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/ReV9hPYqpvI/AAAAAAAAACM/ekUidAULqYc/s400/FDDprojectPattern.JPG" alt="" id="BLOGGER_PHOTO_ID_5036569768302913266" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;This puts the emphasis back on the familiar 5 stages of FDD at the top level (Develop an Overall Model, Build a Features List, Plan by Feature, Design by Feature and Design by Feature). The first 3 stages are included in Timebox 00 which covers the start up period of the project and Features and Feature Sets are created as subtasks of combined final stages: Design by Feature - Design by Feature. Major Feature Sets are modeled as Folders with membership defined by Category.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-3769632147948577812?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/3769632147948577812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=3769632147948577812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3769632147948577812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/3769632147948577812'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/02/new-project-pattern-for-fdd.html' title='New project Pattern for FDD'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/ReV9hPYqpvI/AAAAAAAAACM/ekUidAULqYc/s72-c/FDDprojectPattern.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-8229899342539917154</id><published>2007-02-27T13:10:00.000Z</published><updated>2007-11-17T12:33:41.429Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Requirements'/><title type='text'>3 Types of Requirement</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6d1lKM7g5c4/ReQym2RFk-I/AAAAAAAAACA/V7al8sJsb1c/s1600-h/featurePattern1.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_6d1lKM7g5c4/ReQym2RFk-I/AAAAAAAAACA/V7al8sJsb1c/s400/featurePattern1.JPG" alt="" id="BLOGGER_PHOTO_ID_5036205926290658274" border="0" /&gt;&lt;/a&gt;Priority-driven processes only work if you can model the process around task patterns for a single requirement.  There is little point in prioritizing say, coding over testing, or design over specification, since all these activities  must take place at some stage, even if they happen inside an activity that is called something else. But are all requirements the same (in the sense of using the same processes) or are some requirements more the same than others?!&lt;br /&gt;&lt;br /&gt;Recently I was asked to advise on the requirements capture process for an organization wanting to apply agile techniques in a controlled environment. I came up with some slightly different names for types of requirement, though I think the concepts will be familiar to you if you've analyzed other software development methods. The requirements types (shortened to PCF) are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Business problem statements (Problems)&lt;/li&gt;&lt;li&gt;Solution contraint statements (Constraints)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Solution feature statements (Features)&lt;/li&gt;&lt;/ul&gt;I've written elsewhere about FDD, which provides a very good process for managing and prioritizing features. However often projects applying processes like FDD do not pay enough attention to the other types of requirement that precede features.&lt;br /&gt;&lt;br /&gt;Problems, for example, should identify issues in terms of a measurable aspect of the current solution and the degree to which a performance improvement would overcome it. Constraints express aspects of the solution that the current designers are not expected to change (though they should also state the rationale behind the constraint, and how and by whom it may be changed if justification exists). Only by considering all of these three types of requirement can the essential requirements of a system be captured.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-8229899342539917154?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/8229899342539917154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=8229899342539917154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8229899342539917154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/8229899342539917154'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/02/3-types-of-requirement.html' title='3 Types of Requirement'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6d1lKM7g5c4/ReQym2RFk-I/AAAAAAAAACA/V7al8sJsb1c/s72-c/featurePattern1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-137167738401761547</id><published>2007-02-24T01:03:00.000Z</published><updated>2007-11-17T12:48:47.080Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='task patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Sam DerKazaryan'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='OGNL'/><category scheme='http://www.blogger.com/atom/ns#' term='Isobar Global'/><category scheme='http://www.blogger.com/atom/ns#' term='Actions'/><title type='text'>Action stations</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6d1lKM7g5c4/Rd-QkWRFk9I/AAAAAAAAAB0/b0d0rn9H5Ko/s1600-h/increments.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6d1lKM7g5c4/Rd-QkWRFk9I/AAAAAAAAAB0/b0d0rn9H5Ko/s400/increments.JPG" alt="" id="BLOGGER_PHOTO_ID_5034901862550442962" border="0" /&gt;&lt;/a&gt;One of the most powerful aspects of xProcess is its flexibility and configurability. Processes are defined in terms of patterns: for example project patterns, task patterns and artifact patterns. Configurable enough. However you can do much more to enhance these and make them easier to use, by using xProcess Actions. These are bits of "&lt;a style="font-style: italic;" href="http://www.ognl.org/"&gt;OGNL&lt;/a&gt;" code that &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; things when xProcess is working. They can be triggered by user actions, by instantiating a pattern, by workflow or a number of other events.&lt;br /&gt;&lt;br /&gt;For example &lt;a href="http://www.linkedin.com/pub/0/294/199"&gt;Sam DerKazaryan&lt;/a&gt; of &lt;a href="http://www.isobar.net/"&gt;Isobar Global&lt;/a&gt; asked me recently for an Instantiation Action to increment the issue number on newly created issues. For those of you who like a spot of programming with their process engineering, here's the code snippet that does it...&lt;br /&gt;&lt;br /&gt;#root = getPersistenceHelper().getRootExchangeElementContainer(),&lt;br /&gt;#counter = #root.getIntProperty("currentCounterValue"),&lt;br /&gt;#counter = #counter + 1,&lt;br /&gt;setName("Issue " + #counter),&lt;br /&gt;#root.setIntProperty("currentCounterValue", #counter)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note: you need version 2.7.2 of xProcess or later to run this code.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-137167738401761547?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/137167738401761547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=137167738401761547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/137167738401761547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/137167738401761547'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/02/action-stations.html' title='Action stations'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6d1lKM7g5c4/Rd-QkWRFk9I/AAAAAAAAAB0/b0d0rn9H5Ko/s72-c/increments.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-4438578002353142598</id><published>2007-02-21T14:45:00.001Z</published><updated>2007-11-17T12:47:50.818Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Finalist for Eclipse Community Awards 2007</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eclipse.org/org/press-release/20070220cb_awardfinalist.php"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6d1lKM7g5c4/RdxeHmRFk7I/AAAAAAAAABc/1gFVZJWbI3Q/s400/eclipse.gif" alt="" id="BLOGGER_PHOTO_ID_5034001968117683122" border="0" /&gt;&lt;/a&gt;Just received great news - xProcess has been shortlisted (1 of 2) for the prestigious Eclipse Technology Awards in the category &lt;a href="http://www.eclipse.org/org/press-release/20070220cb_awardfinalist.php"&gt;&lt;span style="font-style: italic;"&gt;Best Commercial RCP Application&lt;/span&gt;&lt;/a&gt;. The two Technology Awards aim to recognize the best Eclipse-based commercial and open source products in the world.&lt;br /&gt;&lt;br /&gt;"Finalists were selected from a pool of 63 nominations by a panel of judges from the Eclipse community". Way to go!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-4438578002353142598?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/4438578002353142598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=4438578002353142598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4438578002353142598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/4438578002353142598'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/02/finalist-for-eclipse-community-awards_21.html' title='Finalist for Eclipse Community Awards 2007'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6d1lKM7g5c4/RdxeHmRFk7I/AAAAAAAAABc/1gFVZJWbI3Q/s72-c/eclipse.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21436926.post-5907639763838726046</id><published>2007-02-21T13:12:00.000Z</published><updated>2007-02-24T01:02:45.733Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='priority-driven processes'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='xProcess'/><category scheme='http://www.blogger.com/atom/ns#' term='white paper'/><title type='text'>New white paper on priority-driven processes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ivis.com/whitepapers/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6d1lKM7g5c4/RdxIvWRFk6I/AAAAAAAAABQ/8SC2sR2LQeU/s400/whitepaper.JPG" alt="" id="BLOGGER_PHOTO_ID_5033978461761672098" border="0" /&gt;&lt;/a&gt;Are your teams working on the most important issues to your business? If not you are losing potential earned value every day that goes by!&lt;br /&gt;&lt;br /&gt;I've just finished a paper on this topic called &lt;span style="font-style: italic;"&gt;Priority-Driven Processes&lt;/span&gt;, which you can download from the &lt;a href="http://www.ivis.com/"&gt;Ivis website&lt;/a&gt;. Such processes use the priority of deliverables as a key management control, enabling teams to focus on what provides greatest payback soonest. The paper is designed to help people to model and implement processes with priority, and draws on examples from FDD, XP and other agile methods.&lt;br /&gt;&lt;br /&gt;If you do download, be sure to send us your feedback!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21436926-5907639763838726046?l=xprocess.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xprocess.blogspot.com/feeds/5907639763838726046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21436926&amp;postID=5907639763838726046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5907639763838726046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21436926/posts/default/5907639763838726046'/><link rel='alternate' type='text/html' href='http://xprocess.blogspot.com/2007/02/new-white-paper-on-priority-driven.html' title='New white paper on priority-driven processes'/><author><name>Andy Carmichael</name><uri>https://profiles.google.com/100197083324757567518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-bKB0aXRHok4/AAAAAAAAAAI/AAAAAAAAAAA/iDCiCodrOrw/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6d1lKM7g5c4/RdxIvWRFk6I/AAAAAAAAABQ/8SC2sR2LQeU/s72-c/whitepaper.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
