Inspect and Adapt – A Fable

There once was a carpenter building a metal box. Try as he might, he couldn’t get nails to stick into much less attach two pieces of metal.

Apparently, other people were having a lot of success using nuts and bolts. So he got some.

Hammer as he might, all he ended up with was dented metal and bent bolts.

Tools - collage made with Ript

So he consulted an expert. Careful observation indicated the expert used a screwdriver. Great! He happened to have one in his toolbox.

He noted that the useful part of a screwdriver was the slotted tip at the end. So, he cut it off and taped it to the head of his hammer.

After one strike, the tip broke off and fell to the floor.

“Boy, my hammer is really letting me down,” he thought to himself. “I guess I’ll have to use the whole screwdriver.”

He went to the store and bought another one.

Once he got home, the man held it in his hand. It didn’t feel right. Any decent tool has a grip that goes at right angles to the head. He found a piece of wood and attached the screwdriver to the end.

That felt a little better but the screwdriver was very light. No decent tool was that insubstantial. So he attached a weight to the tip. That felt better! Now he was making progress!

Confident in his tool, the man pounded away at more bolts.

He managed to make a dozen deep scratches and bend several bolts before the screwdriver broke.

“That was worse than before! Screwdrivers are really overrated and it took so much work before I could even use it, ” the man said to himself.

“I’m not making that mistake again. I’m going out and get a really good hammer!”

Scrum Gathering – Agile and Ethics

I’ll be presenting two talks at the November Scrum Gathering.

One of them is dear to my heart. I’ll be using this blog over the next few months to work up my ideas and document conversations I have around this topic.

The Ethics of Scrum and Agile Software Development.

Here’s what I proposed:

Presentation Description

Are Scrum and XP inherently ethical?

In the face of contradictory beliefs over what we do and how we do it, we software developers, agile or not, experience pressure to compromise our work and our due care for others. Meanwhile, as our products become more beneficial, more pervasive and inter-connected our potential to harm grows.

Attempts by the ACM and IEEE to engage us in a dialog on norms of conduct has resulted in a controversial code of ethics that borrows heavily from established engineering disciplines – mandating specifications to ensure effective software.

We, agile software developers are making an under-appreciated contribution to ethical practice in our field.

Whether our work is a profession or craft, we need to engage the larger community in a conversation about how our day to day actions affect our employers, our peers, and our society. This presentation will attempt to frame professional ethics in the context of agile values and practices.

Why is this topic of interest to Scrum Gathering attendees?

The discussion over norms of ethical conduct happens outside the earshot of most working developers. The day to day experience of Scrum practitioners is at a distance from those who concern themselves with software ethics.

As a Scrum community, we have a responsibility to help shape the expectations placed upon us by others. We cannot delegate our integrity. Nor can we defer concerns over negligence, recklessness, or intent to harm the human beings who use the systems we create. We openly discuss our projects, our working conditions, and our advancement but to protect those very interests we often deal with issues of conscience privately.

Yet the passion behind Scrum is, in part, an idealistic one – a hope that by dealing openly and responsively with our stakeholders we will build something of real value. We need to harness this idealism to encourage each other make better decisions in the interests of stakeholders who do not pay us and do not always have a seat at the project table.

Given the downstream effect ethical lapses large and small have on society, we need to engage in this discussion or have the wrong solutions imposed upon us by employers, institutions, and regulatory agencies.

Presentation Objectives

  1. Is it important for us to establish a shared commitment to ethical conduct?
  2. What obligations a software developer should feel beyond fulfilling the requirements of their employer?
  3. How the Agile Manifesto and Scrum/XP practices suggest a partial set of norms of ethical conduct.
  4. How agile organizations have started to provide their own statements of principles to extend agile values and encompass conduct towards our peers and society.

PersonalDNA

I’m a fan of personality assessments as a kind of casual gaming. I’ve had to take them for work but never used them as a manager except as a kind of team diversion.

In that casual, don’t take it too seriously vein, my boss pointed me to PersonalDNA. They have a fun UI for teasing answers out of you, provide fun and flattering results and an interesting, abstract way of badging.

Dysfunction in a Word

Handoff
Creative problem solving as rote mechanical construction. Twist the wrench and pass it on.

  • forces sequential phases, “first we determine what it looks like then we figure out what it does.”
  • forces development in horizontal rather than vertical layers, i.e. “we’ve spent weeks coding but none of it does anything yet. We’re almost done though”
  • forces thinking in schedules instead of priorities, “I’ll have my part done in two weeks. What is it again?”
  • silos workers from each other, “What are you working on? Well, anyway, goodnight.”
  • ensures workers don’t have big picture, “Her copy doesn’t fit in my div based on his mockup. It’s not my fault.”
  • encourages hierarchies and coordination overhead (chicken husbandry), “My manager will get with your manager”
  • enourages narrow specialties instead of versatility and craftsmanship, “He does jpegs and gifs. She does html, css, and javascript. She does C# and Java. None of us actually build applications. By the way, did I already say it’s not my fault.”

Approval

    Distill complex interactions into a pretty picture. Take authoritative guidance from someone who’s only spent 15 minutes thinking about the problem.

  • encourages passive, diffuse product ownership, “you’re on the hook but they’re the deciders”
  • locks in premature commitments, “I put aside $10K for database integration”
  • invites arbitrary changes. “make this bit here blue”
  • creates low-value artifacts that lie, “sure it will work just like the wireframe.”
  • rewards promises over performance, “it will do everything I say, cost $40K, and be done in one month.”
  • bakes failure in, “how did we end up with this late, expensive hunk of junk?”

Getwith

    offensive getwith: “you need to getwith Joe on this.”

  • forces input from people with authority, no accountability and no direct contribution — like being made to run around with a target on your back
    defensive getwith: “Does Joe agree with this decision?” “I gotwith him on it.”

  • ask someone to attend one meeting, characterize them as agreeing with anything you do after that — like pulling a target of your back and sticking it on someone else’s

Any additions?

Women & Agile Development (revisit)

ACM Technews referenced this article from searchcio.com.au.

IT still trying to find what women want

The world is flat. Better go out and hire some women.

That seems to be the gist of a recent Gartner report on the gender gap in information technology

The article lists five gender-based traits CIOs should pay attention to when building IT staffs.

There’s a danger of drawing conclusions about individuals from differences in large samples. Just because men are statistically greater risk takers than women doesn’t mean I’m bolder than any particular woman. Or that she has better listening skills.

But at the level of an entire industry statistical differences are meaningful. Software would be better if we had collaborated and communicated better. Our products would be better if we had more empathy for customers and end users. Attracting qualified women into the field is a contribution to that end.

As the article suggests, the only appropriate way to do that in the context of a specific hiring decision is to include people skills as a requirement of the position, cast a wide net and hire the best candidate.

But you need to have a workplace and compensation package that is attractive to someone with people skills, technical chops and wants to give you their best at a sustainable pace.

To the argument that inviting women into a dysfunctional IT culture won’t make things better, I’d say that’s not my point. More women in IT is a hoped for result of humane workplaces — not a solution for creating them.

We have to work from within to make our companies better. In my software development team, our use of Scrum and XP has helped us do that. So far, my employer has been receptive.

I know that isn’t true everywhere. All I can say is those of us who have a choice sometimes have to make tough decisions about where we choose to collect our paycheck.