Scrum, XP, Management and the Ethics of Agile Software Development

software development

Constraints, metaphor and beauty

Ray Hood’s RCA/GE Building is the the tallest tower in Rockefeller Center.

Constructed in the depths of the depression the building derives beauty from a simple metaphor for the worker — carrying people efficiently and safely to a well-lit space.

“As each elevator shaft ended,” Hood explained in Architectural Forum, we cut the building back to maintain the same 27 feet from the core of the building to the exterior walls. By doing so we have eliminated every dark corner. — Great Fortune by Daniel Okrent

Hood’s design emerged from a set of constraints: the number of elevators required, the achievable height of an elevator shaft, and the distance one can sit from a window in New York and still receive natural light. The resulting setbacks thin the tower as it rises achieving elegance without ornament and lightness despite a massive stone facade.

What an achievement for a man who died at 53 while Rockefeller Center was still under construction.

But even the most expressive, inevitable metaphor loses coherence across implementers and over time. His fellow project architects crafted some blocky companion towers. Inside “30 Rock”, I’d bet seventy years of renovation have thrust some employees into the shadows.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Internet crime up 33%

From the Associated Press:

Binary WaveReports of Internet-based crime jumped 33 percent in 2008, according to a group that monitors web-based fraud.

The Internet Crime Complaint Center said in its annual report released Monday that it received more than 275,000 complaints last year, up from about 207,000 the year before.

The total reported dollar loss from such scams was $265 million, or about $25 million more than the year before.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

GhostNet

From the New York Times article, Vast Spy System Loots Computers in 103 Countries, by John Markoff

Intelligence analysts say many governments, including those of China, Russia and the United States, and other parties use sophisticated computer programs to covertly gather information.

The electronic spy game has had at least some real-world impact, they said. For example, they said, after an e-mail invitation was sent by the Dalai Lama’s office to a foreign diplomat, the Chinese government made a call to the diplomat discouraging a visit. And a woman working for a group making Internet contacts between Tibetan exiles and Chinese citizens was stopped by Chinese intelligence officers on her way back to Tibet, shown transcripts of her online conversations and warned to stop her political activities.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Outlook -> Office Online -> [insert icalendar hack here] -> Google Calendar -> Google Sync -> Blackberry

I have reason to want an exchange calendar sync’d to my blackberry. Problem being, the blackberry is not on that exchange server’s enterprise services and blackberry internet service doesn’t sync calendars.

Happily, Office Online offers the ability to publish calenders in an icalendar format. With Google Sync for Blackberry and Google Calendar I could subscribe and sync to my blackberry.

At some point, this broke.

Unhappily, it appears the Office Online feed has started failing in Google’s icalendar parser. It also fails in the iCalendar Validator by Steven N. Severinghaus.

Google has just released an Outlook add-in to sync calendars but I have restricted permissions to install software on my Outlook pc. So, I decided to try to solve this on my own.

Using http rather than webcal iCalendar Validator was able to flag the following:

Error: Error was: Error at line 68: Unparseable date: "2"

Looking in the feed, I found word wrapping breaking dates and guids:

EXDATE;TZID="GMT -0500 (Standard) / GMT -0400 (Daylight)":20090316T140000,2
0090323T140000

After finding other services that could parse the feed but none that would sync over the wire to my blackberry calendar, I wrote a short php script to make the feed comply with Google’s parser.

<?php
//request the icalendar file
$output = file_get_contents('http://[path to calendar ics file]');
//clean up the icalendar content
$output = preg_replace("/[\n|\r]+\t/m", "", $output);
//print out the result
echo $output;
?>

Now I can subscribe to the calendar via my script’s URL and google reads and syncs it to my blackberry. Happiness for now – at least until this kludge train derails again.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Oops… learning lessons over and over

