Obstacles to Agility

Obstacles to Agility
Joan Starr
Code4Lib 2007
Obstacles to Agility
1. What does agile mean?
2. What keeps us from being agile?
3. What can we do about this?
Total of 25 slides
What does “agile” mean?
Per the Agile Manifesto, 2001





Software is developed in short time-boxes
(“iterations”).
Each iteration results in functioning build.
The team values real time communication over
documentation.
The team--including programmers and subject matter
experts--is collocated.
Progress is measured in working software.
What does “agile” look like?






Your development plan/task list is in short, 1-to-4 week
iterations. A project is made up of many iterations.
At the end of each one, you generate a functioning build,
creating prototypes whenever possible.
Also at the end of each iteration, you identify what can be
done in the next cycle.
Your team includes a subject matter expert.
You work closely with your teammates, holding brief, standup meetings often.
You measure progress with complete iterations.
Why bother?
Short answer:
To solve problems for your users
more quickly and more frequently.
It’s also an exciting way to work…
Is this important?
“Our users expect simplicity and immediate reward and
Amazon, Google, and iTunes are the standards against
which we are judged.”
University of California Libraries’ Bibliographic Services Task Force, Dec. 2005
“Academic libraries might just have a window of opportunity to
leap into a future where we add value to our institutions in
ways we've never imagined before or are only beginning to
envision. But that window may already be in the process of
slamming shut.”
Roy Tennant, Library Journal, Dec. 2006
So…what keeps us from agility?




Academic culture: our dear customers themselves!
Project management practices
Institutional hiring processes
Our own work practices
Academic culture

Academic culture: a ‘non-participatory democracy’

Individuals do not want to be involved but do want
veto power.

Individuals do not want to be represented by anyone
else. They want a voice. Or not.
Academic culture
What this means:

It can be difficult—if not impossible—to identify a
small number of subject matter experts who can
represent the customer base at large.

Project teams end up working with large committees of
users. Committees of committees…
What keeps us from agility?




Aspects of academic culture
Project management practices: how we run things!
Institutional hiring processes
Our own work practices
Project management practices

Projects typically do not have a single individual or
committee that takes ownership responsibility for the
project’s outcome.

Major project decisions often require input from a very
diffuse decision-making structure.

Projects are allowed to drag on for years, sucking life
from all surrounding beings.
Project management practices
What this means:

Because no single entity can adjudicate conflicts over
requirements, schedule, or funding, many players must
be consulted. Time passes. Then, more time passes.

Individual team members have the life sucked out of
them.

By the time it is delivered, the solution is out of date.
What keeps us from agility?




Aspects of academic culture
Project management practices
Hiring processes…at the beloved institutions where we
work!
Our own work practices
Hiring processes
Hiring processes and systems built for the academic job
market are a bad fit for the technology market.

Many months elapse between the identification of a
staffing need and the start date of a new employee.

Some shops don’t even have administrative control
over their own openings.

Grant-funded staff members can’t be moved around as
project work might require.
Hiring processes
What this means:

Project teams are not able to get help when and where
they need it.

Projects are slowed; schedules are warped to less-thanoptimal configurations.
What keeps us from agility?




Aspects of academic culture
Project management practices
Institutional hiring processes
Work practices: time to look in the mirror…
Work practices

We value space and privacy over team collocation.

We don’t want to share work in progress.

We aren’t practiced in estimating how long it will take
to accomplish project tasks.

We measure progress, well… how do we measure
progress? Do we measure progress?
Work practices
What this means:

We lose time communicating/coordinating with people in
other locations.

We aim for perfection before getting feedback.

We can’t reliably predict what we can get done in the next
time block.

We may not be working on what our customers
want/expect.
What can we do about this?
1. Start small…
2. …with a new project…
3. …and introduce it as a pilot.
What can we do about: Academic culture

Create a project Steering Committee/Advisory Council,
with representatives from the stakeholding committees.
Establish the group expectation of decision-making.

Identify a subject matter expert to serve as a user
representative on the team. Give this person a
meaningful role.
Use the “Pilot Project” label to encourage adoption of
the new approach.

What can we do about: Project management

Identify a time-to-market goal, and review progress
toward this goal at the close of each iteration.

Implement first versions (with 80% of functionality)
quickly—in a few weeks or months.



Automate well-understood processes first.
Empower user representative as decision-makers.
Aim for functionality, not perfection.
What can we do about: Hiring & Staffing

No quick fix, so adopt a work-around strategy:




Look for trade possibilities with other tech shops in
your university system (“salary transfer”);
Establish standing relationships with contracting
agencies;
Use independent contractors.
Assign temporary workers to production support
activities, freeing up employees to do the cool (agile)
work.
What can we do about: Work practices
Learn about and practice
agile programming techniques.
Graphic from www.plunge.in
A few resources
The Agile Alliance: http://www.agilealliance.org/
Extreme Programming: http://www.extremeprogramming.org
Scrum: http://www.controlchaos.com
Dynamic Systems Development Model: http://www.dsdm.org
Questions?
[email protected]