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, stand-up meetings often. • You measure progress with complete iterations.
Why bother? • Short answer: To solve problems for your usersmore 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-than-optimal 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