<?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"
	>

<channel>
	<title>Nahuel Beni's Blog</title>
	<atom:link href="http://blogs.southworks.net/nbeni/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.southworks.net/nbeni</link>
	<description>Not Just another Southworks weblog</description>
	<pubDate>Tue, 23 Jun 2009 01:42:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Threat Modeling &#8211; Modeling with Microsoft&#8217;s SDL Threat Modeling Tool</title>
		<link>http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/</link>
		<comments>http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 12:10:00 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Threat Modeling]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/</guid>
		<description><![CDATA[This is the third post on a series of Threat Modeling post, previously I wrote about Information Gathering and The Modeling Process. On this opportunity I&#8217;d like to introduce you to a very useful tool provided by Microsoft, the SDL Threat Modeling Tool.
Creating Architecture Diagrams
Using Visio&#8217;s engine, this tool helps us in the process of [...]]]></description>
			<content:encoded><![CDATA[<p>This is the third post on a series of Threat Modeling post, previously I wrote about <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">Information Gathering</a> and <a href="http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/">The Modeling Process</a>. On this opportunity I&#8217;d like to introduce you to a very useful tool provided by <a href="http://www.microsoft.com">Microsoft</a>, the <a href="http://msdn.microsoft.com/en-us/security/dd206731.aspx">SDL Threat Modeling Tool</a>.</p>
<p><strong>Creating Architecture Diagrams</strong></p>
<p>Using Visio&#8217;s engine, this tool helps us in the process of creating Architecture Diagrams.</p>
<p>So, let&#8217;s take as an example, a simple system in which we have a SQL Server, a Web Page and the user which uses the page.</p>
<p><em>(This is a simplistic scenario specially thought for this example; it does not in any way suggest a way of designing or programming)</em></p>
<p>First, identify the components of the solution. In our example, we have The <em>User/Browser (External Interactor),</em> the <em>Web Page (Process),</em> and the <em>SQL Server (Data Store)</em>.</p>
<p><em>(Let&#8217;s assume we have gathered all required information following the steps described in my <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">previous post</a> and move to using the tool, threat modeling)</em></p>
<p>  <a href="http://blogs.southworks.net/nbeni/files/2009/06/image3.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image3-thumb.png" border="0" alt="image3" width="634" height="176" /></a>  </p>
<p>Modeling with the tool is quite simple, just drag and drop the elements in the canvas (Visio-Like) and then join with the flow arrows.</p>
<p><strong>Identifying Threats</strong></p>
<p>The tool automatically generates &#8220;threats placeholders&#8221; following the STRIDE Chart, mentioned in my <a href="http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/">previous post</a>, for each component and flow of the diagram. It also provides us with some tips to identify those threats.</p>
<p><a href="http://blogs.southworks.net/nbeni/files/2009/06/image4.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image4-thumb.png" border="0" alt="image4" width="644" height="383" /></a></p>
<p><strong><em>NOTE: The tool also has TFS integration, so you will be able to open a bug (see &#8220;file bug&#8221; in the screen) directly from the tool.</em></strong></p>
<p>At this point you should complete the placeholders for each element with the corresponding threat, or certify there is none for it. I&#8217;ll add one just as an example.</p>
<p>Let&#8217;s suppose that the webpage does not parse the user/password requested in the login. Then we have a SQL Injection Threat (could be either Tampering or Information Disclosure depending on the solution.)</p>
<p><a href="http://blogs.southworks.net/nbeni/files/2009/06/image5.png"><img src="http://blogs.southworks.net/nbeni/files/2009/06/image5-thumb.png" border="0" alt="image5" width="644" height="348" /></a></p>
<p>At this point, we should file a bug, and, once the bug is closed, update the threat model with the corresponding mitigation.</p>
<p><img src="http://blogs.southworks.net/nbeni/files/2009/06/image6.png" border="0" alt="image6" width="640" height="253" /></p>
<p>There&#8217;s a lot more to investigate, I leave that to you <img src='http://blogs.southworks.net/nbeni/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hope you find this information useful; feedback and comments are always welcomed <img src='http://blogs.southworks.net/nbeni/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2009/06/13/threat-modeling-modeling-with-microsofts-sdl-threat-modeling-tool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Threat Modeling &#8211; The Modeling Process</title>
		<link>http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/</link>
		<comments>http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/#comments</comments>
		<pubDate>Tue, 26 May 2009 12:00:00 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Threat Modeling]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-the-modeling-process/</guid>
		<description><![CDATA[This is the second post regarding Threat Modeling. On the previous post I talked about information gathering before starting with the process of threat modeling per se.
On this second post I’ll explain that process in a theoretical way, and, on a future post, show how this can be applied using Microsoft SDL Threat Modeling Tool.

Threat [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">This is the second post regarding Threat Modeling. On the <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">previous post</a> I talked about information gathering before starting with the process of threat modeling per se.</p>
<p align="justify">On this second post I’ll explain that process in a theoretical way, and, on a future post, show how this can be applied using <a href="http://msdn.microsoft.com/en-us/security/dd206731.aspx">Microsoft SDL Threat Modeling Tool</a>.</p>
<p align="justify">
<p><strong>Threat Modeling Process</strong></p>
<p align="justify">The threat modeling process has four main steps and it’s intended to help identifying those areas of higher risk within the application, and will also be useful for creating test cases on a future security test plan.</p>
<ol>
<li>
<div>Identify threat paths</div>
</li>
<li>
<div>Identify threats</div>
</li>
<li>
<div>Identify vulnerabilities</div>
</li>
<li>
<div>Rank/prioritize the vulnerabilities</div>
</li>
</ol>
<p align="justify">
<p><strong>Identify threat paths</strong></p>
<p align="justify">The first step is mainly summarized in my previous post, <a href="http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/">Threat Modeling - Information Gathering</a>, the main objective is to identify overall threat paths (data flows and components) and gather knowledge that will allow us to define the threat level that each component or data flow has.</p>
<p align="justify">
<p><strong>Identify threats</strong></p>
<p align="justify">For each threat path, we should dig deeper on the processing done, and identify the threats of each individual process.</p>
<p align="justify">
<table border="1" cellspacing="0" cellpadding="5" width="580">
<tbody>
<tr>
<td width="580" valign="top">
<p align="justify"><em><strong>TIP: Useful questions we should address:</strong></em></p>
<ul>
<li>
<div><strong><em>What processing does the component perform?</em></strong></div>
</li>
<li>
<div><strong><em>How does it determine identity?</em></strong></div>
</li>
<li>
<div><strong><em>Does it trust data or other components?</em></strong></div>
</li>
<li>
<div><strong><em>What data does it modify?</em></strong></div>
</li>
<li>
<div><strong><em>What external connections does it have?</em></strong></div>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p align="justify"><em></em></p>
<p><strong></strong></p>
<p><strong>Identify vulnerabilities</strong></p>
<p align="justify">The next step is to identify the actual vulnerabilities for each component.</p>
<p align="justify">For this I use the <a href="http://blogs.msdn.com/sdl/archive/2007/10/29/the-stride-per-element-chart.aspx">“STRIDE” chart</a> but any categorization should work if you adjust it to your solution/company needs.</p>
<p align="justify">
<p align="justify"><img style="float: none;margin-left: auto;margin-right: auto" src="http://blogs.southworks.net/nbeni/files/2009/05/image.png" border="0" alt="image" width="491" height="139" /></p>
<p align="justify">
<p align="justify"><em><strong></strong></em></p>
<table border="1" cellspacing="0" cellpadding="5" width="580">
<tbody>
<tr>
<td width="580" valign="top">
<p align="justify"><em><strong>TIP: A way of identifying these vulnerabilities is by testing itself (trying to break the system).</strong></em></p>
</td>
</tr>
</tbody>
</table>
<p align="justify"><strong><em></em></strong></p>
<h5><a name="_Rank/prioritize_the_vulnerabilities"></a></h5>
<p><strong></strong></p>
<p><strong>Rank/prioritize the vulnerabilities</strong></p>
<p align="justify">Nothing that will require too much explanation here, the DREAD model is proven to be highly effective for this:</p>
<ul>
<li>
<div>Damage Potential: How much damage could this cause?</div>
</li>
<li>
<div>Reproducibility: How easy can it be reproduced?</div>
</li>
<li>
<div>Exploitability: How much effort is required?</div>
</li>
<li>
<div>Affected users: How many/which users could be affected?</div>
</li>
<li>
<div>Discoverability: How easy is to discover the threat?</div>
</li>
</ul>
<p align="justify">Then add up the results and the higher DREAD scores should come first when fixing vulnerabilities.</p>
<p align="justify">
<p>Hope you find this information useful; feedback and comments are always welcomed <img src='http://blogs.southworks.net/nbeni/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2009/05/26/threat-modeling-the-modeling-process/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Threat Modeling &#8211; Information Gathering</title>
		<link>http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/</link>
		<comments>http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/#comments</comments>
		<pubDate>Fri, 22 May 2009 14:14:33 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Threat Modeling]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/</guid>
		<description><![CDATA[In this post, I’ll explain the concept of Information Gathering, the first step for creating a threat model, and some tips to ensure the right data has been collected before creating the actual threat model.
 
Information Gathering
As said before, Information gathering is the first step to creating a Threat Model. During this process the following items [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">In this post, I’ll explain the concept of Information Gathering, the first step for creating a threat model, and some tips to ensure the right data has been collected before creating the actual threat model.</p>
<h5 align="justify"> </h5>
<p><strong>Information Gathering</strong></p>
<p align="justify">As said before, Information gathering is the first step to creating a Threat Model. During this process the following items should be identified: </p>
<ul>
<li>
<div align="justify">Entry Points to the solution.</div>
</li>
<li>
<div align="justify">Assets to be protected from possible attackers.</div>
</li>
</ul>
<p align="justify">For this process, you need to be certain that the whole solution is being considered (and not just a part of it <i>e.g. the database,</i>) a good way of doing this is: </p>
<ul>
<li>
<div align="justify">Reviewing the solution diagrams.</div>
</li>
<li>
<div align="justify">Meeting with the architects of the solution.</div>
</li>
<li>
<div align="justify">Analyze the solution with debugger tools.</div>
</li>
</ul>
<table border="1" cellspacing="0" cellpadding="5" width="580">
<tbody>
<tr>
<td valign="top" width="580">
<p align="justify"><i><strong>TIP: Documents may be out of date, so you shouldn’t rely on them</strong></i></p>
</td>
</tr>
</tbody>
</table>
<h5 align="justify"> </h5>
<p><strong>Output</strong></p>
<p align="justify">The output of information gathering, as you may have already realized, should be a complete set of architecture diagrams in which the different components and data-flows are identified. Especially those that come from the outside (should be least trusted.) </p>
<h5 align="justify"> </h5>
<p><strong>Sketching the architecture diagram</strong></p>
<p align="justify">The architecture diagrams should be <em>based</em> on the documentation that is already created for the solution <em>(remember not to rely in documentation)</em>, and updated with all information that comes up after reviewing them, and meeting with the architects of the solution.</p>
<p align="justify">Once the architecture diagrams are created, it’s wise to check the gathered information with what actually happens in the solution, by doing some <em>runtime inspection</em>, also called <em>application footprinting</em> (this is where debuggers and external tools come in) which is intended to identify how the application receives input from the environment.</p>
<p align="justify"> </p>
<table border="1" cellspacing="0" cellpadding="5" width="580">
<tbody>
<tr>
<td valign="top" width="580">
<p align="justify"><i><strong>TIP: It’s important to identify what processing occurs on the data after it enters the system, to analyze validations, authentications, or any other security measures that should or must be taken.</strong></i></p>
</td>
</tr>
</tbody>
</table>
<p align="justify"> </p>
<p align="justify">At this point, you should have enumerated all the application’s entry points, noting for each one of them if it’s remote, encrypted, which protocol is using, which interface type it has, and if the interface has authentication and session management, etc.</p>
<h5 align="justify"> </h5>
<p><strong>Next Steps</strong></p>
<p align="justify">On my next posts I’ll be describing the process of threat modeling per se, and the usage of <a href="http://msdn.microsoft.com/en-us/security/dd206731.aspx">Microsoft SDL Threat Modeling Tool</a>.</p>
<p align="justify"> </p>
<p align="justify">Hope you find this information useful; feedback and comments are always welcomed <img src='http://blogs.southworks.net/nbeni/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
<p align="justify"> </p>
<p align="justify">You can find some useful resources below.</p>
<h5 align="justify"> </h5>
<p><strong>External Data Flows</strong></p>
<ul>
<li>
<div align="justify">Networks I/O</div>
</li>
<li>
<div align="justify">File I/O</div>
</li>
<li>
<div align="justify">Registry</div>
</li>
<li>
<div align="justify">Named pipes, shared memory, any OS object.</div>
</li>
<li>
<div align="justify">Windows messages</div>
</li>
<li>
<div align="justify">Others…</div>
</li>
</ul>
<p><strong>Useful Tools for Application Footprinting</strong></p>
<ul>
<li>
<div align="justify"><a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">Sysinternals – Process Explorer</a></div>
</li>
<li>
<div align="justify"><a href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx">Sysinternals – TCP View</a></div>
</li>
<li>
<div align="justify"><a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx">Sysinternals – Process Monitor</a></div>
</li>
<li>
<div align="justify"><a href="http://www.wireshark.org/">Wireshark</a></div>
</li>
</ul>
<p><strong>Related Links</strong></p>
<ul>
<li>
<div align="justify"><a href="http://msdn.microsoft.com/security/securecode/threatmodeling/acetm/">http://msdn.microsoft.com/security/securecode/threatmodeling/acetm/</a></div>
</li>
<li>
<div align="justify"><a href="http://msdn.microsoft.com/en-us/library/ms998408.aspx">http://msdn.microsoft.com/en-us/library/ms998408.aspx</a></div>
</li>
</ul>
<p><strong>Recommended Reads</strong></p>
<ul>
<li>
<div align="justify"><a href="http://www.amazon.com/Art-Software-Security-Testing-Identifying/dp/0321304861">The Art of Software Security Testing</a></div>
</li>
<li>
<div align="justify"><a href="http://www.amazon.com/Threat-Modeling-Microsoft-Professional-Swiderski/dp/0735619913">Threat Modeling (Microsoft Professional)</a></div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2009/05/22/threat-modeling-information-gathering/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Test-Driven Development</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/29/test-driven-development/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/29/test-driven-development/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 18:24:21 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/29/test-driven-development/</guid>
		<description><![CDATA[
Although I was already familiar to the Test-Driven Development (TDD from now on)paradigm, today I finished reading Kent Beck&#8217;s Test-Driven Development: By Example and found some useful tips and ideas I would like to point out.
Before starting there&#8217;s an advise I would like to give, and is what I always try to remember when writing [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">
<p align="justify"><span style="font-size: x-small"><font size="2">Although I was already familiar to the Test-Driven Development (TDD from now on)paradigm, today I finished reading </font></span><a href="http://www.threeriversinstitute.org/Kent%20Beck.htm"><span style="font-size: x-small"><font size="2">Kent Beck&#8217;s</font></span></a><span style="font-size: x-small"><font size="2"> </font></span><a href="http://books.google.com/books?hl=en&amp;id=gFgnde_vwMAC&amp;dq=test+driven+development+by+example&amp;printsec=frontcover&amp;source=web&amp;ots=enEvnsZvlF&amp;sig=-fmXZI1Sdxjy6DqPsUdBC9OMgqY&amp;sa=X&amp;oi=book_result&amp;resnum=2&amp;ct=result#PPP1,M1"><span style="font-size: x-small"><font size="2">Test-Driven Development: By Example</font></span></a><span style="font-size: x-small"><font size="2"> and found some useful tips and ideas I would like to point out.</font></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2">Before starting there&#8217;s an advise I would like to give, and is what I always try to remember when writing a test or even code. This is that <strong><em>tests are part of the Code Documentation.</em></strong> It is very important to have this into account when coding and testing, for it is important that others can understand what are you testing, what should they expect as the result, and how you&#8217;re testing it.</font></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2"></font></span></p>
<p align="justify"><strong><font size="2"></font></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">Simple step-by-step Sum-Up</font></span></span></strong></p>
<p align="justify"><span style="font-size: x-small"><font size="2">Taking Kent&#8217;s rules and set of steps, and by adding some of my own, I created this diagram. I find very useful when it comes to remembering TDD&#8217;s basic ideas.</font></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2"><img class="aligncenter" alt="" src="http://img227.imageshack.us/img227/8394/tddpp2.png" /></font></span></p>
<p align="justify"><strong><font size="2"></font></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">The To-Do List</font></span></span></strong></p>
<p align="justify"><span style="font-size: x-small"><font size="2">It&#8217;s very important the use of a To-Do list, in which we should add all the things that we realize must be done in other to completely test/implement all what needs to be done.</font></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2">For example, imagine we are writing an Equals test for a recipe.</font></span></p>
<p align="justify"><span style="font-size: xx-small"><span style="font-size: 10pt;font-family: 'Courier New&amp;#39"><span style="color: #2b91af">          </span></span><span style="font-size: 10pt;font-family:"><span style="font-family: courier new">[<span style="color: #2b91af">TestMethod</span>] </span></span></span></p>
<p align="justify"><span style="font-size: xx-small"><span style="font-size: 10pt;font-family: 'Courier New&amp;#39"><span style="color: #2b91af">          </span></span><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> TestEquals() </span></span></span></p>
<p align="justify"><span style="font-size: xx-small"><span style="font-size: 10pt;font-family: 'Courier New&amp;#39"><span style="color: #2b91af">          </span></span><span style="font-size: 10pt;font-family:"><span style="font-family: courier new">{ </span></span></span></p>
<p align="justify"><span style="font-size: xx-small"><span style="font-size: 10pt;font-family: 'Courier New&amp;#39"><span style="color: #2b91af">               </span></span><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span style="color: #2b91af">Assert</span>.AreEqual(<span style="color: #0000ff">new</span> <span style="color: #2b91af">Recipe</span>(1), <span style="color: #0000ff">new</span> <span style="color: #2b91af">Recipe</span>(1)); </span></span></span></p>
<p align="justify"><span style="font-size: xx-small"><span style="font-size: 10pt;font-family: 'Courier New&amp;#39"><span style="color: #2b91af">               </span></span><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span style="color: #2b91af">Assert</span>.AreNotEqual(<span style="color: #0000ff">new</span> <span style="color: #2b91af">Recipe</span>(2), <span style="color: #0000ff">new</span> <span style="color: #2b91af">Recipe</span>(1)); </span></span></span></p>
<p align="justify"><span style="font-size: 10pt;font-family:"><span style="font-family: courier new">          }</span></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2">Recipe&#8217;s constructor receives the ID and two recipes are the same if their ID is the same.</font></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2">Now we implement the Equals method. In order not to extend myself too much, I will cut some step off of TDD.</font></span></p>
<p align="justify"><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span>           </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">bool</span> Equals(<span style="color: #0000ff">object</span> obj) </span></span></p>
<p align="justify"><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span>           </span>{ </span></span></p>
<p align="justify"><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span>               </span><span style="color: #0000ff">return</span> <span style="color: #0000ff">this</span>.Id == ((<span style="color: #2b91af">Recipe</span>)obj).Id; </span></span></p>
<p align="justify"><span style="font-size: 10pt;font-family:"><span style="font-family: courier new"><span>           </span>}</span></span></p>
<p align="justify"><span style="font-size: x-small"><font size="2">As you can see, I&#8217;m not checking if the object is null, neither if it is actually a Recipe I&#8217;m comparing &#8220;myself&#8221; to. This doesn&#8217;t matter right now, but as I realize what I&#8217;m missing, <em><strong>I should add it to my To-Do List</strong>,</em> and come back to it later. Remember this is just an example, I&#8217;m not sure I&#8217;ll do this in separate steps to be honest.</font></span></p>
<p align="justify"><strong><font size="2"></font></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"></font></span></span></strong></p>
<p align="justify"><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">I</font></span></span></strong><strong><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">solation</font></span></span></strong></p>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">It&#8217;s desired that every test is absolutely isolated from the rest, this is, the failure or success of a test shouldn&#8217;t affect in any way the following tests result. In order to do this, some good tips are:</font></span></span></p>
<ul>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><em><strong>Separate tests in classes</strong></em>. It&#8217;s  not necessary to have one test class for each real class, but yes to have well organized set of tests so that everyone who reads it understand (as I stated before) what you&#8217;re testing, and what should they expect as a result.</font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Separate tests in methods.</em></strong>  It  is  very  important  that tests keep small and simple. To achieve this is a good practice to separate the different tests in different methods. It&#8217;s also useful using clear test methods names.</font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Not caring that much  of  Performance.</em></strong>  This  is  a  personal  tip,  and  goes against my &#8220;programming philosophy&#8221;. Sometimes is better to have duplication when creating tests, in order to assure the isolation, than having a very efficient code without any duplication, taking the risk of breaking the isolation.</font></span></span></p>
</li>
</ul>
<p align="justify"><span style="font-size: x-small"><strong><span style="font-size: x-small"><font size="2">Test Sections.</font></span></strong></span></p>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">I was going to state this as good practices, but giving it a second though I realized its a bit more than a &#8220;good practice&#8221;.</font></span></span></p>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">Even inside a test method, I like to order the code pieces into three different states:</font></span></span></p>
<ul>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Declaration and instantiation:</em></strong>  We declare and instantiate all the object that are to be used for testing. </font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Work:</em></strong> We work with the objects. I couldn&#8217;t find a better way to explain this, in other words, what we do is what the test is supposed to be testing. </font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Assert: </em></strong>We  assert  the  actual  data  against  the  expected  one  in  order to determine if the test succeeded or failed.</font></span></span></p>
</li>
</ul>
<p align="justify"><strong><span style="font-size: x-small"><font size="2">Good practices</font></span></strong></p>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">This are some good practices I could retrieve from the book and from my personal experience. I believe in constant learning, so I won&#8217;t call this practices &#8220;Final&#8221;, but I think they&#8217;re a good starting point.</font></span></span></p>
<ul>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2"><strong><em>Try to</em></strong><strong><em> start writing the Asserts First.</em></strong> By doing this you&#8217;ll have a clear view of which the result should be.</font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">Make the <strong><em>Actual and Expected Data evident</em></strong>  for any outsider that is  reading the tests.</font></span></span></p>
</li>
<li>
<p align="justify"><span style="font-size: x-small"><font size="2"><strong><em>When working alone, leave the last test broken</em></strong>.  By  doing  this, when you go back to work the next day, you have a starting point.</font></span></p>
</li>
</ul>
<p align="justify"><span style="font-size: x-small"><span style="font-size: x-small"><font size="2">There&#8217;s much more to be said about TDD, but I wanted to give a quick-pick of the paradigm, I&#8217;ll go deeper into it in further posts.</font></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/29/test-driven-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Seven Habits of Highly Effective People: Sharpen the Saw</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/23/the-seven-habits-of-highly-effective-people-sharpen-the-saw/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/23/the-seven-habits-of-highly-effective-people-sharpen-the-saw/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 10:33:13 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/23/the-seven-habits-of-highly-effective-people-sharpen-the-saw/</guid>
		<description><![CDATA[This last habit encourages us to focus on ourselves and take time to &#34;sharpen the saw&#34; this is, renewing in four dimensions, in a balanced way:


Physical: The physical renewal is basically to care effectively for our physical body and all that it involves (eating, exercising, resting, etc.), it is highly related to habit 1.


Spiritual: The [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">This last habit encourages us to focus on ourselves and take time to &quot;sharpen the saw&quot; this is, renewing in four dimensions, in a balanced way:</p>
<ul>
<li>
<div align="justify"><em><u>Physical:</u> </em>The physical renewal is basically to care effectively for our physical body and all that it involves (eating, exercising, resting, etc.), it is highly related to <a href="http://blogs.southworks.net/nbeni/2008/07/16/the-seven-habits-of-highly-effective-people-be-proactive/">habit 1</a>.</div>
</li>
<li>
<div align="justify"><em><u>Spiritual:</u> </em>The spiritual renewal provides leadership to our life, It&#8217;s highly related to <a href="http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/">habit 2</a>, and our commitment to our value system.</div>
</li>
<li>
<div align="justify"><em><u>Mental:</u>&#160;</em>The mental renewal is to keep &quot;training&quot; the mind. In order to&#160; do this, Stephen advices us to study, read, explore new subjects (outside our action fields), write (thoughts, experiences, insights or learnings). He also advises us against watching television (and I would add using Internet) in a non-discriminative way (without discriminating the information we receive). This renewal is highly related to <a href="http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/">habit 2</a> and <a href="http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/">habit 3</a>.</div>
</li>
<li>
<div align="justify"><em><u>Social/Emotional:</u>&#160; </em>The social (or emotional) renewal&#160; it&#8217;s basically achieving interpersonal leadership, empathic communication and creative cooperation. Being careful of what we reflect to others about themselves, for it may influence them in a negative way, is a way of renewing in this dimension. It&#8217;s highly related to the Public Victory.</div>
</li>
</ul>
<p align="justify">Renewal, as Stephen describes, is the process of renewing all the six other habits. Seeking Private Victory in a daily basis, is the foundation for the Public Victory, and renewing the habits (working on them) at least an hour a day, leads to Private Victory.</p>
<p align="justify"><strong><font size="2">Final Conclusion</font></strong></p>
<p align="justify">The book gives an interesting and (in my opinion) very accurate description of how a highly effective people should be, for it not only focuses on independent achievements, but also on interdependent ones. </p>
<p align="justify">In my previous posts I stated my opinion and a brief summary of what the writer describes in each habit, so I won&#8217;t go over that again. The one thing I would add is a final concept about the book.</p>
<p align="justify">The Seven Habits of Highly Effective People is a very interesting and recommended reading, for it makes you retrospect to what you have done in life, analyze yourself, and learn to see every situation from a different point of view.</p>
<p align="justify">Another interesting point of the book, even though it gives you &quot;application suggestions&quot;, is that it can be read not only as a recipe you could follow, but also in the way that it would help you most (general guidance, other point of view about life, recipe, etc.).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/23/the-seven-habits-of-highly-effective-people-sharpen-the-saw/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Seven Habits of Highly Effective People: Public Victory</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/22/the-seven-habits-of-highly-effective-people-public-victory/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/22/the-seven-habits-of-highly-effective-people-public-victory/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 12:23:20 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/22/the-seven-habits-of-highly-effective-people-public-victory/</guid>
		<description><![CDATA[The third part of Stephen&#8217;s book, is about the public victory, and it introduces us to habits, 4 (Think Win-Win), 5 (Seek First to Understand, Then to be Understood), and 6 (Synergize). I find these three habits more interrelated than the first three (private victory), that&#8217;s why I&#8217;ve decided to write of all of them [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">The third part of <a href="http://www.stephencovey.com/7habits/7habits.php">Stephen&#8217;s book</a>, is about the public victory, and it introduces us to habits, 4 (Think Win-Win), 5 (Seek First to Understand, Then to be Understood), and 6 (Synergize). I find these three habits more interrelated than the first three (private victory), that&#8217;s why I&#8217;ve decided to write of all of them on a single post.</p>
<h5><strong><span style="font-family: verdana">Fourth Habit: Think Win-Win</span></strong></h5>
<p align="justify">The first of the three is to <a href="http://www.stephencovey.com/7habits/7habits-habit4.php">Think Win-Win</a>, it tells us to seek our winning without a competitive approach, this means, not to seek our winning in other&#8217;s lost. It is highly related (in my opinion) with the sixth habit (Synergize), and with trust. This is to say, without trust you cannot delegate (in a Stewardship way, as stated in the <a href="http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/">third habit</a>), you cannot think of a win-win situation, for you don&#8217;t trust in your winning in terms of other&#8217;s winning, you cannot even understand the other&#8217;s needs, for you focus on yourself, and on your point of view. Moreover, without a synergetic paradigm you don&#8217;t think that the whole is stronger and more efficient than its parts, but we&#8217;ll get to this later on this post.</p>
<p align="justify">Stephen introduces us the concept of &quot;Emotional Bank Account&quot;, this means, those little positive (deposits) or negative (extractions) things that we do, and end up being the trustworthy parameter of ourselves. I agree with him on this concept, I know our actions make us who we are, at least, through third-party eyes. But I think no one should have this knowledge, I mean, no one should do things thinking in this &quot;Emotional Bank Account&quot;, for it wouldn&#8217;t be a sincere action, but an interested one (not being in accordance with the first three habits).</p>
<p align="justify"><strong><span style="font-size: x-small"><font size="2">Fifth Habit: Seek First to Understand, Then to be Understood</font></span></strong></p>
<p align="justify">The second habit (fifth of the hole) is to <a href="http://www.stephencovey.com/7habits/7habits-habit5.php">Seek First to Understand, then to be Understood</a>. The writer advices us to learn to listen in what he calls an &quot;empathic listening&quot;. The basic idea of this concept is to truly understand what the other person is trying to say, what does he/she really means, what he/she is feeling, and not just what he/she is literally saying. By doing this, we gain trust, and we achieve an &quot;Emotional Bank Account&quot; deposit, which allows us to be heard and eventually understood or taken into account when we advice (in a customized way). Once we achieve &quot;to Understand&quot;, we need to seek &quot;to be Understood&quot; this is the second half of the habit.</p>
<p align="justify"><strong><span style="font-size: x-small"><font size="2">Sixth Habit: Synergize</font> </span></strong></p>
<p align="justify">The last habit of the &quot;Public Victory&quot; is to <a href="http://www.stephencovey.com/7habits/7habits-habit6.php">Synergize</a>. In this chapter, Stephen basically advices us to be synergic in every aspect of our lives. This habit requires the previous five in order to be achieved.</p>
<p align="justify">The definition of synergy is that the whole is greater than the sum of its parts. This applies in every aspect of life. Synergistic communication allows us to be open to new ideas or points of views. I felt particularly identified with &quot;Valuing the Difference&quot;, a part of the habit in which the writer tells us to value each disagreement we have with people, for it&#8217;s the best way of understanding and, eventually, learning. I felt identified because it&#8217;s kind of my philosophy of life. &quot;I want to understand&quot; &quot;I value that difference&quot;.</p>
<p align="justify"><strong><span style="font-size: x-small"><font size="2">Conclusion</font></span></strong></p>
<p align="justify">I think that it&#8217;s very important to have these three habits into account in everything we do in life for they are an important basis for human interrelations. I would advice to read this third part of the book to those self-centered or those who sometimes fall in the thought that personal victory is only achievable defeating others.</p>
<p align="justify">
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/22/the-seven-habits-of-highly-effective-people-public-victory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Seven Habits of Highly Effective People: Put First Thing First</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 09:41:51 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/</guid>
		<description><![CDATA[The third habit, Put First Thing First&#160; of Stephen&#8217;s book introduces us a Time Management Matrix, where he defines the activities into Urgent/Not Urgent and Important/Unimportant.




&#160;
Urgent
Not Urgent


Important
Quadrant I
Quadrant II


Unimportant
Quadrant III
Quadrant IV



He encourages us to work on those activities on Quadrant II for they are Important, but not Urgent, this means, they allow us to plan, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">The third habit, <a href="http://www.stephencovey.com/7habits/7habits-habit3.php">Put First Thing First</a>&#160; of Stephen&#8217;s book introduces us a Time Management Matrix, where he defines the activities into Urgent/Not Urgent and Important/Unimportant.</p>
<div align="center">
<table cellspacing="0" cellpadding="0" width="400" align="center" border="1">
<tbody>
<tr>
<td valign="top" width="133">&#160;</td>
<td valign="top" width="133"><strong>Urgent</strong></td>
<td valign="top" width="133"><strong>Not Urgent</strong></td>
</tr>
<tr>
<td valign="top" width="133"><strong>Important</strong></td>
<td valign="top" width="133"><em>Quadrant I</em></td>
<td valign="top" width="133"><em>Quadrant II</em></td>
</tr>
<tr>
<td valign="top" width="133"><strong>Unimportant</strong></td>
<td valign="top" width="133"><em>Quadrant III</em></td>
<td valign="top" width="133"><em>Quadrant IV</em></td>
</tr>
</tbody>
</table></div>
<p align="justify">He encourages us to work on those activities on <em>Quadrant II</em> for they are Important, but not Urgent, this means, they allow us to plan, and manage the way we deal with them. Focusing on this Quadrant ends up in an efficient management of our time.</p>
<p align="justify">In order to do this, he introduces us with what he calls &quot;quadrant II tool&quot;, a fourth generation time managing tool with six properties (Coherence, Balance, Quadrant II Focus, &quot;People&quot; Dimension, Flexibility and Portability).</p>
<p align="justify">In my opinion this is a good way of managing time and priorities, for it allows you to focus only on those important things (who likes to waste time on unimportant things?) and to achieve a high level of efficiency with the proper planning and dedication to those activities.</p>
<p align="justify">Focusing on <em>Quadrant I, </em>as Stephen says (and I agree), makes you work and live constant-crisis life, which keeps getting bigger, until it turns over you and your life. It&#8217;s impossible not to deal with urgent and important situations, but we need to work on the not urgent ones on order to, slowly, reduce the urgent and important ones.</p>
<p align="justify"><strong>Delegation</strong></p>
<p align="justify">The writer ends up the chapter with useful information about Delegation (or, at least, useful for me), introducing the Gofer and Stewardship models of it.</p>
<p align="justify">Gofer delegation is based on a vertical authority and on a one-on-one supervision of the <em>methods</em><strong> </strong>applied to work through or solve the delegated issue. On the other hand, Stewardship delegation is based on a more trust-based paradigm, in which the person who delegates, sets the desired results, guidelines, available resources, reporting and evaluation methods, and specify the consequences of both bad and good results. This method is focused on results instead of methods.</p>
<p align="justify">Once again I will recommend this chapter for those non-methodic and non-principle-centered persons who tend to loose focus when critical situations occur, or waste much time on not important activities.</p>
<p align="justify">&#160;</p>
<p align="justify">
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-put-first-thing-first/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Seven Habits of Highly Effective People: Begin with the End in Mind</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 05:23:44 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/</guid>
		<description><![CDATA[The second Habit, Begin with the End in Mind tells us to know where we are heading, to set our final goal or destination before we start anything; it advise us to &#8220;create&#8221; ourselves  in a principle-centered way first (which I agree with) and once we&#8217;ve done that, set our final goal in life, and [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">The second Habit, <a href="http://www.stephencovey.com/7habits/7habits-habit2.php">Begin with the End in Mind</a> tells us to know where we are heading, to set our final goal or destination before we start anything; it advise us to &#8220;create&#8221; ourselves  in a principle-centered way first (which I agree with) and once we&#8217;ve done that, set our final goal in life, and work with it in mind every day.</p>
<p align="justify">I have a personal opinion about this, and it doesn&#8217;t differ much with Stephen&#8217;s. I believe it is important to have a final goal, but I work with smaller everyday goals in order to achieve this final one. The truth is, I don&#8217;t think this last one is achievable, but more like an engine that keeps us running every day, those achievable are the smaller ones, that are quantitative and measurable (you can actually say, &#8220;I achieve this goal, what&#8217;s next?&#8221;. I won&#8217;t go to deep within this idea, for is not the purpose of this post, but that&#8217;s the big picture about it.</p>
<p align="justify">Further in the chapter, the writer gives us a &#8220;quick pic&#8221; into different non principle-centered ways of life (Spouse, Family, Money, Work, Possession, Friend, Enemy, Church and Self -Centered), based on what he calls the &#8220;four life-support factors&#8221; (Security, Guidance, Wisdom and Power).</p>
<p align="justify">I didn&#8217;t found it a very complex or revealing chapter, because it&#8217;s what I usually do (Begin with the End in Mind, set goals, identify roles&#8230;). So it was more like a &#8220;you&#8217;re not doing it so wrong&#8221; chapter for me.</p>
<p align="justify">I would recommend this chapter for non-organized people, or those who don&#8217;t are principle-centered, because it gives you a different point of view about lifestyle and priorities.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/18/the-seven-habits-of-highly-effective-people-begin-with-the-end-in-mind/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Seven Habits of Highly Effective People: Be Proactive</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/16/the-seven-habits-of-highly-effective-people-be-proactive/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/16/the-seven-habits-of-highly-effective-people-be-proactive/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 11:45:25 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Psychology]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/2008/07/16/the-seven-habits-of-highly-effective-people-be-proactive/</guid>
		<description><![CDATA[I finished reading the first habit: Be Proactive, of &#8220;The Seven Habits of Highly Effective People&#8221; book, by Stephen R. Covey. And it got me thinking about myself&#8230;
Am I Proactive or Reactive? Do I Focus on my Circle of Concern or on my Circle of Influence? Have I successfully categorized the problems I faced, and [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><font size="2">I finished reading the first habit: </font><a href="http://www.stephencovey.com/7habits/7habits-habit1.php"><font size="2">Be Proactive</font></a><font size="2">, of &#8220;</font><a href="http://www.stephencovey.com/7habits/7habits.php"><font size="2">The Seven Habits of Highly Effective People</font></a><font size="2">&#8221; book, by </font><a href="http://www.stephencovey.com/"><font size="2">Stephen R. Covey</font></a><font size="2">. And it got me thinking about myself&#8230;</font></p>
<p align="justify"><font size="2">Am I Proactive or Reactive? Do I Focus on my Circle of Concern or on my Circle of Influence? Have I successfully categorized the problems I faced, and focused on those which I have Direct or Indirect control? Do I make and keep commitments? Am I part of the problem or the solution?</font></p>
<p align="justify"><font size="2">I took some time to think about all this, and realized I was a &#8220;theoretically proactive person&#8221; but, in many circumstances of life, I find myself having reactive responses.</font></p>
<p align="justify"><font size="2">I am a preacher of proactive philosophy, I am always advising to focus on the Circle of Influence (maybe I called it differently, but it&#8217;s the same idea), to learn how to live with those problems we can do nothing about, and try to face and solve those involving our own behavior or other people&#8217;s. </font></p>
<p align="justify"><font size="2">I am the first one to defend the idea that &#8220;anything can be done&#8221; and if you can&#8217;t it&#8217;s only because you don&#8217;t &#8220;really want to&#8221; (of course I don&#8217;t mean physically impossible things, or illegal activities, even though you could actually do this last ones, accepting the consequences).</font></p>
<p align="justify"><font size="2">I am even an initiative person, I am not expecting for circumstances to &#8220;magically appear&#8221;, I plan my path through life committing myself, setting goals and working to achieve them; I deal with unexpected turnovers, knowing that I&#8217;m responsible for what I do. </font></p>
<p align="justify"><font size="2">I am always open to opportunities and take them if I feel they will lead me to my final destination.</font></p>
<p align="justify"><font size="2">But, there come days, even weeks when I fall in the reactive pattern and think that everything surrounding me is the cause for me not achieving my goal or, at least, not achieving it on time. </font></p>
<p align="justify"><font size="2">So, am I a proactive person? </font></p>
<p align="justify"><font size="2">I guess I can&#8217;t affirm that yet, but I think I am on the right tracks to being one.</font></p>
<p align="justify"><font size="2">I believe in people&#8217;s permanent learning and constant evolution, and I realize this reading made me understand and learn about myself in a different and clearer way. </font></p>
<p align="justify"><font size="2">It&#8217;s very important to know where you&#8217;re standing, not only outwardly but also inwardly. And I think this book, at least this chapter (and the introduction), helps you take an inside look of yourself and learn to be more &#8220;Effective&#8221;, to understand who you are.</font></p>
<p align="justify"><font size="1"><font size="2">I would strongly recommend this reading for anyone trying to be more effective in anything that he or she does in life.</font> </font></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/16/the-seven-habits-of-highly-effective-people-be-proactive/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Agile Project Management with Scrum</title>
		<link>http://blogs.southworks.net/nbeni/2008/07/16/5/</link>
		<comments>http://blogs.southworks.net/nbeni/2008/07/16/5/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 07:05:56 +0000</pubDate>
		<dc:creator>nbeni</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://blogs.southworks.net/nbeni/?p=5</guid>
		<description><![CDATA[Chapter 1: Backdrops: The science of Scrum
In my first day at work, I’ve been given this chapter of Microsoft’s Agile Project Management with Scrum to read, and understand Southwork’s working method. I won’t do a summary of the chapter, for the chapter itself is a summary of Scrum, in this post, I will try to [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0in 0in 0pt;text-align: justify"><span style="color: #000000"><span style="text-decoration: underline">Chapter 1</span>: Backdrops: The science of Scrum</span></p>
<p class="MsoNormal" style="text-align: justify">In my first day at work, I’ve been given this chapter of Microsoft’s <a href="http://http://www.microsoft.com/mspress/books/6916.aspx">Agile Project Management with Scrum </a>to read, and understand Southwork’s working method. I won’t do a summary of the chapter, for the chapter itself is a summary of Scrum, in this post, I will try to identify and explain in a very simple way, the basis of Scrum.</p>
<p class="MsoNormal" style="text-align: justify">I will start by introducing some concepts that will help you to understand Scrum, then, explain Scrum Flow, to end up with the Scrum Artifacts mentioned in the book.</p>
<p style="text-align: justify">Empirical process control is when a regular building process is divided into complex activities that must be fulfilled, and controlled in order to achieve an acceptable quality level. This process is vital when the complexity of intermediate activities (during a building process) is too much for a defined process control.</p>
<p style="text-align: justify"><em>Implementation of empirical process control, requirements</em>:</p>
<ul style="text-align: justify">
<li>
<div><span style="text-decoration: underline">Visibility</span>: the aspects that affect the outcome of the process must be visible for those controlling it.</div>
</li>
<li>
<div><span style="text-decoration: underline">Inspection</span>: the aspects of the process must be inspected frequently enough for detecting unacceptable variances in it. The capability of the inspector is crucial for the correct inspection.</div>
</li>
<li>
<div><span style="text-decoration: underline">Adaptation</span>: If the result of the inspection is of unacceptable variances, the inspector must adjust the process or material being processed, in order to get an acceptable final product. The adjustment must be made as quickly as possible, to minimize further deviation.</div>
</li>
</ul>
<p class="MsoNormal" style="text-align: justify"><em>Complexity in three different dimensions</em>: In software development, complexity is present in three different dimensions,</p>
<ul style="text-align: justify">
<li>
<div><span style="text-decoration: underline">Requirements</span>, it’s common that there are many customers who have different needs. It’s also common that these needs change through time, or are ambiguous, or difficult to represent in software.</div>
</li>
<li>
<div><span style="text-decoration: underline">Technology</span>, complex frameworks, complex business problems solutions, when put together are far more complex.</div>
</li>
<li>
<div><span style="text-decoration: underline">People</span>, interaction and teamwork adds another form of complexity.</div>
</li>
</ul>
<p class="MsoNormal" style="text-align: justify"><em>Incremental Iterative process</em>:</p>
<ul style="text-align: justify">
<li>
<div><span style="text-decoration: underline">Daily iteration (24hour inspection)</span>, team members meet to inspect each others&#8217; activities and make appropriate adaptations.</div>
</li>
<li>
<div><span style="text-decoration: underline">Sprint</span>, results in an increment of product functionality (potentially shippable). Constitutes the empirical inspection and adaptation practices of Scrum.</div>
</li>
</ul>
<p class="MsoNormal" style="text-align: justify"><em>Scrum Roles</em>:</p>
<ul style="text-align: justify">
<li>
<div><span style="text-decoration: underline">Product Owner</span>, Defines Requirements (Prioritized Product Backlog), return of Investment objectives, release plans.</div>
</li>
<li>
<div><span style="text-decoration: underline">Team</span>, Develop functionality in terms of the Product Backlog, it’s self-managed, self-organized and cross-functional.</div>
</li>
<li>
<div><span style="text-decoration: underline">Scrum Master</span>, In charge of teaching and ensuring that everyone follows scrum practices.</div>
</li>
</ul>
<p class="MsoNormal" style="text-align: justify"><em>Scrum Flow</em>:</p>
<p style="text-align: justify"><span style="text-decoration: underline">Sprint</span> </p>
<ol style="text-align: justify">
<li>
<div class="MsoNormal">Product Owner Presents the highest priority Product Backlog to the team, the team commits to what it believes can turn into an increment of functionality by the end of the sprint.</div>
</li>
<li>
<div class="MsoNormal">The team plans out the sprint (Sprint Backlog).</div>
</li>
</ol>
<p class="MsoNormal" style="text-align: justify">WORK-Iteration (daily) → creative process→ heart of scrum</p>
<p style="text-align: justify">Stand-up: Every day the team gets together and answers:</p>
<ul style="text-align: justify">
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt 0.75in;text-align: justify">What have you done since the last Daily Scrum meeting?</div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt 0.75in;text-align: justify">What do you plan on doing until next Daily Scrum meeting?</div>
</li>
<li>
<div class="MsoNormal" style="margin: 0in 0in 0pt 0.75in;text-align: justify">What impediments stand in the way of you meeting your commitments?</div>
</li>
</ul>
<p class="MsoNormal" style="text-align: justify">At the end of the sprint, the team presents the increment of functionality built, so that the Product Owner and stakeholders (those interested in the software) can inspect it.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p style="text-align: center"><img src="http://img91.imageshack.us/img91/9079/scrumflowqu2.jpg" alt="" width="400" height="325" /></p>
<p style="text-align: center"> </p>
<p class="MsoNormal" style="text-align: center">Scrum Process Overview,</p>
<p class="MsoNormal" style="text-align: center">from Agile Project Management with Scrum, By Ken Schwaber</p>
<p><span style="font-size: 10pt">I’ve copied this image form the book, because, for me, was the easiest way of understanding Scrum’s hole picture.</span> </p>
<p> </p>
<p> </p>
<p> </p>
<p>The chapter ends with an explanation of the Scrum Artifacts (Product Backlog, Sprint Backlog); these are table charts in which Scrum defines the work, or tasks that are meant to be made. Setting the estimated time required for each task and its priority.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.southworks.net/nbeni/2008/07/16/5/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
