agile experience

48
1 Agile Experience communication and collaboration in agile software development teams a proposal by Elizabeth Whitworth 25th May, 2006

Upload: sidney

Post on 23-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

Agile Experience. communication and collaboration in agile software development teams. a proposal by Elizabeth Whitworth 25th May, 2006. Agile software development. grass roots, based on successful practice deals with vague and changing requirements developed with human needs in mind - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Agile  Experience

1

Agile Experience

communication and collaboration in agile software development teams

a proposal by Elizabeth Whitworth25th May, 2006

Page 2: Agile  Experience

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)

Page 3: Agile  Experience

3

Research motivation

Agile = warm fuzzy feelings

interesting social-psychological phenomenanot encompassed by current literature

Page 4: Agile  Experience

4

Research quest?on

What is the experience of being in an agile

software development team?

Page 5: Agile  Experience

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?

Page 6: Agile  Experience

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

Page 7: Agile  Experience

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

Page 8: Agile  Experience

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

Page 9: Agile  Experience

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

Page 10: Agile  Experience

10

Method: grounded theory

empirically grounded in data

constant comparative method

emergent methodology - (Glaser & Strauss, 1967)

Page 11: Agile  Experience

11

Data collection

semi-structured interviews

~15-20 individual software developers

analysis of agile tools

practitioner & psychological literature

Page 12: Agile  Experience

12

Data analysis

open and axial coding (Strauss & Corbin, 1990)

interpretive analysis (Charmaz, 1995)

theoretical sampling based on conceptual framework

Page 13: Agile  Experience

13

Validation of findings

Grounded analysisconstant comparative method

Triangulationpsychological literature

Validation & feedbackfrom participants and agile community

Page 14: Agile  Experience

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

Page 15: Agile  Experience

15

thank you

any questions?

Page 16: Agile  Experience

16

Page 17: Agile  Experience

17

Page 18: Agile  Experience

18

Expected results

How do agile practices effect action and interaction in software development teams…??

Page 19: Agile  Experience

19

Software development

layers of complexity

creating system code

creating an integrated software product

coordinating teamwork

and resolving differences stakeholder requirements

Page 20: Agile  Experience

20

Software development

an unstructured and complex problem solving activity

an intensely social design activity

traditional methodologies have been struggling in the /new/ economy

Page 21: Agile  Experience

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

Page 22: Agile  Experience

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

Page 23: Agile  Experience

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

Page 24: Agile  Experience

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

Page 25: Agile  Experience

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

Page 26: Agile  Experience

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

Page 27: Agile  Experience

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

Page 28: Agile  Experience

28

Particiapants

Page 29: Agile  Experience

29

Data collection

Page 30: Agile  Experience

30

Data Analysis

Page 31: Agile  Experience

31

Scratch

Page 32: Agile  Experience

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

Page 33: Agile  Experience

33

Page 34: Agile  Experience

34

Page 35: Agile  Experience

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

Page 36: Agile  Experience

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

Page 37: Agile  Experience

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

Page 38: Agile  Experience

38

Agile and HCI?

• Agile was developed by programmers to resolve programming issues.

• So far has not properly addressed UI design.

Page 39: Agile  Experience

39

Sets of Agile Practices

• Short iterations and small releases

• Continuous integration and refactoring

• Constant communication and coordination

• Whole team mentality

• Customer involvement

Page 40: Agile  Experience

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

Page 41: Agile  Experience

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.

Page 42: Agile  Experience

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

Page 43: Agile  Experience

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.

Page 44: Agile  Experience

44

What’s Special About Agile?

• It’s extreme: knobs turned up to 10

• It involves social change

Page 45: Agile  Experience

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.

Page 46: Agile  Experience

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?

Page 47: Agile  Experience

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.

Page 48: Agile  Experience

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.