480 likes | 753 Views
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
E N D
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 communication and collaboration associated with high performance/synergy - (Beck, 2004)
Research motivation Agile = warm fuzzy feelings interesting social-psychological phenomena not encompassed by current literature
Research quest?on What isthe experience of being in an agile software development team?
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?
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
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 thinking holistic, emergent effects, dynamics of regulation
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 interdependencies emergent effects, such as flow feedback and feedforward mechanisms effects of technology
Expected findings Warr & 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
Method: grounded theory empirically grounded in data constant comparative method emergent methodology -(Glaser & Strauss, 1967)
Data collection semi-structured interviews ~15-20 individual software developers analysis of agile tools practitioner & psychological literature
Data analysis open and axial coding (Strauss & Corbin, 1990) interpretive analysis (Charmaz, 1995) theoretical sampling based on conceptual framework
Validation of findings Grounded analysis constant comparative method Triangulation psychological literature Validation & feedback from participants and agile community
Value of Study Study Results develop a rich description of subjective experience identify relevant psychological constructs make connections between theory and practice better apply agile in non-traditional contexts Research approach systems thinking holistic perspective cross-level analysis in the social sciences sociotechnical perspective
thank you any questions?
Expected results How do agile practices effect action and interaction in software development teams…??
Software development layers of complexity creating system code creating an integrated software product coordinating teamwork and resolving differences stakeholder requirements
Software development an unstructured and complex problem solving activity an intensely social design activity traditional methodologies have been struggling in the /new/ economy
Agilesoftware 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
Teamworking Self-regulating, self-managing, high-performance teams: small autonomous teams that can quickly respond to change originally a grass roots phenomena associated with the production industry and quality of working life initiatives process interdependencies social identity theory importance of individual
Sociotechnicalsystems 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
Systems Thinking a system as a holistic entity a unified whole consisting of more than the sum of its parts emergent or synergistic properties resulting from component interactions dynamics of regulation feedback, self-organization, and recursive causality Complexity cannot be reduced to simple cause and effect relationships
The agile system: human agency Awareness human awareness crosses system boundaries interaction between individual and group Goal-seeking social systems are multi-minded systems alignment of system and subsystem goals
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
Why grounded theory software 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 development Lack 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
Agile & self-regulating teams decentralized control work in a very close team environment • face to face communication 10-15 people respond to change grass roots phenomena associated with: motivation and worker satisfaction high-performance
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
The Solution - “Lightweight” Software Development • Enable successful software development in the face of vague or changing requirements • Fit the process to the project • Rapid development, flexibility - responsive to change • eXtreme Programming(XP), Crystal methods, SCRUM, feature-driven development, etc.
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: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation 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.
Agile and HCI? • Agile was developed by programmers to resolve programming issues. • So far has not properly addressed UI design.
Sets of Agile Practices • Short iterations and small releases • Continuous integration and refactoring • Constant communication and coordination • Whole team mentality • Customer involvement
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
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.
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
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.
What’s Special About Agile? • It’s extreme: knobs turned up to 10 • It involves social change
Revisiting the Problem Agile practices enable successful software development in the face ofvague or changing requirements. The agile solution has grown to encompass a bigger problem… the usability of software methodologies.
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?
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.
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. • Social change: empowering the workers. Agile is SD’s lean manufacturing