<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Improving Blogs</title>
      <description>A mashup of blogs by the employees of Improving Enterprises</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=wmOSkp7n3BGZxq0K8jxBKg</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=wmOSkp7n3BGZxq0K8jxBKg&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 22:59:44 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Scrum master woes</title>
         <link>http://softwareandotherthings.blogspot.com/2015/09/scrum-master-woes.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-_VtF9-iul9k/VgNy46ygaMI/AAAAAAAAA8k/GRiXSh8HMQo/s1600/hp-a-under-microscope-100339791-orig.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://3.bp.blogspot.com/-_VtF9-iul9k/VgNy46ygaMI/AAAAAAAAA8k/GRiXSh8HMQo/s400/hp-a-under-microscope-100339791-orig.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;The scrum master was genuinely upset:&lt;/blockquote&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;br /&gt;-&amp;nbsp;&amp;nbsp;Scrum is so hard. Engineers do not like it. They feel exposed.&lt;br /&gt;-&amp;nbsp;&amp;nbsp;Well, yes – Scrum calls for transparency, and that is a good thing. Engineers will learn to share.&lt;br /&gt;-&amp;nbsp;&amp;nbsp;But we have to do estimates. And then we have to deliver to those estimates. Then things happen. And engineers hate to do it, and then explain how a task that was estimated at 2 hours took three and a half.&lt;/blockquote&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;It is easy to see why engineers do not like this process. Rapid churn of iterations calls for very frequent estimates – and regular inspections of why these estimates turned out to be not quite right. It is painful to be continuously wrong, and even more frustrating to have to defend tiny details of the complex minutiae that is software development.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;What can the team, and the Scrum Master, do, to lessen the pain? &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The scope of estimates is negotiated between the project manager or product owner, and the product team. Many a project manager would like correct, non-changing estimates provided on the first day of the project. Many a team would be perfectly happy to not estimate at all. Usually, neither gets exactly what she wants, but instead negotiates a compromise with the other side.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;The scale of possible compromise solutions&lt;/h4&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;The team does not provide any estimates.&lt;/b&gt; Project manager, with the help of the Scrum Master, makes educated guesses, based on their experience with the team and the project, when the backlog items will be completed. In this case the team may not share how it is breaking down the work, the progress it is making during the iteration, nor the problems it encounters. Priority of backlog items is established based on their value, and only project managers’ perception of the size and complexity of each item, since the team may not share its evaluation.&lt;/li&gt;&lt;br&gt;&lt;li&gt;&lt;b&gt;The team provides detailed estimates to project manager at each iteration, and works hard to deliver per estimated completion times.&lt;/b&gt; Project manager gets a full report of each working hour of the product team, and gets to control how the work is broken down and accomplished by the team. In this case the team may not be fully forthcoming about how long each tiny item will take, and pads the estimated schedule so that there is enough slack to deliver even if things go wrong. Even if everything goes fine, the team is more likely to deliver on a padded schedule and use the slack time to relax, rather than forge ahead. Even with seriously padded timeline, estimates are often too optimistic, in which case the team will be blamed for incorrect estimates, encouraging even more padding going forward. Detailed estimates take a lot of time and effort, and so does hiding the slack/padded time that the team puts into estimates. The team will be working harder, without a corresponding rise in productivity.&lt;/li&gt;&lt;br&gt;&lt;li&gt;&lt;b&gt;The team provides coarse-grained relative estimates, by sharing with the project manager how hard each item of work is expected to be. &lt;/b&gt;The expected delivery timeline can be deduced, but is not promised, so that the project manager shares in the uncertainty of software development. Still, the project manager can use that information to adjust priorities of various backlog items. The product team does not have to be defensive about not delivering per estimates, because no particular timeline is being promised. The mutual expectation is that most of the estimates will turn out to be wrong, but when the estimates are averaged over multiple backlog items and several iterations, they will provide valuable, actionable information to the team, the project manager, and the rest of the organization.&lt;/li&gt;&lt;br&gt;&lt;/ul&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;h4&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4&gt;What are coarse-grained estimates?&lt;/h4&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;It is helpful to classify pieces of work on a scale of Trivial, Small, Large, etc.&amp;nbsp; Fewer options means coarser estimates.&amp;nbsp; Using numbers (prime, Fibonacci, etc.) may encourage defining too fine-grain a division.&amp;nbsp; Using hours or days creates a direct timeline, suggesting that a particular delivery date has been promised. Another option is to use anonymous units of complexity, and those are great if the team can in fact treat them as abstract units (and not convert units into timeline, as it often happens).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Having less-than-perfect estimates, and no timeline, requires and helps build trust between the team and the project manager. The team is held responsible for the average productivity, rather than each particular estimate. The project manager is asked to give up the illusion of full control over the project timeline and trust the team to deliver as best they can.&lt;br /&gt;&lt;br /&gt;Scrum Master is tasked with negotiating the compromise, and holding both sides responsible for their respective contributions.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-u4xqGyTE6HM/VgN007_VYcI/AAAAAAAAA8w/3bRXdvF9M7k/s1600/Large-VS-Small-Dogs.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;312&quot; src=&quot;http://1.bp.blogspot.com/-u4xqGyTE6HM/VgN007_VYcI/AAAAAAAAA8w/3bRXdvF9M7k/s400/Large-VS-Small-Dogs.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-7409008226277568221</guid>
         <pubDate>Wed, 23 Sep 2015 23:02:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-_VtF9-iul9k/VgNy46ygaMI/AAAAAAAAA8k/GRiXSh8HMQo/s72-c/hp-a-under-microscope-100339791-orig.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>The Scrum Gauntlet of Debt</title>
         <link>http://tastycupcakes.org/2015/09/scrumgauntlet/</link>
         <description> Overview: A quick and easy demonstration/game to illustrate why an agile team needs to do refactoring and the related XP Practices in addition to Scrum. It never fails to create the A-HA moment for a team and team management as to why, when and how to do refactoring. &amp;#160;  Learning Points: Scrum without XP will [...]</description>
         <author>Ron Quartel</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5167</guid>
         <pubDate>Mon, 21 Sep 2015 18:12:57 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/09/scrumgauntlet/running_the_gauntlet/"><img class="alignleft size-medium wp-image-5221" src="http://tastycupcakes.org/wp-content/uploads/2015/09/Running_the_gauntlet-187x300.jpg" alt="" width="187" height="300"/></a> Overview:</strong></p>
