Supporting
Agile Software Development With
Agile Team Work Space
Marty Anderson
EVP Workplace Research and Design Ratekin Consulting LLC
2012
2 Executive Summary
The pace of change in technology and competitive business pressures mean that companies spend billions of dollars annually to develop and modify software applications for both internal and customer-driven uses. To maintain competitive disadvantage, companies are increasingly exploring ways to reduce cost, improve time to market, produce higher product quality, and increase internal and external client satisfaction.
One solution is to increase the proportion of software development utilizing an agile development methodology. Today, a fraction of software
development is being done in an agile way with the range of 10% - 25%
reported by the case examples profiled in this report.
In the past, waterfall development methodology has been the dominate process. Serial in nature, it is highly reliant on well developed
documentation, and does not place a high premium on team member co- location as a key driver of success. As a result, typical associate space (offices, workstations and cubicles) supported by schedulable meeting space has provided an acceptable environment in which to operate.
By contrast, agile development requires continuous co-location of team members as a key driver of success. All phases of the process (planning, meeting, coding, QA/ Test, etc.) are conducted by the team within a dedicated space for the full duration of the project team’s existence.
The purpose of this paper is to develop and define the key design elements of future agile space solutions within the corporate environment. Measures of success include flexibility, adaptability within existing constraints, cost effectiveness, and speed of delivery. Current examples, coupled with industry best practices, inform these design elements and are expected to result in flexible solutions that help enable the principle objectives of reduced cost, improved time to market, higher product quality, and increased internal and external client satisfaction.
This report will do the following:
1. Document case examples of agile work environments
2. Identify the work patterns and key processes of the team and space solutions that enable success
3. Define key performance characteristics and design features that provide
flexibility, cost effectiveness and lead to higher levels of team productivity
3 History and Background
Agile software development refers to a group of software development
methodologies that promotes development iterations, open collaboration, and process adaptability throughout the life-cycle of the project. It chooses to do things in small increments, with minimal planning, rather than plan at length.
This helps to minimize the overall risk, and allows the project to adapt to changes more quickly. There is also an emphasis on stakeholder
involvement. Meaning: At the end of each iteration, the stakeholder is consulted about the product and feedback is integrated.
There are many agile development methods; most minimize risk by developing software in multiple repetitions (or 'iterations') of short time frames (known as 'timeboxes'). Software developed during one unit of time typically lasts from two to four weeks. Each iteration passes through a full software development cycle, including planning, requirements analysis, design, QA testing, then coding until the unit tests pass and a working product is demonstrated to stakeholders. This helps to minimize the overall risk, and allows the project to adapt to changes more quickly. At the end of each iteration stakeholders re-evaluate project priorities with a view to optimizing their return on investment.
Principles behind Agile methods
Some of the principles behind Agile
[1]are:
• Customer satisfaction by rapid, continuous delivery of useful software
• Working software is delivered frequently (weeks rather than months)
• Working software is the principal measure of progress
• Even late changes in requirements are welcomed
• Close, daily cooperation between business unit representatives and developers
• Face-to-face conversation is the best form of communication, enhanced by co-location
• Projects are built around motivated individuals, who should be trusted
• Continuous attention to technical excellence and good design
• Simplicity
• Self-organizing teams
• Regular adaptation to changing circumstances
4 Agile contrasted with the waterfall model
Even now, the waterfall model is still in common use. The waterfall model is the most predictive of the methods, stepping through requirements capture, analysis, and design, coding, and testing in a strict, pre-planned sequence.
Progress is generally measured in terms of deliverable artifacts: requirement specifications, design documents, test plans, code reviews and the like.
Waterfall is the most dominant methodology used in Fidelity today.
Agile methods, in contrast, produce completely developed and tested features (but a very small subset of the whole) every few weeks. The emphasis is on obtaining the smallest workable piece of functionality to deliver business value early, and continually improving it/adding further functionality throughout the life of the project.
Suitability of agile methods
Some things that can negatively impact the success of an agile project are:
• Large scale development efforts (>20 developers)
• Distributed development efforts (non-co-located teams)
• Command-and-control company cultures
• Forcing an agile process on a development team
Several successful large scale agile projects have been documented. British Telecom, BT, has had several hundred developers situated in the UK, Ireland and India working collaboratively on projects and using agile methods
[2]. While questions undoubtedly still arise about the suitability of some agile methods to certain project types, it would appear that scale or geography, by themselves, are not necessarily barriers to success.
References
1. ^ Agile Manifesto principles
2. Using an Agile Software Process with Offshore Development
5 Key Criteria
One factor in the success of agile programming processes is the close, daily cooperation within the team and between business customer and developers.
In its purest form, the team is co-located to allow frequent and effective face-to-face conversation to save time and improve understanding at every step of the process. A model has developed in which the entire team is
placed in a group work space called an “agile team room”. This team room is the primary workspace for each team member for the duration of the project Field studies experimenting with putting teams in agile team rooms showed a doubling of productivity, in part, because of the team’s easy access to each other to coordinate their work, learn from each other and keep the work product visible to all. The proximity of team members supports constant communication and overhearing each other which promotes spontaneous help, clarification and correction thereby avoiding wasted effort.
Observations showed nine different types of work occur within the team.
Recognizing these various types of work informs the planning of spaces that will support the team by maximizing the benefits of co-location and
minimizing its challenges.
Nine Kinds of Work in the Agile Team Space
11. Discussion to acquire customer input 2. Discussion of a political issue
3. Problem solving at the whiteboard
4. Status meeting using the to-do list (usually on a flip chart of whiteboard).
5. Team building discussion (social) 6. Training
7. Simultaneous problem solving meeting (subsets of team members) 8. Working solo (typically coding)
9. Private conversations with outsiders
The downside of constant communication and interaction is distraction. The level of distraction varies based upon the work being done and individual ability to tune-out distractions. Some team members report an adjustment period for working in a team space. From time to time, team members may need to retreat to quiet or separate space for some individual tasks or
private conversations (#8 and 9). In order to minimize the time away from the team, these spaces should be in close proximity of the team space. A list of performance criteria follow that should be used in the planning of the team workspace and address support for all nine types of work.
1