Here are agile software development mistakes that kick my ass whenever I let them:

  • Know the assumptions in plans. Recognize when they change.
  • Don’t abuse time boxing. It is a toe hold for over-committing. When the time box ends, the work ends.
  • Doing Scrum means DOING SCRUM. Sloppy backlog. No Scrum. No Product Owner. No Scrum.
  • No iteration boundaries and no commitment doesn’t make me “lean”.
  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

More playing on – Learning Outcomes

Supplement to a doomed Agile 2009 proposal.

Learning Outcomes

  • To share with participants concepts in professional ethics
  • To tie the nature of ethical dilemmas to essential complexity and the means for tackling dilemmas to the practices of agile development
  • To emphasize the origins of agile practice in values and culture and to tie that to ethical imperatives
  • To identify gaps in agile values that prevent it from being a complete ethical framework – to broaden the definition of stakeholders
  • To challenge the common assertion that doing your job constitutes being ethical
  • To walk through real-world ethical dilemmas, and discuss possible actions and outcomes
  • To build the community of practitioners engaged in the topic and interested in supporting their peers through crises of conscience
  • To brainstorm tools and techniques for expanding the conversation to a broader community in a way that is safe, inviting, and does not violate our obligations
  • To engage the agile community in the larger development and academic community’s efforts to define ethical guidelines for us and potentially inflict them upon us
  • To discuss the growing potential for unintentional benefit and harm from non-safety critical systems
  • To discuss the potential for governmental intervention in response to some highly visible or damaging failure by software systems or software practitioners
  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

And the band played on…

So the proposal for Agile 2009 is not looking good. The open space format is being panned for being too loosely structured and open ended to compete for a 90 minute slot. I gather from the comments that the topic itself is also striking people as less than gripping.

Well, as my ship sinks I send of this waterlogged response:

The session proposed isn’t about open space it is for conversation on professional ethics in an agile context.

As described in the proposal, we would dedicate time at the outset to bring the participants into context on issues and concerns in the industry, the ethical premises of agile development, and to create a safe space in which to have this conversation.

Facilitated open space itself is a highly disciplined framework that differs from the open-ish as much as Scrum differs from Scrum butt. With all due respect, a discussion of real ethical dilemmas no longer belongs in Open Jam then a private and personal conversation belongs in a hallway.

I’ve presented on this topic at Agile and the Scrum Gathering and found the conversation surrounding the presentation more valuable to everyone involved because while the topic is esoteric, the lived reality of our personal values and crises of conscience is visceral. Something practitioners do not often have a chance to discuss with peers who share their point of view but not their co-workers and employer.

I am certainly willing to debate whether there are conflicts over values in an agile workplace, whether we do or should give a damn about the benefit and harm we indirectly propagate but do we have to engage on the premise that a lecture on ethics or role playing games about workplace dilemmas is a better fit for the topic, the Agile conference or the participants?

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Agile Principles and Ethical Conduct

My presentation from HICSS 42 – Agile Principles and Ethical Conduct.

The paper is here.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Demanding more of each other – Agile, Ethics, and Harm

In response to “Doc” and my proposal for an open space on dilemmas agilists face in the workplace, we’ve been asked what the ethical issues are around Agile and whether the topic is worth the three hours we’ve requested.

Agile is built upon a set of values. They are normative in that they declare certain behaviors and outcomes as better than others. They hint at a vision of who we ought to be and what we ought to be concerned about.

As we quoted before, Jim Highsmith believes agile is engaged with the “mushy stuff of values and culture”. At Agile 2008, Bob Martin declared agile to be no less than a rallying cry to free developers.

Ants by Pensiero on FlickrAs we strive to embody agile values in the world we will encounter dilemmas — tough, ambiguous decisions fraught with fears, limitations, risk, possible sacrifice and consequence to others.

As illustrated by the Scrum MLB simulation many of us have participated in, an intellectual understanding of agile practices doesn’t protect us from saying what people want to hear in order to get work, avoid conflict, or out of an earnest if self-defeating desire to please. Even in circumstances which offer no material stakes.

