<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Better Testing &#187; Techniques</title>
	<atom:link href="http://www.bettertesting.co.uk/content/?cat=32&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://www.bettertesting.co.uk/content</link>
	<description>Insights, thoughts &#38; ideas</description>
	<lastBuildDate>Tue, 20 Oct 2020 10:30:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Essential mind mapping: Rapid test design.</title>
		<link>https://www.bettertesting.co.uk/content/?p=1438</link>
		<comments>https://www.bettertesting.co.uk/content/?p=1438#comments</comments>
		<pubDate>Mon, 07 Nov 2011 23:50:57 +0000</pubDate>
		<dc:creator>Darren McMillan</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Mind Mapping]]></category>
		<category><![CDATA[Pro Active Testing]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[proactive testing]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[techniques]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.bettertesting.co.uk/content/?p=1438</guid>
		<description><![CDATA[Overcoming the limitations of traditional test design Test design is often a very time consuming process when it need not be.  People are often weighed further down by tools such...]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h3>Overcoming the limitations of traditional test design</h3>
<p>Test design is often a very time consuming process when it need not be.  People are often weighed further down by tools such as <em>jack of all trades</em>, <em>master of none</em> test management systems which dictate that tests are written in a less than optimal format, or introduce additional frustrations to those that try to use them.   External pressures outwith the team may see them required to produce sufficient quantities of tests in relation to features or requirements being developed.  Problematic, this certainly is.   When it seems everything is conspiring to make what should be a very creative experience, regimented and structured, then it is time to step back and think of alternative options.</p>
<p>Mind mapping helps reduce the cost of test design significantly by visualizing the item being designed and providing a holistic view point to develop ideas rapidly.   Essentially what this really means is that the creative side of our brains is much more engaged whilst developing ideas in a visual format.   Additionally by providing a birds eye view of the elements under test, ideas will spring to mind which may have not been consider in a linear thought process associated with writing tests in a document, or test management system.</p>
<p>Obviously this is not a straight forward technique that will work for everyone, so in the following series of posts I would like to introduce approaches to test case design using mind maps, and introduce considerations to make your experience with the concept more beneficial and powerful.</p>
<h3>Test Conditions Vs Test Ideas</h3>
<p>We will start off simple and look at the idea of test conditions Vs test ideas.  Let&#8217;s explain each briefly to remove any uncertainty behind them.   A test condition is a check that states based upon our knowledge of the item under test, we expect something to occur.  An example of a test condition might be:</p>
<p style="padding-left: 30px;"><em>“The login functionality should be easily extensible, so that in the future, should we want to add in an additional field such as a user pin, we could do this easily by extending the capabilities of the login API.”</em></p>
<p>Now if we were to take such an extensive approach for everything we thought of, the process of designing tests would become very long.</p>
<p>Test ideas on the other hand essentially allow you to note your thoughts down in a rapid but less extensive format.  Let&#8217;s look at the previous example for a test condition and switch it to a test idea:</p>
<p style="padding-left: 30px;"><em>“Extensibility &gt; Login &gt; Additional fields &gt; e.g. user pin”</em></p>
<p>Now this is certainly less readable, and may prove more problematic for others to understand than a test condition, but it can greatly reduce the time it takes to design your initial tests.   You can also see how the format of test ideas blend well to mind mapping, which benefits from quick sharp notes, as opposed to longer sentences.</p>
<p>Additionally, consider a persons level of understanding of a type of testing.   It is much more difficult to write test conditions for something which we don&#8217;t have a full understanding of yet, but in a test idea format, we could cover this more quickly without going into too much detail.  Take for example, encryption used to secure credentials for a login process.   There are many elements to consider here, such as the type and strength of encryption used.  Has it been implemented correctly?  The distribution of keys and countless others concerns which go beyond my experience.</p>
<div class="cvauto">
In a test idea format, we could simply list our knowledge in a short, quick format:</p>
<ul>
<li>Security
<ul>
<li>Encryption
<ul>
<li>Type
<ul>
<li>Strong
<ul>
<li>Implemented correctly</li>
<li>Implemented incorrectly
<ul>
<li>Becomes weak</li>
</ul>
</li>
</ul>
</li>
<li>Weak
<ul>
<li>Improve encryption method</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Key distribution</li>
<li>Others?</li>
</ul>
</li>
</ul>
<p>Or better still in a mind map format:</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/login-encryption.png"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/login-encryption.png" alt="An example mind map, showing how the encryption test ideas could be formatted." width="620" height="220" /><br />
</a><span style="font-size: x-small;">An example mind map created using XMind, showing how the encryption test ideas could be formatted, if presented in a mind map.</span></p>
<h4>So when should we use one or the other?</h4>
<p>I tend to base my decision upon the cost developing the tests Vs who will be executing them.   When you consider the person executing the tests, a developer would benefit a lot more from a test condition, than would another tester who already has a trained exploratory mind set; or at least we would hope so.</p>
<p><strong>Proactive use of conditions</strong></p>
<p>From a proactive viewpoint, one of the techniques I had used in the past was to introduce mind maps to take a holistic approach to test design.  You can read more about that in my post on <a href="http://www.bettertesting.co.uk/content/?p=253" target="_blank">lean test case design</a>.   If you look at the example picture below taken from that approach, you can see that if we are mapping out a holistic view of the system under test, then test conditions become very useful.  Indeed, if the intent is to pass these on to developers as acceptance checks for their work, prior to handing it over to be properly tested, then the time taken to develop these becomes much more meaningful.   If we simply wish to hand them over to another tester, then this extensive conditional approach may limit that testers potential at uncovering new areas of interest, or additional concerns that test ideas would help promote.</p>
<p style="text-align: center;"><a href="http://bettertesting.co.uk/content/uploads/leantc/mindmapconditions.png"><img style="margin-bottom: 4px;" src="http://bettertesting.co.uk/content/uploads/leantc/mindmapconditions.png" alt="An example mind map, showing how test conditions can be designed while maintaining a holistic view of the system under test." width="620" height="500" /><br />
</a><span style="font-size: x-small;">An example mind map, showing how test conditions can be designed while maintaining a holistic view of the system under test..</span></p>
<p>My personal view on this, is that we should only ever go to the extent of writing extensive conditions if we plan on taking a proactive approach to testing, one that sees developers tasked with the execution of these test conditions in the form of acceptance checks against a piece of work they have completed, which they then plan to handover to be tested.   This raises developers awareness of areas of concern, and the thought process of how a tester would think, which over time will see them become more familiar with a testers mindset, and prevent in future<em> at least</em> the low hanging fruit testers would often find.</p>
<div>
<p class="main-caption" title="reference">If you would like more information on Proactive Testing and how it can help your team raise awareness, then feel free to <a href="http://www.bettertesting.co.uk/content/?p=123" target="_blank">read my post</a> on the subject.  I have planned a 101 style article on the subject in the future which should help introduce several fresh ideas on the topic.</p>
</div>
<p><strong>Test ideas</strong></p>
<p>Test ideas on the other hand, allow rapid development when designing what to test.   At Maidsafe, I used test ideas as opposed to test conditions for all test design, as this allowed me to work out what I <em>should test</em> and get feedback from others <em>quickly</em>, which would help pinpoint any gaps.</p>
<p>The example below was for the Pro version of our sister company Sigmoid&#8217;s product.  You&#8217;ll need to click on the image and zoom in to see it in more detail.  Essential this product created a virtual drive, much like Dropbox, only on top of a distributed peer to peer network (no servers).  It was also unbelievably secure.</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/SigPro-Acceptance-Tests1.png"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/SigPro-Acceptance-Tests1.png" alt="An image, displaying several test ideas generated to determine the extent of acceptance tests to be executed of Sigmoid Pro's product." width="620" height="600" /><br />
</a><span style="font-size: x-small;">Test ideas generated to determine the extent of acceptance tests to be executed for Sigmoid Pro&#8217;s product.</span></p>
<p>You can see that for such a complex product you can still rapidly generate test ideas with varying levels of detail.  In my example, the things I have more knowledge in, have ideas broken down further.   While an idea such as  “Distributed denial of service attack” on the products peer to peer network, comes with some knowledge in my head about how I would have planned to execute the attack, but no clear steps or details.  Yet this is fine, because anyone working on the product that reads this item, will know exactly what I mean.   Better still, they might have their own ideas on how to approach this test idea, and upon discussing them, we may form a much better approach to execute it.  If I had simply listed all my thoughts on this in a conditional format, then the intended audience may not have digested the information fully, or worse still become biased towards it and not provide their own thoughts.</p>
<h3>Techniques to improve your mapping experience</h3>
<p>Not everyone has the ability to sit down with a mind map and rattle off countless ideas, one after the other.  Luckily this is not a unique ability, and is one that can be easily learned, or improved upon using simple techniques.</p>
<p>Let&#8217;s look at some of these techniques in a little more detail:</p>
<h4><strong>Technique 1:  The mental model.</strong></h4>
<p>If you are unfamiliar with the concept of testing models then check out Michael Bolton&#8217;s excellent <a href="http://www.developsense.com/articles/2005-10-ElementalModels.pdf" target="_blank">Elemental Models</a>.   Essentially a mental model, is a model of considerations that you would apply when testing a system, product, or feature.  These considerations might simply be types of testing, key risk areas, hardware or staff resource concerns.</p>
<p>Everyone over time builds up their own mental models when testing systems.  Mine often consists of a series of testing types that I would consider for all applications, depending upon the context.   Over the years from continually using it, and mind mapping ideas it has increased in size and as a result become more useful to me.</p>
<p>An example of my high level mental model might be as follows:</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/MentalModel.png"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/MentalModel.png" alt="An image, displaying a mind map example of my mental model." width="620" height="450" /><br />
</a><span style="font-size: x-small;">A mind map example of my high level mental model, which helps me rapidly generate ideas.</span></p>
<p>Again this is highly dependent on the context and may see items drop, or new ones be included.  The most important benefit to be gained from developing your own mental model, is the ability it provides in rapidly generating ideas based upon it.</p>
<p>The more you practice mind mapping using models, the more extensive your maps and ideas will become.  This is because the brains ability to processes and recall visuals is far greater than that of a written document.  This combined with the fact that our thoughts (although in the visual format of a map) are being constantly interacted with, developed, and extended, therefore further improving our ability to generate ideas, and lots of them!</p>
<h4>Technique 2: Add a splash of colour</h4>
<p>Probably more of a tip than a technique, but a very important one.  When I first started mind mapping, I was hooked with the way it freed up my mind to do the important work, instead of being hindered by my brains ability to link things together and make sense of it all.  I am always keen to understand fully why things work well, and additional steps I can take to improve my experience.  For mind mapping, adding colour to your maps is one very important aspect which will mentally allow your brain to group, focus and defocus on specific aspects of your maps.</p>
<p>Obviously with hand written mind maps this is easy, we simply choose a different colour of pen.  For tools, applications like <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page" target="_blank">FreeMind</a> do it automatically.  <a href="http://www.xmind.net/" target="_blank">Xmind</a>, my tool of choice, for some reason has this option switched off by default.  On the image below I demonstrate how to enable this:</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/xmind-colour.png"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/11/xmind-colour.png" alt="An image, showing how to add branch colouring on XMind." width="620" height="370" /><br />
</a><span style="font-size: x-small;">An example image, of how to enable branch colouring on Xmind.</span></p>
<p>One issue with using a tool for this, is that you have to be very careful about your top level map nodes, as everything under that node (branch) will now become the same colour.  Visually this might not matter, but mentally your mind will group this as a distinct association.  So holistic idea generation might suffer if you do not give some careful consideration to your top level nodes.  I guess this makes the use of colour just as detrimental to idea generation as it is beneficial, if used incorrectly.</p>
<h4>Technique 3: Brainstorming.</h4>
<p>Mind mapping is a highly cognitive activity, which engages all areas of memory rapidly by linking distinct aspects together.  Maps help organize knowledge and structure it in a meaningful format, which benefits learning.  As such the more we practice it the better we become, and the more useful output we produce.  This is true of anything which is practiced, but the key difference here is the visual organisation and structure, which promotes our memories ability to recall key events, in turn allowing us to brainstorm more rapidly.</p>
<p>In order to get the full benefit from a brainstorming session, you should make sure that before you begin mind mapping, you have at least a full 15-20 minutes uninterrupted.  This is because initial ideas will come rapidly.  Distractions will pull you away from a lateral thinking flow of ideas, back into a linear thinking (trying to make sense of it all) mindset.  This is highly detrimental to producing good ideas whilst mind mapping.  In fact, the minute you begin to slow pace, and ideas begin to be noted down less regularly, you&#8217;ve already begun to slip into a linear thinking mind set.</p>
<p>Brainstorm rapidly.  When the ideas stop flowing, take a break.  Return and recall what you have done so far, and more ideas will follow, although at a much slower pace, as you&#8217;ve already lost your lateral thinking mindset, and now you are much more focused on linking thoughts together and filling in gaps.</p>
<p>An excellent tip to improve your brainstorming abilities, and to prevent you slipping into a linear mindset, is to practice noting ideas down as one or two words maximum.  The more you write on a node, the harder it is to process when recalling it, and the more inclined you are to think too much over it.  Both obviously have a negative impact on lateral thinking, so practice hard at keeping mapped thoughts to one or two words.  It really is tough at first, but once you master it, you&#8217;ll benefit greatly.</p>
<h4>Technique 4: External resources.</h4>
<p>When you&#8217;ve exhausted all your ideas, stop and consider how you could improve it further.  Feedback from others is obviously a good starting point, but before you do this there has been some excellent work already done by others that you can make use of.</p>
<p>The guys over at <a href="http://thetesteye.com/blog/" target="_blank">The Test Eye</a> came up with an excellent resource to use, to promote additional ideas in your mind maps called the <a href="http://thetesteye.com/blog/2010/11/software-quality-characteristics-1-0/" target="_blank">Software Quality Characteristics v1.0</a>.  This truly is an incredible resource to make use of, which will help you pin point gaps and areas of concern that you hadn&#8217;t even considered.</p>
<p>Michael Bolton also came up with a series of useful <a href="http://www.developsense.com/blog/2010/11/context-free-questions-for-testing/" target="_blank">context free questions</a> which I find very useful for considering other aspects I might have been biased towards while developing my ideas.</p>
<p>Taking tools away altogether and mind mapping with a group of people over a whiteboard can be highly beneficial as well.  This of course needs a very good facilitator who can focus the group and prevent the conversation straying too much from the task at hand.</p>
<p>Also highly worth considering, is to develop your own list of <a href="http://www.bettertesting.co.uk/content/?p=1204" target="_blank">lightweight personas</a> for reference to while developing your map.  These can be very useful prompts to defocus your thoughts and remove invalid assumptions you had created.</p>
<h3>Wrapup</h3>
<p>In this post we looked at the limitations of traditional test design and how mind mapping can help overcome these.  We went over using mind maps for generating test conditions and test ideas, and when one or the other should be used.  We discussed several techniques and tips which will help improve you mind mapping experience and skills.  There is still lots more to cover, which I hope to address over the next two posts in this series.</p>
<p>Thanks for reading.</p></div>
<div class="shr-publisher-1438"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>https://www.bettertesting.co.uk/content/?feed=rss2&amp;p=1438</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Tales from the trenches: Lean requirements gathering.</title>
		<link>https://www.bettertesting.co.uk/content/?p=1260</link>
		<comments>https://www.bettertesting.co.uk/content/?p=1260#comments</comments>
		<pubDate>Mon, 25 Jul 2011 06:18:31 +0000</pubDate>
		<dc:creator>Darren McMillan</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Mind Mapping]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mnemonic]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[techniques]]></category>

		<guid isPermaLink="false">http://www.bettertesting.co.uk/content/?p=1260</guid>
		<description><![CDATA[Summary In the following post I go over a lean form of requirements gathering and planning that I did with my new team at Maidsafe.  I provide examples, and tips...]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h3>Summary</h3>
<p>In the following post I go over a lean form of requirements gathering and planning that I did with my new team at <a href="http://www.maidsafe.net/" target="_blank">Maidsafe</a>.  I provide examples, and tips for those who might find themselves in similar situations.  I finish up by identifying the key lessons we can learn from this as testers.</p>
<h3><strong>The problem with visions</strong></h3>
<p>As most readers know I recently switched jobs to go work for some crazy  company on the west coast of Scotland, who’d planned to change the world  by bringing back a little thing called freedom, or at least in its  online sense.  Most  of my time during the first couple of months at MaidSafe had been  consumed with other things.  The biggest other thing I got the pleasure  of doing was a scoping exercise, for two of our new products being  developed for our sister company <a href="http://www.sigmoidsolutions.com/" target="_blank">Sigmoid Solutions</a>.   Now having spent so many years at the other end of scoping  exercises looking for gaps, flaws, risks, and even identifying new  requirements, this for me was a very fun experience, and it gave me a  real chance to make use of the testing skills I’d developed over the  years.</p>
<p>I  guess it was my own fault that I got side tracked from testing to write  up requirements for two of our current projects.  You see, I came in  with a fresh pair of eyes and realised that the team had been developing  from a vision; a great one at that, but still a vision.  For me a  vision is essentially someones dream, or an idea which they know roughly  how it should end up, but not the exact steps to get there.  As work  begins on a vision, the steps become more apparent, and evolve over  time.</p>
<p>The  problem for me when working with visions is that they&#8217;re large fuzzy  targets somewhere far in the distance that people are aiming for.  The  process of actually reaching that target can be pro-longed by not having  clearly scoped out what is required to achieve these goals.  More often  than not, teams will seek perfection whilst trying to meet these  them, adding in nice to haves that aren’t really essential for the  business, or at least for the current context.  Feedback  loops suffer, and god forbid anyone asks how much longer it’ll be  before something is in a releasable state!  After all we’ll only be  learning what’s required as we go, right?</p>
<p>Well  that’s my problem with visions, and don’t get me wrong, they actually  can work initially for small close knit teams, who can easily  communicate and develop initial visions rapidly.  That’s how MaidSafe  begun, a team of three people developing a radical idea for the  first couple of years, and it worked!  They got their initial concepts coded,  and certainly for them in the first couple of years, working from a vision in such a small team had paid off.</p>
<p>Teams  grow, and as more people become involved things inevitable change.  That small sharp communication ring between three people suddenly becomes unmanageable.  Pockets of unique knowledge begin to form in lots of small clusters throughout the team.  The business side begins  to ask difficult questions on current progress, pilot dates, and how much more needs done.  No one person can tell the whole story anymore.  Teams grow, and processes need to adapt to manage that growth.</p>
<h3>Creating a manageable process</h3>
<p>So  I highlighted the issue of working from a vision to the team and drew  up on a whiteboard a three tier hierarchy of what I thought we should  be doing.</p>
<ol>
<li>Vision &#8211; (Customer and stakeholders needs)</li>
<li>High level requirements &#8211; (Business requirements document / scope mind map)</li>
<li>Technical breakdown &#8211; (User stories)</li>
</ol>
<p>A simple model that gets the objective across, but still allows room for stakeholders to have their visions.   We simply break these visions down now, into something which is much more manageable.</p>
<p>Now  the problem a lot of companies have with documenting requirements and  any form of planning, is that it takes time.  Those that would rather just jump  right in and develop features, realise that after time it pays off to  do some form of requirements scoping exercise, prior to writing any code.</p>
<p>I’m  not convinced that a team has to spend weeks, or even months planning  and writing up requirements before they start development.  With this in  mind I proposed a rapid scoping exercise that would break down the  existing visions for each product into high level requirements.  I would  then be able to write up these requirements into a Business Requirements Document  (BRD), and then have the key stakeholders decide from this document, what was  required for each of our products upcoming Alpha releases.</p>
<p>The  requirements we agreed to do from the BRD would then be  taken to each team and broken down during technical requirements  meetings.   This would result in a bunch of user stories, which could  then go through a form of <a href="http://en.wikipedia.org/wiki/Planning_poker" target="_blank">planning poker</a>,  giving us an estimation of workload and confidence against each  broken down user story.  Lastly, lead developers and stakeholders would agree on a  monthly allocation of work to meet a key deliverable.</p>
<p>So  let’s quickly look over what we essentially did.  I find this to be a  much more lean form of requirements gathering, which with the methods  used gives a good middle ground for teams not wanting to spend too much  time on requirements gathering and planning, but still want a decent  level of task breakdown.</p>
<h4>Step 1: Breaking down visions</h4>
<p>We  had two products Alpha releases to break down.  We knew what we had  done so far, but weren’t sure about what we still had to do.  Being a mind map  fanatic, I thought a session of collaborative mind mapping would work  well here.  We also used a series of <a href="../?p=1204">Lightweight Personas</a> to help expand out scope and generate fresh ideas.</p>
<p>To  allow us to map out what was required for the first product (which had  much more development work required than the other) we drew up a  checklist on a white board of the key product areas to be worked on.   From each we then mind mapped out what was required in terms of  business requirements.  We’d also drew up on another white board a list  of lightweight personas that might interact with the product in some way  or another:</p>
<ul>
<li><span style="color: #3366ff;"><strong>User</strong></span></li>
<li><span style="color: #ff6600;"><strong>Administrator</strong></span></li>
<li><span style="color: #99cc00;"><strong>Seller</strong></span></li>
<li><span style="color: #ff0000;"><strong>Buyer</strong></span></li>
<li><span style="color: #cc99ff;"><strong>Hacker</strong></span></li>
<li><span style="color: #ff00ff;"><strong>External Developer</strong></span></li>
<li><span style="color: #00ccff;"><strong>Tester</strong></span></li>
</ul>
<p>I  used a different colour pen for each persona.  Strange?  Not really, the colour separation engages the right side  of your brain, which deals with your creative side, as a result inspiring fresh ideas.</p>
<p>The collaborative mind mapping went well, and within the space of a few hours, we’d scoped out our Pro products requirements.</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG109.resized.jpg"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG109.resized.jpg" alt="A scope mind map for our Pro products management interface." width="620" height="600" /><br />
</a><span style="font-size: x-small;">A collaborative scoping mind map for our Pro products management interface.  We clearly separate dependencies from the other version of the product, which will feed into the scoping exercise for that product if needed.</span></p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG117.resized.jpg"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG117.resized.jpg" alt="A scope mind map for our Pro products application and vault installers." width="620" height="600" /><br />
</a><span style="font-size: x-small;">Another collaborative scoping mind map, this time for our vault and product installers.</span></p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG118.resized.jpg"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG118.resized.jpg" alt="A scope mind map for our Pro products distributed vaults." width="620" height="600" /><br />
</a><span style="font-size: x-small;">This map was done on a day I was on holiday.  A collaborative brainstorm between two of our lead developers, to work out what was required for out distributed vault network.</span></p>
<p>The other product Core, only took a couple of hours as well in a later brainstorming session.  We opted to map the entire scope onto a single brainstorming map, thinking there wasn&#8217;t as much to it.   We used dashed lines to highlight dependencies between elements on the map .</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG132.resized.jpg"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG132.resized.jpg" alt="A scope mind map for our Pro products distributed vaults." width="620" height="600" /><br />
</a><span style="font-size: x-small;">This is our Core Beta scope mind map. Its broken down tasks later went on to be collectively know as Alpha scope since we&#8217;d realised that we had more to do than we&#8217;d originally thought.  Notice the use of an actor on this map, in this case customers that we&#8217;d like certain tasks to occur within their environment.</span></p>
<p>So  you can easily see that the task of getting the initial business  requirement scoped out, can be done very quickly.  That’s the real power of  mind mapping, and using additional tools in conjunction such as  lightweight personas and checklists of product feature areas.</p>
<p>If  you plan on facilitating a collaborative mind mapping session yourself, keep it simple, only have the  people necessary in the room.  Keep people on track, and try to steer  the mind mapping exercise yourself, using peoples input to develop the  map.  Prompt often upon lightweight persona’s to inspire ideas.   Probably the most important point if you’re a facilitator, is to make  sure that you&#8217;re comfortable with mind mapping, since you’ll be doing most  of the drawing.  The facilitation, drawing, and thinking of ideas can be quite a handful for some, so having experience mind mapping certainly helps.</p>
<h4>Step 2: Deciding what’s important</h4>
<p>Now  with the business requirements mind mapped, I had to take these and  present them in a format suitable for our key stakeholders to decide upon  what was important or not.  I decided to write a Business Requirements  Document (BRD) for this, similar in style to the <a href="http://www.bettertesting.co.uk/content/?page_id=839" target="_blank">spoof requirements document</a> I wrote for a Week Night Testing challenge a while back.</p>
<p>I had decided upon this because by its nature, it allows for further expansion  of requirements and identification of new ones (gaps).  In hindsight  though, I’d probably not go to this amount of effort again and simply  create a mind map of all the scope combined instead.</p>
<p>So  the idea here is that I got the key stakeholders into a room with the  lead developer for the project and discussed each requirement with  them.  The stakeholders, upon hearing the details about each requirement,  would then assign a <a href="http://en.wikipedia.org/wiki/MoSCoW_Method" target="_blank">MoSCoW priority</a> to it (with the woulds being out of scope for this release).  The whole  process took about two hours, and at the end we’d clearly identified  what was important for the business, for this months release, and what  wasn’t.  Some of the what wasn’t and lesser important tasks, would  easily have been done previously if we’d been working from visions.</p>
<p>The  stakeholders loved the BRD document.  I honestly think though, that  they’d have been just as comfortable looking at a digital mind map.  It  would have saved time, as it took me a couple of days to write up the  document, which would likely have been a couple of hours had it been a  mind map.</p>
<p>On  the plus side the document helped identify additional gaps, whilst I  was writing it.  I’d also used a who, what, why format for writing  business requirements.  This resulted in me struggling on a why for  some, therefore making me directly question the purpose of such  requirements.  After all, if you can’t justify why your doing something, then why  do it at all?  I found that to be really useful, and got discussions  going upon the purpose of some requirements, sometimes leading to new scope, or the removal of items.  I doubt though that I’d go to the effort of creating a BRD  document again, as I think a mind map would have caught as many gaps  potentially.</p>
<div>
<p class="main-caption" title="reference">Who, what, why (Business requirements creation mnemonic): Who is the person this requirement is intended for, e.g. as an administrator of the system. What is the element of the feature that this requirement asks for e.g. I would like a reporting option. Why explains the reason for having this requirement e.g. that allows me to see the current available storage space of the network. When combined, would form a business requirement which could bring value to some person, at some time.</p>
</div>
<h4>Step 3: Breaking down the business requirements</h4>
<p>Now  I knew what was important in terms of business requirements, I could  arrange a meeting with the team who&#8217;d be working on each project, to  break these requirements down further.</p>
<p>I  decided to buy a stack of index cards, and began to write out a  business requirement from the BRD on each card.  After I’d finished I  got the feature team into a room and explained my plans for the meeting.   The plan was simple, a two stage meeting.   The first part would  involve me discussing each requirement from the story cards, then us all  discussing what was involved technically, and as a result giving us  broken down stories to work from for each requirement.  This is the technical breakdown from the three tier plan that I&#8217;d originally proposed to the team.   The second part  involved the team putting an estimate against each story, along with a  level of confidence (high, medium low) on getting that work done in the  estimated points.</p>
<p>I  used a form of planning poker for the estimating, with a slight twist.   Since the team worked in points, we didn’t care about time, we only had  to estimate in points (1-3) and let our velocity determine how many  points we could complete in the month.  I’d also added an additional  card into the deck (a split card).  Essentially if the task was too large  to possibly estimate, and if the majority had voted to split it, we’d  attempt to break it down further, and then estimate the broken down  cards.</p>
<p>For both teams this probably took the best part of a day to complete.</p>
<h4>Step 4: Agreeing tasks for the next sprint.</h4>
<p>I’ve  talked in the past about how mind maps can be useful for visual  feedback of information.  To help me present the scope of work to be  done for each products Alpha releases, I gathered it all in the form of a  large scope proposal mind map, developed using my favourite mind mapping tool Xmind.</p>
<p style="text-align: center;"><a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG212.resized.jpg"><img style="margin-bottom: 4px;" src="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/IMG212.resized.jpg" alt="Me standing beside a scope mind map for our Pro product that we'd printed using an industrial sized spool printer.  An equally large sized map later join this on the wall for our Core product." width="620" height="500" /><br />
</a><span style="font-size: x-small;">Me standing beside a scope mind map for our Pro product that we&#8217;d printed using an industrial sized spool printer.  An equally large sized map later joined this on the wall for our Core product.</span></p>
<p>This  might look a bit crazy, but in reality it actually  worked out quite well and allowed us to easily pick off what was important for  that sprint.  As work progressed we marked out areas on the map which  had been completed, and had the other tasks for the month circled out  too, allowing us to clearly see our progress.</p>
<p>I&#8217;ll provide hard links to these massive mind maps as you really need to zoom into them to see them.  You can view the Core one <a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/Tech-Scope-core.png" target="_blank">here</a>, and the Pro one <a href="http://www.bettertesting.co.uk/content/wp-content/uploads/2011/07/Tech-Scope1.png" target="_blank">here</a>.</p>
<p>We  took a rough <a href="http://en.wikipedia.org/wiki/Guesstimate" target="_blank">guesstimate</a> of how many points we’d get through in the  month and decided on a different main sprint objective for each  product.  Our guesstimate on how much work we could get through turned  out to be way off, but we knew that would be the case at the start.  We&#8217;ll learn over time and get better at this.</p>
<h4>Step 5: Staying focused.</h4>
<p>With  everything planned, and the scope agreed and signed off, we had a clear  target for the month.  To stop us going off track I’d previously  introduced two things, with the later not solely being for this purpose.</p>
<p>Change  requests, change control, or whatever you want to call them often gets lots of bad press.  People generally don’t like being told they can’t  just do innovative things, or code those little nice to have improvements here and there,  that generally are never critical to shipping the product.   When I first heard of this I hated it too!  I quickly saw why it was  necessary though.  After all, scope creep, and the pursuit of perfection  can potentially cripple teams, and in the long run demoralise people.   So you need to get the balance right somewhere in between.  That’s why  if your change request / control policy is implemented well, and  continually monitored, it can work wonders.</p>
<p>The  other was just a basic daily standup, which remember in the past for a  small team wouldn’t have been necessary.  All I’ve did here is come into  a growing team with a fresh pair of eyes and said “Hey, this could work  well for us, let’s try it!”  Daily standups are good for watching if people are  going off track as you can listen out for telling signs such as:</p>
<ul>
<li>It would be good if we had …</li>
<li>At some point we should …</li>
<li>There is a few good ideas for …</li>
<li>I rejected this because there is a better way to …</li>
<li>There’s some more to be done in blah blah blah, will I add a story in for that?</li>
</ul>
<p>You  get the idea.  Divert these to your change request process, and if you  manage it well people will begin to appreciate it in the long run.   If  it becomes that place people know as the graveyard for ideas, then  you’re clearly doing it wrong, and need to work at improving this process, or find something better that fits your context.</p>
<div>
<p class="main-caption" title="reference">To  keep track of tasks we use pivotal tracker, which for the most part is  pretty decent.  The one thing I miss though is the sense of achievement you get  with a manual white board.  When the team pushes something over to be  tested, and even if at the first attempt it doesn’t make it past me or  whoever had been testing the card.  When it does actually get there, you  get a real sense of achievement in what you’re doing, and feel like  you’ve actually progressed something.  I just don’t get that with  software planning and task management tools.  I feel like we’re missing  something here.</p>
</div>
<p>From  our end of sprint retrospective, we got a lot of good feedback on the  new approach to planning.  People generally enjoyed the greater  visibility from being involved in scoping, and technical breakdown /  estimation meetings.  They also enjoyed having a clear achievable target  for that month, as opposed to a long distant goal.  There is lots we  can improve on, and no doubt this entire process will change significantly over time.</p>
<p>Having  short snappy sprints, with retrospectives at the end certainly keeps a  real sense of momentum going, and creates an aura of excitement at times  (or perhaps that&#8217;s just me?)  As long as we continue to self improve  ourselves and learn from our mistakes, we can do wonderful things.</p>
<h3>Lessons learnt</h3>
<p>Personally  I’ve enjoyed the whole experience of sitting on the other side of the fence, scoping out and planning releases, and even getting down to the  nitty gritty of writing up requirements.  Although it wasn’t the  experience I’d have expected to gain when I took the job, it has  certainly proved very worthwhile and gives me skills which I can apply  directly to my job as a tester.</p>
<p>It  certainly proves to me how invaluable collaborative mind mapping can  be.  I’ll continue to use this as a means of generating and expanding  test ideas with others, and to help solve difficult testing problems we encounter, such as tackling scalability, or proving difficult product  claims.</p>
<p>Lightweight  personas helped spark fresh ideas when mapping out requirements scope.   As a tester these will always prove essential for me in test case  design, and big picture ideas.  They’ll help me think more in terms of  problems being solved by the product, that in turn identifying key issues,  such as extensibility problems with design which could affect third  party developers at a later date.  Perhaps even, accessibility concerns  for a persona we’d not considered before.</p>
<p>Mnemonics,  continue to prove useful as long as you can directly apply your own,  when needed.  The who, what, why mnemonic I’d used to develop user  stories around the business requirements, came into my head from me  trying to solve a problem.  That problem being, the presentation of  requirements in a readable, and justifiable format that could be read,  and understood by key stakeholders.  While other peoples mnemonics may prove  useful in the short term, being able to build your own set will make  them much more beneficial for you to use, in your context, in the long term.</p>
<p>There  is a lot more I’ve learnt from this experience, but hopefully you’ll  have picked this up yourself from what you’ve read already.  Rather than  turn this already long post into what would feel like a small e-book,  I&#8217;ll finish up here, and extend a warm thank you for taking the time out to read my thoughts.</p>
<div class="shr-publisher-1260"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>https://www.bettertesting.co.uk/content/?feed=rss2&amp;p=1260</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lightweight personas</title>
		<link>https://www.bettertesting.co.uk/content/?p=1204</link>
		<comments>https://www.bettertesting.co.uk/content/?p=1204#comments</comments>
		<pubDate>Sun, 12 Jun 2011 21:54:30 +0000</pubDate>
		<dc:creator>Darren McMillan</dc:creator>
				<category><![CDATA[Company Image]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[techniques]]></category>

		<guid isPermaLink="false">http://www.bettertesting.co.uk/content/?p=1204</guid>
		<description><![CDATA[Summary In the following post I discuss the concept of lightweight personas, and look at how they can be used to prompt test idea&#8217;s.  I explain the differences briefly, between...]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h3>Summary</h3>
<p>In the following post I discuss the concept of lightweight personas, and look at how they can be used to prompt test idea&#8217;s.  I explain the differences briefly, between a traditional persona, and a lightweight one.  I then go on to give examples of real life lightweight personas and demonstrate how they can be used to inspire idea&#8217;s.</p>
<h3>Personas explained</h3>
<div>
<p>In my last post about <a href="http://www.bettertesting.co.uk/content/?p=1192" target="_blank">test case design techniques</a> I’d mentioned the topic of lightweight personas.  I think it’s probably worthwhile discussing their usage as a test technique, and being lightweight, this shouldn’t take too long.</p>
<p>So what is a lightweight persona and how does this differ from a normal persona?  Well your typical usage of a traditional persona, would be the creation of an actor, a description of their personality traits, and how they’d interact with your system.  The actor Joe Smith for example, could be a user of the system who is easily bored, so would generally like an application to fulfil his needs very quickly, with little thought or understanding of its features required on his part.  This would be a traditional, although very short persona.  Generally they would be expanded a little, and might be accompanied with a fictional picture of that person.</p>
<p>A lightweight persona is generally a one or two word description of a type of user who will interact with your system in some way or another.  Essentially, the persona list becomes a checklist.  This persona checklist can be very useful for the creation and validation of test cases, requirements, test/business deliverables and goals.  With a mental model of personality traits, or experience used in combination with the user types, you can rapidly generate excellent test ideas around a system.  Simple huh?  It really is, and lightweight personas can be extremely powerful.</p>
<p>If you plan on collaborating with others, perhaps in a group brainstorming session, a simple yet very powerful technique that you can use, is to invoke lateral thinking within the group.  This is easily done, by simply listing each lightweight persona on a highly visible area in the room, such as a whiteboard, and for each persona use a different colour.  From simply listing each persona, in different colours, you&#8217;ll engage the creative side of peoples brains in the group, making them much less prone to linear thinking.  It sounds a little silly, but it really does work.</p>
</div>
<h3>Example lightweight personas</h3>
<p>So lets look at some real life examples of lightweight personas.  The following are personas I&#8217;ve been using at <a href="http://www.maidsafe.net/" target="_blank">MaidSafe</a> to flesh out requirements scope for future releases:</p>
<div>
<ul>
<li>User</li>
<li>Administrator</li>
<li>Seller</li>
<li>Buyer</li>
<li>Hacker</li>
<li>External Developer</li>
<li>Tester</li>
</ul>
<p>As I said each lightweight persona is usually one, or two words at most.  If you develop these on your own they will make perfect sense to you, however if you’re using them in a group, it’s best to verbally explain each users role briefly to the others.  For example a hacker would look for ways to gain access to a system, whilst a seller may think of ways to help sell the system.</p>
<p>The examples I’ve provided are mostly straight forward, and I’d assume that most people when they think about ways to test the system, would at least always consider how the end user would interact with it.  When we start to consider other people involved in the product, we begin to take in more important aspects, which sometimes some might not consider as their responsibility.  Test is all about providing valuable information though, and I&#8217;ll provide some examples which may highlight why it&#8217;s important to have a holistic mindset when approaching testing of a product.  When I say holistic, I mean the whole system, from a simple standalone component, to business goals.</p>
<h3>An ocean full of test ideas</h3>
<p>So what are these important aspects, and why should I care?  Well, the seller for example is primarily concerned with how he can best sell his product.  If we think of possible factors that might affect the tests we write or execute, we’ll begin to consider important business level decisions, such as how something impacts the company image, or the businesses ability to gain credibility.</p>
<p>At <a href="http://www.maidsafe.net/" target="_blank">MaidSafe</a>, being a small start-up, some of the important testing activities that might gain us initial credibility with clients, are the validation of claims we state.  One example of a MaidSafe product claim is the ability to gain significant network performance improvements, when using <a href="http://www.maidsafe.net/" target="_blank">MaidSafe</a> or our sister company <a href="http://sigmoidsolutions.com/" target="_blank">Sigmoid&#8217;s</a> software.  If we can prove this claim internally, or better still on a potential customers site via credible testing, and reporting, we stand a much better chance of selling the product to other potential customers, as we now have a valid benchmark to show them.</p>
<p>Another example would be the impact to a companies image when thinking in the seller personas mindset.  Let&#8217;s imagine that a customer beta trial of the product we’re testing is looming. Perhaps it’s a month away.  Being responsible for testing the product you should know, or at least have a rough idea of its stability, and perhaps some notion of how far away it is from being fit for release.  Let’s say the owner, or some other influential party finds another suitable candidate to beta test the product.  Only this client wants it the product two weeks sooner than the other to test.  Now it may be ok, or it might not, however the companies image is at stake here, and whilst a level of defect feedback is expected from the customer, giving them something which is in no fit state for customer trials, may have a serious negative impact to your companies image.  Your job as a tester is to provide valuable information about the product, and in this case a simple “Stop! We’re not ready!” may well do the job.</p>
<p>Administrators, are all about managing, modifying and being aware of important aspects of the product.  With an admin hat on I can easily spot gaps, or potential flaws in the system, such as bottlenecks in administrative capabilities.  Likewise, I could simply spot an admin type feature that has no useful outcomes, and question why it’s even there.</p>
<p>Buyers are concerned with useful features that solve their problems and don’t cost the earth to purchase.  As a tester, thinking as a potential buyer, I might ask myself “Well, is that it?”.  Thinking in terms of value to a potential buyer might see you considering what makes your product any better from the rest of the competition.  This may lead to fresh ideas, or the highlighting of specific risks with designs, perhaps even the prompting of analysis of the competition, or at most a complete re-design.  Not my role you might question?  Well I beg to differ, and any good tester will consider all aspects of the business, reporting any issues found swiftly.  Think holistically remember.</p>
<p>Hackers will look to gain access, disrupt, or even bring down your system.  As a tester, having this persona in mind can highlight potential areas of weakness.  Being involved in technical design meetings early on in the requirement scoping phases, can really help with this mindset, as you become more aware of potential weak points in the system.  Even if you don’t highlight those flaws there and then, (as you may have not been aware of them) having this persona in mind may bring them to light at a latter date, and possibly save your company from potential embarrassment, or indeed money losses.  Even as a trigger heuristic this may lead to you prompting new business tasks such as external security audits, which if we tie with the seller persona, leads to credibility, and as a result potential sales.</p>
<p>An external developer could simply be a contractor that you’ve hired to develop some specialised feature, or perhaps to help speed up internal development.   They could even be someone looking to make use of your public facing API’s to develop some 3rd party product; think Twitter/Tweetdeck, or IPhone/Apps.  As a tester, thinking as an external contractor developing code, I’d obviously flag up an obvious risk about what happens, once this contractor goes?  Who maintains the code developed?  Did some knowledge transfer occur prior to them leaving to help smooth the handover?  Is there decent documentation (if needed)?  Obviously the outcome of these questions will have a direct impact on quality, either for the better, or worse.  Alternatively, external developers who are looking to build their own applications, which will make use of your products public facing API’s, obviously flag up more concerns.  Do these API’s fulfil their needs?  Are they properly tested?  Being a black box to this external developer, we really want to ensure that they can easily find what they need, without much effort.  So a well structured, readable, usable and documented set of public API’s is essential.</p>
<p>I&#8217;ll not bore you too much with the tester persona, as it should be pretty obvious.  We are concerned with risks, effort, and returns from time invested; after all, testers never have enough time do they?  So here we might simply be thinking about risks, such as the performance, or scalability of the product, and looking at ensuring the system fulfils these needs.  Perhaps we even look a product version or two ahead.  Now extensibility becomes important, and we’ll consider aspects of the system that will be prone to later extension, and ensure that this is possible, whilst still allowing for backwards compatibility, if needed.  Likewise testability, might throw up a need for a test harness somewhere, or a script to manage, or mock aspects of the system.  Really here, we can think of so much!</p>
<h3>Final thoughts</h3>
<p>So you can see that by considering the types of actors who may interact with your system at some point or another, and by putting some thought into the things they might do, or indeed the attitudes they might have, we can quickly model powerful test ideas around these actor personas.  I use these all the time when generating test conditions for new features to be tested, or for generating high level test idea&#8217;s.  I also find them extremely useful for determining risks.</p>
<p>I hope if you aren&#8217;t making good use of lightweight personas already that you&#8217;ll find them useful.  Thanks for reading.</p>
</div>
<div class="shr-publisher-1204"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>https://www.bettertesting.co.uk/content/?feed=rss2&amp;p=1204</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
