<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chad Sturtz</title>
	<atom:link href="http://chadsturtz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chadsturtz.com</link>
	<description>A Journey Through Software</description>
	<lastBuildDate>Wed, 04 May 2011 15:45:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Manually Installing a Seesmic Desktop 2 Plugin (Windows)</title>
		<link>http://chadsturtz.com/2011/05/manually-installing-a-seesmic-desktop-2-plugin-windows/</link>
		<comments>http://chadsturtz.com/2011/05/manually-installing-a-seesmic-desktop-2-plugin-windows/#comments</comments>
		<pubDate>Wed, 04 May 2011 15:45:24 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=155</guid>
		<description><![CDATA[How to install a Seesmic Desktop 2 Plugin on Windows]]></description>
			<content:encoded><![CDATA[<p>I installed Seesmic Desktop 2 this morning, but couldn&#8217;t install the Yammer plugin via the web or the application.  I ended up downloading the plugin and installing it manually.  The plugin files are available on the plugin&#8217;s page online.  There&#8217;s a small link in the bottom left.  After downloading the plugin, close the application.  Then, copy the plugin file (.xap) to the directory shown below.  The next time you start the application your plugin will be installed.</p>
<p><code>C:\Documents and Settings\{user}\My Documents\Seesmic\Seesmic Desktop 2\Plugins\</code></p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2011/05/manually-installing-a-seesmic-desktop-2-plugin-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Would you choose you?</title>
		<link>http://chadsturtz.com/2011/02/would-you-choose-you/</link>
		<comments>http://chadsturtz.com/2011/02/would-you-choose-you/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 17:32:46 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=143</guid>
		<description><![CDATA[Personally, I expect my doctor to stay as current as possible on medical studies, new drugs available for prescription, etc. I expect this because he/she plays a major role in ensuring my long-lasting health. The last thing I want is a doctor that&#8217;s still practicing based on nothing more than what they learned in med [...]]]></description>
			<content:encoded><![CDATA[<p>Personally, I expect my doctor to stay as current as possible on medical studies, new drugs available for prescription, etc.  I expect this because he/she plays a major role in ensuring my long-lasting health.  The last thing I want is a doctor that&#8217;s still practicing based on nothing more than what they learned in med school 20 years ago.  </p>
<p>Now, think about the people that depend on you for the work you do (your employer, clients, fellow team members, family, etc).  Do you think they should have the same expectations of you?  Should they expect you to be staying current with your industry topics and practices?  I believe that answer is Absolutely!</p>
<p>I wouldn&#8217;t choose a Personal Trainer that doesn&#8217;t research new developments in exercise programs, dieting, and supplements.<br />
I wouldn&#8217;t choose a Financial Planner that doesn&#8217;t stay up to date on the options available for investing in my children&#8217;s education.<br />
I wouldn&#8217;t choose a Leader that doesn&#8217;t continue to learn about ways to motivate, encourage, facilitate, and resolve conflicts.</p>
<p>So, would you choose you?</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2011/02/would-you-choose-you/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Two Types</title>
		<link>http://chadsturtz.com/2011/01/the-two-types/</link>
		<comments>http://chadsturtz.com/2011/01/the-two-types/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:23:24 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Motivation]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=132</guid>
		<description><![CDATA[There is a line that separates the people around you.  Depending on how you look at it, it may be blurry or clear, but you still know it&#8217;s there.  On the left side you have people that you want to invest in, do everything possible to keep at your organization, watch and learn from, and [...]]]></description>
			<content:encoded><![CDATA[<p>There is a line that separates the people around you.  Depending on how you look at it, it may be blurry or clear, but you still know it&#8217;s there.  On the left side you have people that you want to invest in, do everything possible to keep at your organization, watch and learn from, and let drive the direction of your team or business.  While those on the right side may be intelligent and hard working, you know they&#8217;re not the type of people to grow an organization around.</p>
<p>What separates these groups?  It&#8217;s the presence of four traits: vision, desire to learn, passion, and value of teamwork.</p>
<p>Vision is what keeps these people focused on the big picture in addition to their immediate tasks and surroundings.  They consider long term effects, understand how individual roles fit together, and are able to look at a single issue from many perspectives.  Passion keeps them motivated and always performing at their best.  It&#8217;s the excitement and reward they feel every day and is visible in their actions.  The desire to learn makes them ask &#8220;why?&#8221;.  They want to be taught to fish rather than given a meal.  They work to consume new information every day and grow from it.  Their value of teamwork encourages them to assist others and share information and responsibility.  They wear whatever hat is necessary, and often wear several hats at the same time.  They know that the most ambitious goals are possible with the right group of people.</p>
<p>Focus on creating teams with a majority of people from the left side.  Provide an environment and culture that encourages innovation and risk taking, does not treat change negatively, and invests in its people.  From this you will get processes that work well for your organization, an army of intelligent, productive, and efficient people, and an organization considered successful by any measure.</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2011/01/the-two-types/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So much for that idea</title>
		<link>http://chadsturtz.com/2011/01/so-much-for-that-idea/</link>
		<comments>http://chadsturtz.com/2011/01/so-much-for-that-idea/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 08:40:08 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Motivation]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=128</guid>
		<description><![CDATA[9 months ago my daughter was born and since then I&#8217;ve had trouble finding much time for career development outside of the office.  One of my solutions to the problem was to form a sort of user group in my office that would meet over brown-bag lunch presentations.  I had already given a few brown-bag [...]]]></description>
			<content:encoded><![CDATA[<p>9 months ago my daughter was born and since then I&#8217;ve had trouble finding much time for career development outside of the office.  One of my solutions to the problem was to form a sort of user group in my office that would meet over brown-bag lunch presentations.  I had already given a few brown-bag lunch presentations myself, trying to set an example, but only one other person ever did a presentation.  I thought that if I wrote out what it was I wanted to do and how I expected to to be valuable to our team, maybe there&#8217;d be more buy-in.  Plus, if I could get everyone to do just 1 or 2 presentations a year, we could have a meeting every other week.</p>
<p>I approached the entire office with this proposal and was very thrilled to get buy-in from a large percentage of my coworkers.  I volunteered to do the first presentation and asked 2 of my more active coworkers to take care of presentations 2 &amp; 3 just to get things rolling.  Presentation number 3 is next week and after several emails, no one else in the office has volunteered for presentation #4 (or any other future slot).</p>
<p>I found out that for 2 people, the problem was coming up with something to talk about.  I have provided topic ideas as well as offered to brainstorm with anyone that was willing to present but unsure of a topic.  Still&#8230; no one has offered to present.</p>
<p>At this point I&#8217;m assuming it won&#8217;t pan out.  I felt it was acceptable to send a few emails stating that we needed people for upcoming presentations seeing as how I got a large amount of buy-in before this whole thing started, but I&#8217;m not going to push it.  If no one comes forward, I&#8217;ll just continue giving presentations when I can hoping that maybe someone else will jump in every once in a while.</p>
<p>I have to admit, I&#8217;m a little confused as to why so many people thought it was a good idea but then won&#8217;t participate.  I even found out that for presentation #2 (I was out sick), no one set up a virtual meeting or conference call for the few remote people assigned to our office.  Furthermore, those remote people never IM&#8217;d, emailed, or called anyone asking what number to call in on or for an invitation to the virtual meeting.  Maybe I&#8217;m the only one that feels there&#8217;s value here&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2011/01/so-much-for-that-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why I need Yammer</title>
		<link>http://chadsturtz.com/2010/07/why-i-need-yammer/</link>
		<comments>http://chadsturtz.com/2010/07/why-i-need-yammer/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 20:48:44 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[People]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=122</guid>
		<description><![CDATA[Q: Why do I need Yammer? A:  It&#8217;s simple&#8230; I want access to my fellow software engineers and technologists that live on the other side of boundaries that get created around other Departments, Products, Business Units, and Acquisitions. True story. I had to quickly come up to speed on a technology I had not been introduced [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Q</strong>: Why do I need Yammer?</p>
<p><strong>A</strong>:  It&#8217;s simple&#8230;<strong> </strong>I want access to my fellow software engineers and technologists that live on the other side of boundaries that get created around other Departments, Products, Business Units, and Acquisitions.</p>
<p>True story. I had to quickly come up to speed on a technology I had not been introduced to previously.  I took the normal approach of aggressively searching online to find examples, white papers, blogs, anything to help.  Time was running out, and while I had learned a lot in a short amount of time, I wanted a little help connecting all of the dots and selecting what I needed to focus on to complete my task in a timely manner.  I needed 15 minutes with an expert in this technology to guide me down the right path, because I didn&#8217;t have time to go down the wrong one.</p>
<p>I jumped on Yammer and put out a call for help.  A development manager responded with the name of a person who he knew to be experienced with this technology.  He introduced us over email and a few minutes later, I was getting exactly what I needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/07/why-i-need-yammer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why you&#8217;re not ready for Agile: The real top 10 list</title>
		<link>http://chadsturtz.com/2010/07/why-youre-not-ready-for-agile-the-real-top-10/</link>
		<comments>http://chadsturtz.com/2010/07/why-youre-not-ready-for-agile-the-real-top-10/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 19:25:38 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=115</guid>
		<description><![CDATA[The real 10 reasons your organization isn't ready for Agile.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve all seen too many blogs and articles along the lines of &#8220;10 reasons you&#8217;re organization isn&#8217;t ready for Agile&#8221;.  I believe that buried under all of those &#8216;reasons&#8217; are fundamental problems that will keep your organization from reaching any high level of productivity.  Here it is, the real top 10 list:</p>
<p>1. you&#8217;re not hiring the right people</p>
<p>2. you&#8217;re not hiring the right people</p>
<p>3. you&#8217;re not hiring the right people</p>
<p>4. you&#8217;re not hiring the right people</p>
<p>5. you&#8217;re not hiring the right people</p>
<p>6. you&#8217;re not hiring the right people</p>
<p>7. you&#8217;re not hiring the right people</p>
<p>8. you&#8217;re not hiring the right people</p>
<p>9. you&#8217;re not hiring the right people</p>
<p>10. you&#8217;re not hiring the right people</p>
<p>Hopefully this comprehensive list will help you and your organization.  Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/07/why-youre-not-ready-for-agile-the-real-top-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Statistic: LOC:Test</title>
		<link>http://chadsturtz.com/2010/06/statistic-loctest/</link>
		<comments>http://chadsturtz.com/2010/06/statistic-loctest/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 17:11:43 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=105</guid>
		<description><![CDATA[Trying to find the ratio of lines of code to number of tests]]></description>
			<content:encoded><![CDATA[<p>For pure curiosity reasons, I wanted to know the ratio of lines of code to unit tests.  I&#8217;m writing all production code in Java and tests in Groovy.</p>
<h3>LOC</h3>
<p>Finding the lines of code:    grep -v -r &#8211;include=&#8221;*.java&#8221; &#8220;^[[:space]]*$&#8221; * | wc -l</p>
<h3>Number of Tests</h3>
<p>grep -r &#8211;include=&#8221;*Test.groovy&#8221; &#8220;@Test&#8221; * | wc -l</p>
<h3>Results</h3>
<p>LOC: 706, Tests: 82</p>
<p>This yields a ratio of:   <strong>8.6 to 1</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/06/statistic-loctest/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Be more Productive with these GMail tips</title>
		<link>http://chadsturtz.com/2010/05/be-more-productive-with-these-gmail-tips/</link>
		<comments>http://chadsturtz.com/2010/05/be-more-productive-with-these-gmail-tips/#comments</comments>
		<pubDate>Thu, 20 May 2010 17:23:00 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=100</guid>
		<description><![CDATA[GMail Tips]]></description>
			<content:encoded><![CDATA[<p><strong>1. Skip Inbox</strong></p>
<p>When filtering incoming mail, if it&#8217;s not something you need to read as soon as you have time, just tell it to skip the inbox.  This will cause the email to be immediately archived, but keeps it marked as unread.  This works especially well for many of the automated emails you receive from companies and websites (like Facebook) and gets you one step closer to Inbox Zero.</p>
<p><strong>2. Hide Read Lables</strong></p>
<p>Go into Settings and then to Labs.  Find &#8220;Hide Read Labels&#8221;, and enable it.  This causes labels that don&#8217;t contain any unread email to be hidden from view.  It keeps your screen a little less cluttered and allows you to focus on new emails.  Your labels are still very easy to reach, just start typing the label name in the search bar and it will pop up as one of the auto-fill options.</p>
<p><strong>More to come as i figure them out!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/05/be-more-productive-with-these-gmail-tips/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Test Top-Down, Code Bottom-Up</title>
		<link>http://chadsturtz.com/2010/05/test-top-down-code-bottom-up/</link>
		<comments>http://chadsturtz.com/2010/05/test-top-down-code-bottom-up/#comments</comments>
		<pubDate>Wed, 12 May 2010 14:41:17 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=96</guid>
		<description><![CDATA[A lesson learned in TDD]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve actually been coding a lot at work recently.  The system I&#8217;m building at the low end interacts with a Web Service to retrieve data.  At the high end, it reports this data in custom forms and at configurable intervals.  I&#8217;m building a few different API layers in between.  A small, convenience API that interacts directly with the Web Service to simplify gathering of data.  On top of that, I have several more wrapper-style APIs that allow the developer to work with the generic data types as wrapper objects for what they really represent.  On top of those is the framework for forming and sending off the data to another system.</p>
<p>In this situation, I knew what the system must do, but not the exact details of how it would work at the lower levels.  I did enough work on a POC interaction with the Web Service to know that the basic direction I wanted to go was possible.  At first I took straight to developing the lowest level API, as that&#8217;s where I had my most detailed requirements.  From the knowledge I gained doing the POC, I had enough to start there.  However, in the end this hurt more than it helped.</p>
<p>After TDDing my way through several of the requirements I had of the low level API, I found myself in a sticky situation.<br />
1. Too many tests tied too closely to implementation<br />
2. I felt like I was progressing a little slowly, having to stop and think too long about what needed done next<br />
3. I ended up having to heavily refactor about 2-days worth of code because the tests I came up with, did not reflect the true needs of the system</p>
<p>Luckily at that point, I realized right away that my lack of higher-level tests were allowing me to steer the system off path.  I needed these higher level tests to drive the requirements for the behavior of the lower level API.  So, I started fresh, writing a single acceptance level test that defined a small feature of the system.  I continued to work my way down writing more tests until I couldn&#8217;t write a smaller more precise test without controlling the implementation details.  That was my cue to start coding, and get all those tests I had written to pass.</p>
<p>The results..<br />
1. Just enough code to meet the requirements.  No more, no less.<br />
2. Fewer tests tied directly to implementation details<br />
3. A thin, vertical slice of functionality</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/05/test-top-down-code-bottom-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friday Brown Bag: Reducing Feedback Cycles</title>
		<link>http://chadsturtz.com/2010/04/friday-brown-bag-reducing-feedback-cycles/</link>
		<comments>http://chadsturtz.com/2010/04/friday-brown-bag-reducing-feedback-cycles/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 16:36:22 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://chadsturtz.com/?p=87</guid>
		<description><![CDATA[This past Friday (the 16th), I did a brown bag presentation on reducing feedback cycles on software development projects. Slides here: http://bit.ly/bORrkW. Unfortunately, the slides contain only talking points.. the real value came from the discussion. Also.. while we did record the audio, it contained some discussion specific to internal projects/processes that I&#8217;m not going [...]]]></description>
			<content:encoded><![CDATA[<p>This past Friday (the 16th), I did a brown bag presentation on reducing feedback cycles on software development projects.  Slides here:  <a href="http://bit.ly/bORrkW">http://bit.ly/bORrkW</a>.  Unfortunately, the slides contain only talking points.. the real value came from the discussion.  Also.. while we did record the audio, it contained some discussion specific to internal projects/processes that I&#8217;m not going to share.  </p>
<p>First of all, I want to mention that a lot of the conversation went back to the Cost of Change curve.  Take my code compilation example.  Finding a compilation error in real-time will (theoretically) make the cost of fixing the error cheaper than finding it after a day of coding.  The example was that using an IDE that performed real-time compilation was a much shorter feedback cycle than going to a command prompt and running your build manually.  The other notable example that builds on the Cost of Change Curve was scheduled code reviews (montly/weekly/etc) vs. pair programming.</p>
<p>One of the final feedback cycles I presented was that of the completeness of an individual feature of the system.  We talked about the Cost of Change Curve here as well, but most of the discussion focused on what other things we may get by reducing this feedback cycle.  </p>
<p>I began by talking about how a single feature progresses through the Waterfall process.  Pointing out that you won&#8217;t get feedback on the completeness of a single feature until you&#8217;ve reached the Validation phase where your QA has had a chance to test the feature.  This gives us a feedback cycle of the length of time between when dev initially started on this feature and when it was tested during the Validation phase.  How long are we talking here?  Months probably.</p>
<p>So, now it&#8217;s time to ask how one would reduce that feedback cycle.  In order to do that, we need to bring the validation phase closer to the point at which development began on this feature.  Since the traditional Waterfall approach moves the entire software system from phase to phase, it&#8217;s not possible without re-defining the process.  </p>
<p>We then took a look at this feedback cycle in Scrum.  Sometime after the start of a sprint, you start development on one of the user stories you&#8217;ve selected (aka feature).  Considering the goal is to deliver this feature at the end of the sprint, at some point you&#8217;re going to validate this feature, completing the feedback cycle.  So, here, the feedback cycle is at most 1 sprint.</p>
<p>We continued the discussion down the path of what things we get by reducing the feedback cycle in this way.  The most profound impact is on our feature estimation  because the feedback cycle on feature estimation accuracy is directly tied to the feedback cycle on feature completeness.  Now that we&#8217;re attempting to complete individual features within a single sprint, we&#8217;ll also get feedback on our estimation of that feature within the same sprint.  </p>
<p>We spent some time talking about what you can do with this information.  Essentially it means that you can better estimate the remaining features of the system.  This in turn gives you a more accurate project schedule, which in turn allows you to confidently discuss project timeline and budget predictions with stakeholders and customers.  Also, when someone asks what features won&#8217;t make the deadline, you&#8217;ll be able to answer that question and others like it.</p>
<p>Hopefully that&#8217;s enough text here for you to get a feel of the presentation.  Feedback cycles is a broad topic.  In this presentation I hit some things at a very high level and went a little more detailed on others.  My goal was simply to communicate that reducing any feedback cycle is beneficial (some to a much smaller degree than others).  I also needed to address a wide audience: devs, qa, project managers, etc.  While I did get some great feedback from a few of the attendees, I do remember seeing a few faces that looked lost.  Maybe I&#8217;ll follow up with those people.</p>
]]></content:encoded>
			<wfw:commentRss>http://chadsturtz.com/2010/04/friday-brown-bag-reducing-feedback-cycles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

