<?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-8873993046418945084</id><updated>2012-02-22T00:10:01.481-08:00</updated><title type='text'>Forward Going Rich</title><subtitle type='html'>Striving for success in software development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-1331825042906483573</id><published>2012-02-22T00:06:00.002-08:00</published><updated>2012-02-22T00:10:01.489-08:00</updated><title type='text'>Why do we keep doing things which we know don't work?</title><content type='html'>&lt;div&gt;&lt;span &gt;In any organisation, some working practices simply don't work. Unfortunately the knee jerk reaction to this seems to do more of what doesn't work.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried document driven system development - it doesn't work. The solution is not more documents.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried up front analysis and design - it doesn't work. The solution isn't more up front analysis and design.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried enforcing enterprise wide architecture - it doesn't work. The solution isn't more enforced architecture.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried detailed project plans - it doesn't work. The solution isn't even more detailed plans and estimates.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried enforcing pre-defined processes to systems development - it doesn't work. The solution isn't more process.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;We've tried acceptance testing as a final step before production setting - it doesn't work. The solution isn't more late acceptance testing.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;There are so many things that "Agile" has proven do work. Why is it so difficult to get organisations to do more of the things that work rather than more of the things we know don't work?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span &gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-1331825042906483573?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/1331825042906483573/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2012/02/why-do-we-keep-doing-things-which-we.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/1331825042906483573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/1331825042906483573'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2012/02/why-do-we-keep-doing-things-which-we.html' title='Why do we keep doing things which we know don&apos;t work?'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-2893563828303917332</id><published>2012-01-17T22:13:00.000-08:00</published><updated>2012-01-17T22:18:35.569-08:00</updated><title type='text'>Open Space Technology</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in"&gt;We've used &lt;a href="http://www.openspaceworld.org/"&gt;Open Space Technology&lt;/a&gt; several times in our project and it's worked well in a variety of situations  from &lt;a href="http://www.retrospectives.com/"&gt;retrospectives&lt;/a&gt; to architecture and design discussions. Up until last week the number participants has always been less than 20 so it was with both anticipation and trepidation that I found myself facilitating an Open Space for around 200 people.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;After a brief introduction it was a relief to see the agenda appear almost by magic and I found myself having to hold back the enthusiastic crowds as they champed at the bit to start their discussions.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;The whole day was a credit to Open Space as a format for meetings and conferences, and also a credit to the CIO for having the courage to agree to this unconventional approach.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-2893563828303917332?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/2893563828303917332/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2012/01/open-space-technology.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2893563828303917332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2893563828303917332'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2012/01/open-space-technology.html' title='Open Space Technology'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-9180708874081532184</id><published>2011-12-18T23:23:00.000-08:00</published><updated>2011-12-18T23:40:52.670-08:00</updated><title type='text'>Monoculture misery</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in"&gt;Most large organisations struggle to keep control of their software maintenance costs. Many try to do this by trying to restrict which tools and techniques are used. This seems a reasonable strategy – the more homogeneous environment you can achieve the easier it ought to be to maintain. To a certain extent this may be true, but taken too far the result is almost inevitably the opposite – an ever increasing burden of maintenance costs.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;Whatever you're buying, a good rule of thumb if you're concerned about maintenance, is to go for quality. Software is no exception. In fact with some estimating that maintenance costs account for over 90 % of software costs, it's a textbook example of this. There's nothing that dents your IT budget more than buggy applications.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;What happens when you try to achieve a monoculture of techniques and tools? The people building the product are forced to use tools and techniques which aren't quite up to the job. And since any standardization effort inevitably lags advancements in technology the product will be dated before it's released. Is there anybody who thinks this is a good strategy for improving quality?&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;I have a theory. This theory is that the three  most important factors for reducing the cost of software maintenance are:&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;The quality of the  product – fewer bugs mean less maintenance.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;Building the right  product – often up to 80 % of software “requirements” aren't  really required but add to the maintenance burden&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;Employing the  right people – the wrong people will build the wrong product  whether or not they use the mandated tools.&lt;/p&gt;  &lt;p class="western" style="margin-bottom: 0in"&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;So what do you think? What's the most effective way of employing your brightest staff?&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;a) Set them to work mandating which tools and techniques are to be used and enforcing these policies.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;b) Getting them to act as  a motor for innovation by helping development teams to take advantage of modern advancements in software development.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;I know which one I'd choose. And I know which organisation I'd choose to work for.&lt;/p&gt; &lt;p class="western" style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-9180708874081532184?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/9180708874081532184/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/12/monoculture-misery.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/9180708874081532184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/9180708874081532184'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/12/monoculture-misery.html' title='Monoculture misery'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-8259890460331156498</id><published>2011-10-22T23:49:00.000-07:00</published><updated>2011-10-22T23:51:03.060-07:00</updated><title type='text'>Agile Testing - Test early</title><content type='html'>&lt;p lang="en-GB" class="western"&gt;A common feature on many scrum boards is a column with the title “Test” or “Verify” or perhaps “Acceptance”. This column is almost invariably towards the right hand end of the board. Implement first, test afterwards. Does that sound agile or are we just making the same old mistakes?  &lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;Once you've got your testers in the team, and teaming up with the programmers, it's time to get serious about testing early. Not just early programmer testing but early customer testing too.&lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;Having a separate column for verification on your scrum board merely reinforces the traditional idea that testing is something you start doing when a feature is implemented.  &lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;You don't have to wait until features are complete before starting work on customer tests. And if you can successfully encourage testers and programmers to work in harmony you might even find that a feature is tested and accepted at the same time that the implementation is completed.&lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-8259890460331156498?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/8259890460331156498/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-test-early.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8259890460331156498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8259890460331156498'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-test-early.html' title='Agile Testing - Test early'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-76144505097433311</id><published>2011-10-16T21:30:00.000-07:00</published><updated>2011-10-17T21:46:51.981-07:00</updated><title type='text'>Agile Testing – Teaming up</title><content type='html'>&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;Interesting things  happen when you start using &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test Driven Development&lt;/a&gt;. One revelation is that TDD isn't just about discovering bugs:&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;"The act of writing a unit test is more an act of design than of verification."&lt;/i&gt; (Bob Martin)&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;&lt;span class="Apple-style-span"&gt;As I &lt;a href="http://forward-going-rich.blogspot.com/2011/10/agile-testing-embedded-tester.html"&gt;previously wrote&lt;/a&gt;, a first step towards agile customer testing is bringing your testers into the team. A second step is to encourage your testers to team up with programmers and work together on the development of features.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;&lt;span class="Apple-style-span"&gt;As we have brought  testers into our team and encouraged them to  team up with  programmers we have also seen  benefits that aren't just limited to finding bugs.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;&lt;span class="Apple-style-span"&gt;To paraphrase &lt;a href="http://www.objectmentor.com/omTeam/martin_r.html"&gt;Uncle Bob&lt;/a&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; "&gt;&lt;span class="Apple-style-span"&gt;&lt;i&gt;The act of writing a customer test is more an act of process improvement than of verification.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;&lt;span class="Apple-style-span"&gt;So what are these process improvements? Here are a handful  we have experienced:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;&lt;span class="Apple-style-span"&gt;Stories get  broken down into smaller stories that allow the  testers to get  testing early&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;span&gt;&lt;span lang="en-GB"&gt;&lt;span style="font-style: normal"&gt;&lt;span&gt;Customer tests &lt;a href="http://specificationbyexample.com/"&gt;  define the features&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span lang="en-GB"&gt;&lt;span style="font-style: normal"&gt;&lt;span&gt; of the product, eliminating the need for many of the documents  traditionally associated with testing&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;  &lt;span class="Apple-style-span"&gt;There is no  need for a separate acceptance activity – when the programmers  have completed the feature the customer tester has completed their  testing&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;  &lt;span class="Apple-style-span"&gt;Programmers  get involved in, and a better understanding of customer testing (and vice versa).&lt;/span&gt;&lt;/p&gt;  &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt;  &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in; font-style: normal; "&gt; &lt;span class="Apple-style-span"&gt;I'm sure we will discover more benefits as we get better at customer testing.&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/8873993046418945084-76144505097433311?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/76144505097433311/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-teaming-up.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/76144505097433311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/76144505097433311'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-teaming-up.html' title='Agile Testing – Teaming up'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-8124525619548533291</id><published>2011-10-10T22:10:00.000-07:00</published><updated>2011-10-10T22:19:49.476-07:00</updated><title type='text'>Agile Testing – The embedded tester</title><content type='html'>&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;It's the obvious first step towards agile customer testing – bring the testers into the team.&lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;There is certainly a risk that  a tester will lose their objectivity when they become part of the development team. But would a good tester allow this to happen? Would an alert agile coach allow this to happen? Surely not.&lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;Being an embedded tester means changing how you work. Instead of merely diagnosing bugs after they've become chronic, you can help to prevent bugs from infecting the product in the first place.  &lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;An agile tester doesn't have to be the person who just ticks off features against a list of requirements. They can, and should be much more than this. Working in the team the tester can take a much more active role in improving the product and influencing the development process. They can help build quality into the product rather than trying to &lt;a href="http://c2.com/cgi/wiki?TestInQuality"&gt;test quality into it&lt;/a&gt;.  &lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;Not all testers find it easy, or are prepared to adapt to this change in approach. But it's not unreasonable to demand a degree of personal agility of your agile testers.  &lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;Success has it's foundation in people. So if you're serious about agile customer testing, make sure you have the right testers in the right place. In the team.&lt;/p&gt; &lt;p lang="en-GB" class="western"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-8124525619548533291?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/8124525619548533291/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-embedded-tester.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8124525619548533291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8124525619548533291'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-embedded-tester.html' title='Agile Testing – The embedded tester'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-238438557914304727</id><published>2011-10-03T10:55:00.000-07:00</published><updated>2011-10-22T23:52:39.882-07:00</updated><title type='text'>Agile Testing – Simple in practice</title><content type='html'>&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;Agile developers know that a few basic practices can be used to drive simplicity into programming. Working in collaboration with the customer simplifies communication. Pair programming reduces the need for documentation and controls. Programmer testing drives you towards a simpler design.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;So what are the practices which can be used to drive simplicity into agile customer testing?&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;Face to face communication is the simplest and most effective way for us to communicate, by a long chalk. So bringing the tester into the team is an obvious way of bringing programmer and tester face to face.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;Another practice to simplify testing is encouraging testers to team up with the programmers - it's not just programmers that can make a pair.  For the more open minded, why not try a threesome – programmer/programmer/tester? You'll find you simply don't need a lot of the documents that are traditionally required when testing.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;Finally you can start customer testing early. Whether it's automated testing or &lt;a href="http://www.satisfice.com/articles/what_is_et.shtml"&gt;exploratory testing&lt;/a&gt;, you shouldn't need to wait until the end of the sprint to perform them. And by encouraging the programmers to break up large features into smaller ones the tester can drive the team to deliver features that are simpler to test.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;So there you have it – three basic practices to simplify agile customer testing:&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://forward-going-rich.blogspot.com/2011/10/agile-testing-embedded-tester.html"&gt;tester  in the team&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://forward-going-rich.blogspot.com/2011/10/agile-testing-teaming-up.html"&gt;teaming  up with programmers   &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://forward-going-rich.blogspot.com/2011/10/agile-testing-test-early.html"&gt;test  early customer testing&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;I'll stick my chin out and suggest that these are defining practices for agile customer testing. There are several other good practices that agile testers can adopt, but if you're not doing these three then you're not agile testing. It's as simple as that.&lt;/span&gt;&lt;/p&gt; &lt;p lang="en-GB" class="western" style="margin-bottom: 0in"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-238438557914304727?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/238438557914304727/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-simple-in-practice.html#comment-form' title='2 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/238438557914304727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/238438557914304727'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/10/agile-testing-simple-in-practice.html' title='Agile Testing – Simple in practice'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-2622997802169318923</id><published>2011-09-27T23:26:00.000-07:00</published><updated>2011-10-03T11:05:32.298-07:00</updated><title type='text'>Agile Testing - Keep it simple</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:10pt;"&gt;One of the things which always seems to make discussing testing difficult is the plethora of  different types of testing: System Testing, Acceptance Testing,  Functional Testing, User Testing, Integration Testing etc. Worse  still, these terms can be combined to come up with almost endless variations: User Acceptance Testing,  System Integration Testing, Developer System Testing, ...&lt;br /&gt;&lt;br /&gt;And everybody seems to have their own individual interpretation of what these terms mean. No wonder it's so difficult to have a reasonable  discussion about agile testing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=G8EL4H4vf7UC&amp;amp;lpg=PP1&amp;amp;hl=sv&amp;amp;pg=PP1#v=onepage&amp;amp;q&amp;amp;f=false"&gt;Kent Beck explained&lt;/a&gt; back in 1999  that simplicity is one of four values for extreme programming. Simplicity also appears as one of the &lt;a href="http://agilemanifesto.org/principles.html"&gt;principles behind the Agile Manifesto&lt;/a&gt;. Kent kept it simple even when talking about  testing. He talked about just two types of tests; &lt;span style="font-weight: bold;"&gt;programmer tests&lt;/span&gt; and  &lt;span style="font-weight: bold;"&gt;customer tests&lt;/span&gt;. Programmers write tests which must run flawlessly for  development to continue. Customers write tests demonstrating that features are finished.&lt;br /&gt;&lt;br /&gt;So let's see how far we can get by using just these terms. Hopefully it  will make discussing agile testing simpler. Who knows, maybe even  performing agile testing will be more effective if we can also keep it  simple in practice.&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://forward-going-rich.blogspot.com/2011/10/agile-testing-simple-in-practice.html"&gt;next post&lt;/a&gt; I'll identify three practices which can simplify agile customer testing.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-2622997802169318923?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/2622997802169318923/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/09/agile-testing-keep-it-simple.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2622997802169318923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2622997802169318923'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/09/agile-testing-keep-it-simple.html' title='Agile Testing - Keep it simple'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-4930003027022049804</id><published>2011-06-16T06:34:00.000-07:00</published><updated>2011-06-16T23:22:25.139-07:00</updated><title type='text'>Testing, verification and validation . What's the difference?</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Software testing,&lt;a href="http://en.wikipedia.org/wiki/Software_testing"&gt; I've read&lt;/a&gt;, is the process of validating and verifying a software program/application/product. But what's the difference between verification and validation? Here's the clearest definition I've managed to find.&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Verification shows the conformance with specification&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Validation shows that the program meets the customers requirements&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;But wait a moment. Aren't the specifications just a way of describing some of the customers' requirements? At least they should be. Otherwise the customers are  paying for something they don't need, or not getting what they're paying for. &lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;In other words, verification and validation  should be the same thing, at least when it comes to software testing.&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium; "&gt;Another thing that makes me deeply suspicious of the terms ”verification and validation” is the worrying frequency which the &lt;a href="http://en.wikipedia.org/wiki/V-Model_(software_development)"&gt;V model&lt;/a&gt; is used to explain them.&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-4930003027022049804?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/4930003027022049804/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/06/testing-verification-and-validation.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4930003027022049804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4930003027022049804'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/06/testing-verification-and-validation.html' title='Testing, verification and validation . What&apos;s the difference?'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-2817573163567930768</id><published>2011-05-17T07:40:00.000-07:00</published><updated>2011-10-16T21:30:43.326-07:00</updated><title type='text'>Why not how nor what</title><content type='html'>&lt;span class="Apple-style-span" &gt;Here's a  quick summary of my career as a programmer.&lt;/span&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;write working code&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;don't understand my own code when I return to it later&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;write lots of comments in my code&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;still don't understand the code since the comments didn't get updated when code changed&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" &gt;write clearer code and fewer comments&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Interestingly one of the &lt;a href="http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book"&gt;97 things&lt;/a&gt; every programmer should know is &lt;a href="http://programmer.97things.oreilly.com/wiki/index.php/A_Comment_on_Comments"&gt;write plenty of comments&lt;/a&gt; while another is &lt;a href="http://programmer.97things.oreilly.com/wiki/index.php/Comment_Only_What_the_Code_Cannot_Say"&gt;write fewer&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;Confused? No need to be. Just comment &lt;b&gt;why&lt;/b&gt; you've done something a particular way. If you find yourself commenting on &lt;b&gt;what &lt;/b&gt;your code does or &lt;b&gt;how&lt;/b&gt; then make the code clearer instead.&lt;/span&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/8873993046418945084-2817573163567930768?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/2817573163567930768/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2011/05/why-not-how-nor-what.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2817573163567930768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/2817573163567930768'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2011/05/why-not-how-nor-what.html' title='Why not how nor what'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-321636871356200091</id><published>2010-10-19T08:03:00.000-07:00</published><updated>2010-10-19T08:04:24.000-07:00</updated><title type='text'>Agile cyclist</title><content type='html'>Cyclists seem to be universally hated by motorists. A hate that is hardly in proportion to the inconvenience the cyclist occasionally causes.&lt;br /&gt;&lt;br /&gt;Or is it perhaps envy? The cyclist can cruise past grid locked drivers, ignoring the normal rules of the road on a machine that costs a fraction of what the motorists paid for his vehicle. And has more fun too.&lt;br /&gt;&lt;br /&gt;A bit like agile development really. Cheap, gets you there quickly and you have a lot more fun on the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-321636871356200091?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/321636871356200091/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2010/10/agile-cyclist.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/321636871356200091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/321636871356200091'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2010/10/agile-cyclist.html' title='Agile cyclist'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-8310479948051832773</id><published>2010-09-19T22:11:00.001-07:00</published><updated>2010-09-19T22:34:49.354-07:00</updated><title type='text'>Stay loose</title><content type='html'>&lt;div&gt;Loose coupling in complex systems is almost universally regarded as a good thing. So I've been surprised how often and how vigorously we have had to defend the system we're developing from other systems wanting to access our private parts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Problems caused by tight coupling are not restricted to IT systems. Two recent incidents reminded me of just how important it is to think very carefully before introducing unnecessary coupling in any complex system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A colleague, lets call him Pontus, was travelling to work in his new car when it came to an unexpected standstill. Now this particular model has a feature which reduces the engines effect as it starts running low on fuel. But Pontus hadn't run out of fuel; the petrol gauge had malfunctioned. Normally not a critical problem, unless the petrol gauge is coupled to the engine ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This type of problem doesn't only affect cars; trains are also susceptible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last week I was travelling to work by train when it came to an unexpected standstill.  A toilet malfunction was immediately suspected. Now a dodgy toilet would not normally be a critical problem, unless the flush uses the same vacuum system that powers the train's brakes ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So beware of creating unnecessary coupling. You will regret it. Maybe not today, maybe not tomorrow, but soon and for the rest of your life.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/8873993046418945084-8310479948051832773?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/8310479948051832773/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2010/09/stay-loose.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8310479948051832773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8310479948051832773'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2010/09/stay-loose.html' title='Stay loose'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-3936503679374230182</id><published>2010-01-27T22:04:00.000-08:00</published><updated>2010-01-28T07:38:01.834-08:00</updated><title type='text'>JFokus sound bites</title><content type='html'>Yesterday's journey to &lt;a href="http://www.jfokus.se/"&gt;JFokus&lt;/a&gt; was fraught with difficulties (signal failure, accident, snow storm) but it was worth the journey.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some sound bites I jotted down (freely translated where necessary):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;That which is normal isn't always best (think royal family).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal; "&gt;On certification: &lt;span class="Apple-style-span" style="font-style: italic; "&gt;Outsourced competence judgement&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;On developing systems:&lt;/div&gt;&lt;div&gt;&lt;i&gt;Everything we do, we do for the first time. Otherwise we're doing it wrongly and should be using existing components.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;... which is why Gantt charts never work. You can't predict the unpredictable.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;del&gt;&lt;i&gt;best practices&lt;/i&gt;&lt;/del&gt;&lt;i&gt; proven practices&lt;/i&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;Certification again: &lt;span class="Apple-style-span" style="font-style: italic; "&gt;sheep dip training&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Scrumitis - done doesn't mean done done&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;white water rafting &lt;/i&gt;(doing scrum in a waterfall way)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;come back when you're doing one week sprints &lt;/i&gt;(on scrum coaching)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;On average all stories are average size. &lt;/i&gt;(track stories not hours)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Get good at stories &lt;/i&gt;(key to succeeding in scrum)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Write small stories - all stories should be size 1.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;You get what you measure &lt;/i&gt;(dangers of focusing on metrics)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Let the architects work directly with the teams as consultants.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Hundreds of bug fixes &lt;/i&gt;(Maven 3)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Give positive feedback in a 5:1 ratio to negative feedback.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Create an environment for creating something new &lt;/i&gt;(on leadership)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Freedom leads to creativity.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Leadership cannot be separated from the situation. Nobody can be a great leader in all situations.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Information which has value is knowledge.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-3936503679374230182?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/3936503679374230182/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2010/01/jfokus-sound-bites.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/3936503679374230182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/3936503679374230182'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2010/01/jfokus-sound-bites.html' title='JFokus sound bites'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-4954917533794058231</id><published>2009-10-12T13:01:00.000-07:00</published><updated>2009-10-13T23:33:42.648-07:00</updated><title type='text'>FitNesse revisited</title><content type='html'>&lt;div&gt;I recently &lt;a href="http://forward-going-rich.blogspot.com/2009/07/fitnesse-refactored.html"&gt;wrote&lt;/a&gt; about &lt;a href="http://fitnesse.org/"&gt;FitNesse&lt;/a&gt; saying that our goal was to allow domain experts to get on with testing while the developers could concentrate on building new features.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wrong. Wrong. Wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I should have said was that the key to acceptance testing with FitNesse is &lt;b&gt;collaboration&lt;/b&gt;. Testers and developers should work together when writing tests and developing features. This is what FitNesse makes possible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Testing will always come at a cost. The trick is to make sure the returns exceed this cost. &lt;a href="http://www.junit.org/"&gt;Junit&lt;/a&gt; has made this possible for unit testing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When it comes to acceptance testing, the cost-benefit relationship is not so clear. FitNesse can swing the balance in favour of automation. So here's my revised list of tips for how to do this:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Collaborate when creating acceptance tests. Developers and testers should be encouraged to work together.&lt;/li&gt;&lt;li&gt; Create separate FitNesse fixtures for setting up test data, exercising the &lt;a href="http://en.wikipedia.org/wiki/System_under_test"&gt;SUT&lt;/a&gt;, and making assertions on the result.&lt;/li&gt;&lt;li&gt; Names are important. The readability of your test cases will improve.&lt;/li&gt;&lt;li&gt; Write unit tests for your fixtures. Their design will benefit.&lt;/li&gt;&lt;li&gt; Keep your tests independent. Intra test dependencies will lead to tears. &lt;/li&gt;&lt;li&gt; Use &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;dependency injection&lt;/a&gt;. Decoupled fixtures can be reused more easily.&lt;/li&gt;&lt;li&gt; Document your fixtures. This will help you write clear test cases.&lt;/li&gt;&lt;li&gt; Think carefully about logging. Debugging will be less painful.&lt;/li&gt;&lt;/ol&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/8873993046418945084-4954917533794058231?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/4954917533794058231/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/10/fitnesse-revisited.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4954917533794058231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4954917533794058231'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/10/fitnesse-revisited.html' title='FitNesse revisited'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-6343433499349966644</id><published>2009-09-10T23:13:00.000-07:00</published><updated>2009-09-10T23:18:55.833-07:00</updated><title type='text'>Pythagoras moment</title><content type='html'>&lt;div&gt;Monday evening was spent discussing retrospectives with fellow members of the &lt;a href="http://groups.google.se/group/scrum-user-group-sweden."&gt;Swedish Scrum User Group&lt;/a&gt;. I came away from the evening with a few new ideas but it wasn't until a couple of days later that I had a &lt;a href="http://www.cut-the-knot.org/pythagoras/bath.shtml"&gt;pythagoras-in-the-bath&lt;/a&gt; moment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But first more about Monday.  Once again we used the &lt;a href="http://en.wikipedia.org/wiki/Open_Space_Technology"&gt;Open Space&lt;/a&gt;  format for this get together. &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;As &lt;a href="http://www.openspaceworld.com/users_guide.htm"&gt;Harrison Owen&lt;/a&gt; puts it:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Open Space Technology is effective when real learning, innovation, and departure from the norm are required. When you aren't quite sure where you are, and less than clear about where you are headed, and require the best thinking and support from all those who wish to be involved, Open Space Technology will provide the means.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hold your horses! Isn't that also a perfect description of a retro. A bunch of enthusiasts getting together to come up with imaginative solutions to tricky problems. Why use open space just to discuss retros when open space can be used to do a retro? Eureka! Now I know how I'm going to do our next retro.&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/8873993046418945084-6343433499349966644?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/6343433499349966644/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/pythagoras-moment.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6343433499349966644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6343433499349966644'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/pythagoras-moment.html' title='Pythagoras moment'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-1287071965522627369</id><published>2009-09-03T07:51:00.000-07:00</published><updated>2009-09-03T07:55:10.717-07:00</updated><title type='text'>Retrospective serendipity</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;If we hadn’t run out of time at our latest &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://retrospectivewiki.org/index.php?title=Main_Page"&gt;retrospective&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; then I wouldn’t have discovered &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://surveymonkey.com"&gt;SurveyMonkey.com&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;We usually end our retros by &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://martinfowler.com/bliki/DotVoting.html"&gt;dot voting&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;on a list of suggested improvements. This time the retro had been particularly fruitful – lots of interesting discussions and a dozen improvement suggestions. And then our time ran out. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;With various team members already heading off to their next meetings I rashly promised to send out an internet based survey so that we could at least prioritize our improvements list before the afternoon’s planning session.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;And then I started to wonder if I’d promised too much. With no time to do an in depth market analysis and after a quick google I selected SurveyMonkey. A choice I wasn't going to regret. 15 minutes later the survey was sent out and in the following planning meeting we had a nicely prioritized list of suggested improvements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;It worked so well that I think we’ll do it this way again – even if we don’t run out of time in our retrospective.&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/8873993046418945084-1287071965522627369?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/1287071965522627369/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/retrospective-serendipity.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/1287071965522627369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/1287071965522627369'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/retrospective-serendipity.html' title='Retrospective serendipity'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-8373503289656401183</id><published>2009-09-01T23:28:00.000-07:00</published><updated>2009-09-02T23:42:46.923-07:00</updated><title type='text'>Scrumming for Britain</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;As a &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://en.wikipedia.org/wiki/Scrum_(development)"&gt;scrum master&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt; I sometimes find it useful to compare what I do with coaching a sports team. Recently I was given the opportunity to put this theory into practice when I was invited to coach a national team at the &lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://tajfutovb2009.hu/index.php?lang=en"&gt;World Orienteering Championships&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;One of the most important jobs of a scrum master is to ensure that the day to day work of the team runs smoothly. Above all a happy team is a productive team. Likewise a happy team of athletes will get better results. So this was one of my main targets when going into the World Championships – shield the runner’s from any external problems and create a positive atmosphere.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;You might think that a coach would spend most of his time telling the athletes what to do. But for a team of experienced international athletes there’s not an awful lot new to tell them. In fact I found myself working more like a facilitator – stimulating discussions, and encouraging the athletes to come up with their own solutions for handling the race situations. Very scrum masterish!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;Of course there are differences too. Running a major championship is more comparable to releasing a system rather than working in scrum sprints. Though this is just what the athletes do in the run up to a major race. Using short, medium and long term goals they work incrementally towards the big release date. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="mso-ansi-language:EN-US"&gt;So how did it go? No medals this time but some successes as well as a few disappointments. Now I hope there will be a chance to do a retrospective with the team – I’m sure that would help them get better results next time. And help me to do a better job, if I’m asked to help again.&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/8873993046418945084-8373503289656401183?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/8373503289656401183/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/scrumming-for-britain.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8373503289656401183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8373503289656401183'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/09/scrumming-for-britain.html' title='Scrumming for Britain'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-8768659639925452310</id><published>2009-07-29T01:54:00.000-07:00</published><updated>2009-09-10T07:58:52.149-07:00</updated><title type='text'>Fitnesse refactored</title><content type='html'>&lt;div&gt;We have put a lot of effort into automated testing. Not just unit testing but also system testing with &lt;a href="http://fitnesse.org/"&gt;Fitnesse&lt;/a&gt;. But it has come at a cost. In particular creating and maintaining our Fitnesse fixtures has become a burden.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In theory, Fitnesse should enable our domain specialists to write tests while the developers can get on with developing the features. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far we haven't reached this nirvana. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For each major new feature we find ourselves either having to change our current fixtures or develop new ones. This taxes our development resources and our system tests lag behind development instead of leading it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We must be able to do better than this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently I've been wrestling with our fixtures - refactoring them to reduce the development debt. Finally they're starting to smell a little sweeter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some principles which have guided me ("best practices" if you like)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle 1. Structure fitnesse tests like unit tests.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They should have three distinct sections: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;setup the test data&lt;/li&gt;&lt;li&gt;exercise the code to be tested &lt;/li&gt;&lt;li&gt;perform assertions on the result&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;   &lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle 2 (corollory to Principle 1)  Create separate fixtures for each of these phases.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One fixture say for priming the database with data. Another fixture for performing a query. And a third fixture for checking the result of the query.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle 3. Names are important. &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By taking advantage of  "&lt;a href="http://fitnesse.org/FitNesse.UserGuide.GracefulName"&gt;graceful names&lt;/a&gt;"  and choosing method names carefully our tests become more readable.  They now look lke this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;|object id | is in query result? |&lt;/div&gt;&lt;div&gt;                         &lt;/div&gt;&lt;div&gt;instead of&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;|objectId | checkResult?|&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle 4. Fixtures should be tested too. &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Writing &lt;a href="http://www.junit.org/"&gt;unit tests&lt;/a&gt;  for fixture code speeds up development and improves the quality and design of the fixtures.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Principle 5. Use dependency injection to decouple fixtures.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We use &lt;a href="https://spring-fitnesse.dev.java.net/"&gt;Spring&lt;/a&gt; to inject database connections, JMS queues and domain specific beans into our fixtures. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nothing too radical there of course. But hopefully by concentrating on these key practices the returns from our investment in Fitnesse will improve. &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/8873993046418945084-8768659639925452310?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/8768659639925452310/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/07/fitnesse-refactored.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8768659639925452310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/8768659639925452310'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/07/fitnesse-refactored.html' title='Fitnesse refactored'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-4702515726336144744</id><published>2009-06-09T07:24:00.000-07:00</published><updated>2009-06-09T07:36:30.466-07:00</updated><title type='text'>Service Registry Manifesto</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;How should you go about creating a service registry? I've been working on this recently and the more I dig into it, the more I agree with the ideas expressed by Martin Fowler when he wrote about a &lt;/span&gt;&lt;a href="http://martinfowler.com/bliki/HumaneRegistry.html"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Humane Registry&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Inspired by this article and also the &lt;/span&gt;&lt;a href="http://agilemanifesto.org/"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Agile Manifesto&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; I came up with a service registry manifesto. Namely, we should value:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;clarity and conciseness over detail and completeness&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;flexibility and expandability over specification and planned structure &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;integration with existing sources over creation of new content&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;encouragement of use over contractual restrictions&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;That is, while there is value in the items on the right, we value the items on the left more.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Coincidentaly, after I created my manifesto, MF himself gave his seal of approval for using this type of list when he blogged on &lt;/span&gt;&lt;a href="http://martinfowler.com/bliki/ComparativeValues.html"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Comparative Values&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;. &lt;/span&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/8873993046418945084-4702515726336144744?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/4702515726336144744/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/06/how-should-you-go-about-creating.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4702515726336144744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/4702515726336144744'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/06/how-should-you-go-about-creating.html' title='Service Registry Manifesto'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-692507865757488096</id><published>2009-06-01T03:57:00.000-07:00</published><updated>2009-06-01T04:08:40.717-07:00</updated><title type='text'>Sniffing out success</title><content type='html'>Recently, I found myself discussing &lt;a href="http://en.wikipedia.org/wiki/Code_smell"&gt;code smells&lt;/a&gt; with a colleague. How do you recognise them and how can you fix them? Reading about refactoring and design patterns is certainly one way to train your olfactory sensitivity. But study alone is not enough.&lt;br /&gt;&lt;br /&gt;In a previous life I was an elite orienteer. When I was racing to the limits of my ability one of the key success factors was reacting to mistakes and correcting them before they caused time loss. A bit like fixing code smells really. Nipping small mistakes in the bud before they grow into major time wasters.&lt;br /&gt;&lt;br /&gt;As an orienteer I learned early in my career that  the key to perfecting this skill is training, training and training. I'm convinced this is also true for the programmer. Mastering the skill of sniffing out code smells  and cleaning them up comes only with practice - lots of it.&lt;br /&gt;&lt;br /&gt;And just like the very best athletes, you should never be really satisfied. Skills need to be maintained with constant training, and there's always always room for improvement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8873993046418945084-692507865757488096?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/692507865757488096/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/06/sniffing-out-success.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/692507865757488096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/692507865757488096'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/06/sniffing-out-success.html' title='Sniffing out success'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-6772844223416526705</id><published>2009-04-09T05:13:00.000-07:00</published><updated>2009-04-20T23:20:24.804-07:00</updated><title type='text'>Pain Threshold</title><content type='html'>&lt;div&gt;&lt;div&gt;Finally the pain got too much. Once again I'd committed broken code into our &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;  repository and the build server was glowing an irritating red.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was a silly mistake and it wasn't the first time I'd made it. I'd run the test suite before committing but hadn't noticed the failing tests. Why? Because from &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;  we use &lt;a href="http://ant.apache.org/"&gt;ant&lt;/a&gt;  to execute &lt;a href="http://maven.apache.org/"&gt;maven&lt;/a&gt;. And the maven exit code is zero even when a build fails. This means that although maven writes "BUILD FAILURE" to the log, ant has the last word and logs "BUILD SUCCESSFUL".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once again I'd been fooled by the bottom line and missed the critical text a few lines above it. It really was time to find a remedy for this affliction. It took a little bit of rooting around in the ant documentation but I eventually found a cure I could swallow:&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;target name="_execute_maven"&amp;gt;&lt;br /&gt;&amp;lt;echo&amp;gt;mvn ${line}&amp;lt;/echo&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;exec executable="${mvn}" dir="${execute.basedir}"&amp;gt;&lt;br /&gt;   &amp;lt;!-- save the log to a property too --&amp;gt;&lt;br /&gt;   &amp;lt;redirector outputproperty="test.out"&lt;br /&gt;                 alwayslog="true" /&amp;gt;&lt;br /&gt;   &amp;lt;env key="JAVA_HOME" path="${java.home}" /&amp;gt;&lt;br /&gt;   &amp;lt;env key="MAVEN_OPTS" value="${mvn_opts}" /&amp;gt;&lt;br /&gt;   &amp;lt;arg line="${line}" /&amp;gt;&lt;br /&gt;&amp;lt;/exec&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;condition property="fail.status"&amp;gt;&lt;br /&gt;   &amp;lt;!-- search property for failure text --&amp;gt;&lt;br /&gt;   &amp;lt;or&amp;gt;&lt;br /&gt;       &amp;lt;contains string="${test.out}"&lt;br /&gt;                         substring="BUILD FAILURE" /&amp;gt;&lt;br /&gt;       &amp;lt;contains string="${test.out}"&lt;br /&gt;                         substring="BUILD ERROR" /&amp;gt;&lt;br /&gt;   &amp;lt;/or&amp;gt;&lt;br /&gt;&amp;lt;/condition&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;fail if="fail.status" /&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;Why don't we use the maven plugin for eclipse? I don't know the definitive answer to this and it niggles me. The eclipse/maven/ant combination came with the project. A buggy maven plugin I'm told, but I ought to dig into this a bit more.  But so far this niggle hasn't breached my pain threshold.&lt;/div&gt;&lt;div&gt;&lt;br /&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/8873993046418945084-6772844223416526705?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/6772844223416526705/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/04/pain-threshold.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6772844223416526705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6772844223416526705'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/04/pain-threshold.html' title='Pain Threshold'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-735813300460964691</id><published>2009-03-31T11:29:00.000-07:00</published><updated>2009-04-09T05:36:16.602-07:00</updated><title type='text'>Design Last</title><content type='html'>&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/Kent_Beck"&gt;Kent Beck&lt;/a&gt; turned software development on its head when he popularized &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;test driven development&lt;/a&gt;. By now we all know that we should be writing our tests as we write our code. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think it was also Beck who encouraged us to listen before we test before we code before we design.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it's not just the change in the order of doing things that's important. Another key element is to listen, test, code and design iteratively. Not three-week-rup-iteratively but 10-minute-agile-iteratively. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So if you ever catch yourself tagging "and Design" onto "Analysis",  lie back and think of Kent.&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/8873993046418945084-735813300460964691?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/735813300460964691/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/design-last.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/735813300460964691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/735813300460964691'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/design-last.html' title='Design Last'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-786155174341009444</id><published>2009-03-12T13:31:00.000-07:00</published><updated>2009-04-20T23:42:08.411-07:00</updated><title type='text'>Notepad Revival</title><content type='html'>&lt;div&gt;I've always been suspicious of programmers who use &lt;a href="http://en.wikipedia.org/wiki/Notepad"&gt;Notepad&lt;/a&gt;. And I'm not alone. As the &lt;a href="http://www.pragprog.com/the-pragmatic-programmer"&gt;Pragmatic Programmers&lt;/a&gt;  said "it's like using a teaspoon as a shovel". Perhaps I shouldn't be so prejudiced. Recently I've caught myself using this much scorned text editor. More often than I'd like to admit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what do I use Notepad for? The clue is in the name. Notepad is extremely good for jotting down notes. And the reasons it's good for this are that it's fast, lightweight and simple.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's great for creating short todos, keeping a work journal or noting all those things that occur to me during a sprint but which are forgotten when the &lt;a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1113"&gt;retrospective&lt;/a&gt; comes around.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But why the notepad revival now? The answer is &lt;a href="https://www.getdropbox.com/"&gt;Dropbox&lt;/a&gt;. Suddenly I can effortlessly save my jottings on my laptop, update them on my home machine and read them on my work box. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which doesn't mean you should even think of using Notepad to code java, create xml or check logs. &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/8873993046418945084-786155174341009444?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/786155174341009444/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/notepad-revival.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/786155174341009444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/786155174341009444'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/notepad-revival.html' title='Notepad Revival'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-3956267010340035944</id><published>2009-03-04T22:11:00.000-08:00</published><updated>2009-03-04T22:20:13.157-08:00</updated><title type='text'>Building Bridges</title><content type='html'>&lt;div&gt;Anybody who tries to compare software development to building bridges doesn't know what they're talking about. Or so I thought, until I stumbled across some research from the construction industry.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The research in question was a study into the lack of efficiency in the Swedish house building industry. OK, not exactly bridges but houses are close enough for me. The &lt;a href="http://cmb.vsect.chalmers.se/sidor/rapporter/Sl%C3%B6seri%20i%20byggprojekt.pdf"&gt;study report&lt;/a&gt;'s  main conclusion was that building projects are actually very inefficient and savings of up to 50% could be achieved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was reminded again of this report while attending a &lt;a href="http://en.wikipedia.org/wiki/Scrum_(development)"&gt;ScrumMaster &lt;/a&gt;course which we had arranged in &lt;a href="http://en.wikipedia.org/wiki/Falun"&gt;Falun&lt;/a&gt; (thanks &lt;a href="http://www.crisp.se/henrik.kniberg"&gt;Henrik&lt;/a&gt; for two days of enlightenment).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the reason I was reminded of it was that most of the recommendations the report made could have come straight from a scrum manual: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; focusing on delivering value to the customer&lt;/li&gt;&lt;li&gt; eliminating activities that don't deliver customer value&lt;/li&gt;&lt;li&gt; creating cross functional teams with customers and suppliers working in partnership&lt;/li&gt;&lt;li&gt; empowering and encouraging workers to improve their own processes. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps it is time to start dreaming of building bridges like we build software!  &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/8873993046418945084-3956267010340035944?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/3956267010340035944/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/building-bridges.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/3956267010340035944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/3956267010340035944'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/03/building-bridges.html' title='Building Bridges'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8873993046418945084.post-6660099166389469884</id><published>2009-01-29T05:59:00.000-08:00</published><updated>2011-06-16T23:35:38.982-07:00</updated><title type='text'>Scrum building</title><content type='html'>&lt;div&gt;You're probably as tired as I am of hearing that we ought to be able to build software like we build bridges.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nevertheless, I was reminded of this cliché while recently attending a scrum master course. Well actually, what I was reminded of was a &lt;a href="http://www.sbuf.se/documents/Rapport_Sloseri.pdf"&gt;report&lt;/a&gt; into the lack of efficiency in the Swedish construction industry. The research considered house building but that's close enough to bridges for me. The main conclusion was that building projects are actually very inefficient and savings of up to 50% could be achieved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the reason I was reminded of this report was that several of the recommendations made could have come straight from a scrum manual. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From focusing on delivering value to the customer and eliminating activities that don't deliver customer value. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To creating cross functional teams with customers and suppliers working in partnership. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And empowering and encouraging workers to improve their own processes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If they're not already using scrum in building projects it sounds like they ought to give it a try. Perhaps its time to start suggesting they should be building bridges like we are now building software!  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/8873993046418945084-6660099166389469884?l=forward-going-rich.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://forward-going-rich.blogspot.com/feeds/6660099166389469884/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://forward-going-rich.blogspot.com/2009/01/scrum-building.html#comment-form' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6660099166389469884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8873993046418945084/posts/default/6660099166389469884'/><link rel='alternate' type='text/html' href='http://forward-going-rich.blogspot.com/2009/01/scrum-building.html' title='Scrum building'/><author><name>Steven Hale</name><uri>http://www.blogger.com/profile/03262070831318767483</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/-Z79cQwYnUGU/Toduj4f0q8I/AAAAAAAAAAQ/b9ZFgE5mEvo/s220/portrait.jpg'/></author><thr:total>0</thr:total></entry></feed>
