Download - Agile Experience
1
Agile Experience
communication and collaboration in agile software development teams
a proposal by Elizabeth Whitworth25th May, 2006
2
Agile software development
grass roots, based on successful practice
deals with vague and changing requirements
developed with human needs in mind communication and collaboration
associated with high performance/synergy - (Beck, 2004)
3
Research motivation
Agile = warm fuzzy feelings
interesting social-psychological phenomenanot encompassed by current literature
4
Research quest?on
What is the experience of being in an agile
software development team?
5
Research quest?on revisited
What are the socio-psychological effects of agile practices on individuals within a software development team?
In particular, what agile processes contribute to positive feelings during software development?
How do agile practices structure and mediate the experience of individuals developing software?
In particular, how do agile practices mediate the interaction between individuals and the team as a whole?
6
State of the art
lots of practitioner literature on how mostly technical and managerial
little empirical research on why mostly behavioral, descriptive, or very low level
little research into subjective experience in work teams and software engineering
many possible connections psychology, computer supported cooperative work, small group
research
7
Conceptual framework
Teamworking‘Self-regulating’, ‘self-managing’, ‘high-performance’
sociotechnical systems theory“the study of the relationships and inter-relationships between the social and technical parts of any system.” - Coakes (2000)
systems thinkingholistic, emergent effects,
dynamics of regulation
8
Study focus: the agile system
I would like to study the agile system made up of individuals, agile
technology, and the group as a whole
Particularly the relationships between system entities
interdependenciesemergent effects, such as flow
feedback and feedforward mechanismseffects of technology
9
Expected findingsWarr & O’Neill, 2005
creativity and innovation
groups: collaborative vs. individual
effects due to production blocking, evaluation apprehension, and social loafing
countered by agile practices:open scheduling and collective code ownership
10
Method: grounded theory
empirically grounded in data
constant comparative method
emergent methodology - (Glaser & Strauss, 1967)
11
Data collection
semi-structured interviews
~15-20 individual software developers
analysis of agile tools
practitioner & psychological literature
12
Data analysis
open and axial coding (Strauss & Corbin, 1990)
interpretive analysis (Charmaz, 1995)
theoretical sampling based on conceptual framework
13
Validation of findings
Grounded analysisconstant comparative method
Triangulationpsychological literature
Validation & feedbackfrom participants and agile community
14
Value of Study
Research approachsystems thinking holistic perspective
cross-level analysis in the social sciencessociotechnical perspective
Study Results
develop a rich description of subjective experienceidentify relevant psychological constructs make connections between theory and practice better apply agile in non-traditional contexts
15
thank you
any questions?
16
17
18
Expected results
How do agile practices effect action and interaction in software development teams…??
19
Software development
layers of complexity
creating system code
creating an integrated software product
coordinating teamwork
and resolving differences stakeholder requirements
20
Software development
an unstructured and complex problem solving activity
an intensely social design activity
traditional methodologies have been struggling in the /new/ economy
21
Agile software development
Development methodologies characterized by
focus on flow of value working software
iterative and incremental development
focus on people high levels of communication and collaboration
ability to deal with vague or changing requirements
22
Teamworking
Self-regulating, self-managing, high-performance teams: small autonomous teams that can quickly respond to change
originally a grass roots phenomenaassociated with the production industry
and quality of working life initiatives
process interdependenciessocial identity theory
importance of individual
23
Sociotechnical systems theory
“the study of the relationships and inter-relationships between the social and technical parts of any system.” - Coakes (2000)
importance of studying both human and technical subsystems
how does technology effect human interaction? how does human nature effect technology use?
find the best fit between technology, humans, and task
24
Systems Thinkinga system as a holistic entity
a unified whole consisting of more than the sum of its parts
emergent or synergistic propertiesresulting from component interactions
dynamics of regulationfeedback, self-organization, and recursive causality
Complexitycannot be reduced to simple cause and effect relationships
25
The agile system: human agency
Awareness human awareness crosses system boundaries
interaction between individual and group
Goal-seekingsocial systems are multi-minded systems
alignment of system and subsystem goals
26
Why subjective experience?
Teamworking literature originally associated with QWL initiatives
Managerial standpoint seems to encompass only part of the value of agile software development
Need to understand the general experience in order to pinpoint specific areas worth of more detailed study
27
Why grounded theorysoftware development is suited to naturalistic/ qualitative methods. Traditional research methodologies insufficient
(Fitzgerald, 2000; Nandhakumar & Avison, 1999)
empirical research is inconclusive in the area of teamworking there is little to no research regarding subjective experience
of software developmentLack of guidance as to which research/theory are relevant in
the context of software engineering
Offers empirical grounding for understanding
cross-disciplinary research area
bridge the gap between theory and practice
28
Particiapants
29
Data collection
30
Data Analysis
31
Scratch
32
Agile & self-regulating teamsdecentralized control
work in a very close team environment - face to face communication
10-15 peoplerespond to change
grass roots phenomenaassociated with:
motivation and worker satisfactionhigh-performance
33
34
35
Origins of Agile Software Development - The Problem
• Deficiencies in traditional software development– Inability to deal with vague and
changing requirements
• Standish Group research report: 31.1% of projects cancelled before completion
36
The Solution - “Lightweight” Software Development
• Rapid development, flexibility - responsive to change
• eXtreme Programming(XP), Crystal methods, SCRUM, feature-driven development, etc.
Enable successful software development in the face of vague or changing requirements
Fit the process to the project
37
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Individuals and interactions over processes and tools
Customer collaboration over contract negotiation
Working software over comprehensive documentation
38
Agile and HCI?
• Agile was developed by programmers to resolve programming issues.
• So far has not properly addressed UI design.
39
Sets of Agile Practices
• Short iterations and small releases
• Continuous integration and refactoring
• Constant communication and coordination
• Whole team mentality
• Customer involvement
40
Short Iterations and Small Releases
• Customer stories• The planning game• Iterations: 1-2 weeks• Releases are made often: 4-6 months• System is put into production before
solving the whole problem
Early, concrete, continuous feedback
41
Continuous Integration and Refactoring
• Daily/weekly builds
• Code is constantly integrated into the system (automated testing)
• Simple design - focus is current iteration
• Incremental/evolutionary design- No BUFD, but continuous refactoring.
Constant feedback and the flexibility to respond to changing business needs.
42
Constant Communication and Coordination
• Shared Workspace• Informative Workspace
– Information Radiators• Rapid Feedback
– Open lines of communication– On-site customer
• Pair Programming
Encourage knowledge sharing and openness to allow effective problem solving
43
Whole Team Mentality
• Shared leadership.
• Self organizing teams
• Collective code ownership
• 40 hour week/sustainable pace.
Develop respect and trust in the team. Encourage negotiation and innovation in problem solving.
44
What’s Special About Agile?
• It’s extreme: knobs turned up to 10
• It involves social change
45
Revisiting the ProblemAgile practices enable successful
software development in the face of vague or changing requirements.
The agile solution has grown to encompass a bigger problem…
the usability of software methodologies.
46
People Are Not Machines…• People are social creatures - we
need interaction, excitement, belonging to group, etc.
• People are effected by their context/ environment
People work through short, continuous feedback loops
–We are good at negotiating People want/need to be actualized? lead satisfying lives? add value?
47
People Are Often Treated Like Machines
Current methodologies and work places treat people as machines. - little social interaction
- long feedback loops
- lack of control
Taylorism - mass production: specialization, compartmentalization, repetition.
48
Lean Manufacturing• Lean thinking paradigm:
how can things be structured so that the enterprise does nothing but add value, and does it as rapidly as possible.
Agile is SD’s lean manufacturing
Social change: empowering the workers.