agile experience

Post on 23-Jan-2016

69 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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.

top related