<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Matt Stine&#039;s Blog &#187; work</title>
	<atom:link href="http://mattstine.com/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattstine.com</link>
	<description>Thoughts on Java, Groovy, Grails, Agile Development, etc. etc. etc.</description>
	<lastBuildDate>Tue, 17 May 2011 17:02:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mattstine.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Matt Stine&#039;s Blog &#187; work</title>
		<link>http://mattstine.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mattstine.com/osd.xml" title="Matt Stine&#039;s Blog" />
	<atom:link rel='hub' href='http://mattstine.com/?pushpress=hub'/>
		<item>
		<title>Design Meeting Patterns/Antipatterns</title>
		<link>http://mattstine.com/2011/05/16/design-meeting-patternsantipatterns/</link>
		<comments>http://mattstine.com/2011/05/16/design-meeting-patternsantipatterns/#comments</comments>
		<pubDate>Mon, 16 May 2011 21:57:50 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[facilitation]]></category>
		<category><![CDATA[meetings]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mattstine.com/?p=429</guid>
		<description><![CDATA[For those of you that don&#8217;t know, I recently returned to the technical ranks as a Software Architect after a three-year stint in management. To make a long story short, I now love my job again. Perhaps I&#8217;ll write the long story in a future blog entry. On to the topic at hand. Today I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=429&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For those of you that don&#8217;t know, I recently returned to the technical ranks as a Software Architect after a three-year stint in management. To make a long story short, I now love my job again. Perhaps I&#8217;ll write the long story in a future blog entry. On to the topic at hand. Today I led the first significant design discussion that I have led in quite a long time. A few minutes afterward, I was already reflecting on what had occurred and how. The very first thing that I noticed was my drastically different approach to the task. I felt that my facilitation skills were more mature and effective than I remember from previous similar engagements. I&#8217;m not sure if the time I spent in management (where I facilitated quite a few meetings, though much more business-focused ones) helped, but something certainly has.</p>
<p>I also noticed several things that I&#8217;ll call &#8220;pattern vs. antipattern&#8221; tugs of war. Quite often during the meeting I felt the group trying to move our discussion in one direction that I, for better or for worse, thought was ineffective. I would then redirect us on to what I felt was a better path. In true catalog form, here&#8217;s the list:</p>
<ul>
<li><strong>Understand the Problem vs. Jump to the Solution</strong> &#8211; only a couple of minutes into our discussion solutions were being flung about like drunken darts. This situation almost always leads to suboptimal or faulty solutions. As a facilitator, try to ensure that the problem has been clearly stated. If at all possible, write it down on a whiteboard. Make sure everyone agrees that the problem as stated is the problem the group is there to solve. Sure enough, after performing this exercise, we all had a very different and clear understanding of the problem than that with which we walked in the door.</li>
<li><strong>Assume the Worst vs. Assume the Best</strong> &#8211; occasionally the exact details of a requirement are unclear, and not assuming something will totally derail the design discussion. You have a couple of choices. The first is to halt the discussion and get the details cleared up. This is clearly the best solution, as you&#8217;ll no longer have to assume anything. However, it can be the case that the person who can clear things up isn&#8217;t available. Or in some cases, the question you&#8217;ll be asking will require another meeting at another level of the organization. If you find yourself in that spot, and you can&#8217;t wait (we couldn&#8217;t!), then the best approach is to work from the worst possible case scenario. You&#8217;ll then be in the best position to handle whatever answer comes your way. However, our tendency is often to assume the best (&#8220;That will *never* happen!&#8221;). Fight that tendency. However, whatever you choose, follow up at your earliest opportunity.</li>
<li><strong>Basing Decisions on the Current Situation vs. Basing Decisions on History</strong> &#8211; many times the group wanted to veer off into safer territory. In some cases, a possible solution departed significantly from the current design. While this is a valid concern (we do want consistency of design across the system where possible), it is certainly not a trump card. Occasionally the situation at hand will merit a significant departure from the current design. Another way history can rear its ugly head is the assertion that we&#8217;ve always solved similar problems like &#8216;x,&#8217; so we should do so with this problem as well. Again, note the word &#8220;similar.&#8221; All problems are somewhat different and have their own eccentricities. So, rather than working from history, I pushed us back to a clean slate with the statement &#8220;Let&#8217;s stop thinking about the past and start from scratch. We may very well come up with the same solution you guys are proposing, but I&#8217;d rather do so through our own objective analysis and not instinct.&#8221; Guess what. We came up with a different solution that we all felt better about.</li>
<li><strong>Shooting for the &#8220;Best&#8221; Solution vs. the &#8220;Easiest&#8221; Solution</strong> &#8211; now sometimes we can&#8217;t afford the best solution. I grant that. However, I&#8217;m trying to fight the tendency to immediately jump to the &#8220;easiest thing that could possibly work.&#8221; Often this pops up in the first P vs. AP &#8211; if we don&#8217;t clearly understand the problem, sometimes an easy solution jumps out that doesn&#8217;t deal with the underlying details we&#8217;ve yet to uncover. Also, sometimes the best solution is quite simple and elegant. It doesn&#8217;t necessarily have to be harder and more complex than the easiest solution. In fact, sometimes the &#8220;easiest&#8221; solution leads to the most accidental complexity in the long-run. So, shoot for the best solution you can come up with and only then, optimize for cost.</li>
<li><strong>Present Possible Solutions Objectively vs. My Solution is the Best!</strong> &#8211; one would hope that we all start here, but we don&#8217;t. We tend to like our own solutions to problems and want them to &#8220;win.&#8221; Our ego can get in the way of even hearing an alternate solution presented by another team member. I point you to <a href="http://www.code-magazine.com/Article.aspx?quickid=1105121" target="_blank">my colleague Ted Neward&#8217;s post for more on &#8220;egoless programming.&#8221;</a> So, as a facilitator, you&#8217;ve got to make sure that all solutions are presented objectively. I often had to say things like &#8220;OK, let&#8217;s assume before we ever get started that this is a good solution to the problem and not hack away at it until its fully presented, and we all understand it.&#8221; In the end, this insistence led us to choose a solution that none of us (myself included) originally thought we&#8217;d pick.</li>
<li><strong>Validating from Code vs. Validating from Memory</strong> &#8211; more often than not, questions about the existing design/code/behavior will come up. Rather than scratching your head and trying to remember what you wrote six months ago, pull up the code and find out. I can&#8217;t tell you the number of meetings I&#8217;ve attended where baseless assertions were made about existing code, only to require another meeting the next day to revisit the whole discussion once those assertions were proven wrong. Again, as a facilitator, I directed us to solve every problem for which all of the facts were available. We inserted placeholders in our solution where questions remained. Guess what we&#8217;re doing now? Well, I&#8217;m blogging about the meeting, but the rest of us are validating from code. Tomorrow will fill in the blanks!</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/429/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/429/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/429/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=429&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2011/05/16/design-meeting-patternsantipatterns/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>Pomodoro: The First Iteration</title>
		<link>http://mattstine.com/2009/11/04/pomodoro-the-first-iteration/</link>
		<comments>http://mattstine.com/2009/11/04/pomodoro-the-first-iteration/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:44:32 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[Pomodoro]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=276</guid>
		<description><![CDATA[I spent about an hour last night reading through Francesco Cirillo&#8217;s e-book The Pomodoro Technique. Up until this point I knew the basics of the technique, but I really wanted to drill down and get the details. I won&#8217;t explain those here &#8211; visit http://www.pomodorotechnique.com/ to get the lowdown. What I want to talk about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=276&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent about an hour last night reading through Francesco Cirillo&#8217;s e-book <em>The Pomodoro Technique</em>. Up until this point I knew the basics of the technique, but I really wanted to drill down and get the details. I won&#8217;t explain those here &#8211; visit <a href="http://www.pomodorotechnique.com/">http://www.pomodorotechnique.com/</a> to get the lowdown. What I want to talk about is my experience applying the technique this morning.</p>
<p>I managed to complete two Pomodoros. Each of the Pomodoros was filled with internal interruptions of various kinds. One of the first things that I observed was something that I already knew from yesterday&#8217;s TADD post: I am definitely not used to focusing on one distinct task for any prolonged length of time. My mind was constantly bouncing around from idea to idea, almost as if my R-mode had a &#8220;memory leak.&#8221; My first Pomodoro was primarily a reading task &#8211; I used it for my daily Bible reading and meditation. This part of my day brings it&#8217;s focus challenges anyway, as I&#8217;m not doing anything tactile. I find its much easier to focus when I&#8217;m typing or writing something. The Pomodoro offered no relief from this, save a plan for dealing with the interruptions as they came up. First, note down that one happened with an apostrophe, and second, write the todo item or idea down on my inventory. This definitely helped to refocus my mind on the work at hand, but I still wish I could find a way to prevent those streamer thoughts from landing in the first place.</p>
<p>The second thing that I observed was that my workspace is not at all setup to encourage focus. In recent months I&#8217;ve stopped using task-focused desktops in OS X, something that Neil Ford recommends in <i>The Productive Programmer</i>. I was reminded of this later in the day today reading <a href="http://memeagora.blogspot.com/2009/11/productivity-pron.html">his latest blog entry</a>. I think it would be a good idea to use my first Pomodoro of the day to setup task-based desktops for each of the tasks on my TODO list. I could fire up all of the programs necessary and drop them on to a space. Since a lot of my work is focused on web-based applications, I think I&#8217;ll probably use Fluid (<a href="http://fluidapp.com/">http://fluidapp.com/</a>) to create site specific browsers for the web applications that I need for each task. Another thing that I need to do is turn off the ringer on my phones and the new message notifications on Entourage. One tool that I did already have in my arsenal is Doodim, which blacks out everything except for the currently focused window on OS X. The only problem with Doodim (<a href="http://www.lachoseinteractive.net/en/products/doodim/">http://www.lachoseinteractive.net/en/products/doodim/</a>) is that it doesn&#8217;t work with external screens, so only my MacBook Pro&#8217;s screen gets the benefits. I counteracted this by making sure that the window I was actively using was on the external screen and maximized, but this won&#8217;t work for some tasks during which I might have multiple small windows to interact with.</p>
<p>The final thing that I observed is that I still definitely live in an interruption-based work environment. My third attempt to complete a Pomodoro was repeated three times, and none of these times did I make it without having to stop and actively handle an external interruption. The difference? My office door was open. My first two Pomodoros were completed with the office door closed and my &#8220;Ssshhh&#8230;Genius at work!&#8221; sign on the door. This is going to be a tough one to handle. I don&#8217;t want to keep my office door closed all day, for more reasons than one. First, I don&#8217;t want to seem completely unapproachable. I&#8217;m a manager these days, and a huge part of my job is being available for people. For me, some interruptions will always be OK. But how can I sort those out prior to them happening? This is something I&#8217;ll be stewing on over the next couple of days. Second, my office turns into an absolute OVEN when the door is closed for too long. We have a really strange HVAC system that completely overreacts to small changes in the temperature. Unfortunately, it always seems to think I need to be slow cooked. ::SIGH::</p>
<p>So, there you have it. I&#8217;ve learned a lot &#8211; I observed quite a view things about my work patterns and my environment, and will be working over the next few days to make changes to both to support better focus. If you have any comments or suggestions, please feel free to comment. Thanks!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/276/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/276/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/276/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=276&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2009/11/04/pomodoro-the-first-iteration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>Haven&#8217;t had much time to blog lately&#8230;.</title>
		<link>http://mattstine.com/2007/08/17/havent-had-much-time-to-blog-lately/</link>
		<comments>http://mattstine.com/2007/08/17/havent-had-much-time-to-blog-lately/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 20:54:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[office]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=42</guid>
		<description><![CDATA[&#8230;.because we&#8217;ve been packing to move on top of all of our regular projects. St. Jude has nicely renovated a new building for us, so we developers are moving. This is where I&#8217;m headed on Monday: I&#8217;m both loving it and a little sad &#8211; I&#8217;ve been sitting in my desk for nearly my entire [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=42&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><a href="http://2.bp.blogspot.com/_Vo63LRwAZbk/RsYLERQ4WSI/AAAAAAAAAP0/Z6Sap8em5GY/s1600-h/DSCN0706.JPG"><img alt="" src="http://2.bp.blogspot.com/_Vo63LRwAZbk/RsYLERQ4WSI/AAAAAAAAAP0/Z6Sap8em5GY/s400/DSCN0706.JPG" border="0" /></a></p>
</div>
<div style="text-align:center;">&#8230;.because we&#8217;ve been packing to move on top of all of our regular projects. St. Jude has nicely renovated a new building for us, so we developers are moving. This is where I&#8217;m headed on Monday:</div>
<div style="text-align:center;"></div>
<div style="text-align:center;"><a href="http://1.bp.blogspot.com/_Vo63LRwAZbk/RsYMGBQ4WUI/AAAAAAAAAQE/jDsZtab8xBA/s1600-h/DSC_4433.JPG"><img style="display:block;text-align:center;cursor:pointer;margin:0 auto 10px;" src="http://1.bp.blogspot.com/_Vo63LRwAZbk/RsYMGBQ4WUI/AAAAAAAAAQE/jDsZtab8xBA/s400/DSC_4433.JPG" alt="" border="0" /></a>I&#8217;m both loving it and a little sad &#8211; I&#8217;ve been sitting in my desk for nearly my entire career as a software developer. I just know I&#8217;m going to park in the garage and come downstairs one morning to find my office gone. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div style="clear:both;text-align:center;"><a href="http://picasa.google.com/blogger/" target="ext"><br /></a></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=42&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/08/17/havent-had-much-time-to-blog-lately/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>

		<media:content url="http://2.bp.blogspot.com/_Vo63LRwAZbk/RsYLERQ4WSI/AAAAAAAAAP0/Z6Sap8em5GY/s400/DSCN0706.JPG" medium="image" />

		<media:content url="http://1.bp.blogspot.com/_Vo63LRwAZbk/RsYMGBQ4WUI/AAAAAAAAAQE/jDsZtab8xBA/s400/DSC_4433.JPG" medium="image" />
	</item>
	</channel>
</rss>