It’s more than falling short of ideals though, it is about how we fail to seriously consider these values in the first place — the hard shell of justifications for doing what we are told. I’m personally alarmed by the lack of reflection I see practitioners who take holding a job to mean we can proceed without consideration for co-workers , end users, and society — stakeholders who don’t pay our salaries.

Agilists are uniquely suited to contribute to emerging software ethical norms now largely defined by academics and waterfall practitioners (I say this non-pejoratively). We aren’t trying to refine human frailty out of the equation. We embrace essential complexity. We have techniques for reflection and continuous improvement. We turn community into our greatest strength.

But there is a conversation to be had about whether the stated agile values are enough. They don’t really speak to our obligations to our peers and our society.

Should we hold each other to higher standards? Can we challenge experienced practitioners to contribute to the field, create good will, mentor, and do good works? Should we abide self-proclaimed agilists who show no talent for initiative, courage, honesty, collaboration and love of team? Doesn’t their work reflect on us? Particularly since the growing demand for agile which they exploit is built upon the hard work of our peers and mentors?

Don’t we owe some responsibility to the reputation of our practice, the long term viability of our careers and our industry — in the interests of making software which benefits people more and harms people less — to demand more of each other?

This isn’t idealism, this is the demand society will make of us as our numbers grow and our works affect people’s daily quality of life. The pervasiveness and interconnectivity of technology and the growing dependency of ordinary people on software services is creating much greater potential for the average coder to create benefit and to unintentionally harm. There are historical precedents in fields of engineering, science, letters, and the arts where codes of conduct become hardened into enforced standards and even governmental regulation in reaction to some controversy or catastrophic failure.

Finally, we need a way to confide in each other about the actual dilemmas we face in the workplace. There are few safe spaces for community and peer coaching through the intolerable conditions some of us face. Whether it’s abuse, dishonesty, or some other harmful behavior by peers or the people who have power over us. I worked in a place (briefly and I do not list this place in my resume) where a pregnant developer quite two weeks into the job for fear of the health of her unborn child. Isolated and afraid for our livelihoods, this is a terrible time to be compelled by circumstances to do things that compromise our integrity or to sit silently while others face harm.

These are not conversations that should “presented”. This would be sanctimonious and unhelpful. Rather we need to consider these topics with humility as peers.

An open space lends itself to this. I’ll let Doc describe open space technology in more detail but it is a self-organizing process. You gather, give yourself the luxury of time and space to think and to discuss a pressing concern on your own terms with the people who choose to join you. The sessions flow and change as new topics arise and old ones wind down. Then the whole comes together to pull the experience into a coherent conclusion. The process is self-documenting with proceedings of the event created as you go, then collated and provided back to the attendees. All of this takes time. Whether the time is worth it is a matter for the participants themselves to decide.

I hope this helps explain my motivations for co-proposing this session. More feedback is greatly appreciated.

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter

Why solving ethical dilemmas is like building software

Here’s some grist for why we agilists can contribute to the conversation on software ethics and why it’s a fit topic for Agile 2009:

Handout notes I prepared for Agile 2008 drawing on the work of Jonathan Haidt and describing why ethical dilemmas have essential complexity per “No Silver Bullet.”

  • email
  • Print
  • Digg
  • Reddit
  • StumbleUpon
  • Google Bookmarks
  • del.icio.us
  • LinkedIn
  • Facebook
  • Twitter
ken h. judyExecutive manager, software developer, father and husband trying to do more good than harm.
Agile is about the material and human good we create when we respect our co-workers, tell truth to our employers, strive to improve, and care for the people affected by the software we help build.
CSPIEEE CSDP

Papers

Presentations

 

Site menu:


Meta

Creative Commons License
This work is licensed under a Creative Commons Attribution - Noncommercial - Share Alike 3.0 United States License.
Copyright © 2006-2010
Ken H. Judy.
This is a personal weblog. Views expressed are my own and not my employer.