<p>A quick and easy demonstration/game to illustrate why an agile team needs to do refactoring and the related XP Practices in addition to Scrum. It never fails to create the A-HA moment for a team and team management as to why, when and how to do refactoring.</p>
<p>&nbsp;</p>
<p><strong> Learning Points:</strong></p>
<p>Scrum without XP will lead to technical debt and ultimately a legacy system.</p>
<p>&nbsp;</p>
<p><strong> Timing</strong>: 30-40 minutes including prep and debrief</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<div id="attachment_5168" class="wp-caption alignleft" style="width:235px;"><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/09/scrumgauntlet/gauntletreqs/"><img class="size-medium wp-image-5168" src="http://tastycupcakes.org/wp-content/uploads/2015/09/gauntletReqs-225x300.png" alt="Gauntlet requirements" width="225" height="300"/></a><p class="wp-caption-text">Requirements</p></div>
<p><strong>Materials: </strong>Tools, supplies and environment</p>
<p>You will need an area/room where you can clear a game area we will call the gauntlet. Gauntlet area needs to be 15-30 feet long and 6-10 feet wide. Typically I find myself in a room where you just shove the tables and chairs out of the way to clear this space. Keep the chairs nearby as you will need them.</p>
<p>In addition to the space you will need :</p>
<div>
<ul>
<li>Volunteers (7-12 volunteers)</li>
<li>Two opposing walls and two easels or use two easels in place of wall plus two more easels</li>
<li>Chairs (observers can give up theirs while watching if need be)</li>
<li>Sticky notes (small square size is better but any will work)</li>
<li>Flipchart (Sticky is best)</li>
<li>Blue tape</li>
<li>Something with a countdown timer (smartphone apps work)</li>
<li>Three surfaces for flipchart sheet. E.g. walls, whiteboard, easel</li>
<li>Marker pens to write on flipcharts (and whiteboard)</li>
</ul>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Preparation</strong></p>
<p><strong>Volunteers and Roles</strong></p>
<p>You need 7-12 volunteers. Ask for volunteers with warning that it is a physical demonstration and there will be running. Do not volunteer unless comfortable with this.</p>
<p>Divide the volunteers into testers and developers using one of these formations depending on the number of volunteers</p>
<div>• 10 devs and 1 or 2 testers</div>
<div>• 8 devs and 1 or 2 testers</div>
<div>• 6 devs and 1 or 2 testers</div>
<p>Divide devs into two even groups</p>
<p>Have everyone in the room clear a space for the gauntlet and place one dev group at each end of the gauntlet in front of a To do/ To Test kanban board</p>
<div id="attachment_5174" class="wp-caption alignleft" style="width:252px;"><img class="size-medium wp-image-5174" src="http://tastycupcakes.org/wp-content/uploads/2015/09/todototest-242x300.png" alt="To Do / To Test" width="242" height="300"/><p class="wp-caption-text">To Do / To Test</p></div>
<p>Populate the TO DO portion of the board with sticky notes as shown.</p>
<p>You will need around 20.</p>
<p>(These empty notes represent a task or story.)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align:left;">Place the tester(s) at the mid point of the gauntlet in front of the done board/flip chart/easel.</p>
<div id="attachment_5181" class="wp-caption alignnone" style="width:221px;"><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/09/scrumgauntlet/done/"><img class="size-medium wp-image-5181" src="http://tastycupcakes.org/wp-content/uploads/2015/09/done-211x300.png" alt="Done" width="211" height="300"/></a><p class="wp-caption-text">Done</p></div>
<p>&nbsp;</p>
<p>Your gauntlet area should look something like this &#8230;</p>
<div id="attachment_5187" class="wp-caption alignnone" style="width:970px;"><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/09/scrumgauntlet/gauntletlayout-2/"><img class="size-full wp-image-5187" src="http://tastycupcakes.org/wp-content/uploads/2015/09/GauntletLayout1.png" alt="" width="960" height="600"/></a><p class="wp-caption-text">Gauntlet game area layout</p></div>
<p>&nbsp;</p>
<p>Timer volunteer &#8211; (Can be the facilitator if no-one else volunteers). This person will need to have an app or device that has a 30 second countdown timer.</p>
<p>Explain to participants that this is a simulation. The goal is not to “win” and game the system. The goal is to mimic what real life looks like.</p>
<p>Instruct participants to act like a dysfunctional team and not communicate with each other (otherwise they start gaming the system).</p>
<p>They should all be in their locations as below :-</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/09/scrumgauntlet/positioning-2/"><img class="alignnone size-large wp-image-5193" src="http://tastycupcakes.org/wp-content/uploads/2015/09/positioning1-660x321.png" alt="" width="660" height="321"/></a></p>
<p>&nbsp;</p>
<p><strong>The Rules</strong></p>
<ul>
<li>An iteration lasts 30 seconds</li>
<li>Developers run to opposite wall, pick a story token (sticky note) from TODO and run back to their starting wall, placing the token in the TO TEST column</li>
<li>A Dev can only work on one story at a time</li>
<li>Testers wait by their Done board until they see stories ready to TEST and then run to (either) board, grab up to 3 stories (but no more than 3) and return them to their done board</li>
<li>Everyone must run (That is why they call it Sprinting!)</li>
<li>No collusion or working out a system. You are mimicking a dysfunctional team (Be sure to have explained this or else they game the system)</li>
<li>Each sprint (except for the first) you count the number of post-it notes in the done area(s) and that is the velocity for the sprint.</li>
<li>Make sure to run a sprint zero without measuring velocity. That is the practice sprint to ensure everyone understands the rules. (Velocity always goes up after this sprint so don&#8217;t measure it.)</li>
<li>BE CAREFUL!!! (Re-iterate and ask volunteers again if comfortable)</li>
</ul>
<p></p>
<p><strong>BE CAREFUL!</strong></p>
<ul>
<li>Health and safety</li>
<li>Don’t have anyone pregnant, wearing high heels or with physical disabilities that may cause risk to themselves or others in the volunteers</li>
<li>Make sure volunteers are comfortable with exercise otherwise switch out</li>
<li>Re-iterate to volunteers Safety First!</li>
<li>Be careful!!!</li>
</ul>
<p></p>
<hr />
<p><strong>Start the Game!</strong></p>
<p><strong>Sprint 0 &#8211; Practice</strong></p>
<p>Run this 30 second iteration with taking the velocity. Correct any misunderstanding and assumptions that anyone may have.</p>
<p>(There is another reason for running a practice sprint is because without doing so, the velocity for the next sprint will go up even if you put more obstacles in. The reason I believe is because once they understand the game, they get better at it. So give them a grace understanding sprint.)</p>
<p>&nbsp;</p>
<p><strong>Sprint 1 &#8211; Calibration</strong></p>
<p>The goal of this sprint is to find out what their Scrum velocity is. Let them run the gauntlet with no obstacles. At the end record the velocity which is how many tasks are in the Done areas.</p>
<p>e.g. Sprint 1 &#8211; 13</p>
<p>During the sprint the facilitator can play the role of a pushy manager and shout at the team. See below for examples of things to shout.</p>
<p>Ask the team if they feel puffed out / exhausted. Ask if they think they can sustain this pace?</p>
<p>Point out that in scrum they call an iteration a sprint for a reason&#8230; (joke)</p>
<p>Reset the boards for the next sprint.</p>
<p>&nbsp;</p>
<p><strong>Sprint 2 &#8211; Introduce technical debt</strong></p>
<p>Describe to the room that what they have just seen is what happens in scrum. Management want you to run as fast as you can and get features in.</p>
<p>But what is happening while you are introducing new features to the code base you are also introducing technical debt. For every story completed you left behind debt.</p>
<p>Ask the room if in their environment they have technical debt. (Yet to have a no come back to this question.)</p>
<p>Now grab chairs from the sidelines and place them randomly in the gauntlet area to represent the technical debt. Place them purposefully to make running the gauntlet difficult.</p>
<p>Re-iterate to the runners that this is a simulation and the goal isn&#8217;t to game the system and win. Re-iterate that they are simulating a dysfunctional team and are not to communicate with each other (to collude).</p>
<p>Double re-iterate safety! No jumping the chairs. Please be sensible and careful!!!</p>
<p>Now run the second sprint. Again take on the role of pushy manager and include in your taunts : -</p>
<ul>
<li>why have things slowed down?</li>
<li>you developers are useless</li>
<li>why are your estimates wrong?</li>
<li>etc</li>
</ul>
<p>Take the velocity of the second sprint.</p>
<p>e.g. Sprint 2 &#8211; 10</p>
<p>Note &#8211; it actually takes putting quite a few chairs in the gauntlet to impact velocity in this sprint. I usually put in 10-15.</p>
<p>&nbsp;</p>
<p><strong>Sprint 2a &#8211; Legacy system (but don&#8217;t run this sprint as it&#8217;s too dangerous)</strong></p>
<p>Have the runners reset their boards for the next sprint.</p>
<p>While they do this &#8211; place more chairs in the gauntlet while explaining to the room &#8220;for every story you get done, you are adding more technical debt&#8221;.</p>
<p>Make the gauntlet almost impossible. Now speak to the room about this is how you create a legacy system. You leave debt behind on top of debt.</p>
<p>Point out to the managers in the room that this is what it is like for a developer. To come in and face a messy codebase and be expected to add value to the system every sprint without ever having time to clean it up.</p>
<p>Ask the room if the gauntlet is now representative of their codebase and running it representative of their job.</p>
<p>Ask them what they think will happen to velocity for this sprint. Ask them what they think will happen if they keep going forward in this way.</p>
<p>Do not run an iteration under these conditions &#8211; it is now too dangerous. You will break things (just as you break the code when you try to add new features to a legacy system).</p>
<p>Instead we are going to find a solution&#8230;</p>
<p>&nbsp;</p>
<p><strong>Sprint 3 &#8211; Introduce refactoring and find what their sustainable pace is</strong></p>
<p>The new rule for this iteration is &#8211; refactoring.</p>
<p>For each story that you work on you are allowed to do some refactoring &#8211; cleaning up of the codebase. This is represented by being able to move one chair out of the gauntlet for each story you are working on.</p>
<p>You will also no longer run &#8211; but walk. We need to find a sustainable pace and we need to move more purposefully and carefully.</p>
<p>Walk, don&#8217;t run.</p>
<p>Go!</p>
<p>During this sprint the facilitator can call out management stressors like :-</p>
<ul>
<li>who said they could refactor?</li>
<li>why are they pair programming?</li>
<li>what is this nonsense?</li>
<li>we are doomed if they work at this pace!</li>
<li>we don&#8217;t need refactoring, we need features!</li>
</ul>
<p>At the end of the sprint record the velocity and have everyone return to their seats for the post exercise discussion.</p>
<p></p>
<p><strong>Management Abuse to shout at game players</strong></p>
<ul>
<li>Faster!</li>
<li>I need more features!</li>
<li>What is wrong with this team?</li>
<li>Why are they so slow?</li>
<li>Why are your estimates all wrong?</li>
<li>More velocity!</li>
<li>Development monkeys!</li>
<li>Screw code practices – I need Features!</li>
<li>Stop that pair programming nonsense!</li>
<li>My last team was better than you guys</li>
<li>Don’t make me fire you</li>
<li>I should out source the lot of you</li>
<li>Run, run, run!</li>
<li>Lazy coders!</li>
<li>I’m paying you too much!</li>
<li>There’s going to be overtime!</li>
</ul>
<p></p>
<hr />
<p><strong>Post Exercise Discussion</strong></p>
<p>At this point your velocity will look something like :-</p>
<div>Sprint 1 &#8211; 14</div>
<div>Sprint 2 &#8211; 12</div>
<div>Sprint 3 &#8211; 8</div>
<p></p>
<p>Now talk about what the numbers mean.</p>
<p>Sprint one represents what happens when companies take on Scrum. They become excited about the ability to get things done quickly. Because Scrum does not include any technical practices the usual pattern is to ignore them but now the Product Owner and business is used to a certain cadence of delivery. What they don&#8217;t realize though is that it is not sustainable and they are incurring a debt with compounding interest. i.e Technical Debt</p>
<p>Sprint two represents what happens over time as the debt starts to build up. You are ignoring the agile principle (behind the Agile Manifesto) of :-</p>
<blockquote><p>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</p></blockquote>
<p>Sprint three represents Extreme Programming and sustainable pace. You are now writing code in a sustainable way where it is easy to add new features and the technical debt is kept in check. Refactoring is part of coding. You should not need to ask permission to do it, you must do it as part of writing code. But this may cause a change in your coding culture and processes. This is the next part of the discussion.</p>
<p></p>
<hr />
<strong>Code Entropy, Iterating toward Legacy, Technical Debt, Refactoring is not an Island, Extreme Programming</strong>
<p>These are all distinct topics that are raised by the exercise and should be discussed. It would make this article a little too long if I include what to address to all of these here so I shall add links to blog articles as I write them. To start with however you can look at :-</p>
<p><a rel="nofollow" target="_blank" href="http://blog.agileagitator.com/2015/01/iterating-toward-legacy-scrums-achilles.html">Iterating Toward Legacy &#8211; Scrum&#8217;s Achilles Heel</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.slideshare.net/RonQuartel/scrum-plus-extreme-programming-xp-for-hyper-productivity">Slideshare of this exercise presented at Agile 2015</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Lack of women in technology industry starts early</title>
         <link>http://softwareandotherthings.blogspot.com/2015/09/lack-of-women-in-technology-industry.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://farm3.staticflickr.com/2822/8749933484_bd272d1262_b.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://farm3.staticflickr.com/2822/8749933484_bd272d1262_b.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;As a part of the wonderful &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://houstontechfest.org/&quot;&gt;HoustonTechFest&lt;/a&gt;, an annual community event for the technology industry, we got to have a very important conversation on diversity in our communities. A very small portion of software engineers are women. It is rather rare for women to enter, thrive, and build successful long-term careers in the technology industry. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;During our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/jprusakova/status/643234703156183040&quot;&gt;panel discussion at the HoustonTechFest “BuildingSoftware Is A Team Sport: Women In Technology”&lt;/a&gt; we discussed the benefits of having both men and women participate and be successful in technology field. Participants talked about the problems for different ages and career stages, and what we as a community can do about it. We also looked at the societal biases, rooted far outside the technology industry, that keep men and women apart and less than successful professionally, and how each one of us can help our friends and colleagues lessen the effects of these biases. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;As a technology professional, I observe these biases nearly every day. I work with many smart, successful, and open to diversity and true meritocracy men and women. I also interact with people who believe that women cannot be capable engineers.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Recently, I’ve come across a scary source of these biases. &amp;nbsp;My toddler attends a wonderful daycare center – a loving, fun place where kids play, learn, and build their social skills through interacting with other kids and many excellent teachers. Yet, one day my child came home from daycare with this scary idea: “Girls are nice. Boys create messes. I do not like boys.” She went on to name girls who she likes, because they are girls, and boys who she does not like, since they are boys. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;We have had several conversations as a family how boys and girls are both kids who play and learn together, how boys and girls can both be nice and fun. How it is OK to not like kids who are mean or angry, but it is not fair to not like or not play with a kid simply because he is a boy (or a girl, for that matter). &amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;However, this is a tough message to deliver to a little kid. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.npr.org/sections/alltechconsidered/2014/02/06/272646267/how-the-meritocracy-myth-affects-women-in-technology&quot;&gt;Just as tough as it is to convince grown up, professional men and women&lt;/a&gt; with extensive work and life experience, that both men and women can be smart, capable, innovative, and contribute greatly to the success of the industry, if given a chance.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The struggle continues. &amp;nbsp;Please join us for our next discussion about successful diverse teams in technology.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-yZcxZfJw0O0/VfjJOs7393I/AAAAAAAAA8E/f4WYvVwa1BI/s1600/girls.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://1.bp.blogspot.com/-yZcxZfJw0O0/VfjJOs7393I/AAAAAAAAA8E/f4WYvVwa1BI/s400/girls.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-4528079637620715430</guid>
         <pubDate>Tue, 15 Sep 2015 21:06:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-yZcxZfJw0O0/VfjJOs7393I/AAAAAAAAA8E/f4WYvVwa1BI/s72-c/girls.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Spreadsheet Craftsmanship</title>
         <link>http://tastycupcakes.org/2015/09/spreadsheet-craftsmanship/</link>
         <description>Timing 30 minutes Overview You have inherited a spreadsheet from a coworker. The spreadsheet calculates the cost of consultants, given the following: number of contractors, hourly rate, number of hours per day, start date, and number of contract months. The spreadsheet is currently DEFECT FREE. Preparation You will need to download the Excel spreadsheet Overview [...]</description>
         <author>Dennis Somerville</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5204</guid>
         <pubDate>Sat, 12 Sep 2015 02:13:27 +0000</pubDate>
         <content:encoded><![CDATA[<h2>Timing</h2>
<p> 30 minutes </p>
<h2>Overview</h2>
<p>You have inherited a spreadsheet from a coworker.  The spreadsheet calculates the cost of consultants, given the following: number of contractors, hourly rate, number of hours per day, start date, and number of contract months.  The spreadsheet is currently <strong>DEFECT FREE</strong>.</p>
<h2>Preparation</h2>
<p>You will need to <a rel="nofollow" target="_blank" href="https://docs.google.com/uc?id=0B0YwLjApXfLLQjlDMkk2MnBDMXc&amp;export=download">download the Excel spreadsheet</a></p>
<h2>Overview of the Game</h2>
<p>A facilitator will be distributing the requirements one at a time.  Once you finish making the required changes, you will be given another requirement.  Please make the changes quickly so we can meet our company’s deadlines.</p>
<h3>Round 1</h3>
<p>Please make the requested changes on the “good” worksheet.   The round is over when a) you finish all of the requirements, or b) the changes are getting too hard to make.</p>
<h3>Round 2</h3>
<p>Repeat this process on the “better” version worksheet.  Start from the beginning with the first requirement.</p>
<h3>Round 3</h3>
<p>Repeat the process on the “best” version worksheet.  Again, start from the beginning with the first requirement.</p>
<h2>Learning Points</h2>
<ul>
<li>Why was it easier to make changes on the best or better versions?  Why?</li>
<li>Which version will allow us to deliver the most business value?  Why?</li>
<li>Which version did you enjoy working with the most?</li>
<li>When you modified the &#8220;best&#8221; version, did you follow the best practices of named ranges, calculation formulas, etc., or did you just start hacking away at the formula?  Why?</li>
<li>Calculation cells are like &#8220;methods&#8221;</li>
<li>Names ranges are like &#8220;variables&#8221;</li>
<li>Using calculation cells and named ranges make the formula more readable and allows you to focus on one small problem at a time</li>
</ul>
<h2>Discussion and Facilitation Guidance</h2>
<ul>
<li>Defects are &#8220;external quality&#8221;, readability/maintainability is &#8220;internal quality&#8221;</li>
<li>Pressure is a source of low internal quality</li>
<li>Low internal quality puts our future success at risk</li>
</ul>
<h2>Link to Game</h2>
<p><a rel="nofollow" target="_blank" href="http://densom.blogspot.com/2015/01/demonstrating-software-craftsmanship-to.html">http://densom.blogspot.com/2015/01/demonstrating-software-craftsmanship-to.html</a></p>]]></content:encoded>
      </item>
      <item>
         <title>The Bicycle Game</title>
         <link>http://tastycupcakes.org/2015/08/the-bicycle-game/</link>
         <description>In one of my projects I developed a retrospective technique that is the combination several other techniques. This technique I called the ‘bicycle game’ because of the result: a nice bicycle. Goal This game has two main goals: To let the participants think not only from their own perspective&amp;#160; but also from an external perspective [...]</description>
         <author>Christo Martens</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5154</guid>
         <pubDate>Wed, 19 Aug 2015 14:02:00 +0000</pubDate>
         <content:encoded><![CDATA[<p>In one of my projects I developed a retrospective technique that is the combination several other techniques. This technique I called the ‘bicycle game’ because of the result: a nice bicycle.</p>
<p><span id="more-5154"></span><br />
<h5>Goal</h5>
<p>This game has two main goals:</p>
<ol>
<li>To let the participants think not only from their own perspective&#160; but also from an external perspective </li>
<li>To let the participants do a deep dive in finding the real cause of a problem </li>
</ol>
<h5>Timing</h5>
<p>The game can be finished in about 60 minutes.</p>
<h5>Materials</h5>
<p>The Bicycle game makes use of :</p>
<ul>
<li>Sticky notes (3 colors) and pens </li>
<li>Two pieces of paper (flip-over, brown paper) </li>
</ul>
<h5>Instructions</h5>
<h6>Preparation</h6>
<p>The agile coach prepares the game by identifying some (6 to 8)characteristics, that he wants the team’s feedback on. This might well be the shared team values that the team has defined during project start.</p>
<p>Prepare a spreadsheet (like Microsoft Excel), containing the criteria the number of participants and columns that calculate the minimum, maximum and average of the rates, and that plots these values in a circular graph.</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/2015/08/image.png"><img style="border-right-width:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" border="0" alt="image" src="http://tastycupcakes.org/wp-content/uploads/2015/08/image_thumb.png" width="315" height="71"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/2015/08/image1.png"><img style="border-right-width:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" border="0" alt="image" src="http://tastycupcakes.org/wp-content/uploads/2015/08/image_thumb1.png" width="317" height="234"/></a></p>
<p>Duplicate this worksheet, and be finally creative in combining both graphs into a nice bicycle showing the average circles as wheels.</p>
<h6>Execution – Information gathering</h6>
<p>Start the game by asking the team to stand up.</p>
<ul>
<li>The Agile Coach draws a star on a paper one ax per selected characteristic. </li>
<li>The Agile Coach asks each team member to rate his personal feeling regarding each characteristic on a scale of 0 to 5 </li>
<li>The Agile Coach draws a circle like curve that connects the maxima and minima </li>
<li>This will end in a <a rel="nofollow" target="_blank" href="http://www.disruptivelearning.de/2014/02/13/team-radar-retrospective-tips-tricks/">team radar</a>. </li>
</ul>
<ul>
<li>The Agile Coach draws the same star on the second paper one (ax per selected characteristic). </li>
<li>The Agile Coach asks each team member to rate the feeling of some one the team is cooperating with regarding each characteristic on a scale of 0 to 5 </li>
<li>The Agile Coach draws a circle like curve that connects the maxima and minima </li>
<li>This will end in a second <a rel="nofollow" target="_blank" href="http://www.disruptivelearning.de/2014/02/13/team-radar-retrospective-tips-tricks/">team radar</a>. </li>
</ul>
<h6>Execution – Deep dive into causes</h6>
<ul>
<li>The Agile Coach shows the ideal bicycle, with almost round wheels to the team      <br /><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/2015/08/image2.png"><img style="border-right-width:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" border="0" alt="image" src="http://tastycupcakes.org/wp-content/uploads/2015/08/image_thumb2.png" width="340" height="180"/></a> </li>
<li>The Agile Coach shows the team created bicycle, like the one below      <br /><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/2015/08/image3.png"><img style="border-right-width:0px;padding-left:0px;padding-right:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" border="0" alt="image" src="http://tastycupcakes.org/wp-content/uploads/2015/08/image_thumb3.png" width="339" height="184"/></a> </li>
<li>The Agile Coach asks the team to write down for themselves the causes of this so unpleasant riding bicycle on orange sticky notes </li>
<li>The team sticks the notes on the related axis of both team radar </li>
<li>The team members discuss and group their notes </li>
<li>The Agile Coach asks the to write down the basic causes on yellow notes </li>
<li>The Agile Coach asks the to write down a proposed solution on green notes </li>
<li>The team sticks the notes on the related axis of both team radar </li>
<li>The team members discuss and group their notes </li>
</ul>
<p>Note: Other colors will fit as well. </p>
<h6>Execution – pick actions</h6>
<p>The team members eventually decide on the best actions to take in the next sprint.</p>
<h5>Learning points</h5>
<p>Of course the learning points of this game depends on the characteristics that are discussed. However, a very nice thing is that the participants look to their project form out an outside in perspective and that the participants have experienced not to stop thinking when they have found a cause for a problem as there might be a bigger cause as well.</p>
<p>&#160;</p>
<p><strong>This game was originally published on: </strong><a rel="nofollow" title="AgilePMandCoaching.blogspot.nl" target="_blank" href="http://agilepmandcoaching.blogspot.nl/2015/06/the-bicycle-game.html">AgilePMandCoaching.blogspot.nl</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Think about your posture on your next interview – TED Talk</title>
         <link>http://brandonbarber.net/archives/504</link>
         <description>Might be a good idea to do a &amp;#8220;power pose&amp;#8221; before your next interview Amy Cuddy’s research on body language reveals that we can change other people’s perceptions — and even our own body chemistry — simply by changing body &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/504&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=504</guid>
         <pubDate>Mon, 17 Aug 2015 20:53:47 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Might be a good idea to do a &#8220;power pose&#8221; before your next interview</strong></p>
<p>Amy Cuddy’s research on body language reveals that we can change other people’s perceptions — and even our own body chemistry — simply by changing body positions.</p>
<p>watch here &#8211; <a rel="nofollow" target="_blank" href="http://www.ted.com/talks/amy_cuddy_your_body_language_shapes_who_you_are">TED TALK</a></p>
<p><strong>Why you should listen</strong></p>
<p>Amy Cuddy wasn’t supposed to become a successful scientist. In fact, she wasn’t even supposed to finish her undergraduate degree. Early in her college career, Cuddy suffered a severe head injury in a car accident, and doctors said she would struggle to fully regain her mental capacity and finish her undergraduate degree.</p>
<p>But she proved them wrong. Today, Cuddy is a professor and researcher at <a rel="nofollow" target="_blank" href="http://drfd.hbs.edu/fit/public/facultyInfo.do?facInfo=ovr&amp;facEmId=acuddy%40hbs.edu">Harvard Business School</a>, where she studies how nonverbal behavior and snap judgments affect people from the classroom to the boardroom. And her training as a classical dancer (another skill she regained after her injury) is evident in her fascinating work on &#8220;<a rel="nofollow" target="_blank" href="http://hbswk.hbs.edu/item/6461.html">power posing</a>&#8221; &#8212; how your body position influences others and even your own brain.</p>
<p>What others say</p>
<p>“Using a few simple tweaks to body language, Harvard researcher Amy Cuddy discovers ways to help people become more powerful.” — TIME Game Changers, March 19, 2012</p>]]></content:encoded>
      </item>
      <item>
         <title>Make your code reviews Agile</title>
         <link>http://softwareandotherthings.blogspot.com/2015/08/make-your-code-reviews-agile.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-yXU0EyQDzBQ/VdC-C1wa13I/AAAAAAAAAxs/MAb3kdtomAM/s1600/code-review-doing-it-wrong.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://2.bp.blogspot.com/-yXU0EyQDzBQ/VdC-C1wa13I/AAAAAAAAAxs/MAb3kdtomAM/s400/code-review-doing-it-wrong.png&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When discussing dealing with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.linkedin.com/pulse/20140829181858-139508176-technical-debt-101&quot;&gt;technical debt&lt;/a&gt;, fragile and buggy code base, and improving quality of the technical community, code reviews are a popular suggestion. Code reviews sound wonderful in theory: a junior or simply not-so-good programmer presents his work for review to an experienced grander-than-thou colleague, receives excellent suggestions within one hour, and another hour later all suggestions are implemented and the code transforms from nasty to near-perfect. &lt;br /&gt;&lt;br /&gt;Enter reality. Thorough review of non-trivial code takes a long time. It is becoming increasingly harder to do a quality review as the time needed for the review increases.  The pressure to provide a quality review suggests that more time is needed, and more time spent in review leads to poorer reviews, creating a downward spiral leading to deadlock. &lt;br /&gt;&lt;br /&gt;Team dynamics are also affected. Giving a small number of reviewers the authority to dictate changes in work they are barely familiar with, without much feedback on the outcome of those changes, reinforces the bad habits of the reviewers and further entrenches their biases into the codebase. People required to accept suggestions without a possibility of challenge or feedback soon start to despise the reviews, the reviewers, and the suggestions. Neither reviewers nor authors feel responsible for the quality of the end results: reviewers because they only spent a little time reviewing, and authors because they were forced to make changes against their judgement. &lt;br /&gt;&lt;br /&gt;So, are code reviews doomed to fail?&lt;br /&gt;&lt;br /&gt;For code reviews to be a successful code-quality tool, consider an Agile approach. Make code reviews small and nimble, and have the entire team in charge of making, accepting and implementing generated suggestions. &lt;br /&gt;&lt;br /&gt;That means everybody reviews everybody else’s code, in tiny little chunks. No formal meeting should be required. Everybody is invited and encouraged to generate improvement suggestions on all other team member’s work – and expected to defend their ideas. There is no separation of roles into those who critique, and those who are being critiqued. All team members are required to ask for and work with peer feedback.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-wzJrtT96WIs/VdC_7vNbRBI/AAAAAAAAAx4/TFN_FcMre5o/s1600/peer-review-cartoon-teaser.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;215&quot; src=&quot;http://4.bp.blogspot.com/-wzJrtT96WIs/VdC_7vNbRBI/AAAAAAAAAx4/TFN_FcMre5o/s400/peer-review-cartoon-teaser.png&quot; title=&quot;&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-5141538090401289547</guid>
         <pubDate>Sun, 16 Aug 2015 12:00:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-yXU0EyQDzBQ/VdC-C1wa13I/AAAAAAAAAxs/MAb3kdtomAM/s72-c/code-review-doing-it-wrong.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>One Word Retrospective Game</title>
         <link>http://tastycupcakes.org/2015/08/one-word-retrospective-game/</link>
         <description>good retrospective game when you feel there are under currents or stuff not being said.  This provides a safe avenue in sharing ideas thoughts or feeling in the context of what someone else might have meant in a word.</description>
         <author>Lauren Thomas</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5137</guid>
         <pubDate>Fri, 14 Aug 2015 15:36:57 +0000</pubDate>
         <content:encoded><![CDATA[<p>Post-its and pens is all you need!</p>
<p>WORD UP!</p>
<p>Each Team Members place a word on the board that highlights the sprint for them</p>
<p>Team Plays Sprint Dictionary</p>
<p>One team member selects a word of the board<br />
Everyone BUT the person who put it up on the board discusses what they think the team member meant by the word<br />
The thoughts are captured<br />
When everyone has said all the want to say, the team member who put the word up shares what they meant by the word</p>
<p>Team Discussion</p>
<p>After the team member shares their thoughts , the team discusses<br />
What did we just hear from everyone?<br />
What can we glean from what we heard?<br />
Are there some underlying feelings, issues, etc. we need to dig deeper into?</p>
<p>UNO MAS?</p>
<p>Team Members places another word on the board that highlights the sprint for them if they have them</p>
<p>repeat team discussion</p>
<p>Lost For Words? </p>
<p>When there is nothing left to say (no more words)<br />
Where do we put them?</p>
<p>Bury It- we want to leave behind and not take forward<br />
Pack it &#8211; we want to put in our backpack and take with us<br />
DEV Server &#8211; We need to work on this, put on our backlog </p>]]></content:encoded>
      </item>
      <item>
         <title>Retrospective darts</title>
         <link>http://tastycupcakes.org/2015/08/retrospective-darts/</link>
         <description>Retrospective Darts is a great way to visualize the sprint.  Most people are familiar with darts so it is easy for team members to grasp and they enjoy playing it.</description>
         <author>Lauren Thomas</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5130</guid>
         <pubDate>Fri, 14 Aug 2015 15:19:25 +0000</pubDate>
         <content:encoded><![CDATA[<p>There are three rounds of darts</p>
<p>Each team member gets 3 darts</p>
<p>Each team member places their first dart on the board and explains what they are scoring and why they scored it in the way they did</p>
<p>The next team member places their dart and so on</p>
<p>Then the second dart and then the third dart</p>
<p>Three Rounds with Three Darts:<br />
Round One &#8211; Process<br />
Round Two &#8211; Product<br />
Round Three &#8211; Team</p>
<p>you have a triple line which means this was really great</p>
<p>You have a double line which means it really good</p>
<p>You have numbers 1 -20.  One being the lowest value and 20 being the highest value.</p>
<p>outer bull &#8211; was a wOW!  but got an idea of how we can still improve it with a little tweak</p>
<p>Inner bull &#8211; We hit it! it was the best we could do!</p>
<p>After each round the team analyzes the results</p>
<p>What have we learned and what are we still struggling with?</p>
<p>What do we need to continue to do?</p>
<p>What do we need to put in the backlog for agile improvements?</p>
<p><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/tdomf/5130/Retrospective Dart Game.pdf">Retrospective Dart Game.pdf (1015 KB)</a></p>]]></content:encoded>
         <category>*All Games*</category>
      </item>
      <item>
         <title>GeekMeet Networking, Aug 12th @ The Londoner</title>
         <link>http://brandonbarber.net/archives/499</link>
         <description>Join GeekMeet on August 12th to network with other IT professionals in Dallas. It&amp;#8217;s important to build &amp;#38; maintain your professional network. Your network can be there for you when you need a job, a reference, a new contract, ideas on &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/499&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=499</guid>
         <pubDate>Mon, 03 Aug 2015 15:29:41 +0000</pubDate>
         <content:encoded><![CDATA[<p>Join GeekMeet on August 12th to network with other IT professionals in Dallas.<br />
It&#8217;s important to build &amp; maintain your professional network. Your network can be there for you when you need a job, a reference, a new contract, ideas on how to hone your skills, and so much more.</p>
<p><strong>Date:</strong> August 12th<br />
Place: The Londoner<br />
<strong>Address:</strong><br />
14930 Midway Road<br />
Addison, TX 75001<br />
<strong>Time:</strong> 5 &#8211; 7:30pm</p>
<p>More information &#8211; and RSVP &#8211; <a rel="nofollow" target="_blank" href="http://www.geekmeet.com/our-cities/dallas-tx/">http://www.geekmeet.com/our-cities/dallas-tx/</a></p>]]></content:encoded>
         <category>Career</category>
      </item>
      <item>
         <title>Penny Flow</title>
         <link>http://tastycupcakes.org/2015/07/penny-flow/</link>
         <description>Summary: This game is based on The Penny Game.  I&amp;#8217;ve seen it in various incarnations, but this is based on the original concept.  Instead of simply showing how batch size affects throughput, this game has been heavily modified to give several additional lessons.  Attendees can expect to learn about Agile&amp;#8217;s roots in Lean manufacturing, batch [...]</description>
         <author>Sean Robinson</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=5097</guid>
         <pubDate>Mon, 27 Jul 2015 17:51:10 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/07/penny-flow/british-one-penny-coins-image-shot-2009-exact-date-unknown/"><img class="alignnone size-full wp-image-5111" src="http://tastycupcakes.org/wp-content/uploads/2015/07/pennies.jpg" alt="" width="380" height="253"/></a></strong></p>
<p><strong>Summary:</strong></p>
<p>This game is based on The Penny Game.  I&#8217;ve seen it in various incarnations, but this is based on the original concept.  Instead of simply showing how batch size affects throughput, this game has been heavily modified to give several additional lessons.  Attendees can expect to learn about Agile&#8217;s roots in Lean manufacturing, batch size theory, single piece flow, being adaptive to change, quick feedback and communication.</p>
<p>Each round after the first is essentially optional, you can choose exactly which lessons you wish to deliver.  This may be all of them for more experienced teams, or fewer for those new to Agile.</p>
<p>&nbsp;</p>
<p><strong>Timing</strong>: 20 &#8211; 60 minutes depending on team size and number of rounds.</p>
<p>&nbsp;</p>
<p><strong>Materials:</strong></p>
<ul>
<li>20 x pennies</li>
<li>10 x larger denomination coins</li>
<li>Whiteboard / Blackboard / Flipchart</li>
<li>1 x stopwatch per team</li>
<li>Post-Its</li>
<li>Pens for Post-Its and board</li>
</ul>
<p>&nbsp;</p>
<p><strong>Instructions:</strong></p>
<p>This game will be run over several rounds, with each round introducing a new concept.</p>
<p><strong><em>Setup</em>:</strong></p>
<ul>
<li>Split your group into equal teams of at least 4, ideally not more than 6.</li>
<li>Choose one person from each team to be the timer.</li>
<li>If there are people left after this split, they can take charge of recording the results.</li>
<li>Each team should form a line, sitting down along the edge of some work surface, like a table length.</li>
<li>Ensure the timer for each team has a stopwatch.</li>
<li>Give each team an equal amount of pennies (around 8 &#8211; 15 is good).</li>
<li>You should now have equal teams with an equal set of coins, with everybody in the group having something to do.</li>
<li>Draw a large grid that will hold the scores for the completed rounds.  Something like:</li>
</ul>
<div><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/07/penny-flow/penny_grid/"><img class="alignnone size-large wp-image-5098" src="http://tastycupcakes.org/wp-content/uploads/2015/07/Penny_Grid-660x199.png" alt="" width="660" height="199"/></a></div>
<p>&nbsp;</p>
<p><em><strong>Round 1 &#8211; Batch Size:</strong></em></p>
<p><em><strong></strong></em>Explain to the group that they each form a different team.  Each team will complete the same work, which in this case is the flipping of coins.  Each team member will need to complete the work in batches, before passing the batch to the next person.  People are only allowed to use 1 hand, and the batch must be stacked in a tower before they can pass it to the next person.</p>
<p>Give each person a job title to model a real project.  Commonly, this would be some subset of &#8216;Analyst&#8217;, &#8216;Designer&#8217;, &#8216;Programmer&#8217;, &#8216;Tester&#8217; and perhaps something like &#8216;Acceptance&#8217; if needed.</p>
<p>Tell the teams that you are the client, and that when the batch reaches you, they have delivered that value.  Tell each timer that they must record the time it took for the first and last batches to be processed.</p>
<p>Finally, tell each team that they will be working with a different batch size.  For 2 teams, use a full batch (the amount of pennies each team has) and 1 for the sizes.  This will result in 1 team processing pennies individually before passing them, and another processing the whole batch at each station.  With more teams, use intermediate numbers; so for 3 you would use 1, 5 and 10 perhaps.</p>
<ol>
<li>Get each team to stack their coins in the required batch sizes.  Teams working on a single coin can simply use a heap.</li>
<li>Start the teams working with a countdown.</li>
<li>Ensure players only use 1 hand and that the work is completed according to their batch size.</li>
<li>Ensure the time taken for the first and last coins for each team is recorded.</li>
<li>Stop timers when all work is completed.</li>
<li>Record scores in the appropriate sections of your grid.</li>
<li>Asks teams to discuss what they noticed.</li>
</ol>
<div><em>Learning:</em></div>
<div>
<ul>
<li>The conversation will often be limited with more experienced teams here, so it&#8217;s unwise to linger on lessons that are already known.</li>
<li>People should note that smaller batch sizes allowed other people to start working earlier.</li>
<li>Indicate that even if the final times were very close for both teams, the teams with smaller batches were delivering value almost immediately. Reference the Agile Manifesto with regard to early and continuous value.</li>
<li>The team working with a single batch size have been using single piece flow, first pioneered in the Toyota Production System.  It is largely this process that helped fuel the Lean movement, later translated to software by Tom and Mary Poppendieck</li>
</ul>
<div><em><strong>Round 2 &#8211; Reactive to Change:</strong></em></div>
<div>Tell everyone that you will be doing the same game, but with some additional coins.  The timers will complete the same role as they previously did.  All other aspects of the game will be the same.</div>
<div>
<ol>
<li>Evenly distribute the other coins through the batched stacks of the teams.</li>
<li>Start the teams working with a countdown.</li>
<li>Around halfway through, announce that you have changed your mind and now only want the pennies.</li>
<li>Allow the game to finish and record the scores.</li>
<li>Ask the teams to discuss how the exercise went.</li>
</ol>
<div><em>Learning:</em></div>
<div>
<ul>
<li>Teams should see that with large batch sizes, there was a lot more wasted effort that went into processing and stacking unneeded coins.</li>
<li>Teams should see that larger batch sizes made it more difficult to separate the required from the extraneous work.</li>
<li>It should be noted that smaller batch teams were able to ignore the other coins once the change came in, reducing the wasted effort.</li>
</ul>
<div><em><strong>Round 3 &#8211; Quick Feedback:</strong></em></div>
<div>The teams will now continue to use all of the coins, but change requests will no longer play a part.</div>
<div>
<ol>
<li>Give each &#8216;Tester&#8217; (Or simply choose one of the latter work centres in the chain) in your team a note that says the following: &#8220;We need all coins to be face down, reject entire batch back to Developer.  You can say why.&#8221;.  It is vital that this secret message is not shared with other teams or anyone else on their team.  The aim is for the &#8216;Tester&#8217; of each team to reject the first faulty batch, have it &#8216;reworked&#8217;, and then successfully complete the remaining batches.</li>
<li>Allow the game to finish as normal.</li>
<li>Ask the teams what they noticed.</li>
</ol>
<div><em>Learning:</em></div>
<div>
<ul>
<li>Teams should note that with larger batch sizes, the amount of work wasted was much higher.</li>
<li>Note that smaller batches allowed for significantly quicker feedback to the team, reducing waste.</li>
<li>Watch for teams repeatedly failing batches because the message wasn&#8217;t passed all the way back.</li>
</ul>
<div><em><strong>Round 4 &#8211; Bottlenecks:</strong></em></div>
</div>
<div>This time we will model bottlenecks, and show the difference between local and systemic optimisation.  Ask each team to identify their primary bottleneck.  They should identify the first work centre as it is this person who delays the next from starting.  You may see people identifying themselves because they are slow, steer the conversation towards a more general view.</div>
</div>
<div>Next, ask the team how they would optimise that bottleneck.  You will generally see people saying that they would use more people.  Use this and say you are going to simulate that by allowing that person to use two hands for the next round.</div>
<div>
<ol>
<li>Tell the first person in each chain that they can now use 2 hands to process their batches.  Each batch passed to the next person MUST be stacked on top of the coins that person is waiting to process.</li>
<li>Start the countdown to begin the game.</li>
<li>Allow the game to complete and record the scores.</li>
<li>Ask the teams what they noticed.</li>
</ol>
<div><em>Learning:</em></div>
<div>
<ul>
<li>The times should be slightly quicker here.</li>
<li>You are looking for the teams to mention that work started to build up further along the line as the rest of the team struggled to keep up.  they should identify that resolving their primary bottleneck has given way to another.</li>
<li>Note that the work being built up before bottlenecks represents inventory.  Show that this is expensive to store for companies and often increases overall time due to the extra work required in maintaining it (The stacking).  This corresponds to the cost in manufacturing of storing large volumes of parts in warehouses.  By eliminating the need for storage using &#8216;Just In Time&#8217;, companies reduced the cost of maintaining and transporting that stock.  In software, this represents stories being stuck waiting for a person to complete the next step in the chain.  This increases the cycle time of that story, delaying value.</li>
<li>Ask what would happen if you continued to optimise your first person.  You would be unlikely to see a decrease in overall time because you were optimising something other than your bottleneck, this is the difference between local and systemic optimisation.</li>
</ul>
<div><em><strong>Round 5 &#8211; Optional:</strong></em></div>
<div><em><strong></strong></em>You may additionally run the game with a further optimisation on the first player here, just to highlight the point of local vs. systemic optimisation.</div>
</div>
<div>Alternatively you could choose to allow all teams to optimise their bottlenecks by using 2 hands for every work centre.  This would allow the teams to finish with their best output.</div>
</div>
<p></p>
<div><strong>Concluding Notes:</strong></div>
<div>For me, the benefit of this framework is that there are so many lessons to take from it.  Different people will see different things, don&#8217;t be afraid to run your own experiments in additional rounds; even asking your teams if there is something that they would like to model.</div>
<p></p>
<div><strong>Thanks: </strong></div>
<div><strong></strong>Thanks to David Grant, Matt Pearce, Matt Grover, Steffan Liassides and the <a rel="nofollow" target="_blank" href="http://www.meetup.com/south-wales-agile-group/">South Wales Agile Group</a> for their assistance in refining this game.</div>
<p>&nbsp;</p>
<p>
<div>Originally posted at: <a rel="nofollow" target="_blank" href="http://www.seantrobinson.co.uk/penny-flow-agile-game/">SeanTRobinson</a>
</div>
</div>
<p>&nbsp;</p>
</div></div>]]></content:encoded>
      </item>
      <item>
         <title>Successful remote teams</title>
         <link>http://softwareandotherthings.blogspot.com/2015/07/successful-teams-people-and-interactions.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://farm3.staticflickr.com/2568/3662757096_9b3dabe8d7_b.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://farm3.staticflickr.com/2568/3662757096_9b3dabe8d7_b.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;In this day and age of total technological connectedness working from home seems like a no-brainer. There is email that we check every passing second, the smartphone that can reach us anywhere anytime, and increasingly sophisticated tools that allow sharing any kind of elegantly structured and totally chaotic data across every imaginable divide. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Yet, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://globalworkplaceanalytics.com/telecommuting-statistics&quot;&gt;telecommuting remains rare&lt;/a&gt;, and remote projects remain hard. Outsourcing, in its more typical implementations, fails spectacularly and often. Organizations’ worst performers are often found among those “working from home”. (Best performers work from home, too, but that’s a different blog post.) &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Overall, distributed groups face higher challenges and more risks on the way to becoming strong, coherent teams. Remote contributors must strive harder to successfully work together with others, compared to the regular folks who show up to the office every day.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;For a team to be successful, members must share a vision, a flow, sense of connectedness that allows to think and make decisions together while maintaining unique perspectives.People on successful, productive teams interact many times a day to maintain working relationships. These interactions can be small or profound, like a quick ‘hello’ in a hallway or a heated discussion over lunch. More importantly, such exchanges are typically informal, unscheduled, and “just happen” – and they are absolutely essential to keeping the team in great shape. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Successful distributed teams have the technological means to have these interactions, too – but the opportunities do not ‘present themselves’. When other team members are not within eyesight, it takes conscious, deliberate effort to think pick up the phone, start up an IM conversation, or send an email. It is even harder to regularly take the time to share a joke, a story, something that’s not immediately essential for the work at hand, but serves a more long-term purpose of maintaining team spirit.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;People who work remotely regularly and with great success, have made these kinds of intentional “extra” interactions part of their regular routine. The same way mature teams, organizations and their members produce high-quality results, mature distributed teams, organizations and their members make sure to stay connected and engage in lots of team interactions.&lt;br /&gt;&lt;br /&gt;The maturity and effort required for a productive, successful remote working relationship may or may not be visible to a typical regular office worker Joe, who is having grand visions of working from home in his or hers pajamas.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;&quot;&gt;&lt;/div&gt;&lt;table style=&quot;width:600px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td width=&quot;200px&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://farm5.staticflickr.com/4117/4930764896_f703465187_b.jpg&quot; style=&quot;margin-bottom:1px;margin-left:1px;margin-right:1px;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://farm5.staticflickr.com/4117/4930764896_f703465187_b.jpg&quot; width=&quot;200&quot;/&gt;&lt;/a&gt; &lt;/td&gt;&lt;td width=&quot;200px&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://farm1.staticflickr.com/20/70780607_2d76b6ca4b_b.jpg&quot; style=&quot;margin-left:1px;margin-right:1px;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://farm1.staticflickr.com/20/70780607_2d76b6ca4b_b.jpg&quot; width=&quot;200&quot;/&gt;&lt;/a&gt; &lt;/td&gt;&lt;td width=&quot;200px&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://farm4.staticflickr.com/3334/3274530006_d964f0fe15_z.jpg&quot; style=&quot;margin-left:1px;margin-right:1px;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://farm4.staticflickr.com/3334/3274530006_d964f0fe15_z.jpg&quot; style=&quot;margin-left:1px;margin-right:1px;&quot; width=&quot;200&quot;/&gt;&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-5665978344861396001</guid>
         <pubDate>Thu, 23 Jul 2015 13:31:00 +0000</pubDate>
      </item>
      <item>
         <title>New Blog</title>
         <link>http://feedproxy.google.com/~r/blogspot/toddmeinershagen/~3/ICPrvMjNvgE/new-blog.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://cloud.githubusercontent.com/assets/177508/8763596/9b432186-2d6a-11e5-8083-45480079179e.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;172&quot; src=&quot;https://cloud.githubusercontent.com/assets/177508/8763596/9b432186-2d6a-11e5-8083-45480079179e.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For those of you that have been following this blog for a while, I wanted you to know that I have created a new blog that I will be posting to more frequently. &amp;nbsp;You can find it &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://qualitysoftwarematters.com/&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hope you enjoy!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;div&gt;
&lt;br/&gt;
&lt;span style=&quot;border-top:solid 1px #000000;&quot;&gt;
&lt;span style=&quot;text-align:left;&quot;&gt;
Todd Meinershagen is a Principal Consultant with &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.improvingenterprises.com/&quot; style=&quot;text-align:left;&quot;&gt;Improving Enterprises&lt;/a&gt;&lt;span style=&quot;text-align:left;&quot;&gt; in Dallas, Texas.&lt;/span&gt;
&lt;/span&gt;
&lt;br/&gt;
&lt;/div&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/toddmeinershagen/~4/ICPrvMjNvgE&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <author>Todd Meinershagen</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2681574040796476559.post-1939645728401229965</guid>
         <pubDate>Sat, 18 Jul 2015 16:33:00 +0000</pubDate>
      </item>
      <item>
         <title>Agile Scrum framework at glance</title>
         <link>http://tastycupcakes.org/2015/07/agile-scrum-framework-at-glance/</link>
         <description>Purpose The goal of the game is to start the conversation within the team about their development process, in this case, by using the Agile-Scrum framework. By asking open ended questions, the facilitator would help the team discover areas of improvement identified by the team, help with clarifying some concepts and show the team how [...]</description>
         <author>Jesus Mendez</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=4998</guid>
         <pubDate>Tue, 14 Jul 2015 17:59:49 +0000</pubDate>
         <content:encoded><![CDATA[<p><span style="text-decoration:underline;"><strong>Purpose</strong></span></p>
<p><strong></strong>The goal of the game is to start the conversation within the team about their development process, in this case, by using the Agile-Scrum framework. By asking open ended questions, the facilitator would help the team discover areas of improvement identified by the team, help with clarifying some concepts and show the team how easy it&#8217;s to inspect and adapt their own development process.</p>
<p><span style="text-decoration:underline;"><strong>When to use it</strong></span></p>
<p>This game could be used with new teams (everybody is new), when a new member is joining the scrum team or even when the Scrum Master/Agile Coach/Facilitator is the one joining the team. The main focus of the game is to get alignement about the Scrum framework, which could be used to guide the Scrum Master/Agile Coach/Facilitator with:</p>
<ul>
<li>what needs to be improved and in which order (prioroty)</li>
<li>what&#8217;s unclear, unknown about the scrum framework. (What does requires reinforcement?)</li>
<li>what&#8217;s working and what&#8217;s not.</li>
</ul>
<div>All that above, based on the team&#8217;s perspective.</div>
<p><strong><span style="text-decoration:underline;">Prerequisites</span></strong></p>
<div>1) <a rel="nofollow" target="_blank" href="http://tastycupcakes.org/wp-content/uploads/2015/07/Agile-Scrum-At-Glance-Baseline.pdf">Agile-Scrum At Glance &#8211; Baseline</a></div>
<div>2) A facilitator</div>
<div>3) A board, some markers, some post-its and good attitude.</div>
<div>4) How many participants: minimun one, maximum to try out.</div>
<p><span style="text-decoration:underline;"><strong>Timing</strong></span></p>
<ul>
<li><strong>Preparation:</strong> 5 minutes to print out the required material</li>
<li><strong>Duration:</strong> Between 50 minutes and 60 minutes, depending on how engaged the team is when discussing about what to improve</li>
</ul>
<p><strong><span style="text-decoration:underline;">Instructions</span></strong></p>
<p><strong>Explore &amp; Identify (5 minutes)</strong></p>
<ul>
<li>Distribute  &#8221;Agile – Scrum framework at glance baseline image&#8221; printed to each team member present in the room.</li>
<li>Tell the team to take a look to the &#8220;Agile – Scrum framework at glance baseline image&#8221; and ask them to write down one issue per post-it, about those areas in the chart that: (1)Require some kind of improvement (2) Are not clear/unknown</li>
<li><strong>Note: </strong>it&#8217;s up to the facilitator to limitated the amount of reported issues, so then you can reach the time box that works better for you.</li>
<li>Set a timebox between 3 to 5 minutes, and then let the team alone writting down the issues found.</li>
<li>Once the timebox has gone, ask the team if anybody needs more time. If the answer is no, then move on to the next step.</li>
</ul>
<div><strong>Discuss (30 minutes)</strong></div>
<ul>
<li>Open the floor to discussion by asking for volunteers to expose identified issues.</li>
<li>At this point of the game, it&#8217;s suggested to ask open ended questions in order to clarify each identified issue.</li>
<li>i.e: What is important about the issue that you are presenting us?</li>
<li>i.e: What have you considered when raising the issue?</li>
<li>Once everybody has presented their own issue, it&#8217;s time to move on to the next step.</li>
</ul>
<div><strong>Group and decide (15 to 20 minutes)</strong></div>
<div>
<ul>
<li>Now that everything is discussed, ask for a volunteer to help the team with grouping all the post-its, by using the areas available in the &#8220;Agile – Scrum framework at glance baseline image&#8221;</li>
<li>Give the team some dots stickers to vote (usually I give them to vote = amount of members in the room &#8211; 1)</li>
<li>Once everybody has dot voted, ask them to organize the identified issues in order, based on how many dot votes has got.</li>
<li>Now aske the team to identify one action that could help the team with improving the identified issue.</li>
<li>NOTE: If something is unclear/unknown is up to you to decide when to explained. I usually do it, once the question is raised.</li>
</ul>
</div>
<p><span style="text-decoration:underline;"><strong>Expected outcomes</strong></span></p>
<ul>
<li>Common and shared understanding about where the team is regarding the Scrum framework</li>
<li>What&#8217;s important for the team, about the development process.</li>
<li>The team got empowered to adapt its own development process to its own needs.</li>
<li>A high level actionable improvement plan has been created by the team.</li>
<li>The first seed for a self-organized team has been deployed.</li>
</ul>
<p>Thank you for reading.</p>
<p>All the best,</p>
<p>Jesús E. Méndez A.</p>
<p><a rel="nofollow" title="Jes&#xfa;s E. M&#xe9;ndez A. Scrum Master/Agile Coach web site" target="_blank" href="http://www.jesusmendez.ca">www.jesusmendez.ca</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
      </item>
      <item>
         <title>More Meaningful Stories</title>
         <link>http://tastycupcakes.org/2015/07/more-meaningful-stories/</link>
         <description>This idea originates with Thiagi&amp;#8217;s exercise &amp;#8220;More Interesting&amp;#8221; Divide group into at least 3 groups of 3 or more participants. Each person writes a basic story on one side of an index card Place a 4 digit identifier in upper corner (phone, extension, SS#, b-day) Each group passes all cards to next group Members in [...]</description>
         <author>Karen Favazza Spencer</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=4989</guid>
         <pubDate>Mon, 06 Jul 2015 14:08:18 +0000</pubDate>
         <content:encoded><![CDATA[<p>This idea originates with Thiagi&#8217;s  exercise <a rel="nofollow" target="_blank" href="http://www.thiagi.com/games/2015/6/23/july-more-interesting">&#8220;More Interesting&#8221;</a> </p>
<ol>
<li>
Divide group into at least 3 groups of 3 or more participants. </li>
<li>
Each person writes a basic story on one side of an index card</li>
<li>
Place a 4 digit identifier in upper corner (phone, extension, SS#, b-day) </li>
<li>
Each group passes all cards to next group </li>
<li>
Members in the 2nd group takes a card and rewrites the story on a new blank card to make it “more meaningful” adding details &amp; acceptance criteria, their own 4 digit code, and paper clipping the two cards together, face to face </li>
<li>
Passes to next group who scores each card sharing 100 points, i.e. 60/40, 90/10 </li>
<li>
Return cards to first group and to original author </li>
<li>
Review cards silently, then debrief. </li>
</ol>
<ul>
<li>
What was interesting about this?  </li>
<li>
Do you agree with the scoring?  </li>
<li>
How might you use these insights?  </li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Scrum in TV shows and in real life</title>
         <link>http://softwareandotherthings.blogspot.com/2015/06/scrum-board-on-hbo-and-in-real-life.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-0h05CioBhXY/VYnMiTu9M8I/AAAAAAAAAuc/diLXgS0E1eo/s1600/Silicon_valley_title.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;http://3.bp.blogspot.com/-0h05CioBhXY/VYnMiTu9M8I/AAAAAAAAAuc/diLXgS0E1eo/s400/Silicon_valley_title.png&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In an old episode of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hbo.com/silicon-valley&quot;&gt;HBO “Silicon Valley” show&lt;/a&gt;, a soft-spoken MBA-bearing non-technical dude introduces Scrum to the hard-charging engineering team by presenting them with a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.mountaingoatsoftware.com/agile/scrum/task-boards&quot;&gt;Scrum board&lt;/a&gt;. The purpose of the system is declared to be “visibility into who is working on what”. As it becomes clear in the next 30 seconds, the actual value the team gets out of using the Scrum board (and, by extension, Scrum) appears to be the competition between the engineers who appear to work harder and faster on their separate stories to one-up each other. &lt;br /&gt;&lt;br /&gt;So what is Scrum, and what does it do? &lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://scrum.org/&quot;&gt;Scrum.org&lt;/a&gt; offers this definition: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.scrum.org/resources/what-is-scrum&quot;&gt;“Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs.”&lt;/a&gt; If that’s too complicated, here’s another attempt at an explanation: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.scrum.org/resources/what-is-scrum&quot;&gt;“Scrum itself is a simple framework for effective team collaboration on complex software projects.”&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While this does not explain what Scrum is (one should take &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.improvingenterprises.com/training/certifications/&quot;&gt;multi-day training courses&lt;/a&gt; to fully groke that), it starts to emerge that Scrum is about:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;teams&lt;/li&gt;&lt;li&gt;complex projects&lt;/li&gt;&lt;li&gt;visibility into the work of and collaboration between individual contributors&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;First two items describe common reality, while the last one is often a hard-to-reach state. &lt;br /&gt;&lt;br /&gt;Visibility and collaboration are a worthy goal for many organizations. Teams produce better value if all participants were fully aware of the overall vision and what other people are working on.&lt;br /&gt;&lt;br /&gt;Collaboration and friendly competition are known to improve productivity and quality of the work. Installing and maintaining a Scrum board is a lot less work than adopting proper Scrum. Yet, it is a tiny investment with outsized return.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-vvyhfPKULTs/VYnO5KKC-rI/AAAAAAAAAuo/G_YWJu9kkcU/s1600/scrum-board-ninja.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;265&quot; src=&quot;http://4.bp.blogspot.com/-vvyhfPKULTs/VYnO5KKC-rI/AAAAAAAAAuo/G_YWJu9kkcU/s400/scrum-board-ninja.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-4628194937877121877</guid>
         <pubDate>Tue, 23 Jun 2015 16:31:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-0h05CioBhXY/VYnMiTu9M8I/AAAAAAAAAuc/diLXgS0E1eo/s72-c/Silicon_valley_title.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>LinkedIn Talent Article – 5 things recruiters do that drive candidates crazy</title>
         <link>http://brandonbarber.net/archives/484</link>
         <description>Saw this posting today from the LinkedIn Talent Blog, Author Paul Petrone. I think it rings true for a lot of people. From the recruiter standpoint, unfortunately we have some trouble getting information from clients in a timely manner or &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/484&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=484</guid>
         <pubDate>Tue, 02 Jun 2015 14:51:37 +0000</pubDate>
         <content:encoded><![CDATA[<p>Saw this posting today from the LinkedIn Talent Blog, Author Paul Petrone. I think it rings true for a lot of people. From the recruiter standpoint, unfortunately we have some trouble getting information from clients in a timely manner or they will just say &#8220;we pass&#8221; on a candidate and will not give specifics on why. These things can certainly make a job search frustrating for a job seeker.</p>
<p>http://talent.linkedin.com/blog/index.php/author/paul-petrone</p>
<p>As a recruiter, we assume you don’t want to annoy candidates. Even looking at it in the most selfish way possible, it hurts your ability to <a rel="nofollow" target="_blank" href="http://talent.linkedin.com/blog/index.php/2015/05/9-stats-you-must-keep-top-of-mind-when-closing-candidates">close candidates</a> and ruins your company’s reputation, which is never good for the bottom line.</p>
<p>So, to help you understand what irritates candidates most, <a rel="nofollow" target="_blank" href="https://business.linkedin.com/talent-solutions/resources/recruiting-tips/talent-trends-2015?src=bl-po&amp;veh=5-things-Recruiters-Do-that-Drive-Candidates-Crazy_paul-petrone_060215">we surveyed more than 20,000 professionals</a> and asked them a pretty simple question: “What one thing frustrates you most about the recruiting process?”</p>
<p>While there was a wide-array of responses, five themes emerged. Without further ado, here are the five things recruiters do that drive candidates crazy and solutions for you:</p>
<h2>1. They don’t keep candidates up-to-date</h2>
<p>This is one of the most common responses we saw. People who didn’t get a job were upset when recruiters didn’t tell them. And, candidates who were still in the process complained that they only hear from a recruiter when it’s convenient for the recruiter.</p>
<p><strong>Sample responses:</strong></p>
<p><em>“Lack of communication. I’m left to guess that they’ve gone with another candidate because my phone stops ringing and my emails go unanswered.”</em></p>
<p><em>“Poor communication from the recruiter. They should respond back in a timely matter. They are the ones who made contact.”</em></p>
<p><em>“Recruiters can be very selfish with communication.”</em></p>
<p><strong>Solution:</strong></p>
<p>Keep your candidates warm by contacting them at least once-a-week, even if there is no new news to report. And let your candidates know if they don’t get the job, particularly if they interviewed with you.</p>
<h2>2. The hiring process is sloooooooow</h2>
<p>Another very popular one. A lot of people complained the hiring process was <a rel="nofollow" target="_blank" href="http://talent.linkedin.com/blog/index.php/2015/05/time-to-fill-is-longer-than-ever-2-ways-to-overcome-that">just too long and burdensome.</a></p>
<p><strong>Sample responses:</strong></p>
<p><em>“The process takes so long! Speeding up the application process would make me a lot happier.”</em></p>
<p><em>“It takes too long for interviewers to get back with recruiters and too long for recruiters to set up interviews. There appears to be no sense of urgency.”</em></p>
<p><em>“Length of the process.”</em></p>
<p><strong>Solution:</strong></p>
<p>Obviously, shorten the process when possible. But, if you feel like you can’t shorten it without compromising quality, keep candidates engaged by consistently communicating with them.</p>
<h2>3. They don’t give straight answers</h2>
<p>Quite a few people complained that recruiters didn’t give them straight answers about the position or embellished. Some even said they were outright lied to.</p>
<p><strong>Sample responses:</strong></p>
<p><em>“Too much mystery. More upfront information could save both parties a lot of time.”</em></p>
<p><em>“Selling the company for something it isn’t.”</em></p>
<p><em>“Recruiters tend to oversell the company. It’s tough to get an accurate idea of the good and the bad.”</em></p>
<p><strong>Solution:</strong></p>
<p>Lying or exaggerating about a position is never a good idea and will almost certainly have a negative outcome. Think about it – if you hire someone under false pretenses, how long do you really think they’ll stay? Obviously, the solution here is just to be as honest and straightforward as possible. That’s the only way to hire the best fit for the role and keep everyone happy.</p>
<h2>4. They reach out despite knowing nothing about the person</h2>
<p>This was another one of the most common complaints cited by professionals.</p>
<p><strong>Sample responses:</strong></p>
<p><em>“Recruiters who don’t bother to read my resume before contacting me.”</em></p>
<p><em>“I find that recruiters just troll LinkedIn for candidates and don’t actually look at my profile.”</em></p>
<p><em>“Recruiters having done minimal research or just cold calling without knowing my specific skills and contributions.”</em></p>
<p><strong>Solution:</strong></p>
<p>Not only is this annoying for candidates, it’s ineffective for recruiters. <a rel="nofollow" target="_blank" href="http://talent.linkedin.com/blog/index.php/2013/08/worst-inmail-mistakes-on-linkedin-and-how-to-fix-them">Targeting the people</a> who are most likely to accept the job and then researching them before you reach out is the most effective way to recruit passive candidates.</p>
<h2>5. They don’t know the job. At all.</h2>
<p>This was a particularly common complaint among people who work in the technical fields.</p>
<p><strong>Sample responses:</strong></p>
<p><em>“Recruiters usually have little knowledge about what the actual job entails besides what’s written on the job description. It doesn’t give them much credibility.”</em></p>
<p><em>“Most recruiters don’t speak with knowledge of the industry or job they are hiring for.”</em></p>
<p><strong>Solution:</strong></p>
<p>You don’t necessarily need to be an expert in the field you are recruiting in, but you should at least know it enough to have a conversation about it. So, be sure to have at least a cursory knowledge of the position and what it entails before reaching out to candidates.</p>
<p>To learn more about what talent is experiencing and what they like (or don’t like) during the job-seeking process, download our free <a rel="nofollow" target="_blank" href="https://business.linkedin.com/talent-solutions/resources/recruiting-tips/talent-trends-2015?src=bl-po&amp;veh=5-things-Recruiters-Do-that-Drive-Candidates-Crazy_paul-petrone_060215">2015 Talent Trends</a> report.</p>]]></content:encoded>
      </item>
      <item>
         <title>Weekend Escape an agile backlog management game</title>
         <link>http://tastycupcakes.org/2015/05/weekend-escape/</link>
         <description>Timing:  20 minutes to prepare plus 30 minutes for Standard version, or 75 to 90 minutes for Extended Version Overview: Small teams collaborate to order a backlog with a specific business goal in mind. Once the team has produced their backlog, they review the output of another team and discuss the differences. Everyone participates and [...]</description>
         <author>Andrew Rusling</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=4762</guid>
         <pubDate>Tue, 26 May 2015 09:58:53 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong>Timing: </strong></p>
<p><strong></strong>20 minutes to prepare plus 30 minutes for Standard version, or 75 to 90 minutes for Extended Version</p>
<p><strong>Overview:</strong></p>
<p>Small teams collaborate to order a backlog with a specific business goal in mind. Once the team has produced their backlog, they review the output of another team and discuss the differences. Everyone participates and discussion plays a key part in the game. Participant’s eyes are often opened to the complexity of backlog prioritisation. The game has been designed for all staff, not just Product Owners. The Extended Version of the game ramps up the challenge. It is aimed at Product Owners, yet suitable for anyone with a little more time to spare</p>
<p><strong>Learning Points:</strong></p>
<ul>
<li>Experience the challenges of prioritising and ordering a backlog.</li>
<li>Understand how an agile team can help their Product Owner by making the backlog items easier to compare.</li>
<li>The Extended Version also adds the experience of how business goals impact your approach to prioritisation.</li>
</ul>
<div><strong>Example of resulting backlog:</strong></div>
<div><a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2015/05/weekend-escape/weekend-escape-completed-backlog/"><img class="alignnone size-large wp-image-4765" src="http://tastycupcakes.org/wp-content/uploads/2015/05/Weekend-Escape-Completed-Backlog-492x660.jpg" alt="" width="344" height="462"/></a></div>
<p><strong>Link to Game: </strong><a rel="nofollow" title=" Weekend Escape an agile backlog management game" target="_blank" href="http://bit.ly/1FTh16N">Instructions (PDF)</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Agile Clock</title>
         <link>http://tastycupcakes.org/2015/05/agile-clock/</link>
         <description>Do you want to pass a small test? It is very simple &amp;#8211; please reproduce in the exact sequence literally four values of ​​Agile Manifesto. Well, how did it go? If you succeeded, then you get my congratulations. 3 years ago I failed the test, though I knew the Scrum Guide almost literally and was [...]</description>
         <author>Illya PAVLICHENKO</author>
         <guid isPermaLink="false">http://tastycupcakes.org/?p=4751</guid>
         <pubDate>Mon, 18 May 2015 13:34:04 +0000</pubDate>
         <content:encoded><![CDATA[<p dir="ltr">Do you want to pass a small test? It is very simple &#8211; please reproduce in the exact sequence literally four values of <a rel="nofollow" target="_blank" href="http://agilemanifesto.org/">​​Agile Manifesto</a>.</p>
<p>Well, how did it go? If you succeeded, then you get my congratulations.</p>
<p>3 years ago I failed the test, though I knew the <a rel="nofollow" target="_blank" href="http://www.scrumguides.org/">Scrum Guide</a> almost literally and was extremely proud of this fact.</p>
<p>Now I often have to explain this &#8220;cultural thing&#8221; (Agile Manifesto) to managers and company owners. After all, most of the organizations want to implement Scrum now. But they always learn about the &#8220;culture&#8221; from me first and only then get the desired framework itself. To put culture ahead is quite natural approach for an Agile Coach.</p>
<p>Talking about Values. Values are often interpreted differently. For example, ask your friends what they mean by &#8220;Trust&#8221;, and you will get a lot of different answers. Which one is true? Each of them. Values are quite abstract, nevertheless they are expressed in a certain human behavior. We always look at the world through our own glasses. Therefore, the meaning of values should be clarified first. Then we can agree on certain observable and measurable patterns of behavior that support those values.</p>
<p dir="ltr"><img class="aligncenter" src="https://lh3.googleusercontent.com/mOzqiUuOr-5ovThE31kKpF6WUEMjKdO42_k54J4OGmQbkkkegShqA2f6wdG8wF9P49pJX0rehqo36bQx6sSeK3DpOK_F8dClPqqVMhRc-l63STQRRnwmQJGty0attu8SlUqXmow" alt="agile_manifest.png"/></p>
<p>A proper understanding of <a rel="nofollow" target="_blank" href="http://agilemanifesto.org/">Agile Manifesto</a> is VERY important for the subsequent introduction of Scrum. I used to go beyond the four values and always suggest to clarify the twelve principles. They are less abstract and can be easily understood. I often use the game which I call  &#8221;The Agile Clock.&#8221;</p>
<p><strong>Agile clock</strong>. The game is based on an exercise <a rel="nofollow" target="_blank" href="http://tastycupcakes.org/2010/01/pocket-sized-principles/">Pocket-sized Principles</a>. For the game we need:</p>
<ul>
<li>
<p dir="ltr">About 30 minutes of time.</p>
</li>
<li>
<p dir="ltr"><a rel="nofollow" target="_blank" href="http://www.pinpoint-facilitation.com/bikablo-icons">Bikablo Icons</a> or stickers 76&#215;76 mm.</p>
</li>
<li>
<p dir="ltr">Printed 12 principles of Agile Manifesto.</p>
</li>
<li>
<p dir="ltr">Flip-chart paper.</p>
</li>
<li>
<p dir="ltr">Paper tape.</p>
</li>
<li>
<p dir="ltr">Scissors.</p>
</li>
<li>
<p dir="ltr">Stickers.</p>
</li>
<li>
<p dir="ltr">Timer.</p>
</li>
</ul>
<p><img class="aligncenter" src="https://lh6.googleusercontent.com/mGEvRa7qHPiSuRkFsn2ckpfCX-owdSYir1YzdqsjjwSpEhVmBk7UoxdTLVoBq5iLK_L4Hc-E0WqHZpbToTFTYIFNsXnGQPUFUpSjqMOYhU1uajoMKVtTRK7Y8eTLYphyrKqBLAY" alt="16913409525_44c047627d_z.jpg"/></p>
<p>Divide participants into groups of no more than 5 people. This is the most comfortable group size for any discussing or problem-solving. Every team is given a copy of 12 principles of <a rel="nofollow" target="_blank" href="http://agilemanifesto.org/">Agile Manifesto</a>.</p>
<p dir="ltr"><img class="aligncenter" src="https://lh4.googleusercontent.com/X9vpwF2Bdy8IHAmcSlyPkVZGSW2Kv4bOclg7p7m-QbYlOES3DZAsnv0LTAxR6-sWLsXjuPbn0ymSzEFtlosLHvaVmNFAaVss_r4D9nPlk_pioB8pKnZQnWAXd4ZItsnwZ442sOw" alt="16689586469_fc23662812_z.jpg"/></p>
<p>The challenge &#8211; within 20 minutes each team needs to express the essence of each principle in three words or less. Words should be written on stickers and hung within the circle on a flip chart. Thus, we create the clock. Each number on the clock corresponds to a specific principle of Agile Manifesto. Also, I ask to choose the most appropriate icon from the <a rel="nofollow" target="_blank" href="http://www.pinpoint-facilitation.com/bikablo-icons">Bikablo Icons</a> set for each principle and pin it to the flip-chart too. If the set is not available, then I ask to visualize the principle by hand.</p>
<p dir="ltr"><img class="aligncenter" src="https://lh6.googleusercontent.com/_np15lZsB51FeWZ0UVfz-5uvcmx6vGxcEcu5-pZstiQESdyvBHsEnq4-BQXPDsOQ_-vVNChjmEkziJgQdwIgx2QmK9qHMlFJs8_xrq1U_P_y8POd90BYiKqtGw4GdziXVW5cw0c" alt="16766757625_c34f51c32c_z.jpg"/></p>
<p>Very soon each team has a smart Agile Clock. Additionally I give 3-5 minutes to wander around the room and examine the clocks made by other groups. Then it makes sense to go through the principles and briefly discuss them.</p>
<p>Visualization and metaphors always provide excellent results in teaching for me. People quickly come to a common understanding Agile Manifesto principles and remember them for a long time.</p>
<p dir="ltr"><img class="aligncenter" src="https://lh4.googleusercontent.com/A8ibYKW5uWu-LIW1X9SEjR1V9nEMDzvDXVZYz-MgYcyOW731AEM-23eaJFC-RxQBGCornLS0qQHS1r_gqtTJscdgy_OvVFrWP9qFa48w8iePr34LHSyAwPGg3KCz-QG2cieEQGk" alt="16559485707_8b7e2e242a_z.jpg"/></p>
<p>And finally, my advice to you &#8211; from time to time re-read the values and principles of the Agile Manifesto. They inspire and help to focus on the most essential points.</p>]]></content:encoded>
         <category>Agile</category>
      </item>
      <item>
         <title>Texas – Hot Job Market</title>
         <link>http://brandonbarber.net/archives/479</link>
         <description>Recent Dallas Morning News article stated that Texas is one of the hottest job markets in the US. Texas and Florida top the list, according to a new report from ZipRecruiter. (See full list below.) Why? The recovery of Sunbelt &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/479&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=479</guid>
         <pubDate>Tue, 12 May 2015 16:48:55 +0000</pubDate>
         <content:encoded><![CDATA[<p>Recent Dallas Morning News article stated that Texas is one of the hottest job markets in the US.</p>
<p>Texas and Florida top the list, according to a <a rel="nofollow" target="_blank" href="https://www.ziprecruiter.com/blog/the-top-southern-cities-for-jobs-right-now/">new report from ZipRecruiter</a>. (<em>See full list below</em>.)</p>
<p>Why? The recovery of Sunbelt real estate markets, continued in-migration from other parts of the country and lower business costs translate to more demand for jobs.</p>
<p>Overall, the southern part of the United States has been the top performing region for job creation over the last 20 years. Last year, <a rel="nofollow" target="_blank" href="https://www.ziprecruiter.com/blog/the-best-job-markets-in-2014/">23 of the top 50 job markets were in the South</a>, which posted an average jobless rate of 5.5 percent, according to ZipRecruiter, an online recruiting site for small businesses.</p>
<p>Texas ranked No. 2 (+407,400 new jobs) behind California (+471,200 new jobs) in 2014.</p>
<p>ZipRecruiter also analyzed hiring demand trends to determine which industries saw the greatest growth so far this year in Sunbelt metro areas. The biggest job demand has been in the trucking and transportation industry, followed by information technology jobs and biological research.</p>
<table class="tableizer-table">
<tbody>
<tr class="tableizer-firstrow">
<th><strong>TOP 20 METROS FOR JOBS</strong></th>
<th></th>
</tr>
<tr>
<td>1</td>
<td>Tampa-St. Petersburg, Fla.</td>
</tr>
<tr>
<td><strong>2</strong></td>
<td><strong>Dallas-Fort Worth</strong></td>
</tr>
<tr>
<td>3</td>
<td>Houston</td>
</tr>
<tr>
<td>4</td>
<td>Richmond, Va.</td>
</tr>
<tr>
<td>5</td>
<td>Jacksonville, Fla.</td>
</tr>
<tr>
<td>6</td>
<td>Memphis, Tenn.</td>
</tr>
<tr>
<td>7</td>
<td>Roanoke, Va.</td>
</tr>
<tr>
<td>8</td>
<td>Greenville, S.C.</td>
</tr>
<tr>
<td>9</td>
<td>Huntsville, Ala.</td>
</tr>
<tr>
<td>10</td>
<td>Orlando, Fla.</td>
</tr>
<tr>
<td>11</td>
<td>Cape Coral-Fort Myers, Fla.</td>
</tr>
<tr>
<td>12</td>
<td>Durham, N.C.</td>
</tr>
<tr>
<td>13</td>
<td>Greensboro, N.C.</td>
</tr>
<tr>
<td>14</td>
<td>Winchester, Va.</td>
</tr>
<tr>
<td>15</td>
<td>Spartanburg, S.C.</td>
</tr>
<tr>
<td>16</td>
<td>El Paso</td>
</tr>
<tr>
<td>17</td>
<td>Danville, Va.</td>
</tr>
<tr>
<td>18</td>
<td>Lubbock</td>
</tr>
<tr>
<td>19</td>
<td>Mobile, Ala.</td>
</tr>
<tr>
<td>20</td>
<td>Myrtle Beach, S.C.</td>
</tr>
</tbody>
</table>]]></content:encoded>
         <category>Jobs</category>
      </item>
      <item>
         <title>ODE - Outcome Driven Enterprise - The Mindmap</title>
         <link>http://charlesgary.blogspot.com/2015/04/ode-outcome-driven-enterprise-mindmap.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-_2RED3BKVuc/VSgF8BgBU5I/AAAAAAAABWg/3KoGsemMugU/s1600/ODE.jpeg&quot; style=&quot;clear:left;float:left;margin-bottom:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-_2RED3BKVuc/VSgF8BgBU5I/AAAAAAAABWg/3KoGsemMugU/s1600/ODE.jpeg&quot; height=&quot;248&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description>
         <author>CharlesGary</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3312741072979431813.post-3062218756599784704</guid>
         <pubDate>Fri, 10 Apr 2015 12:20:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-_2RED3BKVuc/VSgF8BgBU5I/AAAAAAAABWg/3KoGsemMugU/s72-c/ODE.jpeg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>How to work with a Recruiter</title>
         <link>http://brandonbarber.net/archives/476</link>
         <description>In the IT Field, job seekers are typically in one of two categories, they either work with recruiters all the time as contractors, corp to corp, or W2 hourly or they change jobs every few years. Those that work as &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/476&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=476</guid>
         <pubDate>Thu, 12 Mar 2015 16:17:31 +0000</pubDate>
         <content:encoded><![CDATA[<p>In the IT Field, job seekers are typically in one of two categories, they either work with recruiters all the time as contractors, corp to corp, or W2 hourly or they change jobs every few years. Those that work as contractors, typically have a specific skill set and niche that there might be a few recruiters they work with in that skill set -(Business Intelligence &amp; ERP both come to mind). Others may work in a general area (Systems, Networking, Java, .NET, Databases, Open Source) which might require working with multiple recruiters to find a position and aren&#8217;t familiar with how things work.</p>
<p>In general, there are some tips you may want to use when looking for a position and working with recruiters.</p>
<ol>
<li>Make a list and keep track of the positions you have applied to. There are times when companies work with several different recruiting vendors for the same position. This causes an overlap in recruiters going after the same talent. As a result, candidates may be contacted by 2-3 recruiters for the same position. Make sure that your resume isn&#8217;t sent by more than one agency recruiter, this will hurt your chances and sometimes eliminate you from being considered.Find out who is submitting you and keep track when it was sent.</li>
<li>If you see a position you are interested in, find out if any of your contacts work there or if any of the recruiters you are working with has them as a client. Sometimes going through a recruiter, your chances are better since they have direct contact with the hiring manager. If you apply directly to the role, the recruiter will not be able to assist you since their fee is tied to presenting the candidate.</li>
<li>Keep your recruiters informed of what is going on with your other interviews. It helps if you are honest with them about your other activity and that way companies can move on to other candidates. If you are certain about an offer pending in the next day or two, it doesn&#8217;t make much sense to take a phone screen that day.</li>
<li>Be clear on what you are looking for in a new position when you are talking to a recruiter so they are able to match you with the right company and role. (Location, Salary, Benefits, Duties/Responsibilities). When it comes to salary, be as specific as possible and let them know the range you are looking for and minimum/bottom that you would consider.</li>
</ol>
<p>Good luck in your search!!</p>]]></content:encoded>
         <category>Career</category>
      </item>
      <item>
         <title>A story of one code review</title>
         <link>http://softwareandotherthings.blogspot.com/2015/02/a-story-of-one-code-review.html</link>
         <description>&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;h2&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9123945750&quot; title=&quot;P1010524 by Jane Prusakova, on Flickr&quot;&gt;&lt;span style=&quot;font-family:Arial, Helvetica, sans-serif;font-weight:normal;&quot;&gt;&lt;img alt=&quot;P1010524&quot; height=&quot;266&quot; src=&quot;https://farm6.staticflickr.com/5338/9123945750_2ebfe92f70_z.jpg&quot; width=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;As told by a developer:&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-53BY4PWrL6U/VN1simsWh0I/AAAAAAAAArI/UGrExtInYC4/s1600/quote_2.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-53BY4PWrL6U/VN1simsWh0I/AAAAAAAAArI/UGrExtInYC4/s1600/quote_2.png&quot;/&gt;&lt;/a&gt;A. and D. told me that the changes that were done to method “E” on class “C” are not needed, and also those two test cases for these changes were not needed. So A. and I removed those. I promoted these changes to my stream.&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt; I don’t really understand why.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;Also A. said that the test “T” should make sure we are asserting that those values are really still there. I thought it did do that, but I guess not.&lt;/blockquote&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;Also D. suggested an improvement to the code that I don’t fully understand: In class “U” method “D” we can pass the “c” into the “T” method on line 35 and then we don’t need to pass it in on line 39. I didn’t catch exactly what he was saying to do.&lt;br /&gt; I may be missing some other things too.&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-r6fdN9G0y-w/VN1tC-EiXiI/AAAAAAAAArQ/V__B5z8CK8c/s1600/quote_1.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-r6fdN9G0y-w/VN1tC-EiXiI/AAAAAAAAArQ/V__B5z8CK8c/s1600/quote_1.png&quot;/&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;I hope the code was improved as a result of the changes made based on this code review. &amp;nbsp;But even so, this is not the best way to run code reviews.&lt;br /&gt;&lt;br /&gt;Code review is there to get all the team members on the same page in regards to writing good code, catch hard-to-detect issues, and learn from each other. &amp;nbsp;The discussion that happens in code review is an invaluable tool in building a strong technical community, and ensuring the technical quality immediately and over the medium- and longer-term. It is important that all participants gain an understanding of what changes would make better code and why, in addition to simply following typing instructions.&lt;br /&gt;&lt;br /&gt;Here's a slide deck &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/jprusakova/effective-codereview-color&quot;&gt;Effective Code Review&quot;&lt;/a&gt;&amp;nbsp;for a discussion about code review practices ,&amp;nbsp;that focus on learning, creating a community with a common vision, and building social capital.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/12847795044&quot; title=&quot;P1020736 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020736&quot; height=&quot;266&quot; src=&quot;https://farm3.staticflickr.com/2820/12847795044_73dea8c723_z.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-4737480429914183252</guid>
         <pubDate>Thu, 19 Feb 2015 11:27:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-53BY4PWrL6U/VN1simsWh0I/AAAAAAAAArI/UGrExtInYC4/s72-c/quote_2.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Are we having fun yet?</title>
         <link>http://softwareandotherthings.blogspot.com/2015/02/are-we-having-fun-yet.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-5Nbwew1rRAk/VNb57ruXwtI/AAAAAAAAAq0/qkdvD0MM5kE/s1600/legoTruck.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-5Nbwew1rRAk/VNb57ruXwtI/AAAAAAAAAq0/qkdvD0MM5kE/s400/legoTruck.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;Legoland theme-park has very few Lego creatures. A staff member explained:&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;i&gt;- It is a lot of work building them out of small bricks.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;That just sounds backwards. Building with Legos is fun, not work. How can that be?&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;For the folks working at the Legoland building from Legos is hard work. The resort operates by strict, unbending rules. Cheerful staff, while smiling and genuinely trying to be helpful, is going by a well-memorized script. Thinking on the job is discouraged, and absolutely no initiative or having fun is permitted. These guys look and act like well-behaved robots, which they are payed to be during the work hours. Robots do not have fun, no matter the activity.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Most of us are not paid to build Legos, but a lot of our jobs can be no less fun and creative than putting little colorful bricks together. It is important to not let rules, scripts, and check-your-humanity-at-the-door culture ruin that fun. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/bdesham/2432400623&quot; style=&quot;margin-left:1em;margin-right:1em;&quot; title=&quot;Lego Bricks by Benjamin Esham, on Flickr&quot;&gt;&lt;img alt=&quot;Lego Bricks&quot; height=&quot;300&quot; src=&quot;https://farm3.staticflickr.com/2069/2432400623_9081e8433d_z.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-3372580960388707362</guid>
         <pubDate>Sun, 08 Feb 2015 00:11:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-5Nbwew1rRAk/VNb57ruXwtI/AAAAAAAAAq0/qkdvD0MM5kE/s72-c/legoTruck.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Empowering Agile teams: culture clash. Part II</title>
         <link>http://softwareandotherthings.blogspot.com/2015/01/empowering-agile-teams-culture-clash.html</link>
         <description>&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-jFsFmUUjyMs/VMp0tT6NJ9I/AAAAAAAAAqQ/chTCEu5Znbg/s1600/dilbert-empower.gif&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-jFsFmUUjyMs/VMp0tT6NJ9I/AAAAAAAAAqQ/chTCEu5Znbg/s1600/dilbert-empower.gif&quot; height=&quot;135&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is a follow up to the earlier article on this blog &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://softwareandotherthings.blogspot.com/2014/07/empowering-agile-teams-culture-clash.html&quot;&gt;Empowering Agile teams: culture clash&lt;/a&gt;&quot;.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile frameworks empathize empowered teams, flat structures, and meritocracy. Agile transformation is about re-defining who holds authority and responsibility. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile approach both allows and requires all participants to care. This is the other side of the struggle. While it is hard for command-and-control management to step away and let the team self-manage, it is even harder for the team members to suddenly start to care. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Power concentrated on the top of the org chart leads to classical &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Principal%E2%80%93agent_problem&quot;&gt;principal-agent problem&lt;/a&gt;. In many a traditional organization team members have no reason to care about technical quality, steady pace of delivery, or building the product that customers actually want. Management makes decisions about what gets done and how results are accessed, and carries responsibility to the customer. Team members are expected to show up and do what they are told.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Self-managed teams, the corner stone of the Agile organization, have the information, the skills and the power to deliver what the customer wants. To become self-managed and claim that power, the teams also needs a will, and perhaps some incentives, to care about the organizations’ success. Agile transformation is about reminding people of their power, and waking up that will to care and be in control.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-9wORN4V9bdU/VMp2ngCb-6I/AAAAAAAAAqc/KtvM4pNohuY/s1600/coffee-and-code.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-9wORN4V9bdU/VMp2ngCb-6I/AAAAAAAAAqc/KtvM4pNohuY/s1600/coffee-and-code.png&quot; height=&quot;297&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-8101983301247467161</guid>
         <pubDate>Thu, 29 Jan 2015 12:11:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-jFsFmUUjyMs/VMp0tT6NJ9I/AAAAAAAAAqQ/chTCEu5Znbg/s72-c/dilbert-empower.gif" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Good Agile teams break the rules</title>
         <link>http://softwareandotherthings.blogspot.com/2014/12/good-agile-teams-break-rules.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5007034864&quot; title=&quot;P1020698-2 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020698-2&quot; height=&quot;500&quot; src=&quot;https://farm5.staticflickr.com/4127/5007034864_1f1322ce3f.jpg&quot; width=&quot;375&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile frameworks are sets of rules. To become Agile, an organization or a team learns these rules, tries to understand what the rules mean, and executes according to the rules. Not necessarily in that particular order. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Good teams learn rules quickly and follow the rules well. Or do they? &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile philosophy is all about learning, gathering information and feedback, making small changes, and gathering feedback again. As teams mature and understand the philosophy of being Agile, a rule may get re-assessed, adjusted, and sometimes even completely disregarded. The team will consider the outcome, and either go back to the previous version of the rule, stick with the updated rule, or make another change based on new learnings.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Consider this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.mountaingoatsoftware.com/blog/5-reasons-product-owners-should-let-teams-work-out-of-order&quot;&gt;example, discussed by Mike Cohn&lt;/a&gt;:&amp;nbsp;standard Agile rule recommends that the team works on backlog items in the order set by Product Owner. But depending on the technical details of the project, the team may be able to maximize delivered value if it is allowed to do minor adjustments to the order of stories. &amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Another standard Agile rule that is often broken is to use collocated teams only. This rule is often not followed due to business constraints, and in those cases breaking this particular rule can and often does lead to serious problems. However, more mature Agile teams that choose to let some members work remotely part of the time, can stay productive and perform on par with completely collocated teams. Being able to occasionally work from home helps people concentrate, allows to save time on the commute, and overall improves enjoyment and morale of the team, which promotes better productivity.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Rules of the Agile frameworks are designed to help teams create a situation that encourages learning, taking responsibility, and enjoy their work. Teams that have developed a deep understanding of the reasons behind the Agile rules, should be allowed and encouraged to modify the rules to fit the details of their physical environment, particular complexities of the project, and organizational specifics. A mature self-managed Agile team can be trusted to develop their own rules for best performance. &lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/4420361686&quot; title=&quot;P1010300 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010300&quot; height=&quot;375&quot; src=&quot;https://farm5.staticflickr.com/4064/4420361686_14ebab4741.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-8303553951960715071</guid>
         <pubDate>Thu, 18 Dec 2014 00:07:00 +0000</pubDate>
      </item>
      <item>
         <title>Myths and half-truths about estimates</title>
         <link>http://softwareandotherthings.blogspot.com/2014/12/myths-and-half-truths-about-estimates.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-yVRGB4W_QcE/VIo2LkWBFxI/AAAAAAAAAoU/9TGCNsgebLY/s1600/question_dice.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-yVRGB4W_QcE/VIo2LkWBFxI/AAAAAAAAAoU/9TGCNsgebLY/s1600/question_dice.jpg&quot; height=&quot;265&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Estimating is in our DNA. It is about the future, the knowledge, the power – all the things that make us feel in control.&amp;nbsp; Estimates are required, and are the most straightforward (or even the only) way to gain trust, and budget, to go forward. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Yet… it is an open secret that estimates are flawed. Things do not go as planned. Resources become unavailable, assumptions turn out to be incorrect, changes trickle down in a never-ending stream, and communication becomes strained. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;While having flawed estimates may be preferable in some situations to having none, commitment to wrong numbers can wreck havoc on any project. If you are going to estimate, steer clear of these mistakes people frequently make, even if they have plenty of experience with estimating.&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;&quot;&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Myth&lt;/b&gt;: If your estimates are a range of dates, you are doing a good job managing expectations.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Only the earlier, lower, more magical numbers will be remembered. And those will be accepted as firm commitments.&lt;/li&gt;&lt;li&gt;The lower bound is usually set at &quot;the earliest date the project can possibly be completed&quot;. In other words, there is absolutely no way the work can be completed any earlier, even by a day. What are the chances of hitting that exact date? Practice shows - close to nil.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Half-truth&lt;/b&gt;: You can control the quality of your estimate by putting more work into producing this estimate.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;By spending some time learning about the project, researching resources available, considering major and minor risks, one can produce a somewhat better estimate.&lt;/li&gt;&lt;li&gt;The above activities are only going to take the quality of the estimate so far. &amp;nbsp;Past a certain point, no matter how much effort goes into estimating a project, the quality of the estimate is not going to improve. Then the best bet is to simply start working on the project.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;Myth&lt;/b&gt;: People can learn to estimate better, as they gain experience.&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;It is possible to get better at estimating – if one keeps estimating the same task, which becomes known and familiar with experience. This is hardly ever the case in software development. Every project is different, most teams are brand new, and technology is moving along fast enough.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Do not expect to produce a better estimate for your next project than you did for your last one.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family:Wingdings;&quot;&gt;&lt;span style=&quot;font-family:'Times New Roman';font-size:7pt;font-stretch:normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;By the same token, do not expect a worse estimate. The quality of the estimate is going to be low, and it is going to be random.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Half-truth&lt;/b&gt;: it is possible to control the schedule by giving up quality.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Only for short-term, throw-away temporary projects.&lt;/li&gt;&lt;li&gt;For most projects, aiming for lower quality has a negative effect on the schedule.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left:1.0in;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-SogEYKFRZ5A/VIo2wLZfJiI/AAAAAAAAAoc/AhHRznHhzOI/s1600/dilbert-more-people.gif&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-SogEYKFRZ5A/VIo2wLZfJiI/AAAAAAAAAoc/AhHRznHhzOI/s1600/dilbert-more-people.gif&quot; height=&quot;120&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left:0in;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-6317078021834909521</guid>
         <pubDate>Thu, 11 Dec 2014 18:33:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-yVRGB4W_QcE/VIo2LkWBFxI/AAAAAAAAAoU/9TGCNsgebLY/s72-c/question_dice.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>The human side of enterprise</title>
         <link>http://softwareandotherthings.blogspot.com/2014/11/the-human-side-of-enterprise.html</link>
         <description>&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5928480865&quot; title=&quot;P1010182 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010182&quot; height=&quot;375&quot; src=&quot;https://farm7.staticflickr.com/6005/5928480865_805c4f3058.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote class=&quot;tr_bq&quot; style=&quot;margin-bottom:.0001pt;margin-bottom:0in;&quot;&gt;Once upon a conference, I asked a small technology business owner about the interactions his 12-person team had, and he was sincerely surprised by the question. “Why would they need to talk? I tell them what to do, and then they code, each in their cubicle.” – was his response. &lt;/blockquote&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom:.0001pt;margin-bottom:0in;&quot;&gt;&lt;/div&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;margin-bottom:.0001pt;margin-bottom:0in;text-align:right;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;We like to think about work strictly as job function-dictated activities. Gathering requirements, evaluating options, making product decisions. Meeting to discuss who does what, how hand-offs happen, what are the acceptance criteria. Org chart-based relations that dictate who is in charge, who reports to whom, and who will get the credit or blame. The result of these interactions is work product, the how-to of getting to a solution.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Yet, there is more to work than “just work”. It is also the true, human relationships we develop with people we spend a lot of time with most days of the week. A quick exchange by the water cooler about a concert, a site of a geeky new mouse pad on someone’s desk, kids’ pictures on the screen. A small group is discussing the latest smartphone while getting coffee; when waiting for a meeting to start someone mentions that she is looking for a rock-climbing gym; and somebody else is asking for advice on the user groups during lunch.&amp;nbsp; The result of these conversations are not necessarily a work product (although it could be directly useful for work, too), but the building of a team of friends.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&amp;nbsp; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;A team comes together through learning small, personal, often seemingly insignificant details about each other, discussing experiences, finding shared interests. Working with friends matters. It is a lot easier to be open-minded and welcoming to a friend’s ideas, than to someone’s who is a stranger. Friends deal with disagreements by working together, while strangers get upset and push each other away. Knowing and liking people one works with makes everyone happier and more productive. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;When the opportunities for social interactions within a team are limited, work suffers. Teams of strangers are less interested in working together cooperatively, sharing information, establishing and striving toward a common goal. There is more shirking, less innovation and leadership. And less success. &lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/13025140034&quot; title=&quot;P1020299 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020299&quot; height=&quot;333&quot; src=&quot;https://farm3.staticflickr.com/2678/13025140034_279c531fc7.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-1552192209332528143</guid>
         <pubDate>Wed, 12 Nov 2014 21:13:00 +0000</pubDate>
      </item>
      <item>
         <title>Simple solutions to complex problems</title>
         <link>http://softwareandotherthings.blogspot.com/2014/11/look-for-simple-solutions-to-complex.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9121759937&quot; title=&quot;P1010600 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010600&quot; height=&quot;266&quot; src=&quot;https://farm6.staticflickr.com/5441/9121759937_411d7a55f5_z.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align:right;&quot;&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://samvak.tripod.com/complex.html&quot;&gt;Complexity and simplicity are often, and intuitively, &lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://samvak.tripod.com/complex.html&quot;&gt;regarded as two extremes of the same continuum, &lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://samvak.tripod.com/complex.html&quot;&gt;or spectrum. Yet, this may be a simplistic view, indeed.&lt;/a&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Complexity of a solution reflects many things: complexity of the problem, of the problem domain, the level of understanding of the above by the people creating the solution, and the complexity of the organization and communication of the people in charge of building the solution.&amp;nbsp; Finally, complexity of the solution will reflect the incentives people were facing: was it in their interest to create a complex solution? Or to make the solution as simple as possible? &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Integer calculator is inherently less complex than, say, mapping software, but implementation of the algebra functions can be ridiculously complicated. Or fairly simple, depending on the attitudes of individual architects and implementers, and their organization. &amp;nbsp;Business rules expressed as decision trees are relatively simple, yet there are plenty of solutions in that space that are mind-bogglingly complicated. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile approach results, among many other things, in reduced complexity in the delivered product. Cross-functional self-managed teams, while not easy to build, are a lot less complex than matrix organizations of the traditional firms. &amp;nbsp;Communication patterns are simpler and more straightforward. Preferring a team of generalists over narrowly specialized experts levels out the playing field, and encourages more level understanding of the problem domain within the team. The emphasis on speedy delivery of small slices of the solution leads to the team concentrating on the “lowest hanging fruit” at any point in project timeframe, ensuring that the team works on the best-understood pieces of the problem, while it expands its understanding.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Engineering practices that are often coupled with Agile also carry a significant focus on simplicity in design and implementation. Emerging design, developed with continued and immediate feedback from the implementation and user assessment, is simpler than the up-front design created early in the project, prior to having project work feedback loop established. Unit-level automated tests are simple to create and maintain, and having adequate test coverage and infrastructure reduces both probability and complexity of inevitable bugs. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Frequent collaboration with users and customers, required by most Agile frameworks, forces all parties involved in a project to develop a joint understanding that eventually becomes the basis of the solution. Joint understanding of a diverse group is always less complex and less nuanced than that of a single mind (participating in the group), or a similarly-minded group, thus leading to a simpler solution.&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;As the business of software development moves forward, it is taking on more complicated problems, and attempts to deliver increasingly complex solutions. Keep the complexity in check by simplifying communication paths, promoting learning and feedback, and striving for joint understanding among diverse groups.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/443215730&quot; title=&quot;IMG_3112 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;IMG_3112&quot; height=&quot;400&quot; src=&quot;https://farm1.staticflickr.com/208/443215730_84635e59c6_z.jpg&quot; width=&quot;300&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-9047179300725779200</guid>
         <pubDate>Thu, 06 Nov 2014 19:41:00 +0000</pubDate>
      </item>
      <item>
         <title>Never talk to strangers</title>
         <link>http://softwareandotherthings.blogspot.com/2014/10/never-talk-to-strangers.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8749933484&quot; title=&quot;P1010279 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010279&quot; height=&quot;400&quot; src=&quot;https://farm3.staticflickr.com/2822/8749933484_bd272d1262.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;People as species have evolved in social groups, cooperating and competing. Simply sharing a space helps to build trust, create a body of shared knowledge, establish social customs. Patriotism, love and pride for one’s land, interest in tails of the forefathers are all feelings that knit together a community of people that live and interact in close proximity. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;But when it comes to interacting with people from far away, the situation is different. Historically, people living afar have been perceived as either villains or gods. People who are not participating in every day events in person, if they are not completely disregarded, appear weird, scary, and are ascribed bad thoughts and behaviors. Tribes everywhere are known to have fought long-lasting wars with neighbors living just far enough to not be part of the community. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The entire human history has prepared us to like and trust those close to us, and expect bad things from people who we cannot see, hear, touch and smell. We may not be consciously aware of this bias, but it is impossible not to notice its consequences. Long-distance relationships have a dramatically lower rate of survival, compared with relationships where partners see each other regularly. Most business activity still happens locally, within a single geographic area. Despite the televised debates and online advertising, politicians still fight and win elections by talking to voters on the campaign trail, and building organizations of supporters to do that on candidates’ behalf. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;When an organization is working with a remote team, the people on that team are outsiders, not part of the tribe. Remote team members, unable to participate in daily face to face interactions, are subject to all the suspicions and biases outsiders have suffered throughout the human history. To create trust and build good working relationships all sides must work against their natural instincts of distrust toward outsiders. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;There are many things that could help make the remote team a part of the inner circle. It could be as simple as giving a voice on the phone a benefit of the doubt – and a chance to explain in greater details how they came up with the ideas being presented. Or as complicated as organizing regular trips to a common location, to let people spend time together, working face to face. Whichever way is chosen, it is still hard work, requiring intelligence, an open mind, and willingness to learn. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&amp;lt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8177241149&quot; title=&quot;P1080971 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1080971&quot; height=&quot;500&quot; src=&quot;https://farm9.staticflickr.com/8210/8177241149_48d9c1c4c8.jpg&quot; width=&quot;375&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-7893151754094105818</guid>
         <pubDate>Sun, 26 Oct 2014 21:49:00 +0000</pubDate>
      </item>
      <item>
         <title>Happy Hour – Geekmeet – October 22nd</title>
         <link>http://brandonbarber.net/archives/468</link>
         <description>Happy Hour &amp;#8211; The Lion &amp;#38; Crown &amp;#8212; RSVP!  Also, look out for Happy Hours in Nov &amp;#38; Dec &amp;#8211; coming soon. GeekMeet Dallas Wednesday, October 22, 2014 5:30 PM &amp;#8211; 8PM Lion and Crown 5001 Addison Cir Addison, TX</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=468</guid>
         <pubDate>Tue, 21 Oct 2014 18:29:15 +0000</pubDate>
         <content:encoded><![CDATA[<p><strong><a rel="nofollow" target="_blank" href="http://www.meetup.com/__ms30364092/geekmeet/events/208810622/t/cr1_grp/?rv=cr1&amp;_af_eid=208810622&amp;_af=event&amp;expires=1414084971277&amp;sig=f64270435b97ad080380d69339b5b46ca5d7b1be">Happy Hour &#8211; The Lion &amp; Crown</a> &#8212; RSVP!  Also, look out for Happy Hours in Nov &amp; Dec &#8211; coming soon.</strong></p>
<p><strong>GeekMeet Dallas</strong></p>
<p>Wednesday, October 22, 2014<br />
5:30 PM &#8211; 8PM</p>
<p>Lion and Crown<br />
5001 Addison Cir<br />
Addison, TX</p>]]></content:encoded>
      </item>
      <item>
         <title>The &quot;family&quot; objection</title>
         <link>http://softwareandotherthings.blogspot.com/2014/10/the-family-objection.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9992085514&quot; title=&quot;P1020053 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020053&quot; height=&quot;282&quot; src=&quot;https://farm3.staticflickr.com/2856/9992085514_15e4e8126d.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;We recently held a panel titled “Software development is a team sport: Women In Technology” at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://houstontechfest-public.sharepoint.com/&quot;&gt;Houston TechFest&lt;/a&gt; in Houston and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://codecamp14.adnug.org/schedule.html&quot;&gt;Austin&amp;nbsp;CodeCamp&lt;/a&gt;&amp;nbsp;in Austin, Texas.&amp;nbsp; The goal was to have a conversation about men and women working together in IT and software development industry. Research shows that we are more productive because of our differences, not in spite of our differences, when we manage to work together. We had great participation: men and women shared stories, concerns from their experience, concerns they have for their daughters, difficult situations and techniques that worked in different environments.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Each time, there surfaced an old-time objection to hiring women: &lt;/div&gt;&lt;blockquote class=&quot;tr_bq&quot; style=&quot;&quot;&gt;&lt;b&gt;&lt;i&gt;-&lt;span style=&quot;font-size:7pt;font-stretch:normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Why hire a woman, who may get pregnant and go on leave for weeks, and then perhaps be somewhat distracted for a few more months, when one can perfectly well hire a man, who is not in any danger of ever bearing a child? &lt;/i&gt;&lt;/b&gt;&lt;/blockquote&gt;&lt;div class=&quot;MsoListParagraph&quot; style=&quot;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;This entire line of reasoning strikes me as odd. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Fertility rate in the US is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://data.worldbank.org/indicator/SP.DYN.TFRT.IN&quot;&gt;1.9 children per woman&lt;/a&gt;, i.e. over a lifetime an average woman is expected to have 1.9 kids. Women with more education tend to have fewer children, so for women with a college degree &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cdc.gov/nchs/data/nhsr/nhsr051.pdf&quot;&gt;the average is just 1.1 children&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;A college graduate typically has a 45+ year career, male or female, first entering the workforce at age 22 and working at least until his or her late 60s.&amp;nbsp; Today’s typical tenure in IT at a given position, job or company is 2-5 years. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;So, a woman interviewing for a job today, has an approximately 2-in-45 chance to have a child while working at this job.&amp;nbsp; If she already has a child, that chance falls to 2-in-450.&amp;nbsp; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;In order to get this interview, this woman has shown herself to be a stronger candidate than, typically, 2 to 100+ other people, who also applied for this position.&amp;nbsp; She still has to beat 2+ other candidates, also invited to interview for this position. Overall, her chances of becoming the top candidate are between 1-in-4 and 1-in-100, which makes her (or anyone reaching that point) quite awesome!&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Now, consider another angle. Productivity among mediocre, good and great developers varies by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Order_of_magnitude&quot;&gt;orders of magnitude&lt;/a&gt;. &amp;nbsp;Hiring the best person for the team makes a significant difference in bottom-line productivity, quality, time-to-market and maintainability of the project.&amp;nbsp; A woman who is x10 as productive as the next candidate, even if she takes 2-4 months (over her 2–5 year tenure in a particular job) to take care of her family, is still a net win for the team with a realized productivity gain of 90%+. &amp;nbsp;And this is the worst-case scenario!&amp;nbsp; In a typical case, your best candidate will deliver an even better value, regardless of her gender. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The argument about women's propensity to take time off to have children makes no sense in the context of hiring the best person for a software development job. Any organization's best bet is to identify and hire the best person they can get, and then make sure that person stays with them as long as possible. Regardless of their gender.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9121758693&quot; title=&quot;P1010608 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010608&quot; height=&quot;334&quot; src=&quot;https://farm3.staticflickr.com/2877/9121758693_c30f3f0071.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-410471101188580170</guid>
         <pubDate>Mon, 20 Oct 2014 16:04:00 +0000</pubDate>
      </item>
      <item>
         <title>Discussion about good code at DallasTechFest 2014</title>
         <link>http://softwareandotherthings.blogspot.com/2014/10/discussion-about-good-code-at.html</link>
         <description>&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-wnBFe-nLW3s/VDl-wqE5HCI/AAAAAAAAAm4/BQeVFwvC594/s1600/code_is_poetry_addtext_com.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-wnBFe-nLW3s/VDl-wqE5HCI/AAAAAAAAAm4/BQeVFwvC594/s1600/code_is_poetry_addtext_com.jpg&quot; height=&quot;170&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Many programmers are dedicated, or even obsessed, with writing “good” code.&lt;br /&gt;&lt;br /&gt;Often we follow certain patterns and practices because we believe they are the best solution for the problem, or because the experts tell us so. There are many quasi-religious wars about proper ways to write code; those wars last years, inflame the most peaceful communities, and make many heads spin. &lt;br /&gt;&lt;br /&gt;While it is easy to argue whether a particular piece of code is good, it is hard to come up with an overall idea of what makes code good. We had an interesting discussion about good code at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.dallastechfest.com/&quot;&gt;Dallas TechFest&lt;/a&gt;, with a great crowd of fellow developers.&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/jprusakova&quot;&gt;@jprusakova&lt;/a&gt; speaking on the aspects of good code. Totally full room! &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/dallastechfest&quot;&gt;@dallastechfest&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/hashtag/dtf2014?src=hash&quot;&gt;#dtf2014&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://t.co/6o0AyQ8YbA&quot;&gt;pic.twitter.com/6o0AyQ8YbA&lt;/a&gt;&lt;br /&gt;— Ty Crockett (@TTCrockeTT) &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://twitter.com/TTCrockeTT/status/520602024413368322&quot;&gt;October 10, 2014&lt;/a&gt;&lt;/blockquote&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-9205960223274602651</guid>
         <pubDate>Sat, 11 Oct 2014 14:05:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-wnBFe-nLW3s/VDl-wqE5HCI/AAAAAAAAAm4/BQeVFwvC594/s72-c/code_is_poetry_addtext_com.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>New Opening: Sept 14th – Windows Systems Engineer – DFW Airport area</title>
         <link>http://brandonbarber.net/archives/463</link>
         <description>Here is a new role that we have available with a client in the DFW Airport area. If you are interested, email me at brandon@dallasetechrecruiter.com They are looking for a Senior Level Windows Systems Engineer  Immediate need, will move quickly. &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/463&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=463</guid>
         <pubDate>Mon, 15 Sep 2014 03:19:08 +0000</pubDate>
         <content:encoded><![CDATA[<p>Here is a new role that we have available with a client in the DFW Airport area. If you are interested, email me at brandon@dallasetechrecruiter.com</p>
<p>They are looking for a <strong>Senior Level Windows Systems Engineer </strong> Immediate need, will move quickly. If anyone comes to mind, we offer $500 referral bonus.</p>
<p><strong>Full-time, direct hire – DFW Airport area<br />
</strong><strong>Senior Level Windows Systems Engineer</strong></p>
<p><strong> </strong><strong>Here is what they are looking for:</strong></p>
<ul>
<li>Bachelor’s Degree or equivalent experience</li>
<li>5+ years in Infrastructure experience</li>
<li>5+ years installing, maintaining, troubleshooting Win 2003 / Win 2008 in a large enterprise</li>
<li>Windows Server specifications – (Active Directory, DHCP, GPO, etc)</li>
<li>Experience with Linux/Unix</li>
<li>In depth knowledge of Virtualization – VMWare and/or Hyper-V</li>
<li>Scripting knowledge – Powershell or VBScript</li>
<li>Automation technologies and tools</li>
<li>Networking expertise</li>
<li>Fast paced environment, 24/7 with on call rotation</li>
<li>Great benefits and good working team</li>
</ul>
<p>Windows, IT Staffing, Systems, Dallas, Linux, VmWare</p>]]></content:encoded>
      </item>
      <item>
         <title>Dallas TechFest 2014</title>
         <link>http://tmgirvin.com/2014/09/04/dallas-techfest-2014/</link>
         <description>Dallas TechFest is back! It’s organized by my friend and colleague, Tim Rayburn. This year you can expect excellent content focused on Bleeding-Edge Development, Wicked UX and Next-Gen Mobile Technologies. (including iOS, Windows Phone, NodejS, ASP.NET vNext and Xamarin), plus interesting insights on UX and Mobility from Jared Spool, CEO &amp;#38; Founding Principal of UIE. [&amp;#8230;]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://pixel.wp.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=119&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">http://tmgirvin.wordpress.com/?p=119</guid>
         <pubDate>Thu, 04 Sep 2014 18:24:15 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" title="Dallas TechFest" target="_blank" href="http://dallastechfest.com">Dallas TechFest</a> is back! It’s organized by my friend and colleague, <a rel="nofollow" title="Tim Rayburn" target="_blank" href="http://timrayburn.net/">Tim Rayburn</a>. This year you can expect excellent content focused on Bleeding-Edge Development, Wicked UX and Next-Gen Mobile Technologies. (including iOS, Windows Phone, NodejS, ASP.NET vNext and Xamarin), plus interesting insights on UX and Mobility from Jared Spool, CEO &amp; Founding Principal of UIE. The ticket price includes the full conference and lunch. Consider attending and please feel free to pass this information on to others you think might benefit from it</p>
<p><a rel="nofollow" title="Dallas TechFest" target="_blank" href="http://dallastechfest.com"><img title="2014 Dallas TechFest" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="2014 Dallas TechFest" src="https://tmgirvin.files.wordpress.com/2014/09/2014-dallas-techfest1.png?w=594&#038;h=446" width="594" height="446"/></a></p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/119/"/></a> <img alt="" border="0" src="http://pixel.wp.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=119&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/d472540a65b9ef73bb0e7a31e744bd36?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
         <media:content medium="image" url="https://tmgirvin.files.wordpress.com/2014/09/2014-dallas-techfest1.png">
            <media:title type="html">2014 Dallas TechFest</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Dallas TechFest – Oct 10th @Gilleys in Downtown Dallas</title>
         <link>http://brandonbarber.net/archives/459</link>
         <description>DALL☆S TECH FEST brings the best and brightest speakers from around the country to provide one day of incredible, densely packed content, focused on increasing your team’s ability to successfully deliver projects. This year we&amp;#8217;re adding a strong focus on user experience (UX) &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://brandonbarber.net/archives/459&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=459</guid>
         <pubDate>Thu, 04 Sep 2014 15:11:02 +0000</pubDate>
         <content:encoded><![CDATA[<p><span style="color:#000000;">DALL☆S TECH FEST brings the best and brightest speakers from around the country to provide one day of </span><span style="color:#000000;">incredible</span><span style="color:#000000;">, densely packed content, focused on </span><span class="highlight" style="color:#2da9ff;">increasing your team’s ability</span><span style="color:#000000;"> to successfully deliver projects. This year we&#8217;re adding a strong focus on user experience (UX) and mobile development, ensuring you have the </span><span style="color:#000000;">right skills</span><span style="color:#000000;"> at the </span><span style="color:#000000;">right time</span><span style="color:#000000;">. From </span><span class="highlight" style="color:#2da9ff;">iOS</span><span style="color:#000000;"> to </span><span class="highlight" style="color:#2da9ff;">Windows Phone</span><span style="color:#000000;">,</span><span class="highlight" style="color:#2da9ff;">NodeJS</span><span style="color:#000000;"> to </span><span class="highlight" style="color:#2da9ff;">ASP.NET vNext</span><span style="color:#000000;">, this is </span><em style="color:#000000;">your</em><span style="color:#000000;"> time to learn.</span></p>
<p><a rel="nofollow" title="REGISTER" target="_blank" href="http://dallastechfest.com">REGISTER NOW</a></p>
<p>&nbsp;</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Visual Studio 2013 Quality Tools</title>
         <link>http://tmgirvin.com/2014/08/21/visual-studio-2013-quality-tools/</link>
         <description>I’ve delivered a talk a couple of times recently covering the Quality Tools in Visual Studio 2013 and Microsoft Test Manager.&amp;#160; Specifically, this talk covers: Unit testing TDD Automatic Test Runner Manual Testing in MTM Recorded Manual Tests Converting Test Recordings in Coded UI Tests (CUIT) Recording CUIT directly in VS Build automation with Tests [&amp;#8230;]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://pixel.wp.com/b.gif?host=tmgirvin.com&amp;#038;blog=14416035&amp;#038;post=115&amp;#038;subd=tmgirvin&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <author>tmgirvin</author>
         <guid isPermaLink="false">http://tmgirvin.wordpress.com/?p=115</guid>
         <pubDate>Thu, 21 Aug 2014 15:43:26 +0000</pubDate>
         <content:encoded><![CDATA[<p>I’ve delivered a talk a couple of times recently covering the Quality Tools in Visual Studio 2013 and Microsoft Test Manager.&#160; Specifically, this talk covers:<a rel="nofollow" target="_blank" href="https://tmgirvin.files.wordpress.com/2014/08/visual_studio_2013_logo_svg.png"><img title="Visual_Studio_2013_Logo_svg" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:right;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="Visual_Studio_2013_Logo_svg" src="https://tmgirvin.files.wordpress.com/2014/08/visual_studio_2013_logo_svg_thumb.png?w=160&#038;h=166" width="160" align="right" height="166"/></a></p>
<ul>
<li>Unit testing</li>
<li>TDD</li>
<li>Automatic Test Runner</li>
<li>Manual Testing in MTM</li>
<li>Recorded Manual Tests</li>
<li>Converting Test Recordings in Coded UI Tests (CUIT)</li>
<li>Recording CUIT directly in VS</li>
<li>Build automation with Tests</li>
<li>CUIT Test Automation </li>
</ul>
<p>I’m uploading my <a rel="nofollow" target="_blank" href="http://1drv.ms/1pUwg55">Visual Studio 2013 Quality Tools presentation</a> here, even though it’s not that useful without the product demos to go with it.&#160; I guess it’s primarily reference materials for those who have actually seen the presentation.&#160; Maybe I’ll do screen-shots later and embed them to make it more stand-alone.</p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/tmgirvin.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tmgirvin.wordpress.com/115/"/></a> <img alt="" border="0" src="http://pixel.wp.com/b.gif?host=tmgirvin.com&#038;blog=14416035&#038;post=115&#038;subd=tmgirvin&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="http://1.gravatar.com/avatar/d472540a65b9ef73bb0e7a31e744bd36?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">tmgirvin</media:title>
         </media:content>
         <media:content medium="image" url="https://tmgirvin.files.wordpress.com/2014/08/visual_studio_2013_logo_svg_thumb.png">
            <media:title type="html">Visual_Studio_2013_Logo_svg</media:title>
         </media:content>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>Stretch your mind</title>
         <link>http://softwareandotherthings.blogspot.com/2014/08/stretch-your-mind.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8749934494&quot; title=&quot;P1010252 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010252&quot; height=&quot;300&quot; src=&quot;https://farm8.staticflickr.com/7451/8749934494_3264bf76c5_z.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;h3 style=&quot;text-align:right;&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color:white;color:#181818;font-family:georgia, serif;font-size:14px;line-height:14px;&quot;&gt;“&lt;/span&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:Verdana, Helvetica, sans-serif;font-size:16px;line-height:18.59000015258789px;&quot;&gt;The more you know,&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style=&quot;background-color:white;color:#333333;font-family:Verdana, Helvetica, sans-serif;font-size:16px;line-height:18.59000015258789px;&quot;&gt;&lt;i&gt;the more you realize you know nothing.”&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;– Socrates&lt;/em&gt;&lt;/h3&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;There is a big push on young engineers (and colleges that educate them) to build up a wide variety of popular, currently in-demand skills. More popular technologies, common platforms, more courses and projects give students a better chance to hit every bullet point in job recs. It is favorably considered by recruiters and looks extremely attractive to hiring managers who think they are getting a well-rounded engineer at a recent-graduate salary. In addition, it sounds impressive in casual conversations with peers and professionals alike.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Unfortunately, breadth often comes at the expense of depth. Mastering depth of understanding fundamentals, theories and concepts that are the foundation of modern technologies takes time, effort and dedication to learning. It also takes a lot of effort to learn to work in technologies that give developer more direct access to underlying systems, and data structures. It takes passion and drive to gain an understanding of how to use any technology well, and to set high standards for one's work.&lt;br /&gt;&lt;br /&gt;Those with deeper understanding, and the curiosity to gain that understanding, go on to become better software engineers and architects. While not immediately required by a job rec, knowledge of the underlying concepts is regularly needed to solve tough technical challenges in real life. Familiarity with more difficult concepts and technologies makes it easier to learn the popular and simpler ideas that change many times throughout one's career. It is well-established that ability to learn, to think critically and creatively is trained by pushing the mind out of its comfort zone, studying hard, understanding rather than memorizing.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Popular technologies and skills that are “hot” in the jobs market are designed to be easy to acquire, and to solve a narrow set of common business problems, with the trade off that these technologies may not be well-suited to a wider range of applications. These skills are easy to learn and apply. The difference comes in the speed of learning, the quality of outcomes, and the critical thinking that better engineers bring to the job, together with the technical skills. In a competitive marketplace, those who went through the trouble of gaining the deeper knowledge of computer science fundamentals, software construction, and code craftsmanship will fare better.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/7227783644&quot; title=&quot;P1060941 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1060941&quot; height=&quot;320&quot; src=&quot;https://farm6.staticflickr.com/5275/7227783644_daecdd6c94_z.jpg&quot; width=&quot;240&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-1015350415363745080</guid>
         <pubDate>Sun, 17 Aug 2014 22:17:00 +0000</pubDate>
      </item>
      <item>
         <title>Improving Enterprises – AgileDotNext – Aug 22nd in Houston</title>
         <link>http://brandonbarber.net/archives/453</link>
         <description>Sign up now to attend Agiledotnext 2014 in #Houston on Aug 22nd &amp;#8211; register here &amp;#8211;http://agiledotnext.com/    #agile</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=453</guid>
         <pubDate>Tue, 12 Aug 2014 22:37:51 +0000</pubDate>
         <content:encoded><![CDATA[<p><span style="color:#404040;">Sign up now to attend Agiledotnext 2014 in </span><a rel="nofollow" class="ot-hashtag aaTEdf" style="font-weight:bold;color:#427fed;" target="_blank" href="https://plus.google.com/s/%23Houston">#Houston</a> <span style="color:#404040;">on Aug 22nd &#8211; register here &#8211;</span><a rel="nofollow" class="ot-anchor aaTEdf" style="color:#427fed;" target="_blank" href="http://agiledotnext.com/">http://agiledotnext.com/</a>    <a rel="nofollow" class="ot-hashtag aaTEdf" style="font-weight:bold;color:#427fed;" target="_blank" href="https://plus.google.com/s/%23agile">#agile</a></p>]]></content:encoded>
         <category>Technology Service</category>
      </item>
      <item>
         <title>Two are better than one</title>
         <link>http://softwareandotherthings.blogspot.com/2014/08/two-are-better-than-one.html</link>
         <description>&lt;div style=&quot;text-align:right;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5007034864&quot; style=&quot;clear:left;float:left;margin-bottom:1em;margin-right:1em;&quot; title=&quot;P1020698-2 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020698-2&quot; src=&quot;https://farm5.staticflickr.com/4127/5007034864_1f1322ce3f_z.jpg&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;i&gt;“If you can't explain it to a six year old,&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;i&gt;you don't understand it yourself.”&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;blockquote class=&quot;tr_bq&quot; style=&quot;display:inline;text-align:justify;&quot;&gt;&lt;div style=&quot;text-align:right;&quot;&gt;― Albert Einstein&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Pair programming is uncomfortable, exhausting, and un-ergonomic. With pairing it takes two or more people to do a job of one. It is time-consuming to organize, tiring to participate in, and painstakingly slow to observe. The benefits are non-obvious. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Code reviews are nerve-wrecking, aggravating, and painful. They take enormous amounts of time, bring out the worst attitudes, and spur religious wars on code minutiae. Results are often inconsistent, suggestions are petty, and resulting improvement is invisible. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;Yet, there is plenty of evidence that teams that manage through the pain and find the time to pair, to review, to swarm, to mob-program, and to work together using any other technique, do significantly better. Pairing and code reviews contribute greatly to the value being delivered in higher product quality, shorter time to release, and in lower maintenance costs. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;It comes down to a simple truth, noted a long time ago: &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left:.5in;&quot;&gt;&lt;i&gt;“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”&lt;/i&gt; - Brian W. Kernighan&amp;nbsp;and P. J. Plauger&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&amp;nbsp;Left to our own devices, we want to be clever. But if we have to explain every turn of logic, every leap of faith, and every tiny assumption to another human, the desire for cleverness retires to the back of our minds, and leaves the center stage for the desire to be understood. This difference alone causes a big improvement in the work that we produce. Readable code has a much better chance of being good code, than code that’s hard to read. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;It also means that the person reviewing the code, or being the non-writer in the pair does not have to be a developer, she could be anyone familiar with the product. &amp;nbsp;Even if that person does not contribute directly to the code, their questions will influence the programmer to write better software. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;In the case of two or more developers working together, in addition to producing better code, all involved will be intensely learning from each other. And that’s the best thing that could possibly happen to developers.&lt;br /&gt;&lt;br /&gt;[It will also make them tired.&amp;nbsp; I suggest getting a lot of colorful plastic balls, and investing in the fanciest espresso machine your office can afford.]&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.espressoservices.co.uk/gaggia_espresso_machines.html&quot;&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.espressoservices.co.uk/Gaggia-Deco-D2.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-3545274095344775315</guid>
         <pubDate>Sun, 10 Aug 2014 00:11:00 +0000</pubDate>
      </item>
      <item>
         <title>More Agile smells</title>
         <link>http://softwareandotherthings.blogspot.com/2014/07/more-agile-smells.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5045862949&quot; title=&quot;P1030374 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1030374&quot; height=&quot;375&quot; src=&quot;https://farm5.staticflickr.com/4125/5045862949_18f7ab3050.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&quot;Agile&quot; means many things - there are Agile processes, Agile values, Agile ways of working together as a team. &amp;nbsp;Becoming truly Agile requires a lot of education, willingness to keep an open mind, and lots of trust within the organization.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;When things are less than perfect, as they usually are, many teams get to experience &quot;an Agile smell&quot;. Agile smell, similarly to code smell, is not necessarily a problem by itself, but rather a likely indicator of a serious problem with the team’s implementation of Agile.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Learn to identify Agile smells, and the problems that may lead to them. Then get busy fixing the problems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Smells &quot;Our KPIs measure the wrong thing&quot;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Team talks about velocity points, rather than discuss stories and value created&lt;/li&gt;&lt;li&gt;Members worry about being busy and putting in hours, rather than about producing valuable results&lt;/li&gt;&lt;li&gt;The team strives to meet arbitrary deadlines, rather than focus on delivering quality working software&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It is tempting to measure the team's success by velocity points archived, hours worked, or hitting deadlines. But velocity points are imaginary and unequal units, that differ from team to team, and even for the same team over time. They are too easy to game. Same with deadlines - deadlines are derived from imperfect estimates, and hitting those deadlines causes loss of quality and team spirit. Hours worked is straight-forward to measure, but has little correlation with value delivered.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Smells &quot;We are not using our tools well&quot;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The information in the tool is treated as the source of higher truth, rather than a starting point for a conversation&lt;/li&gt;&lt;li&gt;Fill out the fields by the letter of the rules, rather than store useful information in an easy-to-understand format&lt;/li&gt;&lt;li&gt;Use the tool insofar as the process requires it, but are uncurious about better ways a tool can help us improve&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Tools are there to serve the team. They help to compile information over time, store details, and offer a choice of presentation layouts. Tools are not there to drive the team's value, do the work of coordinating and facilitating communication, resolve issues. It is OK to tweak the rules imposed over a tool usage, if it helps the team to work smarter. It is not OK to be a servant to the tool, rather than its master.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Smells &quot;We are not being awesome&quot;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compile excuses why we are not doing a good job, rather than look for a better way to work&lt;/li&gt;&lt;li&gt;Look for ways to make Agile process entertaining, rather than focus on the excitement of delivering great software&lt;/li&gt;&lt;li&gt;Build Chinese walls between specialties, Agile team members and their responsibilities, rather than work together&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;IT and software development is complex and complicated work. Every team that works hard and strives for success is going to make mistakes sometimes - and that's OK. In fact, it is good, because the only way to not make mistakes is to play it safe, aspire to little, and settle for less. &lt;br /&gt;&lt;br /&gt;Problems do happen, and it is important to admit and examine what doesn't go well, take responsibility. So that the team can improve, do better in the future, and have fun while doing it. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a second post in the series on Agile smells. &amp;nbsp;Read the first part &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://softwareandotherthings.blogspot.com/2014/05/agile-smells.html&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5112700350&quot; title=&quot;P1020810 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020810&quot; height=&quot;375&quot; src=&quot;https://farm2.staticflickr.com/1253/5112700350_cdf356c64d.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-3754961179820632367</guid>
         <pubDate>Tue, 29 Jul 2014 14:11:00 +0000</pubDate>
      </item>
      <item>
         <title>Empowering Agile teams: culture clash</title>
         <link>http://softwareandotherthings.blogspot.com/2014/07/empowering-agile-teams-culture-clash.html</link>
         <description>&lt;div style=&quot;text-align:right;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-a4r_bAmp67Q/U8iMcdBuqlI/AAAAAAAAAhU/Dgdue1Ap8Qo/s1600/dilbert_transform.gif&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;http://2.bp.blogspot.com/-a4r_bAmp67Q/U8iMcdBuqlI/AAAAAAAAAhU/Dgdue1Ap8Qo/s1600/dilbert_transform.gif&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&quot;The test of a first-rate intelligence is the ability&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;i&gt;&lt;b&gt;to hold two opposing ideas in mind at the same&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;i&gt;&lt;b&gt;&amp;nbsp;time and still retain the ability to function.&quot;&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right;&quot;&gt;&lt;i&gt;&lt;b&gt;- F. Scott Fitzgerald&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Agile frameworks empathize empowered teams, flat structures, and meritocracy.  Team members and those in supporting roles are expected to earn trust and respect, rather than get authority based on org chart. &lt;br /&gt;&lt;br /&gt;Organizations in general do not work this way. A modern organization is all about hierarchy, where authority comes from one’s position and place on the chart. Responsibility and decisions each travel in exactly one direction in the hierarchy: decisions come down, responsibility goes up. &amp;nbsp;This kind of structure is easy to manage from the top. But it does not lead to best decisions.&lt;br /&gt;&lt;br /&gt;An Agile team is encouraged to take control of, and responsibility, their own work, but it comes in direct conflict with the not-so-Agile organizational structure.  Entire corporate cultures are built around deferring to someone with a higher title. Those cultures do not disappear when an authority figure up the hierarchy decides that some projects should try Agile.&lt;br /&gt;&lt;br /&gt;People on an Agile team are taught to care about producing value, make their own decisions, and take responsibility – but for employees with years of experience in traditional organizations it is not easy to accept this kind of message at face value. &amp;nbsp;It is even harder if Agile has a narrow mandate, for example, when transformation is happening only in a small part of organization.&lt;br /&gt;&lt;br /&gt;This cultural shift is the hardest and the most painful part of a large-company Agile transformation. &amp;nbsp;It is also the most valuable change a business can make to improve its culture. &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/14750459833&quot; title=&quot;walmartSign-20140722_121417-001 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;walmartSign-20140722_121417-001&quot; height=&quot;335&quot; src=&quot;https://farm4.staticflickr.com/3888/14750459833_aaffd08505.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-4232001208528169763</guid>
         <pubDate>Wed, 23 Jul 2014 23:37:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-a4r_bAmp67Q/U8iMcdBuqlI/AAAAAAAAAhU/Dgdue1Ap8Qo/s72-c/dilbert_transform.gif" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Calendar App – Mynd</title>
         <link>http://brandonbarber.net/archives/448</link>
         <description>I have started to play with this iPhone Calendar app and really like it. You can add your LinkedIn Connections, add categories, and the daily display is a lot better than the standard iOS calendar. Give it a try!</description>
         <author>Brandon</author>
         <guid isPermaLink="false">http://brandonbarber.net/?p=448</guid>
         <pubDate>Wed, 23 Jul 2014 20:14:26 +0000</pubDate>
         <content:encoded><![CDATA[<p>I have started to play with this iPhone Calendar app and really like it. You can add your LinkedIn Connections, add categories, and the daily display is a lot better than the standard iOS calendar. Give it a try!</p>
<p></p>]]></content:encoded>
         <category>Technology / Apps</category>
      </item>
      <item>
         <title>Everybody wants a pony</title>
         <link>http://softwareandotherthings.blogspot.com/2014/07/everybody-wants-pony.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/laenulfean/2410413733&quot; title=&quot;pony by Carsten Tolkmit, on Flickr&quot;&gt;&lt;img alt=&quot;pony&quot; height=&quot;281&quot; src=&quot;https://farm3.staticflickr.com/2049/2410413733_92c96e63a1.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;In a recent conversation, a colleague mentioned that a project his team worked on was considered a failure.&amp;nbsp;That surprised me. I heard that this team delivered a high-quality product; the software quickly went into production, and has been delighting users for some time now.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Turns out, when the team first got started on a project, it came with a specification document and a deadline.&amp;nbsp;As the work proceeded, the team was learning more about the project. A number of features were added based on conversations with stakeholders and organizational knowledge, other features described in the specification document were cut. Technical complexity was uncovered, and eventually conquered. &amp;nbsp;The team iteratively delivered the system for stakeholder review, each time presenting more functionality, and at some point it was decided that the software is ready to go into production.&amp;nbsp; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Well, as it happened, for this particular project the production release date was after the original deadline set on the project, back when the project consisted only of a specification document and that deadline.&amp;nbsp;Therefore, the deadline was declared missed, and the project was declared a failure.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;I find this mind-boggling.&amp;nbsp; Before anything was known about a project except that there is software to be built, there was this random date.&amp;nbsp; Now, that the world moved forward, the project came into existence as a working, helpful system that delights users and produces real, tangible value for the organization. Yet, somehow, that original date is still the deciding factor whether the project succeeded.&amp;nbsp; Conforming to this picked-before-we-knew-anything-important date is more important than whether the project was delivered at all, whether it useful, or valuable, or makes users happy and productive.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;It's understandable that people and businesses want a pony – projects that are predictable enough to be able to forecast completion date, scope, and user satisfaction ahead of time.&amp;nbsp; In practice, most of software development work happens on complex projects, with a lot of unknowns, where information is uncovered gradually as more work is done.&amp;nbsp; There is a very little chance that any given project is a pony. More likely it is a zebra, with a variety of stripes, and lots of unpredictability. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/14299865446&quot; title=&quot;P1030330 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1030330&quot; height=&quot;400&quot; src=&quot;https://farm6.staticflickr.com/5582/14299865446_c15b52c1ec.jpg&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-497003350706643065</guid>
         <pubDate>Thu, 17 Jul 2014 21:16:00 +0000</pubDate>
      </item>
      <item>
         <title>Estimates in the real world</title>
         <link>http://softwareandotherthings.blogspot.com/2014/07/estimating-in-real-world.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8177242419&quot; title=&quot;P1080959 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1080959&quot; height=&quot;320&quot; src=&quot;https://farm9.staticflickr.com/8062/8177242419_98b21030c6_n.jpg&quot; width=&quot;240&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Estimates sound like a simple, beautiful, thing no project should ever be without. As always, if something is too good to be true, it is not true. Having a detailed estimate up-front for something highly uncertain is desirable, and impossible.&lt;br /&gt;&lt;br /&gt;Estimates are hard to use properly, and very hard to get value from. There are people who understand probabilities, have a good grasp of variability and resulting deviations. These people are able to work with, and to benefit from, early estimates while considering all the uncertainty of the situation. These people also do not exist in IT project-planning roles.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Estimates look like a wonderful thing to have, but they are hardly necessary. Not having a good estimate may be less than ideal, but never disastrous. Estimates do not change the flow of work to the better, although they could encourage cutting corners. &amp;nbsp;Many projects have been successfully completed without any estimates, or with bad ones.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Overall, the most desirable estimates are impossible to get right, all estimates are easy to misuse, and even the best estimates provide limited value even if everything goes well. Estimates are normally discussed in terms of a best-case scenario, which is very different from what usually happens. &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Best case scenario&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;&quot;&gt;On-point estimate. All necessary resources available when needed. No changes in requirements.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;&quot;&gt;On-time and on-budget delivery.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;What usually happens&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;&quot;&gt;Best-case scenario estimate, further shortened because of business need.&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;&quot;&gt;All necessary resources are not available until much later, except a few, that are not available at all. Massive and conflicting changes in requirements.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;&quot;&gt;Complete chaos when estimated delivery date arrives.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Estimates are a nice thing to have in a perfect world.&amp;nbsp; Having good estimates allows to predict far ahead of time when and what resources will be needed, when and what milestones should be completed, and when to expect the final delivery. However, in a perfect world, resources are available quickly, milestones are hit reliably, and delivery has perfect timing - whether there were estimates or not.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Real world is far from perfect. In the real world, more often than not, estimates are way off, inputs are late, milestones keep changing, and final delivery turns out to be a first draft. &amp;nbsp;The only piece that remains set in stone is the original estimate, while the rest of the situation changes dramatically. Rough guesses become deadlines, do-or-die commitments, and the cornerstone of blame-passing culture.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;For those projects that attempt to succeed in the real, &amp;nbsp;rather than perfect, world, consider doing away with the estimates-come-deadlines. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8359924067&quot; title=&quot;P1000220 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1000220&quot; height=&quot;282&quot; src=&quot;https://farm9.staticflickr.com/8500/8359924067_3fdd23bd2e.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-3761176039704698645</guid>
         <pubDate>Sat, 05 Jul 2014 09:55:00 +0000</pubDate>
      </item>
      <item>
         <title>For hard projects, choose Agile</title>
         <link>http://softwareandotherthings.blogspot.com/2014/06/for-hard-projects-choose-agile.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9254477111&quot; title=&quot;P1010634 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010634&quot; height=&quot;320&quot; src=&quot;https://farm8.staticflickr.com/7290/9254477111_2b7d0a76de_n.jpg&quot; width=&quot;213&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;What’s the cheapest way to build software?&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile approach is expensive.&amp;nbsp; There are meetings that take valuable engineering time. There are non-engineering roles, i.e. people that need to be paid, that are not writing code and, therefore, whose contribution to the product comes into question.&amp;nbsp; There is a significant body of test code, and which is obviously not helpful to the end user. There is constant refactoring work as the team discovers better architecture for the emerging product. &amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Waterfall is cheaper. Only hire an architect to for the initial phase of designing the system.&amp;nbsp; Pay the technical team just to write the code for user functionality, and to do it quickly.&amp;nbsp; The engineers can be cheaper, too, since all the thinking has already been done in the earlier design phase.&amp;nbsp; Let the engineers go once all the code is written. Next QA comes in, runs tests, and violá, the product is done. &amp;nbsp;No meetings ever needed, since all the people involved are working off the earlier phase’ documentation.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Why pay more?&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Agile process has no single point of failure. Fault-tolerance of the process is extremely high, error detection and recovery is “baked in”. Waterfall, in contrast, requires perfect execution at every point in the process, i.e. every point is a single point of failure. Errors are hard to detect until the very end, and even harder to fix. As projects get more complex and require more investment, it makes sense to place a higher value on the probability of success, rather than on minimizing initial cost.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/9098845080&quot; title=&quot;P1010463 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010463&quot; height=&quot;213&quot; src=&quot;https://farm8.staticflickr.com/7287/9098845080_052cdebc47_n.jpg&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-8673571936964258544</guid>
         <pubDate>Tue, 17 Jun 2014 23:52:00 +0000</pubDate>
      </item>
      <item>
         <title>&quot;Slowly and carefully&quot;</title>
         <link>http://softwareandotherthings.blogspot.com/2014/05/slowly-and-carefully.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/4664702941&quot; title=&quot;P1010467 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1010467&quot; height=&quot;240&quot; src=&quot;https://farm2.staticflickr.com/1307/4664702941_69f1d568d9_n.jpg&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I once asked a coworker with an official title of Senior Software Architect, how he makes decisions and gives recommendations on the architecture of our product. “Slowly and carefully”, he replied. He was an honest and hard-working person, a very smart guy, and probably a decent architect. Yet our product’s architecture was terrible, and it was not improving as time went by. &lt;br /&gt;&lt;br /&gt;Two deadly sins of software architecture were ubiquitous in our code base&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Everything was tightly coupled with everything else&lt;/li&gt;&lt;li&gt;Same information was defined in multiple places&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In day-to-day work these problems caused lots of hard-to-trace bugs, showing up in seemingly unrelated portions of the code.  Changes required touching lots of code, leading to more bugs. And it was very hard to write tests – so tests were not written.  &lt;br /&gt;&lt;br /&gt;So, what was my colleague doing wrong?  The architectural changes he and the team inflicted on the code base were fine - mostly because very little changes were made. There was no opportunity for a serious refactoring effort to improve on the underlying structure. The bad stuff that accumulated over time continued to accumulate.  The new features represented good ideas, but were poorly implemented – or, rather, were implemented in much the same way as old ones, creating more bad code. &lt;br /&gt;&lt;br /&gt;Looking back, there was a culture problem with the approach of “slowly and carefully, with no objective criteria, teamwork, or testing”.  The architect did not write code. He provided suggestions that were implemented by other people.  Programmers wrote code per instructions, and did not create tests to fully exercise the added or modified code.  The architect did not have the feedback on how well his ideas fit into the code base, and programmers had very vague feedback on how their changes affected the system. &lt;br /&gt;&lt;br /&gt;Most of the time, the architect's solutions were fine. &amp;nbsp;He was familiar with the code, has been on the project for a long time, and knew the team well. But since his suggestions were hardly ever challenged, and never tested against competitive ideas, it is impossible to tell whether what he offered was really good - or barely good enough.&lt;br /&gt;&lt;br /&gt;Every so often, a developer would complain that the solution suggested by the architect did not work, and it became a point of pride for others to write some “clever” code to fit the square peg (architect’s suggestion) into a round hole (existing code). It is well established that the “clever” code is more bug-prone and harder to maintain, compared to straight-forward and easily readable code.  &lt;br /&gt;&lt;br /&gt;Sometimes, no amount of cleverness could fit a new elegant idea into the clunky existing code, and then people improvised on their own.  Most of the time, those were good, solid solutions, but not always. There also was an illicit feel to the situation, and some developers tried to avoid code reviews in these cases.  There were a few scary monstrosities quietly sneaked into the code base as a result.  &lt;br /&gt;&lt;br /&gt;Splitting the implementation and design work prevents everybody from learning from their successes and mistakes. Having an architect dictate unchallenged solutions creates sub-par performance, tension and funny feelings even on the best-intentioned team. &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5045865015&quot; title=&quot;P1030398 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1030398&quot; height=&quot;375&quot; src=&quot;https://farm5.staticflickr.com/4087/5045865015_2919496181.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-3296398110069802498</guid>
         <pubDate>Sat, 31 May 2014 00:03:00 +0000</pubDate>
      </item>
      <item>
         <title>Data Integration Tests and Transactions - Part 2</title>
         <link>http://feedproxy.google.com/~r/blogspot/toddmeinershagen/~3/MSkHSf6jF3E/data-integration-tests-and-transactions_25.html</link>
         <description>&lt;html&gt;&lt;head&gt;&lt;title&gt;2014-05-25_data_integration_tests_and_multiple_data_framework_transactions&lt;/title&gt;&lt;style&gt; body{font-family:&quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, &quot;Luxi Sans&quot;, &quot;DejaVu Sans&quot;, Tahoma, &quot;Hiragino Sans GB&quot;, STHeiti;font-size:14px;line-height:1.6;color:#666666;padding-top:10px;padding-bottom:10px;background-color:white;padding:30px;}body &gt; *:first-child{margin-top:0 !important;}body &gt; *:last-child{margin-bottom:0 !important;}a{color:#109EFF;text-decoration:none;}a:hover{border-bottom:1px dotted #109EFF;}a:visited, a:active{color:#109EFF;}a.absent{color:#cc0000;}a.anchor{display:block;padding-left:30px;cursor:pointer;}p a{margin:0 2px;}h1, h2, h3, h4, h5, h6{color:#333333;margin:20px 0 10px;padding:0;font-weight:bold;cursor:text;}h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor{text-decoration:none;}h1 tt, h1 code{font-size:inherit;}h2 tt, h2 code{font-size:inherit;}h3 tt, h3 code{font-size:inherit;}h4 tt, h4 code{font-size:inherit;}h5 tt, h5 code{font-size:inherit;}h6 tt, h6 code{font-size:inherit;}h1{font-size:18px;font-weight:bold;line-height:22px;margin-bottom:5px;color:#333;}h2{font-size:16px;font-weight:bolder;line-height:18px;margin:20px 0;}h3{font-size:14px;}h4{color:#666;font-size:14px;font-weight:bolder;line-height:18px;margin:20px 0;}h5{font-size:14px;}h6{color:#777777;font-size:14px;}p, blockquote, ul, ol, dl, li, table, pre{margin:15px 0;line-height:150%;}hr{background:transparent;border:0 none;color:#cccccc;height:4px;padding:0;}body &gt; h2:first-child{margin-top:0;padding-top:0;}body &gt; h1:first-child{margin-top:0;padding-top:0;}body &gt; h1:first-child + h2{margin-top:0;padding-top:0;}body &gt; h3:first-child, body &gt; h4:first-child, body &gt; h5:first-child, body &gt; h6:first-child{margin-top:0;padding-top:0;}a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6{margin-top:0;padding-top:0;}h1 p, h2 p, h3 p, h4 p, h5 p, h6 p{margin-top:0;}li p.first{display:inline-block;}li{font-size:14px;line-height:150%;margin-bottom:5px;margin-top:0;}ul, ol{padding-left:30px;}ul :first-child, ol :first-child{margin-top:0;}dl{padding:0;}dl dt{font-size:14px;font-weight:bold;font-style:italic;padding:0;margin:15px 0 5px;}dl dt:first-child{padding:0;}dl dt &gt; :first-child{margin-top:0;}dl dt &gt; :last-child{margin-bottom:0;}dl dd{margin:0 0 15px;padding:0 15px;}dl dd &gt; :first-child{margin-top:0;}dl dd &gt; :last-child{margin-bottom:0;}blockquote{background:no-repeat scroll left 11px transparent;color:#999999;margin-left:28px;min-height:30px;padding:17px 40px 0;}blockquote p{color:#999999;margin-bottom:25px !important;}blockquote &gt; :first-child{margin-top:0;}blockquote &gt; :last-child{margin-bottom:0;}table{padding:0;border-collapse:collapse;}table tr{border-top:1px solid #cccccc;background-color:white;margin:0;padding:0;}table tr:nth-child{background-color:#f8f8f8;}table tr th{font-weight:bold;border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr td{border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr th :first-child, table tr td :first-child{margin-top:0;}table tr th :last-child, table tr td :last-child{margin-bottom:0;}img{border:1px solid #E1E1E1;margin:0 auto 10px;display:block;max-width:512px;padding:5px;}span.frame{display:block;overflow:hidden;}span.frame &gt; span{border:1px solid #dddddd;display:block;float:left;overflow:hidden;margin:13px 0 0;padding:7px;width:auto;}span.frame span img{display:block;float:left;}span.frame span span{clear:both;color:#333333;display:block;padding:5px 0 0;}span.align-center{display:block;overflow:hidden;clear:both;}span.align-center &gt; span{display:block;overflow:hidden;margin:13px auto 0;text-align:center;}span.align-center span img{margin:0 auto;text-align:center;}span.align-right{display:block;overflow:hidden;clear:both;}span.align-right &gt; span{display:block;overflow:hidden;margin:13px 0 0;text-align:right;}span.align-right span img{margin:0;text-align:right;}span.float-left{display:block;margin-right:13px;overflow:hidden;float:left;}span.float-left span{margin:13px 0 0;}span.float-right{display:block;margin-left:13px;overflow:hidden;float:right;}span.float-right &gt; span{display:block;overflow:hidden;margin:13px auto 0;text-align:right;}code, tt{margin:0 2px;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;}pre code{margin:0;padding:0;white-space:pre;border:none;background:transparent;}.highlight pre{background-color:#f8f8f8;border:1px solid #cccccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;}pre{background-color:#f8f8f8;border:1px solid #cccccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;}pre code, pre tt{background-color:transparent;border:none;}@media screen and (min-width:914px){body{width:854px;margin:0 auto;}}&lt;/style&gt;&lt;/head&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://toddmeinershagen.blogspot.com/2014/05/data-integration-tests-and-transactions.html&quot;&gt;Last time&lt;/a&gt; I talked about how to use the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx&quot;&gt;TransactionScope&lt;/a&gt; class to handle the rollback of any changes made during a data integration test. This time, I would like to talk about another issue that will eventually come up using transactions: using &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/data/ef.aspx&quot;&gt;Entity Framework&lt;/a&gt; code-first in combination with any other data access framework while leveraging TransactionScope.&lt;/p&gt; &lt;p&gt;In our case, we use &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://code.google.com/p/dapper-dot-net/&quot;&gt;Dapper&lt;/a&gt; to insert data before our tests and to assert things about the state of the database after exercising the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx&quot;&gt;code-first Entity Framework&lt;/a&gt; data layer functionality we are testing. Below is our example.&lt;/p&gt; &lt;pre&gt;&lt;code&gt;private TransactionScope _scope;&lt;br /&gt;&lt;br /&gt;[SetUp]&lt;br /&gt;public void SetUp()&lt;br /&gt;{&lt;br /&gt;    _scope = new TransactionScope();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[TearDown]&lt;br /&gt;public void TearDown()&lt;br /&gt;{&lt;br /&gt;    _scope.Dispose();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[Test]&lt;br /&gt;public void test_to_demo_ef_and_dapper_connections()&lt;br /&gt;{&lt;br /&gt;    var person = new Person {FirstName = &amp;quot;Todd&amp;quot;, LastName = &amp;quot;Meinershagen&amp;quot;};&lt;br /&gt;    var sql = &amp;quot;INSERT INTO dbo.Persons (FirstName, LastName) &amp;quot;;&lt;br /&gt;    sql = sql + &amp;quot;VALUES (@FirstName, @LastName)&amp;quot;;&lt;br /&gt;&lt;br /&gt;    using (var connection = new SqlConnection(&amp;quot;a connection string&amp;quot;))&lt;br /&gt;    {&lt;br /&gt;        connection.Execute(sql, person);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    var db = new PersonContext();&lt;br /&gt;    var matchingPersons = &lt;br /&gt;        from p in db.Persons&lt;br /&gt;        where&lt;br /&gt;            (p.FirstName == person.FirstName) &amp;amp;&amp;amp;&lt;br /&gt;            (p.LastName == person.LastName)&lt;br /&gt;        select p;&lt;br /&gt;&lt;br /&gt;    matchingPersons.FirstOrDefault().Should().NotBeNull();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;Both Dapper and EF establish their own connections, and we would expect that each connection would take part in the ambient transaction being created during the [SetUp] of our test fixture. &lt;/p&gt; &lt;p&gt;Normally, this is not an issue, but when the tests are run, we get a message similar to below:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;MSDTC on server 'servername' is unavailable.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;This can occur for any number of reasons such as the following:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Opening multiple connections with same connection string to SQL Server 2005.&lt;/li&gt;&lt;li&gt;Opening multiple nested connections with same connection string to SQL Server 2008.&lt;/li&gt;&lt;li&gt;Opening multiple connection to two different SQL Server 2008 instances.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;In the case of our tests, we are making two connections (one for EF and one for Dapper) to SQL Server 2008 using the same connection string. Based on the guidance above, this should not force our system to escalate to MSDTC. &lt;/p&gt; &lt;p&gt;So, what is happening here?&lt;/p&gt; &lt;p&gt;After searching diligently on the internet (thank God for the internet!), I found an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://stackoverflow.com/questions/18088949/entityframeworkmue-in-entity-framework&quot;&gt;article&lt;/a&gt; explaining that Microsoft cleverly adds information to a code-first connection string to allow Microsoft to collect statistics from those using Azure and Entity Framework to determine what percentage use code-first as opposed to database-first. (Why Microsoft, why?) This is supposed to have been fixed in EF 6.0.&lt;/p&gt; &lt;p&gt;So, instead of using a connection string as you specified:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;Data Source=(local);&lt;br /&gt;Initial catalog=LocalDb;&lt;br /&gt;Integrated Security=True;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;The system uses the following for EF:&lt;/p&gt; &lt;pre&gt;&lt;code&gt;Data Source=(local);&lt;br /&gt;Initial catalog=LocalDb;&lt;br /&gt;Integrated Security=True;&lt;br /&gt;Application Name=EntityFrameworkMUE&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;p&gt;So, what does this mean?&lt;/p&gt; &lt;p&gt;Unfortunately, this causes our system to see the two connections (Dapper and EF) as two different connection strings and therefore, it looks like you are connecting to two different data sources which escalate to MSDTC. What a pain!&lt;/p&gt; &lt;p&gt;So, how do we get around this issue.&lt;/p&gt; &lt;p&gt;One way would be to use EF for both production and test code, although this robs us of the benefit of quickly setting up data using a light-weight framework like Dapper. Another option is to modify our test project&amp;#8217;s configuration file by explicitly specifying the Application Name for our connection string. The system will then see the two connections as the same. No more escalation to MSDTC!&lt;/p&gt; &lt;p&gt;Hope this helps.&lt;/p&gt;&lt;/html&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;div&gt;
&lt;br/&gt;
&lt;span style=&quot;border-top:solid 1px #000000;&quot;&gt;
&lt;span style=&quot;text-align:left;&quot;&gt;
Todd Meinershagen is a Principal Consultant with &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.improvingenterprises.com/&quot; style=&quot;text-align:left;&quot;&gt;Improving Enterprises&lt;/a&gt;&lt;span style=&quot;text-align:left;&quot;&gt; in Dallas, Texas.&lt;/span&gt;
&lt;/span&gt;
&lt;br/&gt;
&lt;/div&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/toddmeinershagen/~4/MSkHSf6jF3E&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <author>Todd Meinershagen</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2681574040796476559.post-2971845694695454778</guid>
         <pubDate>Sun, 25 May 2014 20:47:00 +0000</pubDate>
      </item>
      <item>
         <title>Data Integration Tests and Transactions - Part 1</title>
         <link>http://feedproxy.google.com/~r/blogspot/toddmeinershagen/~3/K7G8Md6ooEE/data-integration-tests-and-transactions.html</link>
         <description>&lt;html&gt;&lt;head&gt;&lt;title&gt;2014-05-25_integration_tests_and_transactions&lt;/title&gt;&lt;style&gt; body{font-family:&quot;Microsoft Yahei&quot;, &quot;Helvetica Neue&quot;, &quot;Luxi Sans&quot;, &quot;DejaVu Sans&quot;, Tahoma, &quot;Hiragino Sans GB&quot;, STHeiti;font-size:14px;line-height:1.6;color:#666666;padding-top:10px;padding-bottom:10px;background-color:white;padding:30px;}body &gt; *:first-child{margin-top:0 !important;}body &gt; *:last-child{margin-bottom:0 !important;}a{color:#109EFF;text-decoration:none;}a:hover{border-bottom:1px dotted #109EFF;}a:visited, a:active{color:#109EFF;}a.absent{color:#cc0000;}a.anchor{display:block;padding-left:30px;cursor:pointer;}p a{margin:0 2px;}h1, h2, h3, h4, h5, h6{color:#333333;margin:20px 0 10px;padding:0;font-weight:bold;cursor:text;}h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor{text-decoration:none;}h1 tt, h1 code{font-size:inherit;}h2 tt, h2 code{font-size:inherit;}h3 tt, h3 code{font-size:inherit;}h4 tt, h4 code{font-size:inherit;}h5 tt, h5 code{font-size:inherit;}h6 tt, h6 code{font-size:inherit;}h1{font-size:18px;font-weight:bold;line-height:22px;margin-bottom:5px;color:#333;}h2{font-size:16px;font-weight:bolder;line-height:18px;margin:20px 0;}h3{font-size:14px;}h4{color:#666;font-size:14px;font-weight:bolder;line-height:18px;margin:20px 0;}h5{font-size:14px;}h6{color:#777777;font-size:14px;}p, blockquote, ul, ol, dl, li, table, pre{margin:15px 0;line-height:150%;}hr{background:transparent;border:0 none;color:#cccccc;height:4px;padding:0;}body &gt; h2:first-child{margin-top:0;padding-top:0;}body &gt; h1:first-child{margin-top:0;padding-top:0;}body &gt; h1:first-child + h2{margin-top:0;padding-top:0;}body &gt; h3:first-child, body &gt; h4:first-child, body &gt; h5:first-child, body &gt; h6:first-child{margin-top:0;padding-top:0;}a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6{margin-top:0;padding-top:0;}h1 p, h2 p, h3 p, h4 p, h5 p, h6 p{margin-top:0;}li p.first{display:inline-block;}li{font-size:14px;line-height:150%;margin-bottom:5px;margin-top:0;}ul, ol{padding-left:30px;}ul :first-child, ol :first-child{margin-top:0;}dl{padding:0;}dl dt{font-size:14px;font-weight:bold;font-style:italic;padding:0;margin:15px 0 5px;}dl dt:first-child{padding:0;}dl dt &gt; :first-child{margin-top:0;}dl dt &gt; :last-child{margin-bottom:0;}dl dd{margin:0 0 15px;padding:0 15px;}dl dd &gt; :first-child{margin-top:0;}dl dd &gt; :last-child{margin-bottom:0;}blockquote{background:no-repeat scroll left 11px transparent;color:#999999;margin-left:28px;min-height:30px;padding:17px 40px 0;}blockquote p{color:#999999;margin-bottom:25px !important;}blockquote &gt; :first-child{margin-top:0;}blockquote &gt; :last-child{margin-bottom:0;}table{padding:0;border-collapse:collapse;}table tr{border-top:1px solid #cccccc;background-color:white;margin:0;padding:0;}table tr:nth-child{background-color:#f8f8f8;}table tr th{font-weight:bold;border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr td{border:1px solid #cccccc;text-align:left;margin:0;padding:6px 13px;}table tr th :first-child, table tr td :first-child{margin-top:0;}table tr th :last-child, table tr td :last-child{margin-bottom:0;}img{border:1px solid #E1E1E1;margin:0 auto 10px;display:block;max-width:512px;padding:5px;}span.frame{display:block;overflow:hidden;}span.frame &gt; span{border:1px solid #dddddd;display:block;float:left;overflow:hidden;margin:13px 0 0;padding:7px;width:auto;}span.frame span img{display:block;float:left;}span.frame span span{clear:both;color:#333333;display:block;padding:5px 0 0;}span.align-center{display:block;overflow:hidden;clear:both;}span.align-center &gt; span{display:block;overflow:hidden;margin:13px auto 0;text-align:center;}span.align-center span img{margin:0 auto;text-align:center;}span.align-right{display:block;overflow:hidden;clear:both;}span.align-right &gt; span{display:block;overflow:hidden;margin:13px 0 0;text-align:right;}span.align-right span img{margin:0;text-align:right;}span.float-left{display:block;margin-right:13px;overflow:hidden;float:left;}span.float-left span{margin:13px 0 0;}span.float-right{display:block;margin-left:13px;overflow:hidden;float:right;}span.float-right &gt; span{display:block;overflow:hidden;margin:13px auto 0;text-align:right;}code, tt{margin:0 2px;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;}pre code{margin:0;padding:0;white-space:pre;border:none;background:transparent;}.highlight pre{background-color:#f8f8f8;border:1px solid #cccccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;}pre{background-color:#f8f8f8;border:1px solid #cccccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;}pre code, pre tt{background-color:transparent;border:none;}@media screen and (min-width:914px){body{width:854px;margin:0 auto;}}&lt;/style&gt;&lt;/head&gt;&lt;p&gt;I have been writing some integration tests in .NET lately to specify behavior for my data layer. The issue that always comes up is how to make sure that each test is completely isolated from other tests. This requires each test to initialize needed data and at the end to clean up any data that was created so that other tests are not impacted by it. In the past I have set up compensating queries to delete that same data on tear down.&lt;/p&gt;  &lt;p&gt;This can create one of two problems:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;strong&gt;maintainability&lt;/strong&gt; - it is hard to maintain this logic going forward&lt;/li&gt;&lt;li&gt;&lt;strong&gt;reliability&lt;/strong&gt; - it doesn’t guarantee successful rollback of the initial inserts because the query could possibly fail leaving the tests in a position for unsuccessful future tests against the database&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So, what do you do?&lt;/p&gt;  &lt;p&gt;I have been using the handy &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx&quot;&gt;TransactionScope&lt;/a&gt; class to allow any connections to participate in the ambient transaction and then dispose of the transaction without committing on tear down of the fixture.&lt;/p&gt;  &lt;p&gt;In the example below, I have used NUnit, but this could work with other testing frameworks quite well.&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;[TestFixture]&lt;br /&gt;public class MyFixture&lt;br /&gt;{&lt;br /&gt;    private TransactionScope _scope;&lt;br /&gt;&lt;br /&gt;    [SetUp]&lt;br /&gt;    public void SetUp()&lt;br /&gt;    {&lt;br /&gt;        _scope = new TransactionScope();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    [TearDown]&lt;br /&gt;    public void TearDown()&lt;br /&gt;    {&lt;br /&gt;        _scope.Dispose();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    ///&amp;lt;summary&amp;gt;This is a silly sample test for display purposes only.&amp;lt;/summary&amp;gt;&lt;br /&gt;    [Test]&lt;br /&gt;    public void given_context_when_something_happens_should_have_expected_outcome()&lt;br /&gt;    {&lt;br /&gt;        ExecuteSomeLogicForInsertingDataForContext();&lt;br /&gt;&lt;br /&gt;        RunSomeActionToMakeSomethingHappen();&lt;br /&gt;&lt;br /&gt;        AssertThatSomeExpectedOutcomeOccured();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You could make this an abstract base class and make the SetUp and TearDown methods virtual if you would like to reuse this across any of your data test fixtures. As long as you don’t call _scope.Complete() the changes you have made should be rolled back/aborted on the disposal of the transaction.&lt;/p&gt;  &lt;p&gt;Hope this helps!&lt;/p&gt; &lt;/html&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;div&gt;
&lt;br/&gt;
&lt;span style=&quot;border-top:solid 1px #000000;&quot;&gt;
&lt;span style=&quot;text-align:left;&quot;&gt;
Todd Meinershagen is a Principal Consultant with &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.improvingenterprises.com/&quot; style=&quot;text-align:left;&quot;&gt;Improving Enterprises&lt;/a&gt;&lt;span style=&quot;text-align:left;&quot;&gt; in Dallas, Texas.&lt;/span&gt;
&lt;/span&gt;
&lt;br/&gt;
&lt;/div&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/toddmeinershagen/~4/K7G8Md6ooEE&quot; height=&quot;1&quot; width=&quot;1&quot; alt=&quot;&quot;/&gt;</description>
         <author>Todd Meinershagen</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2681574040796476559.post-5922353542288677497</guid>
         <pubDate>Fri, 23 May 2014 02:31:00 +0000</pubDate>
      </item>
      <item>
         <title>Magic-8 ball, and other approaches to problem-solving</title>
         <link>http://softwareandotherthings.blogspot.com/2014/05/magic-8-ball-and-other-approaches-to.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/8375650138&quot; title=&quot;P1090310 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1090310&quot; height=&quot;500&quot; src=&quot;https://farm9.staticflickr.com/8468/8375650138_3456fb55ea.jpg&quot; width=&quot;375&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;There is a complicated way to do complicated things.&amp;nbsp;Think long and hard. Spend hours staring into the blank space, screen or a sheet of paper or a list of specifications, or what-have-you. Then spend more hours furiously typing or writing or arguing out loud, while pacing nervously. Grab heavy, plain-jacket books with no pictures and very small font, throw them around. Doodle, draw up UML charts, and write down dozens of numbers… Do all of the above in freshly dry-cleaned business attire, or PJs, or worn-out jean shorts, or nothing at all. &amp;nbsp;Repeat until half hour before the deadline. Feel very excited about the results.&amp;nbsp; &lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;This is pure magic. It is shrouded in mystery and emotion, takes magical amounts of time, and delivers unpredictable results with unknowable certainty. When it succeeds, it triumphs heroically, and when it fails, it does so with a big loud bang. &amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;There is also an easier way.&amp;nbsp;Make up something, anything, however wrong it may be. Devise a test, and perform it. Go back to the drawing board, the text editor, the spreadsheet, etc.&amp;nbsp;Notice the problems in the previous idea and implementation. Then try again, taking the new information into account.&amp;nbsp;Update the test as well. Continue until happy with the results. Heavy books, typing furiously, and worn-out jeans may still come in handy, but this way those are means to an end, not a pure expression of experiencing a difficult and unfair world. &amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;When a complicated problem is solved by taking a small step at a time and adjusting, there emerges a combination of two possible solution paths.&amp;nbsp;One path is as expected: iterating over small steps leads to a locally optimal solution. The achieved solution is local to wherever the initial, the least educated and therefore the most random, guess happened to be. In a lot of situations, this is good enough: achieved solution is proven to fit the problem by a series of tests, it is achieved in a reliable and predictable way, and no magic is required.&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The other path is less expected, but nevertheless fairly common.&amp;nbsp;Making small steps in the possible solution space allows to build an intuition about the underlying patterns and relationships.&amp;nbsp;In addition to a set of concrete, tried-and-tested solution points, there emerges a deeper understanding of the problem.&amp;nbsp;This leads to an intuition that allows to escape the local maximum, and helps reason about the entire solution space.&amp;nbsp;Furthermore, a test-driven approach gives additional freedom to try out and gain confidence about further-fetched ideas in a systematic way. &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;The iterative approach is simple, rational, and pragmatic. It succeeds routinely and quietly, and fails rarely and cheaply. Magic may still happen, but it will be more grounded and less dramatic. &amp;nbsp;More importantly, magic is not a requirement for success.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;How magical do you want your problem-solving to be?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.flickr.com/photos/jprusakova/5007034660&quot; title=&quot;P1020698 by Jane Prusakova, on Flickr&quot;&gt;&lt;img alt=&quot;P1020698&quot; height=&quot;375&quot; src=&quot;https://farm5.staticflickr.com/4113/5007034660_6656b29618.jpg&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
         <author>Jane Prusakova</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-7086785636466343363.post-7679865386855693258</guid>
         <pubDate>Thu, 15 May 2014 11:27:00 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe7.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 22:59:44 UTC 2015 -->
