<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.0.4" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Development and Integrity Management by Eli Lopian</title>
	<link>http://www.elilopian.com</link>
	<description>Creating better software</description>
	<pubDate>Thu, 15 Oct 2009 22:42:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/EliLopian" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>The 5 Critical Qualities of an Entrepreneur</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/mJuiEVLAA28/</link>
		<comments>http://www.elilopian.com/2009/10/16/the-5-critical-qualities-of-an-entrepreneur/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:42:25 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Fun</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/16/the-5-critical-qualities-of-an-entrepreneur/</guid>
		<description><![CDATA[ Michael has a post about the best characters of an Entrepreneur. I think that other qualities matter.

Curiosity     To start this adventure in the first place you will need a load of curiosity and a passion to learn.
Courage     You need to have an adventurous nature and the [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image8.png" width="240" height="240" /> <a href="http://michaelhogg.org" target="_blank">Michael</a> has a post about the best characters of an Entrepreneur. I think that other qualities matter.</p>
<ol>
<li>Curiosity     <br />To start this adventure in the first place you will need a load of curiosity and a passion to learn.</li>
<li>Courage     <br />You need to have an adventurous nature and the courage to go on this journey to the unknown.</li>
<li>Drive     <br />You must keep on the journey and not turn back, this requires drive to keep on when things look bleak.</li>
<li>Integrity     <br />You must know by now that I am an <a href="http://www.elilopian.com/2009/02/26/management-for-geeks-secret-ingredients/" target="_blank">integrity</a> freak</li>
<li>Empathy     <br />You will be meeting and needing other people on the way and must respect them help them.</li>
</ol>
<h6> photo by <a href="http://www.flickr.com/photos/12639210@N08/"><b>Werner Schnell (1.stream)</b></a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=mJuiEVLAA28:Z-ujH45RHSI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=mJuiEVLAA28:Z-ujH45RHSI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=mJuiEVLAA28:Z-ujH45RHSI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=mJuiEVLAA28:Z-ujH45RHSI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=mJuiEVLAA28:Z-ujH45RHSI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/mJuiEVLAA28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/16/the-5-critical-qualities-of-an-entrepreneur/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/16/the-5-critical-qualities-of-an-entrepreneur/</feedburner:origLink></item>
		<item>
		<title>Theory Of Constraints, Lean and Schnitzels</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/3A3_0KBSCBY/</link>
		<comments>http://www.elilopian.com/2009/10/16/theory-of-constraints-lean-and-schnitzels/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:00:07 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Agile</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/16/theory-of-constraints-lean-and-schnitzels/</guid>
		<description><![CDATA[Roy gave me a copy of “The Cash Machine” Using the ToC for Sales Management. It is a good read, and it reminded me of the principals I learnt several years ago, although this book had a nice twist, and applied the ToC on a human process instead of the normal production line. (There are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/RoyOsherove" target="_blank">Roy</a> gave me a copy of “The Cash Machine” Using the ToC for Sales Management. It is a good read, and it reminded me of the principals I learnt several years ago, although this book had a nice twist, and applied the ToC on a human process instead of the normal production line. (There are also bits that can apply to SW Development but I’ll save that for another post).</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image6.png" width="240" height="180" /> What is interesting is that I keep on seeing these pattern. I was making Schnitzels (breaded chicken) for dinner today and my kids where helping me (and fighting over who gets to stand closest to me, but lets ignore that part for now).     <br />Making schnitzels, has a few stages. </p>
<ol>
<li>Cut chicken breast into small pieces (I did this)</li>
<li>Put beaten eggs in a bowl of (my kids did this)</li>
<li>Put bread crumbs and spices on a plate (my kids did this)</li>
<li>Heat up oil in a pan (I did this)</li>
</ol>
<p>Now comes the fun bit, each piece must be dipped in the egg, then in the bread crumbs, then cooked in oil until it is ready. My kids started to dip and coat the chicken and I put it in the oil, but very soon the pan was full and the coated pieces started piling up. </p>
<p>I started teaching my kids about <a href="http://www.elilopian.com/2009/06/11/pushing-and-pulling/" target="_blank">lean</a> and about not having any waste and I showed them that the piled up pieces are making it harder to cook, they where taking up room and where in the way and basically making a whole mess out of it. So we decided that we can only have 8 coated pieces (enough to fill the pan) waiting and that once we get there we just stop (and play with the tap water or quarrel).</p>
<p>Then I used the second step of the <a href="http://en.wikipedia.org/wiki/Theory_of_Constraints" target="_blank">Theory of constraints</a> and tried to exploit the constraint. By moving the pieces closer and by adjusting the heat we could get 12 pieces in the pan. Now we can change our lean constraints and allow 12 free pieces. I explained this and quite soon we completed the cooking.</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://www.elilopian.com/wp-content/uploads/2009/10/image7.png" width="240" height="160" />So Lean and Theory of Constraints play well together. We had a great meal and learnt some process theories on the way.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>.</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=3A3_0KBSCBY:Mm5QuHFhS-0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=3A3_0KBSCBY:Mm5QuHFhS-0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=3A3_0KBSCBY:Mm5QuHFhS-0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=3A3_0KBSCBY:Mm5QuHFhS-0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=3A3_0KBSCBY:Mm5QuHFhS-0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/3A3_0KBSCBY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/16/theory-of-constraints-lean-and-schnitzels/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/16/theory-of-constraints-lean-and-schnitzels/</feedburner:origLink></item>
		<item>
		<title>Getting the Boss to get Rid of Himself</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/7xWy0v9fj5Q/</link>
		<comments>http://www.elilopian.com/2009/10/15/getting-the-boss-to-get-rid-of-himself/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 21:00:45 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/15/getting-the-boss-to-get-rid-of-himself/</guid>
		<description><![CDATA[Here is a short discussion I had with a Typemock employee a few weeks ago. 
Employee: “Phew, We managed to purchase the last available ticket  ”     Me: “That’s great…” after a pause “… Why do we keep on missing the early-bird discounts?”*    Employee: “That’s because you didn’t [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a short discussion I had with a <a href="http://www.typemock.com" target="_blank">Typemock</a> employee a few weeks ago. </p>
<p><strong><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image5.png" width="240" height="151" />Employee</strong>: “Phew, We managed to purchase the last available ticket <img src='http://www.elilopian.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ”     <br /><strong>Me</strong>: “That’s great…” after a pause “… Why do we keep on missing the early-bird discounts?”*    <br /><strong>Employee</strong>: “That’s because you didn’t approve it until the last second”    <br /><strong>Me</strong>: “Wow, I didn’t know that I was the bottleneck. But… we all knew about this 6 months ago, how come this didn’t come up”    <br /><strong>Employee</strong>: “Because YOU didn’t tell us that we are actually going to do this”    <br /><strong>Me</strong>: “Did you expect me to tell you that we should do it”    <br /><strong>Employee</strong>: “Yes, we where waiting for you, we always wait for you, and then you normally come storming in at the last second and ask us if we are going to do it and what we need to do to it”    <br /><strong>Me</strong>: “So lets see why this happens, how do I know that you are waiting?”    <br /><strong>Employee</strong>: “We ask our manager if we are going and he says that you have to approve, so we asked you what we should do but you didn’t tell us to do it”    <br /><strong>Me</strong>: “Why do you think that I know what to do?”    <br /><strong>Employee</strong>: “?? What do you mean? You are our manager”    <br /><strong>Me</strong>: “Ahh, here is where the problem is, you should know better that I do if we should do it. If you really believe that we should do it, you should just say so. Tell me that we should do it, I might ask you some questions but it must come from you and not from me”    <br /><strong>Employee</strong>: “So… I am supposed to tell you what we should do?”    <br /><strong>Me</strong>: “Of course, and explain why, you probably know better then me, and that way you wont be waiting for an answer that I don’t really have.”    <br /><strong>Employee</strong>: “So how come you used to come at the last minute and tell us to do it”    <br /><strong>Me</strong>: “When I found out that we are not ready to do it and we are nearing at the last minute, I ask what is happening, I learn the domain and make sure that we don’t miss the opportunity, but I hate doing this. I would prefer that we do it before and pay early-bird prices” **    <br /><strong>Employee</strong>: “Ok, Now that I know, I will make sure that I tell you what I think we should do”    <br /><strong>Me</strong>: “Thanks you, I feel that we made a great progress here”</p>
<p>I feel that I am managing to <a href="http://www.elilopian.com/2009/03/25/the-journey-from-an-inventor-to-a-ceo/" target="_blank">invert the command hierarchy</a> </p>
<h5>*&#160; Some <a href="http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/" target="_blank">problem-searching</a></h5>
<h5>** Letting the team make mistakes   <br /></h5>
<h6>photo by <a href="http://www.flickr.com/photos/34305729@N07/"><b>Photoma&#8217;s World</b></a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=7xWy0v9fj5Q:FlSAawXOQdI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=7xWy0v9fj5Q:FlSAawXOQdI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=7xWy0v9fj5Q:FlSAawXOQdI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=7xWy0v9fj5Q:FlSAawXOQdI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=7xWy0v9fj5Q:FlSAawXOQdI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/7xWy0v9fj5Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/15/getting-the-boss-to-get-rid-of-himself/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/15/getting-the-boss-to-get-rid-of-himself/</feedburner:origLink></item>
		<item>
		<title>Managing Rookie Managers</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/A2fvuRvbivY/</link>
		<comments>http://www.elilopian.com/2009/10/14/managing-rookie-managers/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 19:35:49 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/14/managing-rookie-managers/</guid>
		<description><![CDATA[ Rookie managers have a incomplete perception of management and hold on to the idea that they are still reviewed by their personal performance and that there job is to keep things running.
Quite the opposite, it is a mangers job to make change, it is their job to search for problems and opportunities and manage [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image4.png" width="240" height="202" /> Rookie managers have a <a href="http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/" target="_blank">incomplete perception of management</a> and hold on to the idea that they are still reviewed by their personal performance and that there job is to keep things running.</p>
<p>Quite the opposite, it is a mangers job to make change, it is their job to <a href="http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/" target="_blank">search for problems and opportunities</a> and manage the change in the best way. They will start with 90% keeping things running and 10% initiating change and as they are promoted the percentages will swap.</p>
<p>One way to get rookie to think in this way is <strong>to ask them strategic questions</strong>.</p>
<p>For example:</p>
<ul>
<li>What technology will the team need to know next year?</li>
<li>How are we going to cut our waste by 25% next quarter? </li>
<li>How can we measure and improve our quality?</li>
</ul>
<p>If they just split out the answer, you might want to ask them how they know, but you could then just ask them what they are going to do about it?   <br />If they don’t know that answer, ask them what they are going to do about that?</p>
<p>In either case you can now turn the strategic view to a <a href="http://www.elilopian.com/2009/02/26/management-for-geeks-secret-ingredients/" target="_blank">personal integrity</a>, and coach the rookie.</p>
<h6>picture by <a href="http://www.flickr.com/photos/teliko82/"><b>teliko82</b></a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=A2fvuRvbivY:cGA6Sssm_MI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=A2fvuRvbivY:cGA6Sssm_MI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=A2fvuRvbivY:cGA6Sssm_MI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=A2fvuRvbivY:cGA6Sssm_MI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=A2fvuRvbivY:cGA6Sssm_MI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/A2fvuRvbivY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/14/managing-rookie-managers/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/14/managing-rookie-managers/</feedburner:origLink></item>
		<item>
		<title>Never promote to a management role</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/QEIOMym84qo/</link>
		<comments>http://www.elilopian.com/2009/10/13/never-promote-to-a-management-role/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 10:27:15 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/13/never-promote-to-a-management-role/</guid>
		<description><![CDATA[ This post is to remind myself what to do what promoting first time managers, based on the final tip in the Myth and Realty Check Post.
Eli, Remember to Delay the Promotion
Here is why. When promoting a manager, I normally promote a high performance employees. These employees are excellent at doing their job well. They [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.elilopian.com/wp-content/uploads/2009/10/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image_thumb.png" width="240" height="240" /></a> This post is to remind myself what to do what promoting first time managers, based on the final tip in the <a href="http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/">Myth and Realty Check</a> Post.</p>
<p>Eli, Remember to Delay the Promotion</p>
<p>Here is why. When promoting a manager, I normally promote a high performance employees. These employees are excellent at doing their job well. They are talented, have a good <a href="http://www.elilopian.com/2009/02/24/management-for-geeks-know-where-you-spend-your-time/">time management</a>, can work in a team. But they are most likely to have a <a href="http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/">wrong perception of management</a>, this will lead to problems. The new manager will most likely still think that he is being reviewed on his personal performance instead of the teams performance</p>
<p>Its a catch 22 problem, the rookie manager can not get the new job because he needs to change his perception, but the perception cannot change until he jumps into the water.</p>
<p>My solution is instead of promoting, give that person a task that he can succeed only if he uses influence, a task that he cannot do by himself. For example to gather a group of people, that he has no authority on, and convince them to do a task together. A task that they will need to volunteer for. Explain that this task is about completing the task, but also about teaching him to use influence, a trait that is a requirement for a management role. Review his progress, help him out with interpersonal issues. Once he passes this task, he will find it easier to take on the managerial position.</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=QEIOMym84qo:JnqxJATxWgM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=QEIOMym84qo:JnqxJATxWgM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=QEIOMym84qo:JnqxJATxWgM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=QEIOMym84qo:JnqxJATxWgM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=QEIOMym84qo:JnqxJATxWgM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/QEIOMym84qo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/13/never-promote-to-a-management-role/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/13/never-promote-to-a-management-role/</feedburner:origLink></item>
		<item>
		<title>Rookie Manager #3: Myth vs Reality</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/td06lePBi3c/</link>
		<comments>http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 20:48:35 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/</guid>
		<description><![CDATA[ Rookie Managers, including myself, often fail in their new role. Now looking back at my first managerial job (10 years ago) I think that the reason for this was misconceptions and myths that I believed in as a new manager that lead to neglecting key responsibilities.
Myth #1: Authority.   I used to believe [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image2.png" width="217" height="240" /> Rookie Managers, including myself, often fail in their new role. Now looking back at my first managerial job (10 years ago) I think that the reason for this was misconceptions and myths that I believed in as a new manager that lead to neglecting key responsibilities.</p>
<p>Myth #1: Authority.   <br />I used to believe that as a manager, my new position gives me the power to be on top, to tell my direct reports what to do and that I have the freedom to implement my own ideas.    <br />Reality: The reality is that I was not in control of anything, I learnt to sit at the back of the bus and let my direct reports drive. I learnt that I need to negotiate interdependencies, build influence by creating strong relationships based on trust and credibility, throughout my team and organization. </p>
<p>Myth #2: Control   <br />I believed that I had to control my direct reports early on or they will walk all over me.    <br />Reality: Compliance is not the same as commitment. I learnt (and still am learning) to create an empowered, committed and accountable organization. The more power that I am willing to share leads to more influence.</p>
<p>Myth #3: Lead by Technical authority   <br />I thought that I needed to lead by example, and to be the best technical employee.    <br />Reality: I had to learn to take the back seat and allow the team to come up with the technical solutions, even if I thought that they where not as good. I had to learn that it is the team’s performance that is important and not my own personal performance.</p>
<p>Myth #4: Keep everything running smoothly   <br />As a rookie I though that it is my job to keep everything running smoothly.    <br />Reality: Although keeping things running is really difficult, it is <a href="http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/" target="_blank">problem finding</a> and initiating change that is required, even if this means going against the organizations structures and processes.</p>
<h3>Final Tips</h3>
<p>If you are a manager that just promoted a rookie, please remember these myths and try to explain the reality.</p>
<p>If you are a rookie, remember that you have to make your own success, become proactive, ask for help, your success depends on this.</p>
<h6>photo by <a href="http://www.flickr.com/photos/bernardhoa/"><b>bernardhoa</b></a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=td06lePBi3c:_B1UFFA3v1o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=td06lePBi3c:_B1UFFA3v1o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=td06lePBi3c:_B1UFFA3v1o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=td06lePBi3c:_B1UFFA3v1o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=td06lePBi3c:_B1UFFA3v1o:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/td06lePBi3c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/12/rookie-manager-3-myth-vs-reality/</feedburner:origLink></item>
		<item>
		<title>Going to Vegas!</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/4nxDEkWW1n8/</link>
		<comments>http://www.elilopian.com/2009/10/12/going-to-vegas/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 19:42:32 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>SharePoint</category>
	<category>Fun</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/12/going-to-vegas/</guid>
		<description><![CDATA[ I am going to be at the SharePoint Conference this year in Vegas (See plan on TripIt). Sorry guys the ticket have been sold out. We are going to have fun and help promote unit testing SharePoint.
This will be my first time in Vegas, I am sure going to have loads of fun, and [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image1.png" width="240" height="180" /> I am going to be at the <a href="http://www.mssharepointconference.com/Pages/default.aspx" target="_blank">SharePoint Conference</a> this year in Vegas (See plan on <a href="http://www.tripit.com/trip/public/id/AF58C34EE052" target="_blank">TripIt</a>). Sorry guys the ticket have been sold out. We are going to have fun and help promote unit testing SharePoint.</p>
<p>This will be my first time in Vegas, I am sure going to have loads of fun, and you are invited to.</p>
<p>Just follow <a href="http://twitter.com/search?q=%23typemock" target="_blank">#typemock</a> and get ready for loads of surprises. </p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=4nxDEkWW1n8:45Pxs1y0zFQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=4nxDEkWW1n8:45Pxs1y0zFQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=4nxDEkWW1n8:45Pxs1y0zFQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=4nxDEkWW1n8:45Pxs1y0zFQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=4nxDEkWW1n8:45Pxs1y0zFQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/4nxDEkWW1n8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/12/going-to-vegas/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/12/going-to-vegas/</feedburner:origLink></item>
		<item>
		<title>Rookie Manager #2: Problem Solving vs Problem Finding</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/ty_l3_NZEEY/</link>
		<comments>http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 19:35:24 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/</guid>
		<description><![CDATA[ There is a big difference between problem solving and problem finding. This is one of the differences that a Rookie Manager must learn quickly. A Rookie manager that has been promoted from the firing lines, from software development is trained to solve problems. Normally the best problem solver who is promoted to the team-leader [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/10/image.png" width="244" height="164" /> There is a big difference between problem solving and problem finding. This is one of the differences that a Rookie Manager must learn quickly. A Rookie manager that has been promoted from the firing lines, from software development is trained to solve problems. Normally the best problem solver who is promoted to the team-leader or manager of the team.</p>
<p>But once you are a manager you are on a transition from a problem solver to a problem finder.</p>
<p>Suppose we have to solve the problem of heating a room to 25°C (77°F). This is something that a problem solver can wire up and and create a system that heats the room when the temperature falls below a certain degree. But the problem solver stops there. The problem is solved.</p>
<p>The problem finder, goes one more step and asks: “Why 25°C?”   <br />As a manager you must start thinking in the Problem Finding Paradigm and once you get there you must start thinking in the Opportunity Finding Paradigm. What opportunities does the team/company have?    </p>
<p>Try to find problems in your team/company.</p>
<ul>
<li>What is the bottleneck of my team?</li>
<li>How can we handle external pressure better?</li>
<li>How can we communicate better?</li>
<li>How can we code faster? better quality?</li>
<li>What does the team need to learn?</li>
</ul>
<p>Remember that your team knows how to solve problems, so ask for their help in solving them, but it is your task to uncover them.</p>
<h6>photo from <a title="http://www.flickr.com/photos/alachance/" href="http://www.flickr.com/photos/alachance/" target="_blank">alachance</a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=ty_l3_NZEEY:T8Z-_odjTtA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=ty_l3_NZEEY:T8Z-_odjTtA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=ty_l3_NZEEY:T8Z-_odjTtA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=ty_l3_NZEEY:T8Z-_odjTtA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=ty_l3_NZEEY:T8Z-_odjTtA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/ty_l3_NZEEY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/10/11/rookie-manager-2-problem-solving-vs-problem-finding/</feedburner:origLink></item>
		<item>
		<title>#1 tip: What I expect from managers and team leaders</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/Mrqg8sRptZ8/</link>
		<comments>http://www.elilopian.com/2009/09/10/1-tip-what-i-expect-from-managers-and-team-leaders/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 08:22:46 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Management for Geeks</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/09/10/1-tip-what-i-expect-from-managers-and-team-leaders/</guid>
		<description><![CDATA[It is very natural for new Managers and Team leaders seem to think that once they are given the responsibility over a group they have to ‘Claim their territory’ and guard it with all their might.
Things that can really tick off new managers are others telling specific team members what to do or how to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.elilopian.com/wp-content/uploads/2009/09/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/09/image_thumb.png" width="150" height="240" /></a>It is very natural for new Managers and Team leaders seem to think that once they are given the <a href="http://www.elilopian.com/2009/03/25/200-responsibility/">responsibility</a> over a group they have to ‘Claim their territory’ and guard it with all their might.</p>
<p>Things that can really tick off new managers are others telling specific team members what to do or how to do things, and not informing the manager.</p>
<p>If this is happening to you, here is a tip:</p>
<blockquote><p>Chill out, cool down, everything is ok. You colleges believe in you and know that you can do the job. There is no need to <strong><em>protect </em>your territory</strong>, you don’t want to become a bureaucrat [1]. </p>
</blockquote>
<ul>
<li>You WANT your team to communicate with others</li>
<li>You WANT others (including your manager) to be able to cut the red tape and talk directly to the team members</li>
<li>You WANT to be your teams <em>leader</em><strong>, </strong>You DONT WANT to be the teams <em>protector</em></li>
<li>You DONT WANT to become a bureaucrat</li>
</ul>
<p>To do this you will need the team to be mature enough to solve problems by themselves, your job is to get the right people in the right places and to enable them to solve these problems. </p>
<p>If these things tick you off, it’s a great opportunity for you as a manager to grow. Just realize that the problem is trust in your own team, not with the outside world. Teach your team how to deal with these things. Work with <a href="http://www.elilopian.com/2009/02/26/management-for-geeks-secret-ingredients/">Integrity</a>.</p>
<ul>
<li>If the team can still complete all its commitments then everything is ok, you will know about this in a <a href="http://www.elilopian.com/2009/03/05/the-clearing/">clearing session</a> and be able to praise them on how they solved this issue.</li>
<li>If a team cannot complete its commitments, the team will notify you about this and you can decide how to continue</li>
<li>If the team doesn’t know what to do, they will come to you and ask you, they will present their dilemma and you can help them choose the correct solution.&#160;&#160;&#160; </li>
</ul>
<p>This is what I expect from my managers and team leaders:</p>
<blockquote><p>Be a growth agent and a empower you team, focus on taking the correct risks not on protecting your team or territory. </p>
</blockquote>
<h6>[1] My definition: a bureaucrat says “No we can’t”, a leader say “Yes we can”.   <br />Image: by <a href="http://www.flickr.com/photos/rdraio/"><b>rob surreal</b></a></h6>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=Mrqg8sRptZ8:dAiLrp0YYCw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=Mrqg8sRptZ8:dAiLrp0YYCw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=Mrqg8sRptZ8:dAiLrp0YYCw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=Mrqg8sRptZ8:dAiLrp0YYCw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=Mrqg8sRptZ8:dAiLrp0YYCw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/Mrqg8sRptZ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/09/10/1-tip-what-i-expect-from-managers-and-team-leaders/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/09/10/1-tip-what-i-expect-from-managers-and-team-leaders/</feedburner:origLink></item>
		<item>
		<title>Gaps I found while dog-fooding Typemock Isolator</title>
		<link>http://feedproxy.google.com/~r/EliLopian/~3/Bmfds5pFsck/</link>
		<comments>http://www.elilopian.com/2009/08/17/gaps-i-found-while-dog-fooding-typemock-isolator/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:00:41 +0000</pubDate>
		<dc:creator>Eli Lopian</dc:creator>
		
	<category>Product</category>
	<category>Unit Tests</category>
		<guid isPermaLink="false">http://www.elilopian.com/2009/08/17/gaps-i-found-while-dog-fooding-typemock-isolator/</guid>
		<description><![CDATA[ I have been dog-fooding Typemock Isolator with the Metric Dashboard. There are quite a few gaps in the product that I have found while using it. 
Before I go into the details of the gaps, I must point out that all these features exists in the older API’s (that are still available), but they [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.elilopian.com/wp-content/uploads/2009/08/image6.png" width="244" height="177" /> I have been <a href="http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food">dog-fooding</a> Typemock Isolator with the <a href="http://www.elilopian.com/2009/08/13/unit-testing-the-metric-dashboard-part-4/">Metric Dashboard</a>. There are quite a few gaps in the product that I have found while using it. </p>
<p>Before I go into the details of the gaps, I must point out that all these features exists in the older API’s (that are still available), but they are missing in the newer lambda-API’s (called AAA) that are much better.</p>
<h3><u>Firing Events</u></h3>
<p>This is not an Isolation feature per-se, but it is needed to simulate how our unit under test reacts to external events. In my case I needed to test the <a href="http://www.testdriven.net/">TestDriven.NET</a> integration, the TestDriven add in can raise events when ever a test suite is run, and whenever a test completes (Thank <a href="http://weblogs.asp.net/nunitaddin/">Jamie</a>). </p>
<h3><u>Verifying the arguments of a constructor</u></h3>
<p>One of Typemock Isolators unique features is the ability to fake objects that are created within the production code, we call these future instances. There was one case where I wanted to test that a constructor was called with a specific argument. The instance was a class that watched a specific directory for new files and load that file. I tested that class in another test, now I just wanted to test that the class was watching the correct directory. i.e. that the following was called</p>
<pre class="csharpcode">var watcher = <span class="kwrd">new</span> FileWatcher(testOutputDirectory);</pre>
<p><style type="text/css"><br />
.csharpcode, .csharpcode pre<br />
{<br />
	font-size: small;<br />
	color: black;<br />
	font-family: consolas, &#8220;Courier New&#8221;, courier, monospace;<br />
	background-color: #ffffff;<br />
	/*white-space: pre;*/<br />
}<br />
.csharpcode pre { margin: 0em; }<br />
.csharpcode .rem { color: #008000; }<br />
.csharpcode .kwrd { color: #0000ff; }<br />
.csharpcode .str { color: #006080; }<br />
.csharpcode .op { color: #0000c0; }<br />
.csharpcode .preproc { color: #cc6633; }<br />
.csharpcode .asp { background-color: #ffff00; }<br />
.csharpcode .html { color: #800000; }<br />
.csharpcode .attr { color: #ff0000; }<br />
.csharpcode .alt<br />
{<br />
	background-color: #f4f4f4;<br />
	width: 100%;<br />
	margin: 0em;<br />
}<br />
.csharpcode .lnum { color: #606060; }</style></p>
<p>I could of course change my code to have an empty constructor and to set the output directory after that</p>
<pre class="csharpcode">var watcher = <span class="kwrd">new</span> FileWatcher();
watcher.WatchFolder(testOutputDirectory);</pre>
<p>But this felt unnatural, there is no reason that the FileWatcher be called without the directory – leading to more logic – testing that the user called WatchFolder – and complicating the application</p>
<h3><u>Custom Argument Verification</u></h3>
<p>Although we do have an API to verify if a call with exact argument was made, I needed to test that a specific argument was passed, but I couldn’t use the exact arguments API. The reason is that the argument was a class with 2 properties, but the Equals method was overloaded to test only one property, and I had to test both properties. I needed a custom checker. Ohad, told me that this existed but is undocumented in the NonPublic api (Api’s for private members)</p>
<h3><u>Sequencing</u></h3>
<p>We have put a lot of thought in the sequencing logic of the Api’s to make it easy to read and write the test on one hand, but keep the test Robust on the other (Robust as in, the test passes when the production implementation changes, but not the logic). In this test I needed to call an API to setup the data, but the date needed to be yesterday. Then with the data acting as normal, I needed to call the code and verify that a new record was added.</p>
<pre class="csharpcode"><span class="rem">// pretend we started yesterday</span>
var yesterday = DateTime.Now.AddDays(-1);
Isolate.WhenCalled(()=&gt;DateTime.Now).WillReturn(yesterday);
var underTest = <span class="kwrd">new</span> DataModel();

<span class="rem">// back to today</span>
Isolate.WhenCalled(()=&gt;DateTime.Now).WillCallOriginal();
<span class="rem">// This should add a new record for today.</span>
underTest.Update(); </pre>
<p><style type="text/css"><br />
.csharpcode, .csharpcode pre<br />
{<br />
	font-size: small;<br />
	color: black;<br />
	font-family: consolas, &#8220;Courier New&#8221;, courier, monospace;<br />
	background-color: #ffffff;<br />
	/*white-space: pre;*/<br />
}<br />
.csharpcode pre { margin: 0em; }<br />
.csharpcode .rem { color: #008000; }<br />
.csharpcode .kwrd { color: #0000ff; }<br />
.csharpcode .str { color: #006080; }<br />
.csharpcode .op { color: #0000c0; }<br />
.csharpcode .preproc { color: #cc6633; }<br />
.csharpcode .asp { background-color: #ffff00; }<br />
.csharpcode .html { color: #800000; }<br />
.csharpcode .attr { color: #ff0000; }<br />
.csharpcode .alt<br />
{<br />
	background-color: #f4f4f4;<br />
	width: 100%;<br />
	margin: 0em;<br />
}<br />
.csharpcode .lnum { color: #606060; }</style></p>
<p>This didn’t work and I had to put both the Isolate lines together:</p>
<pre class="csharpcode"><span class="rem">// pretend we started yesterday</span>
var yesterday = DateTime.Now.AddDays(-1);
Isolate.WhenCalled(()=&gt;DateTime.Now).WillReturn(yesterday);
<span class="rem">// back to today</span>
Isolate.WhenCalled(()=&gt;DateTime.Now).WillCallOriginal();

var underTest = <span class="kwrd">new</span> DataModel();
<span class="rem">// This should add a new record for today.</span>
underTest.Update(); </pre>
<p><style type="text/css"><br />
.csharpcode, .csharpcode pre<br />
{<br />
	font-size: small;<br />
	color: black;<br />
	font-family: consolas, &#8220;Courier New&#8221;, courier, monospace;<br />
	background-color: #ffffff;<br />
	/*white-space: pre;*/<br />
}<br />
.csharpcode pre { margin: 0em; }<br />
.csharpcode .rem { color: #008000; }<br />
.csharpcode .kwrd { color: #0000ff; }<br />
.csharpcode .str { color: #006080; }<br />
.csharpcode .op { color: #0000c0; }<br />
.csharpcode .preproc { color: #cc6633; }<br />
.csharpcode .asp { background-color: #ffff00; }<br />
.csharpcode .html { color: #800000; }<br />
.csharpcode .attr { color: #ff0000; }<br />
.csharpcode .alt<br />
{<br />
	background-color: #f4f4f4;<br />
	width: 100%;<br />
	margin: 0em;<br />
}<br />
.csharpcode .lnum { color: #606060; }</style></p>
<p>This is bad since changing the implementation to call DateTime.Now twice in the constructor will fail the test.</p>
<h3><u>Assert the times a method was called</u></h3>
<p>While testing the save logic, I need to test for a race condition and make sure that the save is called only once. The save logic is called from the calculation logic that is periodically called (say once a second). Once the auto-save interval is reached a save is performed in another Thread (to make sure that the application is responsive). </p>
<pre class="csharpcode">var saveInterval = OptionsSettings.Settings.AutoSaveEveryMinutes;
<span class="kwrd">if</span> (stopWatchForSave.Elapsed.TotalMinutes &gt;= saveInterval)
{
  stopWatchForSave.Stop();
  ThreadPool.QueueUserWorkItem(<span class="kwrd">new</span> WaitCallback(t=&gt;
  {
    Save();
    stopWatchForSave = Stopwatch.StartNew();
  }));
}</pre>
<p>But if the Save takes too long and the method is called again, the save will be called again.<br />
  <br />To test this I need to make sure that the Save method is called only once, but this API is missing.</p>
<p>Bonus points goes to those who know how to solve this.</p>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EliLopian?a=Bmfds5pFsck:5Wr9j3V9FCI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/EliLopian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=Bmfds5pFsck:5Wr9j3V9FCI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=Bmfds5pFsck:5Wr9j3V9FCI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EliLopian?a=Bmfds5pFsck:5Wr9j3V9FCI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EliLopian?i=Bmfds5pFsck:5Wr9j3V9FCI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EliLopian/~4/Bmfds5pFsck" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://www.elilopian.com/2009/08/17/gaps-i-found-while-dog-fooding-typemock-isolator/feed/</wfw:commentRSS>
		<feedburner:origLink>http://www.elilopian.com/2009/08/17/gaps-i-found-while-dog-fooding-typemock-isolator/</feedburner:origLink></item>
	</channel>
</rss>
