<?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>Geek Philosophy &#187; Software</title>
	<atom:link href="http://chrissimmons.ca/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://chrissimmons.ca</link>
	<description>Software, musings, and life</description>
	<lastBuildDate>Fri, 03 Feb 2012 21:45:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>And the Winner is&#8230;.</title>
		<link>http://chrissimmons.ca/2011/12/and-the-winner-is/</link>
		<comments>http://chrissimmons.ca/2011/12/and-the-winner-is/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 21:45:20 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agilevancouver]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=737</guid>
		<description><![CDATA[The good news is that I won the blogging contest that was tied to the recent conference. Yay! Now I just need to carve out a huge block of time to read through these 12 great books. I&#8217;ll tackle the first 3 in order, most likely. After that, I&#8217;ll see what looks the most interesting [...]]]></description>
			<content:encoded><![CDATA[<p>The good news is that I won the blogging contest that was tied to the recent conference. Yay! Now I just need to carve out a huge block of time to read through these 12 great books.</p>
<div id="attachment_738" class="wp-caption aligncenter" style="width: 514px"><img class="size-full wp-image-738" title="Agile Books" src="http://chrissimmons.ca/wp-content/uploads/Agile-Books-e1322628895951.jpg" alt="" width="504" height="570" /><p class="wp-caption-text">This may take a while...</p></div>
<p>I&#8217;ll tackle the first 3 in order, most likely. After that, I&#8217;ll see what looks the most interesting at the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/12/and-the-winner-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Stanford CS Courses in January</title>
		<link>http://chrissimmons.ca/2011/11/new-stanford-cs-courses-in-january/</link>
		<comments>http://chrissimmons.ca/2011/11/new-stanford-cs-courses-in-january/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 04:04:47 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=734</guid>
		<description><![CDATA[For the past month or so I&#8217;ve been taking part in two free computer science courses offered online by Stanford &#8211; Machine Learning and Introduction to Databases. They&#8217;re both great, presenting material at about a second or third year undergraduate level (though not a full semester&#8217;s worth, and often a bit light on the math), [...]]]></description>
			<content:encoded><![CDATA[<p>For the past month or so I&#8217;ve been taking part in two free computer science courses offered online by Stanford &#8211; <a title="Machine Learning " href="http://www.ml-class.org/" target="_blank">Machine Learning</a> and <a title="Introduction to Databases (Standford)" href="http://www.db-class.org/course/class/index" target="_blank">Introduction to Databases</a>. They&#8217;re both great, presenting material at about a second or third year undergraduate level (though not a full semester&#8217;s worth, and often a bit light on the math), with full video lectures and graded assignments. I would have also loved to do the class on <a title="Artificial Intelligence" href="https://www.ai-class.com/" target="_blank">Artificial Intelligence</a>, but at the time the video lectures were not download-able, and I watch the the vast majority of the lectures during my commute. It&#8217;s too late to sign up for these courses, so I won&#8217;t spend too much time writing about them here &#8211; I plan to do a full write up of at least the Machine Learning course after it&#8217;s complete.</p>
<p>What may be of interest to my readers is that, starting in January, Stanford is offering several other courses with the same online format. Here are the ones that I&#8217;ve seen so far:</p>
<ul>
<li><a title="Software Engineering for SaaS" href="http://www.saas-class.org/" target="_blank">Software Engineering for SaaS</a></li>
<li><a title="Human Computer Interface" href="http://www.hci-class.org/" target="_blank">Human-Computer Interface</a></li>
<li><a title="Natural Language Processing" href="http://www.nlp-class.org/" target="_blank">Natural Language Processing</a></li>
<li><a title="Game Theory" href="http://www.game-theory-class.org/" target="_blank">Game Theory</a></li>
<li><a title="Probabilistic Graphic Models" href="http://www.pgm-class.org/" target="_blank">Probabilistic Graphic Models</a></li>
<li><a title="The Lean Launchpad" href="http://www.launchpad-class.org/" target="_blank">The Lean Launchpad</a></li>
</ul>
<p>I certainly won&#8217;t have the free time to take all of them (my commute is not <em>that</em> long), but I&#8217;ve signed up for all of them to at least have a look at the material. If they&#8217;re structured like the courses I&#8217;m currently taking, completing the &#8220;advanced&#8221; track of any of these (which means doing quizzes, exams, and programming assignments) gets you a certificate of completion from the instructor. Hopefully Stanford will start working with Mozilla, specifically their <a title="Open Badges" href="https://wiki.mozilla.org/Badges" target="_blank">Open Badges </a>initiative, and continue to push the boundaries of online education and credentialing.</p>
<p>Are you taking any of the current courses? Do any of next term&#8217;s look interesting to you? Leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/11/new-stanford-cs-courses-in-january/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mary Poppendieck: Compensation and Motivation</title>
		<link>http://chrissimmons.ca/2011/11/mary-poppendieck-compensation-and-motivation/</link>
		<comments>http://chrissimmons.ca/2011/11/mary-poppendieck-compensation-and-motivation/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 06:15:05 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[motivation]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=719</guid>
		<description><![CDATA[I previously wrote about the first half of Mary&#8217;s Agile Vancouver 2011 presentation, which focused on performance appraisals. Here I&#8217;ll cover the second half, which discusses use and misuse of financial compensation as well as the disconnect between the assumed results of traditional compensation techniques and their actual effects on motivation. Note that motivation is [...]]]></description>
			<content:encoded><![CDATA[<p>I <a title="Mary Poppendieck: Appraisals" href="http://chrissimmons.ca/2011/11/mary-poppendieck-appraisals/" target="_blank">previously wrote </a>about the first half of Mary&#8217;s Agile Vancouver 2011 presentation, which focused on performance appraisals. Here I&#8217;ll cover the second half, which discusses use and misuse of financial compensation as well as the disconnect between the assumed results of traditional compensation techniques and their actual effects on motivation. Note that motivation is a <a title="Motivation (Wikipedia)" href="http://en.wikipedia.org/wiki/Motivation" target="_blank">large topic</a>, and this post only scratches the surface.</p>
<p>Mary started this part of the talk by showing &#8220;Drive&#8221;, a talk by Dan Pink (author of Drive) animated by RSA Animate. It&#8217;s a great clip, one that I&#8217;ve seen before but didn&#8217;t mind seeing again. In case you haven&#8217;t seent it, here you go.</p>
<p><iframe src="http://www.youtube.com/embed/u6XAPnuFjJc" frameborder="0" width="560" height="315"></iframe></p>
<p>The real take-away here is that money doesn&#8217;t serve as good motivation for tasks that require collaboration and cognitive skill. It may serve as some motivation, at least to do the minimum amount of work required to get paid, but you won&#8217;t necessarily get people going above and beyond. What are the assumptions that underpin the current model of financial compensation as motivation? Are financial incentives good for anything?</p>
<p>The traditional way of thinking is that financial incentives can motivate people to do better work, signal to the employees what the business thinks is important, and attract external talent to the company. Motivation has already been discussed here, but it&#8217;s worth mentioning that a bonus or raise to encourage better work (or as a reward for good work) is based on the assumption that job performance is under the control of the individual. This is not always &#8211; perhaps even not usually, according to systems thinking &#8211; the case. While it&#8217;s certainly important for a company to let its employees know what goals are important to the business, associating financial rewards with these goals opens the system up to gaming or micro-optimization, and sends the implicit message that, if people were compensated properly, almost any management or organizational problem could be solved. As for attracting top talent to an organization, the only trait you can be sure a high salary will attract is the love of a high salary. Like Dan Pink pointed out, hard-working, highly talented individuals are often more than happy to give their work away if they have the right motivation.</p>
<p>Mary goes on to enumerate even more assumptions behind financial incentives, taking time to challenge each one. The idea that money is an important motivator for people is challenged by research that shows most people claim that they are motivated by other factors, and that intrinsic motivation is the best motivator. As mentioned above, using financial rewards as an means to enhance performance is an instance of the <a title="Fundamental attribution error (Wikipedia)" href="http://en.wikipedia.org/wiki/Fundamental_attribution_error" target="_blank">fundamental attribution error</a>, that is, that people are directly responsible for all of their own failings (as opposed to the environment that they are in). Individual rewards are predicated on the idea that individual performance can be reliably and unambiguously assessed, something that is incredibly difficult in a highly interdependent field like software development. An argument against group measurement and reward instead of individual &#8211; that is, that slackers will take advantage of hard workers &#8211; is challenged by evidence that shows very few people take advantage of situations like this, due to strong peer pressure to perform.</p>
<p>This is not to say that it is trivial to implement a bonus scheme and rewards plan that avoids all of the above problems, although Mary had some simple advice to get started &#8211; &#8220;Pay people enough that money isn&#8217;t an issue&#8221;. The key is to create what Arie de Geus calls a &#8220;living company&#8221;, where individuals know the company is invested and investing in them. Such a company&#8217;s goal is to perpetuate itself into the future, creating profits in the near or long term, as opposed to being focused soley on short term gains. As an example, see Amazon&#8217;s recent <a title="Amazon Letter to Shareholders" href="http://www.allthingsdistributed.com/2011/04/the_amazoncom_2010_shareholder.html" target="_blank">letter to shareholders,</a> which emphasizes a long-term view and commitment to being around for a long time and solving interesting problems, possibly at the expense of short term profit margins. On the motivation side, it is critical to ensure your information workers are challenged sufficiently and improving their skills, as per <a title="Mihaly Csikszentmihalyi (Wikipedia)" href="http://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi" target="_blank">Csikszentmihaly</a>&#8216;s idea of flow.</p>
<div id="attachment_725" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-725 " title="flow-channel" src="http://chrissimmons.ca/wp-content/uploads/flow-channel-e1321336864965.png" alt="" width="480" height="347" /><p class="wp-caption-text">Keep people in the flow channel</p></div>
<p>This is an interesting topic for an Agile conference, as it&#8217;s something that really needs to start at an organization level, as opposed to at the team level (barring companies that have team-specific compensation). In that way I see it as more of a Lean topic &#8211; a distinction I tend to use is that Agile topics are often team based, while Lean tends to apply to the entire organization. A gross oversimplification to be sure, but one that helps focus (and hopefully not overly-narrow) my thinking. Either way, it was a great presentation and a provocative look at a one of the elephants in the room.</p>
<p>Further reading:</p>
<ul>
<li><a title="Living Company (Amazon)" href="http://www.amazon.com/Living-Company-Learning-Longevity-Business/dp/1857881850" target="_blank">Living Company</a>, Arie de Geus</li>
<li><a title="The Human Equation (Amazon)" href="http://www.amazon.com/Human-Equation-Building-Profits-Putting/dp/0875848419/ref=sr_1_7?ie=UTF8&amp;qid=1321336221&amp;sr=8-7" target="_blank">The Human Equation: Building Profits by Putting People First</a>, Jeffery Pfeffer</li>
<li><a title="Drive (Amazon)" href="http://www.amazon.com/Drive-Surprising-Truth-About-Motivates/dp/1594484805/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1321336301&amp;sr=1-1" target="_blank">Drive: The Surprising Truth About What Motivates Us</a>, Dan Pink</li>
<li><a title="Flow (Amazon)" href="http://www.amazon.com/Flow-Psychology-Experience-Mihaly-Csikszentmihalyi/dp/0061339202/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1321336491&amp;sr=1-1" target="_blank">Flow: The Psychology of Optimal Experience</a>, Mihaly Csikszentmihaly</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/11/mary-poppendieck-compensation-and-motivation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One year later &#8211; Agile Vancouver &#8217;10 Reading List</title>
		<link>http://chrissimmons.ca/2011/11/one-year-later-agile-vancouver-10-reading-list/</link>
		<comments>http://chrissimmons.ca/2011/11/one-year-later-agile-vancouver-10-reading-list/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 00:17:17 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[retrospectives]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=711</guid>
		<description><![CDATA[I didn&#8217;t get around to writing this weekend, but to keep my semi-regular post streak going I&#8217;m going to do a relatively easy entry. I&#8217;ll be following up with the rest of my Much Ado About Agile VI posts shortly. After last year&#8217;s Agile Vancouver conference, I wrote about my to-read list, books that were [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t get around to writing this weekend, but to keep my semi-regular post streak going I&#8217;m going to do a relatively easy entry. I&#8217;ll be following up with the rest of my Much Ado About Agile VI posts shortly.</p>
<p>After last year&#8217;s Agile Vancouver conference, I wrote about my <a title="Agile Vancouver – Reading List" href="http://chrissimmons.ca/2011/01/agile-vancouver-reading-list/" target="_blank">to-read list</a>, books that were either written by presenters or featured prominently in presentations. How did I do with getting through this list? Let&#8217;s see.</p>
<p>First up, books I didn&#8217;t read:</p>
<ul>
<li><em><a title="Certain to Win (Amazon)" href="http://www.amazon.com/Certain-Win-Strategy-Applied-Business/dp/1413453767/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1289145994&amp;sr=1-1">Certain to Win: The Strategy of John Boyd, Applied to Business</a> </em>(Chet Richards)</li>
<li><em><a title="Teamwork Is an Individual Skill (Amazon)" href="http://www.amazon.com/Teamwork-Individual-Skill-Getting-Responsibility/dp/1576751554">Teamwork Is an Individual Skill: Getting Your Work Done When Sharing Responsibility</a></em> (Christopher Avery)</li>
<li><em><a title="The Fifth Discipline (Amazon)" href="http://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1289145463&amp;sr=1-1">The Fifth Discipline:The Art and Practice of the Learning Organization</a></em> (Peter Senge)</li>
</ul>
<p>No particular reason that I didn&#8217;t read these, they just haven&#8217;t bubbled to the top of my list. <em>The Fifth Discipline</em> is seemingly a fixture on my to-read list, so that should probably be the one (from these three) that I get to soonest.</p>
<p>And now, the books I read, with a short summary of my thoughts.</p>
<h3><em><a title="Fearless Change (Amazon)" href="http://www.amazon.com/Fearless-Change-Patterns-Introducing-Ideas/dp/0201741571/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1289145696&amp;sr=1-1">Fearless Change: Patterns for Introducing New Ideas</a></em></h3>
<p>The meat of this book is written in the style of patterns, much like <em><a title="Design Pattenrs (Amazon)" href="http://www.amazon.com/Design-patterns-elements-reusable-object-oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;qid=1320709871&amp;sr=8-1" target="_blank">Design Patterns</a></em>, or the original, <a title="A Pattern Language (Amazon)" href="http://www.amazon.com/Pattern-Language-Buildings-Construction-Environmental/dp/0195019199/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1320709985&amp;sr=1-1" target="_blank"><em>A Pattern Language</em></a>. It presents a framework for introducing change into organizations, and its&#8217; smart writing and non-linear style had my flipping between sections for hours at a time &#8211; this is this style of book that would thrive as a Wiki. I can&#8217;t say that I&#8217;ve used any of the techniques knowingly since I read the book, but that&#8217;s primarily because I haven&#8217;t tried to drive any widespread organizational change in the last year. The next time I try, I&#8217;ll be laying out a game plan based on this material.</p>
<h3><em><a title="Agile Retrospectives (Amazon)" href="http://www.amazon.com/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1289145878&amp;sr=1-1">Agile Retrospectives: Making Good Teams Great</a></em></h3>
<p>Focused on moving retrospectives away from dull conversations about what did and didn&#8217;t work, this book is a quick read. Unfortunately, I haven&#8217;t had much success in applying the suggestions in this book. I&#8217;m not sure if it&#8217;s because of team dynamics, or my inability to successfully implement the approach, but I find that whenever I try to make use of one of the activities it falls flat. Perhaps it&#8217;s just a habit thing &#8211; do it a few times and it will get easier. I haven&#8217;t given up yet, so I may yet post again on the subject.</p>
<h3><em><a title="Behind Closed Doors (Amazon)" href="http://www.amazon.com/Behind-Closed-Doors-Management-Programmers/dp/0976694026/ref=sr_1_4?s=books&amp;ie=UTF8&amp;qid=1289145364&amp;sr=1-4">Behind Closed Doors: Secrets of Great Management</a> </em></h3>
<p>Nothing really groundbreaking here, but it is a good starter for anyone looking to go into management, and a reference for those of us already in the role. Much of it I see as common sense, but that&#8217;s speaking as someone with 3 years experience managing a team where I know everyone and am quite familiar with the way the organization works. Side note &#8211; I had this in my backpack during this year&#8217;s conference, and happened to see Esther Derby and Johanna Rothman standing next to each other after Johanna&#8217;s keynote, so I now have a signed copy <img src='http://chrissimmons.ca/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Other Comments</h3>
<p>So, I read 50% of the books &#8211; that&#8217;s not too terrible, given that I&#8217;ve read a ton of other books in the last year. One thing that I didn&#8217;t adopt was the <a title="SQR3 (How to read textbooks)" href="http://educatoral.com/SQR3.html">SQR3 method,</a> which is unfortunate &#8211; I find that I&#8217;m doing a lot of reading, but my recall and long-term understanding is not where it could be. Re-reading last year&#8217;s post (and thus rediscovering SQR3), and listening to the recent Manager Tools podcast on <a title="How to Read a Book (Manager Tools)" href="http://manager-tools.com/2011/10/how-read-a-book" target="_blank">How to Read a Book</a> has me committed to improving my reading style. Marking notes in the margin may be difficult with ebooks (I love my new Kindle), but that&#8217;s no excuse &#8211; either through the Kindle&#8217;s notation interface, or through hand-written notes in a notebook, I&#8217;ve resolved to improve my non-fiction reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/11/one-year-later-agile-vancouver-10-reading-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mary Poppendieck: Appraisals</title>
		<link>http://chrissimmons.ca/2011/11/mary-poppendieck-appraisals/</link>
		<comments>http://chrissimmons.ca/2011/11/mary-poppendieck-appraisals/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 05:03:23 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=700</guid>
		<description><![CDATA[I&#8217;ve seen Mary Poppendieck speak several times, and I&#8217;ve also read her books. When I saw her name on the program of this year&#8217;s Agile Vancouver conference, I expected a presentation on reducing waste in a development organization, promoting flow, or perhaps encouraging set-based development, as would be befitting her reputation as the &#8220;Queen of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen Mary Poppendieck speak several times, and I&#8217;ve also <a title="Leading Lean Software (Amazon)" href="http://www.amazon.com/exec/obidos/ASIN/0321620704/poppendieckco-20" target="_blank">read</a> <a title="Implementing Lean Software" href="http://www.amazon.com/exec/obidos/ASIN/0321437381/poppendieckco-20" target="_blank">her</a> <a title="Lean Software Development (Amazon)" href="http://www.amazon.com/exec/obidos/ASIN/0321150783/poppendieckco-20" target="_blank">books</a>. When I saw her name on the program of this year&#8217;s Agile Vancouver conference, I expected a presentation on reducing waste in a development organization, promoting flow, or perhaps encouraging set-based development, as would be befitting her reputation as the &#8220;Queen of Lean&#8221;. Although I&#8217;m sure any of the above presentations would have been well worth attending, I was pleasantly surprised to see that Mary was planning to focus on appraisals and compensation, two elephants in the room of almost every organization. I took a few pages of notes from this talk, so I&#8217;ll split it into two posts &#8211; this one on appraisals, and a followup on compensation.</p>
<p>Mary started by giving a history of performance appraisals, from their first documented use in 3rd century China, to Taylor&#8217;s scientific management theories in the early 1900&#8242;s, to their near ubiquity we see today. Given their prevalence, and the feeling one gets that nobody outside of the occasional HR organization enjoys either giving or getting performance appraisals, the assumptions behind these reviews merit examination. To help frame the discussion around these assumptions, Mary listed the 4 services that performance appraisals are assumed to provide: a motivation to improve performance, career / professional development guidance, a paper trail for corrective action, and a basis for pay and promotion. I&#8217;ll tackle the first three here, and save pay and promotion for the next post, Compensation.</p>
<div id="attachment_651" class="wp-caption aligncenter" style="width: 254px"><img class="size-full wp-image-651 " title="Office Space Bobs" src="http://chrissimmons.ca/wp-content/uploads/officespacebobs.jpg" alt="" width="244" height="134" /><p class="wp-caption-text">The Bobs enjoy a good appraisal.</p></div>
<p>As a motivation to improve performance, yearly appraisals are prone to several problems. The value of feedback, either negative or positive, goes down in proportion to the cube of the amount of time between the event generating the feedback and the feedback itself*. If you are trying to effect change in an employee, the best time for feedback is &#8220;immediately&#8221;, followed by &#8220;as soon as you can get that person alone&#8221; for items that are better off discussed in a private setting. Additionally, combining positive and negative feedback from a large time frame into one review tends to mute the effect of the positive feedback, since people tend to focus more on the negative. You can think of these ratings as a game without a winner, where the best you can hope is maintain the status quo. If you were to give a high rating to a mediocre performer, it would not give them any motivation to change, so you&#8217;d still have a mediocre performer. If you were to give a mediocre rating to a high performer, the high performer (who probably knows she&#8217;s a high performer) will be disappointed and probably reconsider how hard she should be working.</p>
<p>To counter the assumption that appraisals are necessary for professional development, Mary touches on the body of research that covers how people across a wide variety of fields learn and master new skills. A concept I first heard about in Malcolm Gladwell&#8217;s book <a title="Outliers (Amazon)" href="http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/1846141214" target="_blank">Outliers</a>,  the steps to work towards mastery are as follows:</p>
<ul>
<li>Identify a specific skill that needs improvement</li>
<li>Devise or learn from a teacher a focused exercise: designed to improve a skill</li>
<li>Practice repeatedly</li>
<li>Obtain immediate feedback, adjust accordingly</li>
<li>Push the limits: expect repeated failures</li>
<li>Practice regularly and intensely, maybe 3 hours a day</li>
</ul>
<p>Now, most of us may find that list a bit daunting, but that is the price of mastery. That said, not everyone expects to master every skill they attempt to use &#8211; the closest to 3 hours a day that I spend on any one thing besides sleep is riding the bus, for example. The important thing to note is that in this list of elements of deliberate practice (having a teacher or coach, pushing your limits, obtaining immediate feedback, and dedication), appraisals don&#8217;t really cover any of them. How then can they be expected to promote meaningful growth?</p>
<p>The idea of creating an audit trail in case of punitive action or dismissal may appear to make sense in today&#8217;s litigious society. Indeed, Mary points out that formal performance reviews gained a lot of popularity following the 1960&#8242;s civil rights movement in the US, when such systems were set up to prevent untraceable systematic discriminatory dismissals. However, if this system is meant primarily for underachievers and others needing corrective action, why must all employees go through the process when the vast majority of them are in no danger of being let go?</p>
<p>In my next post I&#8217;ll write about the second half of Mary&#8217;s presentation, which challenges the use of appraisals as a basis for pay and promotion, and in doing so questions several other common aspects of the dominant compensation model and dives into the complicated area of motivation.</p>
<p><em>* Simmons&#8217; Law. Yes, I just made that up, and I have no empirical data to prove it, but the disproportionate value of immediate feedback when compared to delayed feedback is a well-known phenomenon. At worst, I&#8217;m off by a coefficient.<br />
</em></p>
<p>Further reading:<br />
- <a title="Get Rid of the Performance Review (Wall Street Journal)" href="http://online.wsj.com/article/SB122426318874844933.html" target="_blank">Get Rid of the Performance Review</a>, Wall Street Journal<br />
- <a title="Bringing Out the Best in People (Amazon)" href="http://www.amazon.com/Bringing-Best-People-Aubrey-Daniels/dp/0071351450" target="_blank">Bringing Out the Best in People</a>, Aubrey Daniels<br />
<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/11/mary-poppendieck-appraisals/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dave Sharrock on Leading Agile Change</title>
		<link>http://chrissimmons.ca/2011/10/dave-sharrock-on-leading-agile-change/</link>
		<comments>http://chrissimmons.ca/2011/10/dave-sharrock-on-leading-agile-change/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 03:38:19 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[leadership]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=687</guid>
		<description><![CDATA[Some presentations I&#8217;ve attended make me wish my direct reports were there. Others make me wish my boss (or his boss) was in the room taking notes. Dave Sharrock&#8217;s presentation at this year&#8217;s Agile Vancouver conference, entitled &#8220;Leading Agile Change &#8211; Walking the Walk&#8221;, brought things to a new level. By the end of the [...]]]></description>
			<content:encoded><![CDATA[<p>Some presentations I&#8217;ve attended make me wish my direct reports were there. Others make me wish my boss (or his boss) was in the room taking notes. Dave Sharrock&#8217;s presentation at this year&#8217;s Agile Vancouver conference, entitled &#8220;Leading Agile Change &#8211; Walking the Walk&#8221;, brought things to a new level. By the end of the talk, I was rueing the fact that my entire peer management group was not there, along with the management of other parts of the organization.</p>
<p>Dave&#8217;s dialogue described an experience report where he and other Agile coaches were brought in to a large organization to assist with their Agile transformation, but the goal of the talk was not to educate the audience on how to do huge transitions. Rather, Dave presented a generic planning tool and thought process for leadership teams, called <a title="Agile Strategy Mapping (Agile42)" href="http://www.agile42.com/blog/2011/10/14/agile-strategy-mapping-accus/" target="_blank">Agile Strategy Mapping</a>, that is applicable for almost any type of strategic planning. Agile Strategy Mapping involves defining high-level strategic objectives in terms of critical success factors, defining necessary conditions for these critical success factors, and then creating a prioritized backlog of tasks required to realize these necessary conditions. Using Agile Strategy Mapping, Dave went on to show how a leadership team can implement organizational change and strategic goals in a focused, incremental way.</p>
<div id="attachment_689" class="wp-caption aligncenter" style="width: 569px"><img class="size-full wp-image-689 " title="Agile Strategy Map" src="http://chrissimmons.ca/wp-content/uploads/Agile-Strategy-Map1.jpg" alt="" width="559" height="431" /><p class="wp-caption-text">A simplified Agile Strategy Map: Goal in cyan, critical success factors in gray, necessary conditions in yellow. The white condition is a nice-to-have.</p></div>
<p>The term &#8220;leadership team&#8221; is an important one; Dave spent a healthy portion of the talk describing the fundamental differences between &#8220;working teams&#8221; and &#8220;leadership teams&#8221;. Unlike working teams, leadership teams are often not dedicated to a specific problem space. They are ultimately responsible for the work being done, and most of their influence comes through delegation. This is not to say that working teams do not have responsibility or are in any way inferior. The delineation of the two groups is not into a hierarchy of importance (although of course there is some role power involved), but rather is meant to serve as recognition that the two types of teams have different capabilities, requirements, and working styles. Dave&#8217;s main push is that, despite these differences, Agile Strategy Maps enable leadership teams to achieve goals in a more Agile fashion.</p>
<p>The concept behind the Agile Strategy Map isn&#8217;t rocket science, but the idea of breaking down large, over-arching strategy goals into bite-size pieces is a good one, and one I believe many organizations would benefit from. As is true for working teams, a prioritized backlog fosters collective ownership and shared goals. Even the act of creating the Agile Strategy Map can serve as a valuable focusing tool for leaders, helping turn a group of managers into a team. This team building and collective ownership can then serve to form the basis of a positive feedback loop, on the backbone of small definitive commitments, strong accountability, and a focus on customer value instead of small, local optimization.</p>
<p>Although I really enjoyed Dave&#8217;s presentation, and will be using Agile Strategy Mapping as the technique by which I will introduce ideas and recommendations from this conference to my management team, there were some notable shortcomings to the experience. At one point we broke into small groups (6-8 people) to try our own hand at Agile Strategy Mapping. I didn&#8217;t really enjoy my small group experience &#8211; the ideas generated for critical success factors were too generic and non-actionable (i.e. &#8220;mindset change&#8221; as a critical success factor), and the concept of necessary conditions seemed lost on most. I may have also been a victim of groupthink, in that the majority of people in my group were from a single company and thus presumably had some shared background and perhaps preconceptions about the planning process. Finally, there appeared to be a large number of individual contributors (as opposed to leaders / managers) in the audience. This is not a problem in and of itself, of course &#8211; I was certainly very interested in management and leadership when I was still a junior programmer. However, Dave&#8217;s presentation was squarely aimed at those in leadership roles &#8211; I feel some of the negative feedback he received may have been due to a disconnect between individuals who were expecting something targeted at grassroots efforts.</p>
<p>Further reading:</p>
<ul>
<li><a href="http://www.slideshare.net/davesharrock/leading-agile-change-agilevancouver-2011/" target="_blank">Dave Sharrock&#8217;s slides</a> on Leading Agile Change</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/10/dave-sharrock-on-leading-agile-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Michael Feathers on Data Mining your VCS</title>
		<link>http://chrissimmons.ca/2011/10/michael-feathers-on-data-mining-your-vcs/</link>
		<comments>http://chrissimmons.ca/2011/10/michael-feathers-on-data-mining-your-vcs/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 01:03:31 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=680</guid>
		<description><![CDATA[The second talk I attended at the Agile Vancouver conference was presented by Michael Feathers, who you may know from his book Working Effectively with Legacy Code. Titled &#8220;Discovering Startling Things From Your Version Control System&#8221;, Michael described how by mining data that already exists &#8211; that is, the commit history and contents of your [...]]]></description>
			<content:encoded><![CDATA[<p>The second talk I attended at the Agile Vancouver conference was presented by Michael Feathers, who you may know from his book <a title="Working Effectively with Legacy Code (Amazon)" href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052/ref=sr_1_1?ie=UTF8&amp;qid=1319934330&amp;sr=8-1" target="_blank"><em>Working Effectively with Legacy Code</em></a>. Titled &#8220;Discovering Startling Things From Your Version Control System&#8221;, Michael described how by mining data that already exists &#8211; that is, the commit history and contents of your version control system (git, perforce, cvs, etc.) &#8211; you can discover interesting metrics about your code base. The great thing about this idea is that almost every software development shop should have this data available; organizations that don&#8217;t have this data because they don&#8217;t have version control likely have larger concerns than metrics gathering.</p>
<p>I&#8217;m familiar with metrics, and have <a title="Metrics-driven Agile Development" href="http://chrissimmons.ca/2011/03/metrics-driven-agile-development/" target="_blank">written about them before</a>, but this is the first presentation I&#8217;ve seen on considering metrics about your code as it is. That is, instead of the usual metrics of product performance, or unit test coverage, or even team-based metrics such as velocity or throughput, the idea is to examine the evolution of your code over many revisions to see how it has progressed (or, quite often, regressed). This allows you to ask ask several interesting questions of your code base. As an example, for the following two cases, which one is easier?</p>
<p>- adding code to an existing method, or adding a new method<br />
- adding a method to an existing class, or adding a new class</p>
<p>By looking at how code changes over time, we can give empirical answers to these questions, the assumption being that developers will choose to do the easy things. Histograms of method size vs. time and number of methods per class vs. time can answer that and other questions. Michael gave examples of three popular open source code bases &#8211; <a title="Clojure" href="http://clojure.org/" target="_blank">Clojure</a>, <a title="JUnit" href="http://www.junit.org/" target="_blank">JUnit</a>, and <a title="Fitnesse" href="http://fitnesse.org/" target="_blank">Fitness</a> &#8211; all of which seemed to honour some variant of the <a title="Open/closed principal (Wikipedia)" href="http://en.wikipedia.org/wiki/Open/closed_principle" target="_blank">open-closed principal</a> (that is, classes should be open to extension and closed to modification) since the vast majority of classes were not modified over time.</p>
<p>He went on to list many other metrics you could investigate from your source code&#8217;s data:</p>
<p>- method complexity vs. time, which allows you to see refactoring as dips in complexity<br />
- commits vs. hours in the day, minute of each hour, second of each minute<br />
- added complexity over time, added per hour of the day<br />
- number of files touched per commit<br />
- average lines per commit by month</p>
<p>Perhaps the most interesitng chart was a plot of the number of commits to a file vs. the complexity of that file, similar to the following:<br />
<img class="aligncenter size-medium wp-image-682" title="Commits vs. Complexity" src="http://chrissimmons.ca/wp-content/uploads/Commits-vs.-Complexity-300x209.jpg" alt="" width="300" height="209" /></p>
<p>Here it looks as if the code base is separated into four quadrants. In the upper right, you have files that have very high complexity that are also changed a lot. These are the big scary functions at the core of your product &#8211; the ones that have been around for a while, nobody really understands, and may have relatively few unit tests so refactoring is more difficult. In the upper left, you get code that was likely submitted already in a complex state, and only lightly modified thereafter; perhaps these methods were the result of weekend-long hacks, functionally complete but perhaps a little overly complex. The lower left contains well-factored, not frequently changed code &#8211; the utility or base classes of your product, for instance. Finally, the lower right quadrant contains simple code that is very frequently changed. As often as not this would be something like XML, configuration files, or other such data stored as code.</p>
<p><img class="aligncenter size-medium wp-image-683" title="Commits vs. Complexity Quadrants" src="http://chrissimmons.ca/wp-content/uploads/Commits-vs.-Complexity-Quadrants-300x209.jpg" alt="" width="300" height="209" /></p>
<p>Although these metrics can be interesting, there some caveats. Variations in personal style, such as the average size of a commit, isolated vs. large changes, and the like can greatly skew the numbers. Comparing different codebases can also fall prey to variations in environment &#8211; differences in implementation language, nature of the problem being solved, and a variety of other problems.</p>
<p>Besides simply mining my own code base for the metrics Michael suggests, I see other opportunities with this line of thinking about code. Tying your revision control system to your defect tracking system could allow you to see trends of defects over time as they evolve in the code, and perhaps giving a threshold for refactoring &#8211; that is, if something has more than X complexity, it&#8217;s twice as likely to produce bugs. Predictions about which functions are prone to getting over-complex could be made using artificial intelligence and machine learning techniques. All of this could become an add-in to your continuous integration software &#8211; the list goes on.</p>
<p>Next post: Dave Sharrock on Leading Agile Change.</p>
<p>Further reading:</p>
<ul>
<li><a title="Getting Empircal about Refactoring Code" href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;ObjectType=COL&amp;ObjectId=16679&amp;tth=DYN&amp;tt=siteemail&amp;iDyn=2" target="_blank">Getting Empircal about Refactoring</a>, Michael Feathers</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/10/michael-feathers-on-data-mining-your-vcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where is Agile Going? (Agile Vancouver 2011 Keynote)</title>
		<link>http://chrissimmons.ca/2011/10/where-is-agile-going-agile-vancouver-2011-keynote/</link>
		<comments>http://chrissimmons.ca/2011/10/where-is-agile-going-agile-vancouver-2011-keynote/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 03:11:43 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agilevancouver]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[organizations]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=670</guid>
		<description><![CDATA[Johanna Rothman&#8216;s keynote to the Much Ado About Agile VI conference started with a simple question &#8211; has Agile crossed the chasm? While many people may believe that may be the case, Johanna is convinced that we are still in the early adopter phase. Although much work has been done and progress made in the [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Johanna Rothman" href="http://www.jrothman.com/"><img class="alignleft size-thumbnail wp-image-672" title="Johanna Rothman" src="http://chrissimmons.ca/wp-content/uploads/Johanna-Rothman-148x150.jpg" alt="Johanna Rothman" width="100" height="100" />Johanna Rothman</a>&#8216;s keynote to the <a title="Much Ado About Agile VI (Agile Vancouver)" href="http://www.agilevancouver.ca/conferences/much-ado-about-agile-2011/" target="_blank">Much Ado About Agile VI</a> conference started with a simple question &#8211; has Agile <a title="Crossing the Chasm (Wikipedia)" href="http://en.wikipedia.org/wiki/Crossing_the_Chasm_%28book%29" target="_blank">crossed the chasm</a>? While many people may believe that may be the case, Johanna is convinced that we are still in the early adopter phase.</p>
<p>Although much work has been done and progress made in the 10 years since Agile got its name, Johanna argues that we&#8217;ve only done the easy work. Agile adoption is working well for small teams, in small- to medium-sized organizations, but it is much harder to find Agile success stories in larger organizations. Many such organizations have attempted an Agile transition only to fall back to waterfall or chaotic development methods after 2-3 years (or less).</p>
<p>Small Agile teams within larger organizations have not been too helpful either. These teams, perhaps established through the will of a talented manager or through an Agile pilot program, are often up against enormous organizational pressure. This results in the team building fences around itself, being very protective and defensive of its culture and practices. While seemingly well-intentioned, these fences lead to a local optimization problem, where the existing Agile team may hesitant to change their ways even for the good of the entire organization.</p>
<p style="text-align: left;"><img class="alignright size-medium wp-image-671" title="Crossing the Chasm" src="http://chrissimmons.ca/wp-content/uploads/Crossing-the-Chasm-300x177.gif" alt="Crossing the Chasm" width="300" height="177" />Johanna sees a fundamental disconnect between intent and action; while intent may have indeed crossed the chasm, action is falling behind. Part of this is due to the &#8220;breadth-first&#8221; adoption approach that is all too common. Instead of trying to gain deep understanding of the principles behind Agile, or examining individual Agile practices in the context of organizational problems, practices are often sprinkled around or introduced with little or no background. I know that I have had several exchanges similar to the following.</p>
<blockquote><p>Developer: Yeah, we&#8217;ve been doing Agile for a while.<br />
Chris: How&#8217;s that working for you? What do you do?<br />
Developer: Well, we sit together when we code. QA and product management sit with us too.<br />
Chris: Okay&#8230; have you seen any benefits to having an integrated QA team? Have your releases sped up?<br />
Developer: Integrated? Well, they still do all the testing after dev&#8217;s done, so not much has changed. I guess we write more unit tests now. Oh, and our planning sessions are called sprints, and we stand up in meetings now.</p></blockquote>
<p>A quick stand-up survey of the crowd confirmed that this experience is not uncommon. When a standing crowd was asked to sit down if you either don&#8217;t have a cross-functional team, don&#8217;t have a prioritized backlog, or don&#8217;t produce shippable product on a regular basis, about three-quarters of the room (myself included) took their seats. It seems that the marketing &#8211; that is, the idea and intent of Agile &#8211; has greatly outpaced the adoption (or retention) of practices and the mindest behind said practices.</p>
<p>The rest of the presentation was rooted in the idea of a &#8220;growth mindest&#8221; versus a &#8220;fixed mindset&#8221;, but Linda Rising gave a wonderful day 2 keynote on this very topic so I&#8217;ll defer most of my comments until then. One point that is worth mentioning is the idea that a successful and sustainable Agile adoption requires not just practices or ideas, but both personal and organizational cultural changes. Indeed, to quote Johanna&#8217;s slides: &#8221;Agile encourages personal change &#8211; Agile requires cultural change.&#8221; Changes such as belief in power distance and comfort with uncertainty (<a title="Hofstede's cultural dimensions theory (Wikipedia)" href="http://en.wikipedia.org/wiki/Hofstede%27s_cultural_dimensions_theory" target="_blank">Geert Hofstede</a>&#8216;s model as applied to organizations) are often overlooked by those transitioning to or already practicing Agile. To truly succeed in a venture such as organizaitonal change, a more holstic, cross-discipline view must be taken &#8211; a theme that continues to reappear over the course of the conference.</p>
<p>In the next post, I&#8217;ll cover Michael Feather&#8217;s talk on mining data from your version control system.</p>
<p><strong><em>Suggested Reading:</em></strong></p>
<ul>
<li><em><a title="Mindset (Amazon)" href="http://www.amazon.com/dp/0345472322/?tag=googhydr-21&amp;hvadid=5123895095&amp;ref=pd_sl_pt6h1spjn_e" target="_blank">Mindset</a>, </em>Carol Dweck</li>
<li><a title="Cultures and Organizations: Software for the Mind (Amazon.com)" href="http://www.amazon.com/Cultures-Organizations-Software-Mind-Third/dp/0071664181/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1319770972&amp;sr=1-1" target="_blank"><em>Cultures and Organizations: Software for the Mind</em></a>, Geert Hofstede</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/10/where-is-agile-going-agile-vancouver-2011-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Growing as a Manager</title>
		<link>http://chrissimmons.ca/2011/09/growing-as-a-manager/</link>
		<comments>http://chrissimmons.ca/2011/09/growing-as-a-manager/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 21:05:59 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=643</guid>
		<description><![CDATA[I&#8217;ve recently spent a lot of time thinking about how to grow professionally as a software development manager. Since I was a programmer before becoming a manager, I first thought about how to transfer some of what I learned about professional development as a coder to my role as a manager. Programmers have it easy [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently spent a lot of time thinking about how to grow professionally as a software development manager. Since I was a programmer before becoming a manager, I first thought about how to transfer some of what I learned about professional development as a coder to my role as a manager.</p>
<h3>Programmers have it easy</h3>
<div id="attachment_655" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-655" title="Programming Languages" src="http://chrissimmons.ca/wp-content/uploads/programming_languages-150x150.jpg" alt="" width="150" height="150" /><p class="wp-caption-text">A lot of options</p></div>
<p>Let&#8217;s think about how a programmer progresses. Of course, there&#8217;s experience and time, the greatest of teachers. Even if you have a programmer solve a similar class of problems on a regular basis, if she&#8217;s keen she&#8217;ll come up with new and better ways of doing things. Add a piece of automation here, a new editor trick there, perhaps a refactor or a domain-specific language &#8211; there&#8217;s always some opportunity to learn something new.</p>
<p>Luckily, most programmers aren&#8217;t stuck solving the same problems over and over &#8211; they&#8217;re doing different things. This could mean a new programming language (or new techniques with the one you already use), a new platform, a new module or third-party API, or a new paradigm, such as incorporating more of a functional design style into otherwise object-oriented code. Programmers can also change their focus, for instance from user experience to scalability to embedded systems.</p>
<p>Additionally, professional programmers most often don&#8217;t have to do it alone. If you run into a database problem you don&#8217;t know how to fix, you can go look over the shoulder of the local SQL guru as they optimize your query. If you&#8217;re fortunate enough to be on a team where pair programming is the norm, you&#8217;ll be in almost constant learning mode. At a standup meeting, at an architecture design meeting, or at a security review, there&#8217;s a group of your peers (or superiors) solving technical problems.</p>
<p>All that said, the title of this section is a bit flippant &#8211; to really take advantage of these learning opportunities, a developer would ideally have the will to learn, the drive for self-improvement, and the hacker ethos of experimenting with programmable systems. It&#8217;s not that this learning comes for free, it&#8217;s just that it can be part of the job (or some on-the-side project, or an open-source effort, etc.).</p>
<h3>What exactly would you say you do around here?</h3>
<div id="attachment_651" class="wp-caption alignright" style="width: 254px"><img class="size-full wp-image-651" title="Office Space Bobs" src="http://chrissimmons.ca/wp-content/uploads/officespacebobs.jpg" alt="" width="244" height="134" /><p class="wp-caption-text">The pleasure&#39;s all on this side of the table, trust me.</p></div>
<p>So now, back to the land of management. What does a software development manager do, and how would one go about improving those skills?</p>
<p>Roughly speaking, you can break down what I do into four areas:</p>
<ul>
<li><strong>People management</strong>. This includes conflict resolution, career development for my direct reports, and managing up.</li>
<li><strong>Project management</strong>. This involves task prioritization, risk assessment, project tracking, and scope management.</li>
<li><strong>Process / team management</strong>. This is broad, but in part consists of promoting technical and team best practices, and focusing on how the team does their work.</li>
<li><strong>Technical guidance</strong>. Although I&#8217;m not the most senior technical person on the team, I have substantial product experience and a higher-level context that proves useful during in-depth technical discussions.</li>
</ul>
<p>Of course there is overlap. What is a team if not a group of people? Choosing continuous deployment could be process or project management, and encouraging pair programming is part team management and part technical guidance. The list goes on and on &#8211; I&#8217;ll stick with the above demarcations tfor now.</p>
<h3>How do you grow?</h3>
<p>There are several paths towards professional self-improvement, but I&#8217;ll lump them into three broad categories: Experience, Training, and Self-Study.</p>
<p>Experience in this case refers to professional experience, and covers most of what I talked about above with respect to programmer development. This is the knowledge that comes from trying new things, learning from mistakes (both yours and others&#8217;), and paying attention to what works in various situations, all as part of your day to day work life. There is always some sort of experiential learning to be had, should you choose to take advantage of it.</p>
<p>Training is another way to learn, and can be helpful in circumstances where there&#8217;s a specific skill set to be learned that is too broad to wait for experience to teach, too critical to be learned through trial an error, or too time-sensitive to be learned through self-study. School and certification courses are obvious forms of training, but I also count mentoring (external or within your company) and conferences under this heading.</p>
<p>Self-study is a broad term. and I use it here to refer to everything from reading blog posts and books, to podcasts and forums or user groups, to side projects and open source contributions. Self-study is the most accessible form of learning for most people in this profession, since it is plentiful and often free, but it is often the least taken advantage of.</p>
<p>Naturally, like the overlap in the management responsibilities above, the distinctions between these categories are not hard and fast. Would <a title="MIT Open Courseware" href="http://ocw.mit.edu/index.htm">MIT Open Course Ware</a> count as training, or self-study? Work experience often has aspects of self-study, even though it may not self-directed. A conference may be training, but what about an <a title="Unconference (Wikipedia)" href="http://en.wikipedia.org/wiki/Unconference">unconference</a>?</p>
<h3>So what are you doing about it?</h3>
<div id="attachment_650" class="wp-caption alignleft" style="width: 201px"><img class="size-medium wp-image-650 " title="Michael Scott" src="http://chrissimmons.ca/wp-content/uploads/26999-michael_scott-273x300.jpg" alt="World's Best Boss" width="191" height="210" /><p class="wp-caption-text">Aspiring to greatness</p></div>
<p>Now that I&#8217;ve laid out the loose definitions for the types of learning I might undertake, as well as the areas in which this learning could be applied, I&#8217;ll get into what and how I&#8217;m trying to learn.</p>
<p>People management is an area where I think there is a limitless amount of experiential learning to be had, and it&#8217;s one I&#8217;ve been focusing on more recently.  Even if I was managing the same people for 10 years, they would change, I would change, and the project would change, so there would be new challenges and opportunities. That said, I have been pursuing self-study in this area (mainly through blogs, books and podcasts), and the upcoming <a title="Much Ado About Agile " href="http://www.agilevancouver.ca/conferences/much-ado-about-agile-2011/">Much Ado About Agile conference</a> has several talks and tutorials on the subject of people.</p>
<p>Project management is something I do as part of my job, but I&#8217;m not really a project manager. I have experience working within my company&#8217;s project framework, but there&#8217;s a lot of inertia to overcome to change anything since it&#8217;s a framework the entire company uses. This is an area I&#8217;m not putting a lot of effort into improving on my own time, since it&#8217;s not a primary interest and there&#8217;s relatively little I can do about it in my current position, but I&#8217;m always on the lookout for things that I can improve during my day to day tasks.</p>
<p>Process and team management is where I&#8217;ve spent a the most time learning, through experience, training, and self-study. I&#8217;ve followed the <a title="Kanbandev" href="http://finance.groups.yahoo.com/group/kanbandev/">Kanban community</a>, posting questions and comments, and even helped review a <a title="Kanban" href="http://agilemanagement.net/index.php/kanbanbook/">great book </a>on the subject. I&#8217;ve read books by Mary Poppendieck, Tom DeMarco, Esther Derby, and more, and my to-read list just keeps growing. I&#8217;ve <a title="Chrissimmons.ca - Conference" href="http://chrissimmons.ca/tag/conference/">attended</a> and <a title="Agile Vancouver meetup" href="http://www.meetup.com/Agile-Vancouver/events/15766311/">spoken at</a> Agile meetups and conferences. I&#8217;ve tried to be an Agile coach for my team (which can sometimes be <a title="Esther Derby" href="http://www.estherderby.com/2011/09/control-in-coaches-clothing.html">difficult</a>). Although this is where I&#8217;ve focused most of my efforts, I&#8217;m starting to back off a bit here in favour of People- and Technical-centric learning, primarily to round out my management style.</p>
<p>Finally, learning about technical management. Although over the years I&#8217;ve done some self-study on this, reading books on design patterns, lean and agile development practices, and architecture, I haven&#8217;t been as rigorous about this as I could have been. Part of it has been that I haven&#8217;t been coding at all (maybe a few lines every few weeks), a situation which I&#8217;ve started to <a title="Biopay" href="https://github.com/chriss/biopay">correct</a>. Picking up new technologies, even if I&#8217;m not using them at work or for any serious projects, helps broaden my perspectives when faced with the challenges I do need to solve at work, providing me with a bigger technical toolkit. I&#8217;m also getting more involved in security reviews at work, and have recently had some work-sponsored training by a security expert, and I hope to get some further training on the technical track of the upcoming conference.  While I don&#8217;t know if I&#8217;ll ever go back to primarily being a developer, I think staying sharp technically is an important part of being a development manager.</p>
<h3>Your turn</h3>
<p>Thanks for making it this far! Do you agree or disagree with my assessment of the learning opportunities for programmers or managers? Have anything to add? Let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/09/growing-as-a-manager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Metrics-driven Agile Development</title>
		<link>http://chrissimmons.ca/2011/03/metrics-driven-agile-development/</link>
		<comments>http://chrissimmons.ca/2011/03/metrics-driven-agile-development/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 04:03:41 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[metrics]]></category>

		<guid isPermaLink="false">http://chrissimmons.ca/?p=638</guid>
		<description><![CDATA[I recently attended an Agile Vancouver talk by Bill Wood of Ping Identity on the subject of &#8220;Metrics Driven Agile Development&#8221;. I&#8217;ve been interested in metrics for some time as a result of following the work of David Anderson, so I had looked forward to hearing from an experienced manager who actively uses metrics on [...]]]></description>
			<content:encoded><![CDATA[<p>I recently attended an Agile Vancouver talk by Bill Wood of Ping Identity on the subject of &#8220;Metrics Driven Agile Development&#8221;. I&#8217;ve been interested in metrics for some time as a result of following the work of David Anderson, so I had looked forward to hearing from an experienced manager who actively uses metrics on an agile team.</p>
<p>Bill opened the talk with a few points about Ping&#8217;s philosophy towards metrics. He admitted that many metrics are not scientific measures and can be prone to inaccuracy, but they can still be useful to help ground a company that&#8217;s working in a rapidly changing environment. The use of metrics is simple &#8211; gather some metrics in as consistent a way as possible, monitor those metrics, and question change. In this case, change means for the better or for the worse. In this way, metrics can provide a good way to &#8220;Check&#8221; when implementing a Plan Do Check Act cycle of learning. Some of Ping&#8217;s other philosophies and practices reinforce the value of metrics, such as the idea of &#8220;Going Honest Early&#8221; &#8211; bringing up potentially problematic issues immediately &#8211; and the use of operation reviews, company-wide meetings in which the health of the engineering organization and its projects is discussed. These reviews, which I first read about in Agile Management for Software Engineering, provide valuable feedback to non-engineering facilities and are a practice that I&#8217;d love to see taken up in my office.</p>
<p>Next up was an Introduction of the classic &#8220;iron triangle&#8221; of project management, Quality, Time and Features. At Ping they fix time, committing to three month &#8220;trains&#8221;, or releases. If something is not ready in time due to quality issues, incomplete development, or any other reason,  it&#8217;s not in &#8211; the rest of the completed features go ahead and ship. Lead time is established to be 3 months, with high confidence; in the last 5 years, there have only been 12 days in train delays. With time fixed, there is a tension between quality and features, with quality always winning. This is not to say that they gold plate &#8211; there is simply a zero defect release criteria. The concept of the &#8220;Iron Triangle&#8221; was elaborated into an &#8220;Iron Pentagon&#8221;, the additional two factors being resources and system.</p>
<p>Bill brought up several metrics that are used at Ping to observe many aspects of their development system. There were graphs of &#8220;utilization&#8221;, or how many team members were available to work on a project and how many were absent due to vacation, holidays, illness, etc. There was a slew of metrics related to quality, from the count of development-injected bugs to the average amount of time between finding and fixing a bug and the amount of time the test team spends on set up. Like all metrics, these require the gathering of data over time, and one of the metrics mentioned was a measure that I did have the data for, albeit not centralized &#8211; the number of various types of automated tests run by one of our products. A few hours of hacking data together, and a few minutes learning some <a title="jQuery" href="http://jquery.com/">jQuery</a> and <a title="Flot (Google Code)" href="http://code.google.com/p/flot/">flot</a>, and I get the following chart:</p>
<p style="text-align: center;"><img class="aligncenter" title="Test Trending" src="http://chrissimmons.ca/files/testing_trending.jpg" alt="" width="552" height="293" /></p>
<p>From here it&#8217;s easy to tell that 2008 was an awful year for unit tests, we greatly prefer unit tests to system tests, and that both have been growing over time. There are several more metrics that were mentioned that I&#8217;d like to take a look at, particularly the ones related to defects. I&#8217;ll post any graphs I make, and would love to hear stories from others who have sucessfully used interesting metrics to drive change in their development organization.</p>
<p>As an aside, I asked Bill after the talk about techniques used to loosely couple features such that they may be removed near project end without destabilizing others. He said that a variety of techniques were used, ranging from a preventative / planning approach &#8211; that is, simply not working of features at the same time that are likely to impact each other, making backout easy &#8211; to incorporating functionality &#8220;switches&#8221; in the product, which can be configured either at compile or run time to use either new or old code. These are techniques that I would love to start applying on my team, if there is ever a need to have strict adherence to a release schedule.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrissimmons.ca/2011/03/metrics-driven-agile-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

