1 / 48

Agile Experience

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

sidney
Download Presentation

Agile Experience

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Experience communication and collaboration in agile software development teams a proposal by Elizabeth Whitworth 25th 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 phenomena not encompassed by current literature

  4. Research quest?on What isthe 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 thinking holistic, 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 interdependencies emergent effects, such as flow feedback and feedforward mechanisms effects of technology

  9. 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

  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 analysis constant comparative method Triangulation psychological literature Validation & feedback from participants and agile community

  14. 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

  15. thank you any questions?

  16. Expected results How do agile practices effect action and interaction in software development teams…??

  17. Software development layers of complexity creating system code creating an integrated software product coordinating teamwork and resolving differences stakeholder requirements

  18. Software development an unstructured and complex problem solving activity an intensely social design activity traditional methodologies have been struggling in the /new/ economy

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. Particiapants

  27. Data collection

  28. Data Analysis

  29. Scratch

  30. 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

  31. 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

  32. 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.

  33. 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.

  34. Agile and HCI? • Agile was developed by programmers to resolve programming issues. • So far has not properly addressed UI design.

  35. Sets of Agile Practices • Short iterations and small releases • Continuous integration and refactoring • Constant communication and coordination • Whole team mentality • Customer involvement

  36. 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

  37. 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.

  38. 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

  39. 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.

  40. What’s Special About Agile? • It’s extreme: knobs turned up to 10 • It involves social change

  41. 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.

  42. 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?

  43. 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.

  44. 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

More Related