<?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>Valtech UK &#187; Jorge Migueis</title>
	<atom:link href="http://blog.valtech.co.uk/author/jorge/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.valtech.co.uk</link>
	<description>Aggregated works of Valtech UK consultants</description>
	<lastBuildDate>Mon, 30 Jan 2012 12:23:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Unit tests, code coverage and the hidden trap&#8230;</title>
		<link>http://blog.valtech.co.uk/agile/unit-tests-code-coverage-and-the-hidden-trap/</link>
		<comments>http://blog.valtech.co.uk/agile/unit-tests-code-coverage-and-the-hidden-trap/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 14:49:30 +0000</pubDate>
		<dc:creator>Jorge Migueis</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[coverage]]></category>
		<category><![CDATA[Unit test]]></category>

		<guid isPermaLink="false">http://blog.valtech.co.uk/?p=330</guid>
		<description><![CDATA[Tweet Quality has always been a &#8220;hot&#8221; subject in software engineering, and several good development practices used in Agile development, unit testing for example, have been created to improve the quality of the softwares developed. Programme Managers, Project Managers and Assurance Quality Managers haven&#8217;t just been looking for techniques to improve quality, they&#8217;ve also been [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.valtech.co.uk%2Fagile%2Funit-tests-code-coverage-and-the-hidden-trap%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.valtech.co.uk/agile/unit-tests-code-coverage-and-the-hidden-trap/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.valtech.co.uk/agile/unit-tests-code-coverage-and-the-hidden-trap/"  data-text="Unit tests, code coverage and the hidden trap&#8230;" data-count="horizontal" data-via="valtech">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Quality has always been a &#8220;hot&#8221; subject in software engineering, and several good development practices used in Agile development, unit testing for example, have been created to improve the quality of the softwares developed.</p>
<p>Programme Managers, Project Managers and Assurance Quality Managers haven&#8217;t just been looking for techniques to improve quality, they&#8217;ve also been looking for ways to monitor the quality of the projects and the application of these techniques.</p>
<p>This has lead to the development of numerous tools to check the unit testing coverage, the style of the code and its compliance to well accepted rules. Plus, of course, dashboards that gather all that information and present it in a user friendly way.</p>
<p>One of the most commonly used metrics is the code coverage of the unit tests. We often see in Agile teams rules like, &#8220;the line coverage should at least 80%&#8221;, or &#8220;the branch coverage should be at least 70%&#8221;. But&#8230;herein lies the hidden trap.<span id="more-330"></span><!--more-->The code coverage is not enough to verify the quality of the tests. Recently, I saw some unit tests that were exercising the code, but did not have real assertions. The test would only check that the data received was not nil. Something like:</p>
<p><code style="color: coral; text-align: left;"><br />
/**<br />
* Example of a useless test.<br />
* As Mashooq Badar explained in a previous entry<br />
* of this blog, tests should have explicit names.<br />
*/<br />
public void<br />
testThatTheCodeRunsWithoutCheckingTheReturnedValue() {<br />
// Prepare Context<br />
// create mock object for instance using Mockito<br />
AnInterfaceToMock mockObject =<br />
mock(AnInterfaceToMock.class);<br />
// Create instance of class under test<br />
// and inject mock objects<br />
ClassUnderTest anInstance = new ClassUnderTest();<br />
anInstance.setInterfaceToMock(mockObject);<br />
// Run code to test<br />
List result = anInstance.operationUnderTest();<br />
// Assertions<br />
assertNotNull(result);<br />
}</code></p>
<p>This test is almost useless, as it does not check the list of data it received. We do not know whether or not the &#8216;operationUnderTest&#8217; performed its job properly. The only thing this test shows is that the &#8216;operationUnderTest&#8217; did not throw up an exception. A change in the code of the class under test will probably not affect this test. However, the quality dashboard will present a healthy project with a high level of code coverage and instil a false confidence in the managers&#8217; minds. There is no tool that can perform that extra check, for now.</p>
<p>This is one of the reasons why code reviews have to be performed, published and monitored as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.valtech.co.uk/agile/unit-tests-code-coverage-and-the-hidden-trap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Risk Management</title>
		<link>http://blog.valtech.co.uk/agile/agile-risk-management/</link>
		<comments>http://blog.valtech.co.uk/agile/agile-risk-management/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 11:29:21 +0000</pubDate>
		<dc:creator>Jorge Migueis</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[technical risk]]></category>

		<guid isPermaLink="false">http://blog.valtech.co.uk/?p=160</guid>
		<description><![CDATA[Tweet By Jorge Migueis When a team adopts Agile processes, they can sometimes forget to retain the good practices from the &#8220;old&#8221; processes. One of these forgotten practises is Risk Management. People are going to rightfully argue that Agile will ensure that the constant feedback loops of daily stand-ups, demonstrations and retrospectives make issues more [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.valtech.co.uk%2Fagile%2Fagile-risk-management%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.valtech.co.uk/agile/agile-risk-management/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.valtech.co.uk/agile/agile-risk-management/"  data-text="Agile Risk Management" data-count="horizontal" data-via="valtech">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>By <a href="http://blog.valtech.co.uk/author/jorge/">Jorge Migueis</a></p>
<p>When a team adopts Agile processes, they can sometimes forget to retain the good practices from the &#8220;old&#8221; processes. One of these forgotten practises is Risk Management. People are going to rightfully argue that Agile will ensure that the constant feedback loops of daily stand-ups, demonstrations and retrospectives make issues more visible and can often raise them earlier than in other processes. However, this discussion is about risks not problems. A risk is a potential issue that has not occurred yet. A problem is an issue that happened and that you need to solve. Agile processes will help you identify problems early, they will not help detect risks. To detect risks and manage them, you need a proper risk management process within your Agile project process.</p>
<p>So, what risk management process can we utilise? Risks, by definition, have to be discovered before they become problems. Therefore, we need proactive actions to find them. When the team is gathered to discuss the product backlog and the iteration backlogs, each member of the team should ask themselves:<br />
•	What are the business risks linked to these stories/tasks (e.g. lack of knowledge of the business rules even on user side);<br />
•	What are the financial risks (e.g. may require acquisition of an expensive product, or help from consultants);<br />
•	What are the technical risks (e.g. performance concerns, unknown technology);<br />
•	What are the organisational risks (e.g. dependency on another external team).</p>
<p>The same questions should be asked again during the planning meetings. This is an active process. Everybody should think about these questions and try their best to answer them. </p>
<p>Just answering these questions and identifying risks is not enough. You then need to move to the next step of this process, which is to define a mitigation plan for each risk discovered. The  plan does not need to be a full document; a simple sentence can be sufficient, but it must always be completed with a dead line date. The dead line is very important. It defines the time when your risk becomes a real problem. If the risk has not been mitigated by the date specified, then you have a problem that will probably be difficult to solve. You then need to define and apply a resolution plan. In Agile processes, a common way to mitigate technical risks is to define spikes (investigation by prototyping). Once a spike has confirmed a technical solution, this solution can be used in a future sprint/iteration.</p>
<p>For each risk, you can also specify three more very useful piece of information:<br />
•	Impact on project if it becomes a problem. It can be a sentence and a grade (e.g. severe, medium, benign);<br />
•	Probability of occurrence (e.g. likely, unlikely);<br />
•	Cost to mitigate it.</p>
<p>These data will help you assess whether it is worth mitigating the risk. You probably do not want to mitigate a benign risk that is expensive to mitigate and is unlikely to happen.</p>
<p>As for every action and sub-process applied in an Agile project, do not forget to review your risk management process during the retrospectives.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.valtech.co.uk/agile/agile-risk-management/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile &#8211; The importance of tools</title>
		<link>http://blog.valtech.co.uk/agile/agile-the-importance-of-tools/</link>
		<comments>http://blog.valtech.co.uk/agile/agile-the-importance-of-tools/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 16:00:19 +0000</pubDate>
		<dc:creator>Jorge Migueis</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.valtech.co.uk/?p=157</guid>
		<description><![CDATA[Tweet See a new article on Agile tools by Jorge Migueis here. We work in the IT industry where we build tools with the aim of helping our clients or company to be more efficient. However, sometimes we forget to do the same for ourselves. It is often said that Agile methodologies such as XP, [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.valtech.co.uk%2Fagile%2Fagile-the-importance-of-tools%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.valtech.co.uk/agile/agile-the-importance-of-tools/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.valtech.co.uk/agile/agile-the-importance-of-tools/"  data-text="Agile &#8211; The importance of tools" data-count="horizontal" data-via="valtech">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>See a new article on Agile tools by Jorge Migueis <a href="http://blog.valtech.co.uk/articles-case-studies/agile-the-importance-of-tools/">here</a>.</p>
<p>We work in the IT industry where we build tools with the aim of helping our clients or company to be more efficient. However, sometimes we forget to do the same for ourselves. It is often said that Agile methodologies such as XP, SCRUM and Kanban quickly reveal any problems in a project. It is true and I would add that they quickly highlight the need of tools to improve the team&#8217;s efficiency, reduce the waste and reach a good level of quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.valtech.co.uk/agile/agile-the-importance-of-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

