<?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>Notional Slurry &#187; Project</title>
	<atom:link href="http://williamtozier.com/slurry/category/project/feed" rel="self" type="application/rss+xml" />
	<link>http://williamtozier.com/slurry</link>
	<description>Pontification without all the gritty gravitas</description>
	<lastBuildDate>Wed, 23 May 2012 01:35:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Three languages of X</title>
		<link>http://williamtozier.com/slurry/2012/05/22/three-languages-of-x</link>
		<comments>http://williamtozier.com/slurry/2012/05/22/three-languages-of-x#comments</comments>
		<pubDate>Wed, 23 May 2012 01:35:38 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[GP]]></category>
		<category><![CDATA[pragmatism]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3629</guid>
		<description><![CDATA[I suspect I could have written a very similar argument on the subject of Complexological projects, or agent-based modeling, or machine learning or statistics. But for different reasons.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vagueinnovation.com/pragmatic_gp/the-three-languages-of-gp/">I suspect I could have written a very similar argument on the subject of Complexological projects, or agent-based modeling, or machine learning or statistics.</a> But for different reasons.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/05/22/three-languages-of-x/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A quick little coding kata</title>
		<link>http://williamtozier.com/slurry/2012/05/17/a-quick-little-coding-kata</link>
		<comments>http://williamtozier.com/slurry/2012/05/17/a-quick-little-coding-kata#comments</comments>
		<pubDate>Thu, 17 May 2012 16:00:20 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3623</guid>
		<description><![CDATA[Measuring the “cleanup error” of two different arrangements of stacked Cargo-Bot crates.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vagueinnovation.com/pragmatic_gp/measuring-the-error-in-stacked-colored-blocks/">Measuring the “cleanup error” of two different arrangements of stacked Cargo-Bot crates.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/05/17/a-quick-little-coding-kata/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is genetic programming?</title>
		<link>http://williamtozier.com/slurry/2012/05/15/what-is-genetic-programming</link>
		<comments>http://williamtozier.com/slurry/2012/05/15/what-is-genetic-programming#comments</comments>
		<pubDate>Tue, 15 May 2012 21:19:52 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[GP]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3444</guid>
		<description><![CDATA[Rambling, as always, but nonetheless more or less true.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vagueinnovation.com/pragmatic_gp/what-is-gp/">Rambling, as always, but nonetheless more or less true.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/05/15/what-is-genetic-programming/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transverse section shows multiscale detail</title>
		<link>http://williamtozier.com/slurry/2012/04/15/transverse-section-shows-multiscale-detail</link>
		<comments>http://williamtozier.com/slurry/2012/04/15/transverse-section-shows-multiscale-detail#comments</comments>
		<pubDate>Sun, 15 Apr 2012 14:49:15 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3398</guid>
		<description><![CDATA[So with the new Work Season starting on April 1, I’ve spent some time revising my active project portfolio. A few shifts, a few start-of-the-month and tax-time digressions, but on track again. One delayed item came to fruition this week, &#8230; <a href="http://williamtozier.com/slurry/2012/04/15/transverse-section-shows-multiscale-detail">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So with the new Work Season starting on April 1, I’ve spent some time revising my active project portfolio. A few shifts, a few start-of-the-month and tax-time digressions, but on track again.</p>
<p>One delayed item came to fruition this week, as I spent a lovely two-day trip in Cleveland visiting <a href="http://leandog.com/">Leandog</a>, an agile software studio I’ve heard a lot about. They have a nice open door policy, and welcomed my prying “let me watch you do it” visits both mornings with grace. Had a nice (but brief) chat and lunch with <a href="http://zeespencer.com/">Zee Spencer</a>, <a href="http://myagileeducation.com/">Angela Harms</a>, and <a href="http://objvimmer.com/">Jason Felice</a>, gave a “lightning talk” (I think I yammered on for an hour) at <a href="http://clerb.org/">CleRB</a> about genetic programming, and spent Friday morning chatting with <a href="http://www.cheezyworld.com/">Leandog founder Jeff Morgan</a>, from whom I will eventually learn where to buy a pizza with egg on it in Cleveland. And quick meetings with a number of other folks, notably <a href="http://blog.risingtideharbor.com/">Matt Barcomb</a> and <a href="http://www.docondev.com/">Michael Norton</a>, to be continued next time.</p>
<p>There were three main reasons to go to Leandog. </p>
<p>First, because I know at least four interesting people who have gone to work with Leandog—sought them out, I think—and that’s interesting. Since I want to make places people seek out, it’s worthwhile merely growing that social network one more step out, adding more people who can have such allure. Rule one: <em>Always</em> add interesting people to your network.</p>
<p>Second, because after eight years I still consider myself as <em>working on</em> a long-term project that’s equal parts complex systems stuff, community design, and agile project management. I love opportunities to see healthy, productive, community-driven worklives like the Leandog folks seem to have. <a href="http://workantile.com/">Workantile</a> is a step towards what I have in mind, but it’s not <em>the thing</em>. Mixing in some Leandog-style structure will be helpful.</p>
<p>And third: because people complain.</p>
<p>I hear a chorus of dismay and disappointment coming from the founders and early adopters of Agile (from way back before it was called “Agile”). They’re dismayed or disappointed in the way the movement seems to be going, the way things shift as more people start “doing” it in a corporate cultural setting. Or saying they’re doing it…. And in turn there are people touting “post-agile” and “anti-fundamentalist” approaches to the same stuff.</p>
<p>It’s like a cartoon example from <a href="http://www.amazon.com/The-System-Professions-Division-Expert/dp/0226000699">Andrew Abbott’s <i>The System of Professions</i></a>, frankly.</p>
<p>Crossing the Chasm was always, in my dotcom days, considered <em>something to be sought</em>, and you’d think anybody who founded or promoted a worldview-changing approach would be pleased when all of a sudden a bunch of hitherto deaf and blind mainstream adopters showed up asking earnest questions.</p>
<p>But that’s not always the way it feels. I suffer from this myself sometimes, when running into somebody from a totally different background, who <em>appears</em> as though he’s just using our words to describe his old boring bad harmful worldview.</p>
<p>And that’s interesting. A trend in my life.</p>
<p>As <a href="http://williamtozier.com/slurry/2012/03/19/against-originality">I’ve said before</a>, I remember when Chaos Theory started to be invoked to math up all kinds of marketing bullshit, and how the actual mathematicians and physicists said their work was being subverted. About how the complex systems research community still has this bad taste in its mouth from new uses and abuses of “emergence” and “edge of chaos” in mundane workaday settings like consulting and politics. About how those of us in the early 90s who wanted to do <em>computational biology</em> got all pissy when the bioinformatics people took the mindshare away and made it mean “databases and string handling algorithms”, not <em>actually making digital organisms</em> like we had planned. And the noises old colleagues are making right now to what they perceive as “commoditization” of genetic programming (as if that were a thing). And lately the tension coworking people have voiced over <a href="http://dangerouslyawesome.com/">the “corporatization” of coworking</a>, and threats they perceive about it being transformed into a tool for companies to make quirky “innovation factories” (as if that were a thing).</p>
<p>A trend, as I said. Enough data just from my personal experience to call that social dynamic <em>interesting</em>. It feels like some kind of counterpoint to the innovator’s dilemma: a sense that when an innovation starts to take off, it’s <em>out of control</em> of even the founders and core philosophers, those with a deep personal interest in seeing it succeed <em>on their terms</em>. “No, trust me, I invented it: you’re doing it wrong.”</p>
<p>So I went to Cleveland to think a bit, and see one of these chasm-crossing transitions—the agile one—<em>as</em> it’s happening.</p>
<p>From what I saw, Leandog attracts people who have strong technical skills, but who also work well with people. They believe that some companies—the ones falling on the scale somewhere between <em>floundering</em> and <em>trying to improve</em>—can actually learn and adapt and become more agile. And that “becoming more agile” means something real and useful, about changing culture, not adopting diluted ritual.</p>
<p>All my evidence argues that Leandog is good people, and they have good customers that are being helped and <em>changed</em>. Not because (as a commenter said recently) Cleveland is some kind of backwater where they’re just now catching up, but because things are different <em>everywhere</em>.</p>
<p>That’s my point.</p>
<p>I’m not concerned with evangelizing agile business practices. That will sort itself out. I’m much more concerned about some macro-scale cultural problems coming down the road.</p>
<p>There’s an ominous sense in the air that many folks express—the one that <a href="http://twitter.com/#!/umairh">Umair Haque in particular seems to riff and run with so much</a>. The sense that things have all <em>gone to hell</em> and <em>people aren’t paying attention</em> to the <em>big picture</em> and the <em>new ideas</em>.</p>
<p>I think that portentous sense has perfused American culture before: at the end of the Gilded Age, and maybe also before the Civil War. And it drove us dangerously close to a kind of populist fascism.</p>
<p>The Cassandra schtick about how Nobody is Doing it Right, and we need a Revolution, and Change Agents Need to Change Stuff, it sounds <em>to me</em> an awful lot like the people talking that talk have never really been anywhere, or traveled much. “What these people need,” and “They ought to do something,” are often followed by, “…if they don’t we will.”</p>
<p>There is no single “they”. There is no single “we”. People who tell you there are—you watch out for them.</p>
<p>So I drove across Ohio last Friday. And that’s the third reason.</p>
<p>Cleveland is an interesting town, not least because I grew up in the suburbs. Reduced in a sense to an intermediate place, it was once a core industrial powerhouse, and one that didn’t fall as far as Detroit; it was the first and best of the Midwest Maker Towns; it seems relatively untouched by sprawl, and was already pre-stressed economically before the Great Recession started.</p>
<p>I drove across northwest Ohio, the slow road: Route 6, all the way from Public Square in Cleveland to Bowling Green, with a side-trip or two to Sandusky and Fremont and Grand Rapids.</p>
<p>And it reminded me that the future is <a href="http://en.wikiquote.org/wiki/William_Gibson">never evenly distributed.</a> To consider a single centralized solution to the problems I saw across that cross-section, to imagine that the strengths and skills and beliefs and desires and intentions of all the people along that route as if they were identical or typical or average—or even <em>commensurate</em>—is foolhardy.</p>
<p>I drove past farm workers’ hovels outside Fremont, and sprawling mid-century colonial “cottages” along Lake Erie with lovely gardens tended by the owners, and empty shopping centers and lively downtowns. Antiquing towns (Grand Rapids, OH), recovering mill towns (Huron and Lorain), unchanging but <em>subtle</em> suburbs like Avon Lake, ramshackle lost towns like Sandusky.</p>
<p>Through the years I’ve ridden the roller coaster of early-adopter-enthusiasm five or six times, and every time that enthusiasm is supplanted by hip-rats-leaving-the-sinking-ship <em>you don’t understand what we were trying to do</em> griping. I do it. People around me do it. And it’s finally starting to sink in that there’s nothing quite so dangerous as the glib mapping of one’s personal worldview onto the actual world.</p>
<p>Not news, sure. But I think it’s worth an effort to be reminded.</p>
<p>I ended my meandering musing drive at <a href="http://seedcoworking.com/">Seed Coworking</a> in Toledo, who had an open house to show off their location and thank/solicit <a href="http://www.kickstarter.com/projects/seedcowork/seed-coworking-community">Kickstarter supporters</a> (which I am one of). </p>
<p>I stood around yammering like an idiot with some Toledo folks I overheard talking about “getting an agile group together”, including a nice man with a startup, and some Seed folks, and a fellow from BGSU.</p>
<p>And the Toledo folks made Ann Arbor sound so cool. I wish I could visit that Ann Arbor some day.</p>
<p>It’s funny how folks think of our provincial little mill town of Ann Arbor as if we were an edgy revolutionary thought leader, and not a city wannabe that’s never felt any real economic pain. Instead of a town <em>run on the principle</em> that Townies are early adopters and founders of New Polite Liberalism, and that these new people and kids who come in here trying to <em>build buildings</em> and <em>rent apartments</em> are just ignorant newcomers diluting the pure vision of our little Town of the Mind.</p>
<p>It’d be funny if it weren’t sad. It’s what drives people away, that sentiment.</p>
<p>In a word: “conservatism”. Not the ridiculous pastiche floating around in political circles these days, but the Burkean kind that’s well-meaning and frugal at its best, that honors diversity and letting people have their own reins. But it’s run through with the anger and melancholy you feel when you realize your kid isn’t just acting out, she’s making <em>bad decisions</em>, and also a dose of the eye-rolling you do when an earnest touchy-feely person says they want to start a company that’s the next Google, as soon as they find a technical cofounder to work with.</p>
<p>It’s the same sentiment that makes you dismiss the small successes of people around you, as you are busy striving to preserve or revive Fundamental Truths.</p>
<p>Because you really did have a good idea, once. You had the best intentions in the world, but after a few years you got <em>tired</em> of being the lone voice in the wilderness. And now these newcomers, these mundane folk who say they’ve heard something that sounds an awful lot like what you were trying to say back when you still cared?</p>
<p>Well, they’re <em>too late</em>, as far as you’re concerned. It’s <em>not the same</em>, they’re missing the point, they’re diluting your crystalline ideas.</p>
<p>But I am reminded: It’s <a href="http://en.wikipedia.org/wiki/Ironism"><em>never</em> the same</a>.</p>
<p>Go visit somebody new. Things are different somewhere else. And when you get back home, maybe things will be different there, too. Especially if you feel strongly that a revolution is called for: perhaps there is one going on there, or will be here when you get back.</p>
<p>Or maybe it already came and went, and you just missed its threads out there on the face of the world. Maybe it’s been happening, here and there, all along.</p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/04/15/transverse-section-shows-multiscale-detail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on modeling Requirements/Product Design</title>
		<link>http://williamtozier.com/slurry/2012/03/24/more-on-modeling-requirementsproduct-design</link>
		<comments>http://williamtozier.com/slurry/2012/03/24/more-on-modeling-requirementsproduct-design#comments</comments>
		<pubDate>Sat, 24 Mar 2012 15:05:41 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[complexology]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3362</guid>
		<description><![CDATA[Had a very nice and rambling conversation with Ron Jeffries at the Brighton Agile Round Table yesterday, where we talked all around the two straw men models of “Strict Waterfall Project Management” and “Absolute Agile Project Management”, in light of &#8230; <a href="http://williamtozier.com/slurry/2012/03/24/more-on-modeling-requirementsproduct-design">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Had a very nice and rambling conversation with <a href="http://xprogramming.com/index.php">Ron Jeffries</a> at the Brighton Agile Round Table yesterday, where we talked all around the two straw men models of “Strict Waterfall Project Management” and “Absolute Agile Project Management”, in light of the <a href="https://github.com/Vaguery/Agile-Sim">complexological model I’ve been sketching</a>.</p>
<p>Mostly there were interesting reactions and clarifications to be made on the “analysis” end of the model, so I’m going to focus there for the moment. Recall that the point of this exercise is to craft a complex systems-y model of “project management” that’s flexible enough to include the “Waterfall” storyline and the “Agile” storyline, keeping track of <em>costs</em>, <em>time</em> and <em>features</em> and… what’s the other one? Oh yeah, <em>quality</em>. [joke!]</p>
<p>So <a href="http://williamtozier.com/slurry/2012/03/11/requirements-design-implementation-verification-maintenance">as you’ll recall</a>, I started (as any heir to Stu Kauffman would) with a Random Boolean Network to represent the “ground truth” of what people want. Originally, I’d sketched this as the <em>dynamics</em> of an RBN, with the “product” being built trying to predict and match the dynamics of the market’s whims. Seems that’s not a very comfortable analogy to draw: where I was seeing the time-series of interconnected dynamics of many features “as” a correlated feature, the language we use to talk about software projects very strongly emphasizes features as <em>fixed structure</em>, and user experience as the dynamic thing. So the sense of Product trying to <em>match the twinkling lights</em> of Market is tricky.</p>
<p>On the other hand, I have to set my heels at the idea of features-as-atomic-traits, since after all I’m ultimately aiming to model <em>development</em> and <em>team learning</em> as features are built and revised, and patterns are learned and re-used. So I’m not willing to drop the RBN’s complexity all the way back to a more “traditional” Kauffmanian static Nk model of a fitness landscape. Not that there isn’t a lot of nice tunable ground to be covered in fitness landscapes and stuff, but because <em>software is used</em>, it doesn’t just have attributes.</p>
<p>So here’s what we’ll try next:</p>
<p>Suppose that the <em>ground truth</em> of what the Market wants is determined by a Random Boolean Network. But not in the sense I described before, where the desired features are only evident via dynamics, and the goal is to build a product that mimics those dynamics. So no more “twinkling lights”.</p>
<p>Instead, consider the RBN to be the (secret) map of <em>Market expectations</em>. The Market will <em>pay</em> (or <em>cost</em>, in some cases) a certain amount for every Product feature which <em>works in the same way as the ground truth expectation</em>. But in this new version, the Market is not actively generating some kind of light-twinkling trace of data <em>for</em> the Team now, it’s just willing (for a price) to answer questions about its preferred outcomes.</p>
<p>Think of every possible transition of N input bits to N output bits as a <em>use case</em> over the N input features. “When the browser is open to the home page, AND the user field is empty, AND I click ‘log in’, AND I do not have a cookie set, THEN this other stuff should happen….”</p>
<p>A <em>perfect</em> Product will produce all the same output strings as the explicit Market function does, for all <img src='http://s.wordpress.com/latex.php?latex=2%5EN&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='2^N' title='2^N' class='latex' /> inputs. Any given Product <em>earns</em> money in proportion to how well the released features match the Market’s target desires.</p>
<p>But the Team only has access to aggregate income information, unless they pay for <em>marketing</em>.</p>
<p>There’s a lot of leeway here. Suppose a Team playing the low-hanging-fruit game comes along, and they release a Product that is just a <em>constant</em> output, say <tt>1111100000</tt>, the ultimate in “you can have any color car, as long as it’s black.” <em>They might just make some money</em>, since there’s a chance the underlying Market desire is biased that way.</p>
<p>Although I don’t have any interest to do it in this model, I have to note there’s an opening here for exploring “market dynamics” in such a world. A slightly smarter Team (in the same Market setting) might come along and release something that is just as dynamically dumb as the <tt>1111100000</tt> folks, but <em>better matches the average desired output for each feature</em>. They’ll make more. Some innovator may well come along and release a product that pays attention to some inputs, maybe first-order interactions. They’ll make a killing.</p>
<p>But today I want to focus on the process <em>within</em> a Team, not the dynamics of a full market populated by Teams with different strategies and capacities.</p>
<p>Now I’m reminded that the models of project management (at least the ones we’re used to) will include some big block process labeled “analysis” or “marketing” or “project management”, and since Agile project management implies <em>holistic adaptation</em> that should include market research on the Team <em>whenever</em> market research generates business value, we’d better include that block in our model.</p>
<p>Call it Requirements Gathering (or maybe Refinement, if you want to imply the inclusion of the traditional “Maintenance” functionality, as we should in an Agile Team). Let’s give them <a href="http://en.wikipedia.org/wiki/Requirements_analysis">some tools</a>.</p>
<p>How about <em>interviews</em>? Say each interview costs a certain amount of money and time, and the Team’s analysts can (with 100% confidence) elicit one input-output combination from the Market. “If you’re <tt>1011100011</tt>, what will you do next?” To me, this has the metaphoric capacity to handle people <em>not knowing until they’re asked</em>, and also <em>revelation of only indirect information</em>.</p>
<p>An interview like that should be expensive, I think. How about A/B testing, or more generally <em>polling</em>? “If you’re <tt>1001101111</tt>, which of the following do you <em>prefer</em> as the outcome, <tt>1011100011</tt> or <tt>1100000011</tt>?</p>
<p>Then of course there’s <em>sales data</em>, for situations in which there is in fact a Product already released: As I mentioned, even a very dumb product that fills <em>some</em> roles slightly better than the ones it messes up has the capacity to provide historical information (and revenue to pay for improvements!).</p>
<p>Now this brings up one more change from the previous iteration of this model: Revenue.</p>
<p>In the first version, I proposed a model in which each feature had an intrinsic <em>positive value</em>, and a released Product collected that value during every time period where it matched the intrinsic Market dynamics. We don’t have Market dynamics now, we have a Market that’s a <em>black box</em>.</p>
<p>The baseline in this old one was “you make nothing”. I’ve rethought that, too; let’s throw a monkey wrench into our Team’s world, and allow features to be <em>negatives</em> as well as positive desires. In other words, whenever a feature with a <em>negative</em> value is matched, the Team loses money.</p>
<p>So where are we now?</p>
<p>Let’s say the Product is some kind of function that takes <img src='http://s.wordpress.com/latex.php?latex=N&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='N' title='N' class='latex' /> <em>generalized</em> Boolean inputs and produces (coincidentally) <img src='http://s.wordpress.com/latex.php?latex=N&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='N' title='N' class='latex' /> <em>generalized</em> Boolean outputs. The space of inputs is all <img src='http://s.wordpress.com/latex.php?latex=N&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='N' title='N' class='latex' />–bit binary strings, <em>generalized</em> to include <tt>#</tt> or “don’t care” inputs where an input is ignored, and the output space is all <img src='http://s.wordpress.com/latex.php?latex=N&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='N' title='N' class='latex' />–bit binary strings <em>generalized</em> to include <tt>?</tt> or “unset” outputs, when an output bit is not explicitly set to either 0 or 1.</p>
<p>Take a second here. We can therefore say a Team “starts” (having done no work thinking about or developing any Product at all) with a “default” Product that ignores all inputs and produces no outputs: <tt>###…### -&gt; ???…???</tt>. They aren’t earning or losing any money because their Product has no visible features to capture (positive or negative) Market share.</p>
<p>Suppose after some development time a Team releases a (rather stupid) Product that implements <tt>###…### -&gt; 111…111</tt>; in other words, it always returns <tt>1</tt> for every feature. How much money do they earn?</p>
<p>We determine this either by <em>doing the math</em> or by <em>sampling</em>. We know the ground truth Market function, a large and rather complicated truth table. If we want to do the math, we can convert it into a cumbersome probability function, and just assume that the diversity of <em>people</em> in the market is absolutely uniform: that is, that people will “use it” by applying every possible input. Alternately, we can <em>sample</em> this space (using the same assumption of uniformity) by taking 1000 or so random bit-strings as inputs, and counting up how much revenue the Product generates (or loses) by matching those features.</p>
<p>Suppose in our example there are 21 features, and that the value of the first is <img src='http://s.wordpress.com/latex.php?latex=-%5C%2410&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-\$10' title='-\$10' class='latex' />, the second <img src='http://s.wordpress.com/latex.php?latex=-%5C%249&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='-\$9' title='-\$9' class='latex' />, and so on, with the 21st providing value of <img src='http://s.wordpress.com/latex.php?latex=%2B%5C%2410&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='+\$10' title='+\$10' class='latex' />. The Product that returns <tt>1</tt> for every input will lose $10 for every <tt>1</tt> in the first feature’s output table, and earn $10 for every <tt>1</tt> in the 21st feature’s output table. So it’s just a matter of counting to determine how profitable it turns out to be.</p>
<p>Just to make it clear, suppose some other <em>specialized</em> Team releases a Product that does a <em>perfect job</em> at only one feature whose intrinsic value is $4. It will earn the Team $4 for every possible input combination, regardless of the other features; no money is lost or gained for features that are not present, or do not match desired outputs.</p>
<p>More later; time for lunch!</p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/03/24/more-on-modeling-requirementsproduct-design/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Requirements, Design, Implementation, Verification, Maintenance</title>
		<link>http://williamtozier.com/slurry/2012/03/11/requirements-design-implementation-verification-maintenance</link>
		<comments>http://williamtozier.com/slurry/2012/03/11/requirements-design-implementation-verification-maintenance#comments</comments>
		<pubDate>Sun, 11 Mar 2012 13:46:28 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[complexology]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3260</guid>
		<description><![CDATA[Spent a few cycles yesterday thinking about Laurent Bossavit’s provocation, and while I’m having fun gettin’ all complexological after so many years away from the Santa Fe Style, I’m increasingly confident it’s not quite what he was asking for. After &#8230; <a href="http://williamtozier.com/slurry/2012/03/11/requirements-design-implementation-verification-maintenance">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Spent a few cycles yesterday thinking about <a href="http://williamtozier.com/slurry/2012/03/06/how-would-one-compare-agile-to-other-software-development-convincingly">Laurent Bossavit’s provocation</a>, and while I’m having fun gettin’ all complexological after so many years away from the Santa Fe Style, I’m increasingly confident it’s not quite what he was asking for.</p>
<p>After all, complex systems models <em>offer no predictive value</em>, except in the sense that they provide insights into models’ intrinsic consequences. As with Genetic Programming vs Statistics, agent-based complex systems models are useful only insofar as they <em>surprise</em> and <em>inspire further models</em>, not as tools interacting with the “real world”.</p>
<p>At any rate, I’m finding it a useful exercise.</p>
<p><a href="http://github.com/Vaguery/Agile-Sim/tree/e4ccb5e2130e0914acb07ceb67f092eaa05d2802">Here’s where I am now, as of this writing</a> (link to old commit).</p>
<p>Personally I’m confident that the toolkit of complexological modeling is eminently practical; Nk models, Boolean networks, agent-based simulation, all the rest is in my blood, so the design patterns are so obvious to me that I can slap something together in a few minutes. But it’s interesting as I talk with folks (Laurent and Ron Jeffries, among others) about this little sketch, how often my correspondent wants to drop my modeling toolkit back down to the familiar level of aggregative statistics, or stock-and-flow continuous-valued systems models.</p>
<p>Subjectively, when folks ask for something so intrinsically focused on <em>story-telling</em> to be “simplified down to cleaner math”, it fees a lot like when old-school programmers ask to use Integer values for Boolean values (“-1 is false!”), or when I see simple structs of primitives used instead of full-fledged objects in an object-oriented language. Something about habits and familiarity, surely, but also an utterly different sense of elegance and purpose, of <em>craft</em>, creeping in.</p>
<p>(Which is interesting, and worth watching over time. Something very similar comes up when <a href="https://www.facebook.com/note.php?note_id=362494960450041">I read this</a>.)</p>
<p>At any rate, a <a href="http://en.wikipedia.org/wiki/Boolean_network">Boolean Network</a> feels like a nice, tunable model of a complex world with hidden internal structure. In addition to tunable internal complexity, one can always add externalities, noise, structural dynamics, all sorts of things that <em>model</em> the way we treat error and uncertainty in the real world much more authentically than merely adding some normally-distributed epsilon to a number.</p>
<p>But there’s an interesting modeling choice before me, now, and I’m thinking aloud about it. As you’ve read, I’ve sketched a world with useful tunable parameters; I’ve sketched a comparison (“waterfall” vs “agile” as variations in timing and order of staged work). But one does want one’s simulated “Team” to be <em>able</em> to do that work in a reasonable way.</p>
<p>So what <em>is</em> “requirements gathering”? Or <em>design</em>, or <em>coding</em>, or <em>testing</em>? As happens  now and then when building complex systems models, the question is not “What do people really do?”, but rather, <em>What is the simplest convincing mimic of what is implied by a story in which we say, ‘Five requirements have been gathered’?</em> Or, <em>Sixteen designs have been considered,</em> or <em>Eleven tests have been created and run</em>?</p>
<p>I have some notions, as you can see in my notes at GitHub. But there’s also this feeling that people brought up in the classical mathematical modeling world (the one that perfuses computer science as well) will probably raise their eyebrows. One is brought up to think of variables as <em>primitives</em>, and of interactions not as algorithms but as <em>equations</em>. One is trained by decades of expensive computing and resource limitation to assume that aggregation takes place properly <em>within</em> a model, using stocks and flows and aggregative measures and statistics, derivatives and averages all over—and not to see each <em>instance</em> or <em>run</em> of a model as being contingent.</p>
<p>This is a kind of premature optimization that I haven’t heard remarked before. But I think it’s close to the core of what makes “complexology” <a href="http://en.wikipedia.org/wiki/John_Horgan_(American_journalist)#.22The_Death_of_Proof.22_and_The_End_of_Science">abhorrent unto the journalist</a>. And what’s interesting is that it’s coming from nerds who have almost certainly dabbled a bit with these alien, thrilling, complexological models: implemented a <a href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life">Game of Life</a>, for example. </p>
<p>And yet I think most haven’t realized that <em>contingency</em> and <em>subjectivity</em> are baked right in. <strong>Protip:</strong> On average, over long time scales, <em>all Game of Life runs are empty</em>.</p>
<p>Maybe nobody’s pointed that out before. I think they probably ought to have done so. <img src='http://williamtozier.com/slurry/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/03/11/requirements-design-implementation-verification-maintenance/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>How would one compare “agile” to “other” software development usefully?</title>
		<link>http://williamtozier.com/slurry/2012/03/06/how-would-one-compare-agile-to-other-software-development-convincingly</link>
		<comments>http://williamtozier.com/slurry/2012/03/06/how-would-one-compare-agile-to-other-software-development-convincingly#comments</comments>
		<pubDate>Tue, 06 Mar 2012 12:42:02 +0000</pubDate>
		<dc:creator>Tozier</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[pragmatism]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://williamtozier.com/slurry/?p=3230</guid>
		<description><![CDATA[Laurent Bossavit says in passing @Vaguery I’ve been toying with the idea of building simulations of sw projects for years now, &#38; looked at Abdel Hamid’s work, but it’s hard. — Laurent Bossavit (@Morendil) March 3, 2012 This is an &#8230; <a href="http://williamtozier.com/slurry/2012/03/06/how-would-one-compare-agile-to-other-software-development-convincingly">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bossavit.com/">Laurent Bossavit</a> <a href="http://twitter.com/#!/Morendil/status/175922225378099200">says in passing</a></p>
<blockquote class="twitter-tweet tw-align-center" data-in-reply-to="175912695118311424"><p>@<a href="https://twitter.com/Vaguery">Vaguery</a> I’ve been toying with the idea of building simulations of sw projects for years now, &amp; looked at Abdel Hamid’s work, but it’s hard.</p>
<p>— Laurent Bossavit (@Morendil) <a href="https://twitter.com/Morendil/status/175922225378099200" data-datetime="2012-03-03T12:35:01+00:00">March 3, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>This is an interesting proposition, but having looked over <a href="http://scholar.google.com/scholar?hl=en&#038;as_sdt=0,23&#038;q=abdel-hamid+software">the work of Abdel-Hamid</a> a bit, I’m wondering if we might consider a more <em>agent-based</em> approach.</p>
<p>The organizational behavior and systems-dynamics framework we see in that corpus is admirable and interesting, but one has to admit it’s focused on aggregate behaviors of “developers” and “management” observed from the standpoint of a corporate planner stakeholder. I don’t feel obliged to have that conversation any more.</p>
<p>What does one want to explore? The things that <em>set apart</em> agile projects from inagile ones, I suppose: Risks of the many modes of failure; adaptability; scaling; work load; business value delivery rates and probabilities; subjective experience; knowledge sharing; something about the many stakeholders (“management”, “team”, “customer”, “users”)?</p>
<p>All possible. I’ve had some incidental conversations with <a href="http://xprogramming.com/index.php">Ron</a> and <a href="http://www.hendricksonxp.com/">Chet</a> about this, too, over the years. Maybe it’s time to pursue it a little ways….</p>
<p>But what does one want to compare?</p>
<p>Who are you, and what do you want?</p>
]]></content:encoded>
			<wfw:commentRss>http://williamtozier.com/slurry/2012/03/06/how-would-one-compare-agile-to-other-software-development-convincingly/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

