Posts

Showing posts from September, 2015

The Manifesto Didn't Start It All

Often it's not the meat of an agile criticism that bothers me, but the revisionism. I rather like the article by Nick Kolakowski , except for this: "Agile has its roots in the Agile Manifesto, the product of 17 software developers coming together in 2001 to talk over development methods" Likewise this by Michael Church : The “Agile” fad grew up in web consulting, where it had a certain amount of value:   Not quite. It got a name and a manifesto then, but it was a gathering of practitioners of "lightweight methods" (and one waterfall guy: Hi Steve) who gathered and wrote the manifest to describe what they had been doing for some time. All the agile methods of the time had been hammered out in real projects for years. XP, for example, was begun with the 3C project in 1993 and was being written about extensively in comp.object usenet group well before the web, and before it even had a name.  It was a collection of radical ideas at the time and wa...

Confirmation Bias and The Twelve-Day Technical Problem

Charlie is a developer. He's just been assigned/volunteered to take on an interesting technical challenge. It will involve research, learning, and experimentation so it is exactly the kind of assignment that most developers would love to have. It is a problem that will take at least 10 days to solve. This problem, by its very nature, is a 12-day problem. Forget that, and this story will mean nothing to you. If the solution to the problem was clear-cut and obvious, then it would already exist in a library or a book or in google or StackOverflow. It doesn't, to the best of Charlie's knowledge. Of course, he looked. This isn't Charlie's first rodeo. Vinnie is Charlie's manager. He's a smart fellow and has quite a bit of experience. He has a good sense of organizational dynamics and deadlines and an amazing memory for minutiae that escapes other managers. He can juggle tasks and schedules like a wedding planner and never misses crucial dependencies. He kn...

Making Data Relationships Obvious

When you are writing tests you end up using literals or hand-constructed data objects. However, using literals can obscure the meaning a little. Not horribly; most people can puzzle them out quickly enough, but you can make it easier on the reader. In most of these tests, the values are pretty much arbitrary, but the relationship between the values is essential. For instance, when checking that no bonus is given when sales is less than quota, I could state that sales is 10,000.00 and that the quota is 9,900.00.  Pretty much anyone could tell that the quota is less than sales here, right? But what if we made it really explicit?      double quota = 10000;      double sales = quota - 100; This is how I like to roll. For instance, in python:      event_date = datetime(2015,9,10)      later = event_date + timedelta(days=10)      earlier = event_date - timedelta(days=2) And how ...

Sick of Eating: Planning Stress

In 2014, a group of Industrial Logic consultants planned a group getaway to help gel the team. We are a massively distributed small organization, serving the worlds biggest customers from four or five continents. We had hired some new people, and we needed to assimilate together. At the cabin for a week, we could learn to work together. We were in a remote location with internet access, each other, and the food we carried in. We would do real work (mostly proposals) and in doing the work learn where our frictions and strengths are. Ideally, it would lead to self-coaching and we could leave a fully formed team. But What Will We Eat? Food planning was where we ran into planning stress. To begin with, we didn't want to spend days of effort on planning the food. Our time is expensive, and planning what we'd eat is not something we could afford days of effort on.   On the other hand, we needed good up-front planning, because we couldn't really change our minds once ...

Struggling is Not Lying

That Lying Hypocrite! When you see someone talk about the evils of smoking and then catch them having a smoke in the back yard, the cognitive dissonance hits. Your brain hates cognitive dissonance. You see someone talking about techniques for losing weight, tricks to avoid cravings, etc. Then you catch them mid-afternoon with a Hostess cupcake two-pack, a half-eaten bag of chips, and a Pepsi. That is when cognitive dissonance kicks in. Luckily your brain has an easy answer to cognitive dissonance in the Fundamental Attribution Error . One attributes behavior of others to personality rather than circumstances. By reaching for judgment and blame, the brain quickly settles the issue: because person does does the opposite of what he says, he is a hypocrite. The individual is either self-deluded or dishonest, so let the shunning and shaming begin! That's not necessarily how it works though. Rather, That Brave Soul! A person who struggles to change and suffers setbacks is ...