<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Gaming Your Context, or, Methodology by Constraints</title>
	<atom:link href="http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/</link>
	<description>One foot in the muck, the other in utopia</description>
	<pubDate>Wed, 03 Dec 2008 21:00:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Bill Higgins</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8785</link>
		<dc:creator>Bill Higgins</dc:creator>
		<pubDate>Tue, 20 Feb 2007 20:36:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8785</guid>
		<description>Rick said:
&#62; I’d add one more tweak to the leadership
&#62; picture - talented, right intentioned,
&#62; but not aware of something new.

Good point Rick.  I also think that this is an important attribute for all team members, not just leaders.

One of the criteria I use when hiring developers is: do they read technical blogs?  I've found that people who read technical blogs tend to be much more aware of emerging trends and technologies - as you said, not to chase every buzzword but to have a general awareness of what's happening as an input to identifying and pursuing promising emerging technologies.</description>
		<content:encoded><![CDATA[<p>Rick said:<br />
&gt; I’d add one more tweak to the leadership<br />
&gt; picture - talented, right intentioned,<br />
&gt; but not aware of something new.</p>
<p>Good point Rick.  I also think that this is an important attribute for all team members, not just leaders.</p>
<p>One of the criteria I use when hiring developers is: do they read technical blogs?  I&#8217;ve found that people who read technical blogs tend to be much more aware of emerging trends and technologies - as you said, not to chase every buzzword but to have a general awareness of what&#8217;s happening as an input to identifying and pursuing promising emerging technologies.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rick gregory</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8780</link>
		<dc:creator>rick gregory</dc:creator>
		<pubDate>Tue, 20 Feb 2007 19:52:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8780</guid>
		<description>@Daniel: mmm... cookies...

@Cote: our comments crossed in the ether - I just read your reply to Bill... all is right with the universe again. :)

@Bill: I'd add one more tweak to the leadership picture - talented, right intentioned, but not aware of something new. Since there are multiple forms of the Right Thing, they may settle into something that is working well. The PC can act like a scout - they're more likely to be aware of leading edge ideas, techniques, etc. A good leadership will be receptive, even if they choose not to adopt every suggestion.</description>
		<content:encoded><![CDATA[<p>@Daniel: mmm&#8230; cookies&#8230;</p>
<p>@Cote: our comments crossed in the ether - I just read your reply to Bill&#8230; all is right with the universe again. :)</p>
<p>@Bill: I&#8217;d add one more tweak to the leadership picture - talented, right intentioned, but not aware of something new. Since there are multiple forms of the Right Thing, they may settle into something that is working well. The PC can act like a scout - they&#8217;re more likely to be aware of leading edge ideas, techniques, etc. A good leadership will be receptive, even if they choose not to adopt every suggestion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2007-02-20 &#187; SDLC Blog</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8570</link>
		<dc:creator>links for 2007-02-20 &#187; SDLC Blog</dc:creator>
		<pubDate>Tue, 20 Feb 2007 00:37:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8570</guid>
		<description>[...] People Over Process » Blog Archive » Gaming Your Context, or, Methodology by Constraints Discussion about Passionate Coders: I’ve seen the software efforts of passionate coders wasted when the rest of the organization was not as carefully optimized as the writing of the software (tags: passionate coders leadership iterative organization) [...]</description>
		<content:encoded><![CDATA[<p>[...] People Over Process » Blog Archive » Gaming Your Context, or, Methodology by Constraints Discussion about Passionate Coders: I’ve seen the software efforts of passionate coders wasted when the rest of the organization was not as carefully optimized as the writing of the software (tags: passionate coders leadership iterative organization) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Higgins</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8542</link>
		<dc:creator>Bill Higgins</dc:creator>
		<pubDate>Mon, 19 Feb 2007 21:54:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8542</guid>
		<description>Re: effecting change, I think it starts with getting the right leaders in place.  If a project or organization has bad leadership, and you're not in a position to change that leadership, then it's better to leave than try to change it.

I categorize bad leadership in two ways:

- bad intentions (e.g. goal is individual acknowledgment and power hoarding, CYA and blame if something goes wrong)
- ineptitude (e.g. good intentions but don't have the mental, emotional, or technical talent to succeed)

In the first case, it's probably impossible to effect change, in the second case it may be possible but it could take a very long time.

But if you have good leadership (talented + right intentioned), you're probably doing a lot of the right things already, and the organization will be amenable to change because you're intent on doing the right thing and also you're smart and confident enough to  respond positively when one of your employees (or you yourself) spot suboptimal parts of your process.

So I guess my philosophy is if you're smart enough to recognize the attributes of a healthy software development organization and you're not currently in a healthy software dev org, quit your job and go to a healthy env, because it's a futile exercise to change an org lead by folks who are either too incapable or ill-intentioned to have already fixed the org.

Note that a highly productive development organization doesn't necessarily mean you work 80 hours a week.  I work for what I consider to be a very productive team and heck, I still find time for the occasional blog comment ;-)</description>
		<content:encoded><![CDATA[<p>Re: effecting change, I think it starts with getting the right leaders in place.  If a project or organization has bad leadership, and you&#8217;re not in a position to change that leadership, then it&#8217;s better to leave than try to change it.</p>
<p>I categorize bad leadership in two ways:</p>
<p>- bad intentions (e.g. goal is individual acknowledgment and power hoarding, CYA and blame if something goes wrong)<br />
- ineptitude (e.g. good intentions but don&#8217;t have the mental, emotional, or technical talent to succeed)</p>
<p>In the first case, it&#8217;s probably impossible to effect change, in the second case it may be possible but it could take a very long time.</p>
<p>But if you have good leadership (talented + right intentioned), you&#8217;re probably doing a lot of the right things already, and the organization will be amenable to change because you&#8217;re intent on doing the right thing and also you&#8217;re smart and confident enough to  respond positively when one of your employees (or you yourself) spot suboptimal parts of your process.</p>
<p>So I guess my philosophy is if you&#8217;re smart enough to recognize the attributes of a healthy software development organization and you&#8217;re not currently in a healthy software dev org, quit your job and go to a healthy env, because it&#8217;s a futile exercise to change an org lead by folks who are either too incapable or ill-intentioned to have already fixed the org.</p>
<p>Note that a highly productive development organization doesn&#8217;t necessarily mean you work 80 hours a week.  I work for what I consider to be a very productive team and heck, I still find time for the occasional blog comment ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Edward Kim</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8540</link>
		<dc:creator>Daniel Edward Kim</dc:creator>
		<pubDate>Mon, 19 Feb 2007 21:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8540</guid>
		<description>Passionate Coders (herein referred to as PCs) are valuable not for their direct output but the effect they have on the rest of the team. There is something magical about working next to one of these PCs because they have a skill and methodology that's only gained from being OCD. With proper mentoring (and I would further posit that all PCs strive to be good mentors, all others are poseurs…) a "normal" coder can better leverage his "40 hours and a mule". What's unfortunate is that management tends to view PCs only terms of their direct output ("Wow! Billy wrote the whole accounting module in one night with only a toothbrush and a can of jolt! Imagine what we could do if we had an army of these!!"). As I can personally attest to, working with somebody brilliant can have profound influences on the way you view not only the project but sometimes the career. The PCs is like the raisons in a raison oatmeal cookie. It’s counter productive to make your cookie 100% out of raisons (and defies the laws of cookie physics) but it’s nice to have one or two for "spice"</description>
		<content:encoded><![CDATA[<p>Passionate Coders (herein referred to as PCs) are valuable not for their direct output but the effect they have on the rest of the team. There is something magical about working next to one of these PCs because they have a skill and methodology that&#8217;s only gained from being OCD. With proper mentoring (and I would further posit that all PCs strive to be good mentors, all others are poseurs…) a &#8220;normal&#8221; coder can better leverage his &#8220;40 hours and a mule&#8221;. What&#8217;s unfortunate is that management tends to view PCs only terms of their direct output (&#8221;Wow! Billy wrote the whole accounting module in one night with only a toothbrush and a can of jolt! Imagine what we could do if we had an army of these!!&#8221;). As I can personally attest to, working with somebody brilliant can have profound influences on the way you view not only the project but sometimes the career. The PCs is like the raisons in a raison oatmeal cookie. It’s counter productive to make your cookie 100% out of raisons (and defies the laws of cookie physics) but it’s nice to have one or two for &#8220;spice&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cote</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8531</link>
		<dc:creator>cote</dc:creator>
		<pubDate>Mon, 19 Feb 2007 21:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8531</guid>
		<description>Rick: yup, that's the right sentiment. And, indeed, as I tried to clarify in the second response to Bill, this whole doing the right thing crutch (on my part) was more an intention of spending the energy and risking the back-lash to suggest and work for change. The larger point being that a company can't depend on every employee, forever battling to change. Instead, software organizations need to make it part of the culture and welcome. 

Again, totally obvious in an intuitive sort of way, but in my experience, hard as hell to actually implement.</description>
		<content:encoded><![CDATA[<p>Rick: yup, that&#8217;s the right sentiment. And, indeed, as I tried to clarify in the second response to Bill, this whole doing the right thing crutch (on my part) was more an intention of spending the energy and risking the back-lash to suggest and work for change. The larger point being that a company can&#8217;t depend on every employee, forever battling to change. Instead, software organizations need to make it part of the culture and welcome. </p>
<p>Again, totally obvious in an intuitive sort of way, but in my experience, hard as hell to actually implement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rick gregory</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8527</link>
		<dc:creator>rick gregory</dc:creator>
		<pubDate>Mon, 19 Feb 2007 21:09:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8527</guid>
		<description>This still puts the Passionate Coder on a pedestal as if that's the holy grail but sometimes we settle for less. That's wrong I think. It ignores that the team is the context - the PC isn't a world unto him/herself - they are likely part of a team and that team may be depending on them. So, when they chase some obscure bug that will never affect a real user of the software and slip other tasks that people are depending on, they're NOT "doing the right thing" they're indulging their perfectionist side. I'd much rather see a coder with the ability to note that bug, finish stuff that the team needs and then fix it later (or to be able to explain why it actually does need to be fixed NOW). 

Let's stop putting the perfectionist obsessive at the top of the pyramid... they can be valuable, and they will often make a product much better over time, but they're not some ultimate standard - they're simply one style of coder. Useful, perhaps critical in some cases, but to elevate them above the rest of the team is an affront to people who may care very much about their code and their product... but who chose not to stay up until 3am fixing the most obscure bug ever.</description>
		<content:encoded><![CDATA[<p>This still puts the Passionate Coder on a pedestal as if that&#8217;s the holy grail but sometimes we settle for less. That&#8217;s wrong I think. It ignores that the team is the context - the PC isn&#8217;t a world unto him/herself - they are likely part of a team and that team may be depending on them. So, when they chase some obscure bug that will never affect a real user of the software and slip other tasks that people are depending on, they&#8217;re NOT &#8220;doing the right thing&#8221; they&#8217;re indulging their perfectionist side. I&#8217;d much rather see a coder with the ability to note that bug, finish stuff that the team needs and then fix it later (or to be able to explain why it actually does need to be fixed NOW). </p>
<p>Let&#8217;s stop putting the perfectionist obsessive at the top of the pyramid&#8230; they can be valuable, and they will often make a product much better over time, but they&#8217;re not some ultimate standard - they&#8217;re simply one style of coder. Useful, perhaps critical in some cases, but to elevate them above the rest of the team is an affront to people who may care very much about their code and their product&#8230; but who chose not to stay up until 3am fixing the most obscure bug ever.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cote</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8524</link>
		<dc:creator>cote</dc:creator>
		<pubDate>Mon, 19 Feb 2007 21:05:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8524</guid>
		<description>My phrasing was clearly laxed as I'm nodding to what you're typing ;) My example was crappy and seemed to narrow down to doing more work in a cowboy-coder fashion instead of figuring out an over-all process that prevents having to do that. Which leads too hopefully a better example:

As you point out, developing software and  developing the process that goes along with it requires a lot of energy to not only figure out what the right thing to do (code or organization wise) is, but to actually expend the energy to make sure it gets done.

So, if you determine that doing things iteratively is The Right Thing, and yet your team doesn't do things that way, there's a certainly amount of energy to spend to change things.

Now, the passionate employee will spend that energy, going up against the metaphoric brick wall of change resistance until either (a.) they effect change, (b.) they leave, or, more likely, (c.) they figure out how to subvert the resistance to change and do The Right Thing anyhow.

The larger point is that I'm suspecious of organizations that don't make that sort of review, consider, and change part of their culture. Instead they rely on (intentionally or not) heros putting in the effort to change without help from the company.

Now, narrowing down the software development, the thing that rubs me the wrong way about the "just get really good coders" line of thought is that it doesn't seem like a reliable, long term way to make software. There are not enough of those people to go around, more than likely they won't stick with you over the life of the product, and, as you point out, there are process adjustments to make to deliver software that don't rely on heroics from employees.

I suppose the prime assumption here is that an organization doing software has to be oriented around changing the process as called for by the context, where the context is not only the traditional customer inputs (requirements and stories), but also the internal "requirements" and constraints of the company itself.

Now, that's all obvious and good, but it's the point in most everything I read where you start to get a lot of hand-waving and clever answers instead of  pragmatic how-to's.

How's that for a crack at it?</description>
		<content:encoded><![CDATA[<p>My phrasing was clearly laxed as I&#8217;m nodding to what you&#8217;re typing ;) My example was crappy and seemed to narrow down to doing more work in a cowboy-coder fashion instead of figuring out an over-all process that prevents having to do that. Which leads too hopefully a better example:</p>
<p>As you point out, developing software and  developing the process that goes along with it requires a lot of energy to not only figure out what the right thing to do (code or organization wise) is, but to actually expend the energy to make sure it gets done.</p>
<p>So, if you determine that doing things iteratively is The Right Thing, and yet your team doesn&#8217;t do things that way, there&#8217;s a certainly amount of energy to spend to change things.</p>
<p>Now, the passionate employee will spend that energy, going up against the metaphoric brick wall of change resistance until either (a.) they effect change, (b.) they leave, or, more likely, (c.) they figure out how to subvert the resistance to change and do The Right Thing anyhow.</p>
<p>The larger point is that I&#8217;m suspecious of organizations that don&#8217;t make that sort of review, consider, and change part of their culture. Instead they rely on (intentionally or not) heros putting in the effort to change without help from the company.</p>
<p>Now, narrowing down the software development, the thing that rubs me the wrong way about the &#8220;just get really good coders&#8221; line of thought is that it doesn&#8217;t seem like a reliable, long term way to make software. There are not enough of those people to go around, more than likely they won&#8217;t stick with you over the life of the product, and, as you point out, there are process adjustments to make to deliver software that don&#8217;t rely on heroics from employees.</p>
<p>I suppose the prime assumption here is that an organization doing software has to be oriented around changing the process as called for by the context, where the context is not only the traditional customer inputs (requirements and stories), but also the internal &#8220;requirements&#8221; and constraints of the company itself.</p>
<p>Now, that&#8217;s all obvious and good, but it&#8217;s the point in most everything I read where you start to get a lot of hand-waving and clever answers instead of  pragmatic how-to&#8217;s.</p>
<p>How&#8217;s that for a crack at it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Higgins</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8521</link>
		<dc:creator>Bill Higgins</dc:creator>
		<pubDate>Mon, 19 Feb 2007 20:51:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8521</guid>
		<description>I actually disagree with this.  If you work in an organization that does frequent iterations, it's often better to do something that's fragile but will allow you to get something working, and then circle back to make the design more robust later.

Oftentimes the motivation for this is that you're working on a feature and there are too many unknown unknowns to really make informed design decisions, so the trick is to quickly work through a first iteration, kludges and all, gain understanding and experience from the effort, and use this new understanding to make an informed design/implementation decision later.

The risk of 'doing the right thing' in the face of unknown unknowns is that is that if you end up re-defining the problem you're trying to solve (as you often do upon reflection), your fast/robust/secure  solution now lacks an even more important property ... relevance.

Once you decide that indeed you're solving the right problem and you understand the key design constraints - usually after 2-4 iterations, it's a good idea to do the right thing and make your design fast/robust/secure.

PS - If any of your iterations span a release to customers, then of course the equation shifts back towards 'doing the right thing', even if you have to chuck that extra work later, esp. w/r/t security.</description>
		<content:encoded><![CDATA[<p>I actually disagree with this.  If you work in an organization that does frequent iterations, it&#8217;s often better to do something that&#8217;s fragile but will allow you to get something working, and then circle back to make the design more robust later.</p>
<p>Oftentimes the motivation for this is that you&#8217;re working on a feature and there are too many unknown unknowns to really make informed design decisions, so the trick is to quickly work through a first iteration, kludges and all, gain understanding and experience from the effort, and use this new understanding to make an informed design/implementation decision later.</p>
<p>The risk of &#8216;doing the right thing&#8217; in the face of unknown unknowns is that is that if you end up re-defining the problem you&#8217;re trying to solve (as you often do upon reflection), your fast/robust/secure  solution now lacks an even more important property &#8230; relevance.</p>
<p>Once you decide that indeed you&#8217;re solving the right problem and you understand the key design constraints - usually after 2-4 iterations, it&#8217;s a good idea to do the right thing and make your design fast/robust/secure.</p>
<p>PS - If any of your iterations span a release to customers, then of course the equation shifts back towards &#8216;doing the right thing&#8217;, even if you have to chuck that extra work later, esp. w/r/t security.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cote</title>
		<link>http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8508</link>
		<dc:creator>cote</dc:creator>
		<pubDate>Mon, 19 Feb 2007 19:55:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/#comment-8508</guid>
		<description>Hah! You caught my laziness: tragically fitting to the point.

What I meant was putting in the time to do the something that would take more effort but be a better solution when there was a easier solution available. Being quality instead of being cheap" and getting home on time.</description>
		<content:encoded><![CDATA[<p>Hah! You caught my laziness: tragically fitting to the point.</p>
<p>What I meant was putting in the time to do the something that would take more effort but be a better solution when there was a easier solution available. Being quality instead of being cheap&#8221; and getting home on time.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
