1 / 34

distributed agile teams

Distributed Agile Teams: Outline. DefinitionChallengesIntroduce ExerciseComplete ScenarioReview ResultsRelated WorkConclusionsFinal Thoughts and Questions. Distributed Agile Teams: Introduction. Can a distributed team be

sandra_john
Download Presentation

distributed agile teams

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. Distributed Agile Teams SENG 615 Agile Software Engineering Mark Dochstader 04 December 2007

    3. Distributed Agile Teams: Introduction

    4. Distributed Agile Teams: Definition The use of agile methods when members are not collocated Geographic Temporal Different Types Remote customers Dispersed team Distributed team Why an agile approach? Distributed or not, traditional approaches lack adaptability Distributed teams need even more sensitivity to changing customer needs than collocated teams

    5. Distributed Agile Teams: Challenges What does this mean? Pair programming is hard or impossible On-site customer is not available for some or all developers Can we even use agile methods with distributed teams? No The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Yes The importance is adhering to the principles not the explicit implementations; it may be harder but can still be done

    6. Distributed Agile Teams: Scenario 1 A New Idea (version 0.0) You decide to start an individual development project for personal use. Personal Information Management (PIM) tool Unique features Unknown technologies

    7. Distributed Agile Teams: Matrix

    8. Distributed Agile Teams: Common Issues Nidiffer & Dolan: Evolving Distributed Project Management Strategic: Difficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintain. Project and process management: Difficulty synchronizing work between distributed sites. Cultural: Conflicting behaviors, processes, and technologies. Technical: Incompatible data formats, schemas, and standards. Security: Ensuring electronic transmission confidentiality and privacy. Communication: Lack of effective communication mechanisms.Nidiffer & Dolan: Evolving Distributed Project Management Strategic: Difficult leveraging available resources, best practices are often deemed proprietary, are time consuming and difficult to maintain. Project and process management: Difficulty synchronizing work between distributed sites. Cultural: Conflicting behaviors, processes, and technologies. Technical: Incompatible data formats, schemas, and standards. Security: Ensuring electronic transmission confidentiality and privacy. Communication: Lack of effective communication mechanisms.

    9. Distributed Agile Teams: I AM: A Team of 1 Most effective team size for communication Simplest All at once model is the single programmer Internal architecture is centrally stored Consistent vision Tool Set Minimal/Incomplete Tailored to the individual On-Demand

    10. Distributed Agile Teams: Scenario 2 Early Days (V 0.1) 2.5 Developers Same location Different schedules Interest from potential users via Internet

    11. Distributed Agile Teams: Distributed Agile Development (DAD) Asynchronous distributed pair programming The first programmer works on a task for a period of time To end their session the programmer composes a brief description of what is complete and tested and what remains to be completed The second (partner) programmer starts their session by reviewing the notes and produced code The partner then modifies and expands the code as required to complete the task Steve Tousignant, Tanith Korravai, Joshua Gross, Emmett Davis: DAD: Superset of Distributed Agile Development: The Appropriate Software Methodology for a Startup (2003) http://coblitz.codeen.org:3125/citeseer.ist.psu.edu/cache/papers/cs/30722/http:zSzzSzwww.rfbinternational.comzSzpaperszSzTousignant.pdf/dad-superset-of-distributed.pdf Steve Tousignant, Tanith Korravai, Joshua Gross, Emmett Davis: DAD: Superset of Distributed Agile Development: The Appropriate Software Methodology for a Startup (2003) http://coblitz.codeen.org:3125/citeseer.ist.psu.edu/cache/papers/cs/30722/http:zSzzSzwww.rfbinternational.comzSzpaperszSzTousignant.pdf/dad-superset-of-distributed.pdf

    12. Distributed Agile Teams: Reviewing DAD Validation Undergrad programming assignments with 4 sets of programmers: collocation/distributed and pairing/non-pairing Distributed pairs were synchronous Both paired teams performed superior vs. non-paired Collocated vs. distributed showed little difference Concerns with the approach Added requirement to produce supporting documentation vs. verbal communication or concurrent completion Implicit assumption that both programmers in the pair are experts Customer guides development by monitoring written descriptions Focuses on the process changes inflicted by a distributed team and not the communication hurdles Validation Series of undergrad programming assignments with 4 sets of programmers: collocation/distributed and pairing/non-pairing Distributed pairs were synchronous Both paired teams performed superior vs. non-paired Collocated vs. distributed showed little difference No indication of criteria used to assess performance Concerns with the approach Added requirement to produce supporting documentation vs. verbal communication or concurrent completion Implicit assumption that both programmers in the pair are experts Limits transfer of knowledge Doesnt prevent blocking Doesnt reinforce solution integrity Customer guides development by monitoring written descriptions Focuses on the process changes inflicted by a distributed project and not the communication hurdles Validation Series of undergrad programming assignments with 4 sets of programmers: collocation/distributed and pairing/non-pairing Distributed pairs were synchronous Both paired teams performed superior vs. non-paired Collocated vs. distributed showed little difference No indication of criteria used to assess performance Concerns with the approach Added requirement to produce supporting documentation vs. verbal communication or concurrent completion Implicit assumption that both programmers in the pair are experts Limits transfer of knowledge Doesnt prevent blocking Doesnt reinforce solution integrity Customer guides development by monitoring written descriptions Focuses on the process changes inflicted by a distributed project and not the communication hurdles

    13. Distributed Agile Teams: Scenario 3 Diamond in the Rough (version 1.0) Added remote teammate 2 P/T grad students Early Adopter customers Located worldwide Suggestions growing

    14. Distributed Agile Teams: Tools Agile Manifesto: individuals and interactions over processes and tools PRO: Tools are needed to help synchronize larger teams - whiteboards and index cards don't scale. CON: Most tools inhibit communication; they're a weak reporting mechanism replacing rich discussion. Tool Adoption Test: Is the tool aiding or replacing the intended practice? Ron Jeffries Agile Manifesto author: I have watched many teams plan or track their iterations using the available tools. The process seems almost always to go like this: Some person in the room, often the ScrumMaster or equivalent, brings the tool's screen up on a projector. Then they go around the room one person at a time, asking that person what they worked on, what they're going to do next, and so on. At base, this is a reporting process not a conversational process. As such, it is a weak form of communication compared to, say, a discussion. The team is taking turns being asked questions by some leader and answering them. Ryan Martens of Rally Software: Agile Application Lifecycle Management (AALM) tools help growing teams expand and help larger incumbent teams manage synchronization. make it easy to round trip from white boards and cards to tool and back again. These products serve a critical visibility role that is almost impossible to achieve when you try to roll-up white boards. Ron Jeffries Agile Manifesto author: I have watched many teams plan or track their iterations using the available tools. The process seems almost always to go like this: Some person in the room, often the ScrumMaster or equivalent, brings the tool's screen up on a projector. Then they go around the room one person at a time, asking that person what they worked on, what they're going to do next, and so on. At base, this is a reporting process not a conversational process. As such, it is a weak form of communication compared to, say, a discussion. The team is taking turns being asked questions by some leader and answering them. Ryan Martens of Rally Software: Agile Application Lifecycle Management (AALM) tools help growing teams expand and help larger incumbent teams manage synchronization. make it easy to round trip from white boards and cards to tool and back again. These products serve a critical visibility role that is almost impossible to achieve when you try to roll-up white boards.

    15. Distributed Agile Teams: Tool Coverage Acceptance Testing Unit Testing Pair Programming Supplements SubEthaEdit / TightVNC Modeling Tools Whiteboard and colored markers Metrics Clover / NCover Build & Source Control Ant/Nant CVS/Subversion/VSTeam Collaboration & Planning Project Management Wikis Rally Lifecycle Management

    16. Distributed Agile Teams: Design Principles of Collaboration Tables Interpersonal Interaction Fluid Transitions between Activities Mitigate: focusing on a single type of activity Transitions between Personal and Group Work Multiple views (personal / shared) Task Collaboration vs. External Work Use of Physical Objects task-related (notebook, camera) non-task-related (beverage) Simultaneous User Actions S.D. Scott, K.D. Grant, R.L. Mandryk: System Guidelines for Co-located, Collaborative Work on a Tabletop Display, Proceedings of European Conference Computer Supported Cooperative Work, Finland (2003), pp. 159-178 Interpersonal Interaction: dont violate underlying mechanics of interaction. EX: individual displays dont allow Pointing Fluid Transitions between Activities: limit overhead writing, drawing, and manipulating artifacts. Transitions between Personal and Group Work: people use physical space to segment work personal / shared Tabletop Collaboration vs. External Work: group effort beyond the tabletop Use of Physical Objects: Simultaneous User ActionsS.D. Scott, K.D. Grant, R.L. Mandryk: System Guidelines for Co-located, Collaborative Work on a Tabletop Display, Proceedings of European Conference Computer Supported Cooperative Work, Finland (2003), pp. 159-178 Interpersonal Interaction: dont violate underlying mechanics of interaction. EX: individual displays dont allow Pointing Fluid Transitions between Activities: limit overhead writing, drawing, and manipulating artifacts. Transitions between Personal and Group Work: people use physical space to segment work personal / shared Tabletop Collaboration vs. External Work: group effort beyond the tabletop Use of Physical Objects: Simultaneous User Actions

    17. Distributed Agile Teams: Scenario 4 Solid product with growing customer base Divergent focus Integrate 3 development teams New developers New customer group

    18. Distributed Agile Teams: Distributed Extreme Programming (DXP) The key problems in DXP are to maintain sufficiently rich communication, and a sufficient level of respect, between colleagues separated widely in time and space. Three general cases for cross-site agile Agile Outsourcing (AO) Agile Dispersed Development (ADD) Distributed Agile Development (DAD) Keith Braithwaite and Tim Joyce: XP Expanded: Distributed Extreme Programming Agile Outsourcing (AO): Where an agile team is created at an appropriately low cost offshore location. Requirements are generated onshore, and communicated offshore using documents, people and tests. Agile Dispersed Development (ADD): As practiced by much of the Open Source community and some commercial companies. Developers tend to be physically alone, but connected through a variety of communication channels. Practices such as frequent releases and continuous integration are employed, Pair Programming and other team based activities are not. Distributed Agile Development (DAD): Customers are distributed. One development team is distributed evenly over several sites to remain close to the customers. Keith Braithwaite and Tim Joyce: XP Expanded: Distributed Extreme Programming Agile Outsourcing (AO): Where an agile team is created at an appropriately low cost offshore location. Requirements are generated onshore, and communicated offshore using documents, people and tests. Agile Dispersed Development (ADD): As practiced by much of the Open Source community and some commercial companies. Developers tend to be physically alone, but connected through a variety of communication channels. Practices such as frequent releases and continuous integration are employed, Pair Programming and other team based activities are not. Distributed Agile Development (DAD): Customers are distributed. One development team is distributed evenly over several sites to remain close to the customers.

    19. Distributed Agile Teams: DXP Prescription Maintain a commitment to the value judgments that characterize the core of all agile methods. Use XP practice as-is when possible Adopt agile-esque substitutes when you cant use the existing agile practice Use process to guide development when distributed aspects violate principles of agile High-level: sophisticated tools and complicated process models not necessarily required seems at odds with the spirit of the manifesto with downplays reliance on tools Use XP practice as-is when possible single code base, test-driven, continuous integration Substitute remote pair programming Overriding Process force time adj for scrums to maintain real-time communication. Require on-siteTravel High-level: sophisticated tools and complicated process models not necessarily required seems at odds with the spirit of the manifesto with downplays reliance on tools Use XP practice as-is when possible single code base, test-driven, continuous integration Substitute remote pair programming Overriding Process force time adj for scrums to maintain real-time communication. Require on-siteTravel

    20. Distributed Agile Teams: DXP Results Validation: Experience-based Commercial projects XP-based with Scrum influences One Team Balanced Sites Onsite Visit / Ambassador Communication Channels Distributed Standup One Team, One Codebase Unapologetically influenced by personal beliefs No empirical evidence Limited literature review put everyone in one room is an absolutely necessary rule to apply when introducing XP. Need to start with team-centered, communicative and collaborative developers need for colocation as the prime mechanism to manifest the Communication value is weakened One Team: single team identity, non-business communication, activities that share jokes & culture reference - PLAY Balanced Sites: equal in skill & number. Empowered to make decisions. Distributed Standup: Sync adjacent sites (temporally) at leat once a day. Force an overlap. Relates to One Team; Balanced Sites One Team, One Codebase: share rights and responsibilities toward each others work, just as colocated workers do. put everyone in one room is an absolutely necessary rule to apply when introducing XP. Need to start with team-centered, communicative and collaborative developers need for colocation as the prime mechanism to manifest the Communication value is weakened One Team: single team identity, non-business communication, activities that share jokes & culture reference - PLAY Balanced Sites: equal in skill & number. Empowered to make decisions. Distributed Standup: Sync adjacent sites (temporally) at leat once a day. Force an overlap. Relates to One Team; Balanced Sites One Team, One Codebase: share rights and responsibilities toward each others work, just as colocated workers do.

    21. Distributed Agile Teams: DXP Matrix Balanced Sites is about minimizing dependencies on communication Similar to different sites/ one team from Scrum example One Team, One Build = Scrums Auto build;One Repo Code is Communication Balanced Sites is about minimizing dependencies on communication Similar to different sites/ one team from Scrum example One Team, One Build = Scrums Auto build;One Repo Code is Communication

    22. Distributed Agile Teams: The Scalability Problem Single Super Hacker Surgical Team Extension of the single programmer Rare resource Pair Programming Capture advantages with > 2 people Scrum Scale small, cross-functional teams Applied to a multi-site distributed team Surgical Team Brooks Superstar does critical components; directs team to assist with or take over less critical parts Accepted "good" programmers are generally 5-10 times as productive as mediocre ones. Surgical Team Brooks Superstar does critical components; directs team to assist with or take over less critical parts Accepted "good" programmers are generally 5-10 times as productive as mediocre ones.

    23. Distributed Agile Teams: A Scrum Experience Easel Corporation (Early 1990s) Scrum teams of distributed developers Any developer, Any Site, Any Task 50+ developers in US, Canada & Russia Large Library System (> 200 Million Users) Focuses On: Daily Scrum meetings Daily meetings of Product Owner team Hourly automated builds from one central repository Developers at different sites on the same team XP practices Jeff Sutherland, John Scumniotales, and Jeff McKenna developed a similar approach at Easel Corporation Scrum Master: The person or persons in charge of the tracking and the daily updates for the scrum (equivalent to a project manager). Sometimes referred to as a Scrum Facilitator. Scrum Team: A cross-functional team (developers, B.A.s, DBAs, and testers) responsible for developing the product. Product Owner: The person responsible for maintaining the Product Backlog via continuous interaction with Clients and Stakeholders. Story: A customer focused description of valued functionality. Product Backlog: The stories to be completed. Sprint: A time period (usually 2 to 4 weeks) in which development occurs on a set of stories that the Team has committed to. Sprint Backlog: The Team's interpretation of the product backlog containing concrete tasks that will be done during the next sprint to implement some of the top items in the Product Backlog. Burn Down Chart: Daily progress for a sprint over the sprint's length. OT: Solo SCRUM product backlog sprint backlog Sprint sprint retrospective Jeff Sutherland, John Scumniotales, and Jeff McKenna developed a similar approach at Easel Corporation Scrum Master: The person or persons in charge of the tracking and the daily updates for the scrum (equivalent to a project manager). Sometimes referred to as a Scrum Facilitator.Scrum Team: A cross-functional team (developers, B.A.s, DBAs, and testers) responsible for developing the product.Product Owner: The person responsible for maintaining the Product Backlog via continuous interaction with Clients and Stakeholders.Story: A customer focused description of valued functionality.Product Backlog: The stories to be completed.Sprint: A time period (usually 2 to 4 weeks) in which development occurs on a set of stories that the Team has committed to.Sprint Backlog: The Team's interpretation of the product backlog containing concrete tasks that will be done during the next sprint to implement some of the top items in the Product Backlog.Burn Down Chart: Daily progress for a sprint over the sprint's length. OT: Solo SCRUM product backlog sprint backlog Sprint sprint retrospective

    24. Distributed Agile Teams: Easel Scrum Matrix XP Practices is vague but taken with the assumption of tasks like Pair programming that focus on communication Daily Scrum and Daily Product meetings are intended to focus on communication but the co-ordination required to manage leads to substantial process overhead, especially Product which also has a top-down control aspect and a smaller # of participants.XP Practices is vague but taken with the assumption of tasks like Pair programming that focus on communication Daily Scrum and Daily Product meetings are intended to focus on communication but the co-ordination required to manage leads to substantial process overhead, especially Product which also has a top-down control aspect and a smaller # of participants.

    25. Distributed Agile Teams: Easel Scrum Concerns Identify Three Approaches Isolated Scrums (Typical Offshore) Distributed Scrum of Scrums Totally Integrated Scrums Requires you already have a scaleable agile methodology in place How do you build cross-functional teams that balance distribution with functional coverage Are you trading cross-team visibility for inner-team miscommunication? Isolated Scrums not cross functional; not generally agile Distributed Scrum of Scrums Partition work across geo teams; Scrum masters meet regularly to coordinate Totally Integrated Scrums Distributed teams with members at multiple locations Use local Scrums Are you trading cross-team visibility for inner-team miscommunication? All Scrum masters located in Utah but teams are spread out across sites Isolated Scrums not cross functional; not generally agile Distributed Scrum of Scrums Partition work across geo teams; Scrum masters meet regularly to coordinate Totally Integrated Scrums Distributed teams with members at multiple locationsUse local Scrums Are you trading cross-team visibility for inner-team miscommunication? All Scrum masters located in Utah but teams are spread out across sites

    26. Distributed Agile Teams: Scenario 5 2 new development offices Brazil Eastern Europe Focus expanded: Coordinate departments Branch offices Customers Integrate new development offices

    27. Distributed Agile Teams: Case Study - Global Software Development US-based company servicing Internal projects with globally distributed development units Distributed customers and dispersed team Interviews with dev. team & customers Interaction between team & customers Interaction inside development team Key Challenges Requirements engineering Software development process Communication and language Culture and context sharing Trust

    28. Distributed Agile Teams: Case Study - Solutions Solutions adopted focused on Planning Training Standardization Requirements Engineering Trust and integration Identified critical success factors Software Development Process Training Planning and Engagement Team building Communication and Feedback

    29. Distributed Agile Teams: Case Study - Outcomes Formalization of processFormalization of process

    30. Distributed Agile Teams: Offshoring Experiences - IBM IBM using an agile approach to off-shore Challenges Decreased communication bandwidth Decreased visibility into project status Problems with configuration management Disconnection on project estimation IBM using an agile approach to off-shore Dr. Christoph Steindl Senior IT Architect App Management Services Decreased communication bandwidth Different time zones, only a couple of hours overlapping Cost and quality of telecommunication Decreased visibility into project status Difficult for project managers and business sponsors to measure the progress Different interpretations of xx percentage complete Problems with configuration management Troubles when integrating offshore and onshore pieces Troubles with different development environments Troubles with replicating the customers system environment on the offshore site Disconnection on project estimation Different experience and background of people who estimate the work and perform the work Little identification with estimate Difficult to assess the accuracy or reasonability of estimates as the project progresses. IBM using an agile approach to off-shore Dr. Christoph Steindl Senior IT Architect App Management Services Decreased communication bandwidth Different time zones, only a couple of hours overlapping Cost and quality of telecommunication Decreased visibility into project status Difficult for project managers and business sponsors to measure the progress Different interpretations of xx percentage complete Problems with configuration management Troubles when integrating offshore and onshore pieces Troubles with different development environments Troubles with replicating the customers system environment on the offshore site Disconnection on project estimation Different experience and background of people who estimate the work and perform the work Little identification with estimate Difficult to assess the accuracy or reasonability of estimates as the project progresses.

    31. Distributed Agile Teams: Offshoring Experiences (2) Classify the project How well does the team understand what is to be delivered? Does the team know how it is going to deliver? How complex is the project? Balance Agility with Discipline How dynamic are the requirements? How much order does the culture need? How many people are involved? How critical is the project? How many expert developers do you have? Tailor the Method Apply the Method Gather Method Feedback (Retrospective)

    32. Distributed Agile Teams: Offshoring - Agility vs. Plan Driven Barry Boehm, Richard Turner: Balancing Agility and Discipline, Addison-Wesley, 2003 Barry Boehm, Richard Turner: Balancing Agility and Discipline, Addison-Wesley, 2003 Barry Boehm, Richard Turner: Balancing Agility and Discipline, Addison-Wesley, 2003

    33. Distributed Agile Teams: Offshoring Experiences - Overview Provides an inventory of available strategies/tools for different situations Targets the process designer, not the end-user Relies on centrally planned & assembled development methodology May contain agile-inspired techniques but not organic Hampered by IBMs Global Services Method Insight into unpredicted challenges considerable cultural issues High turnover / job-hopping Communicate through code & product (dog-fooding) technical infrastructure for collaborating across continents shared repository connectivity Indians dont say no, politeness can hide misunderstanding Job hopping has been a well-known issue in the Silicon Valley, the job market is over-heated in India.technical infrastructure for collaborating across continents shared repository connectivity Indians dont say no, politeness can hide misunderstanding Job hopping has been a well-known issue in the Silicon Valley, the job market is over-heated in India.

    34. Distributed Agile Teams: Review Whiteboard Does anything jump out? Trends in proposed solutions to management challenges Group opinions on observations Individual does this match your personal experience?

    35. Distributed Agile Teams: Conclusions Developer/Customer: OSS developers tend to be their own customers helps mitigate communication issues often expert developers Domain expert developers rely on the customer Less frequently for understanding Just as much for guidance Size: smaller projects tend to be less impacted by the communication challenges As team size grows, process rigidity increases A necessary formalization? Agile is a very emotional topic making it hard to divorce desired results from actual outcomes Some arguments state that talented developers will make any approach work while weak developers are doomed regardless of methodology. While most may be agree to the later; the former is not so clear. Performance of agile over traditional approaches is debated, but if we accept at least some degree of advantage we can start to see how distributed agile approaches could be effectiveAgile is a very emotional topic making it hard to divorce desired results from actual outcomes Some arguments state that talented developers will make any approach work while weak developers are doomed regardless of methodology. While most may be agree to the later; the former is not so clear. Performance of agile over traditional approaches is debated, but if we accept at least some degree of advantage we can start to see how distributed agile approaches could be effective

    36. Distributed Agile Teams: Conclusions (2) More documentation can help Can be informal (screen shots, notes) GOAL: Capturing collective understanding Shared Planning Tool Web-based project planning or collaboration Daily meeting substitutes Isolated Scrums, Scrum of scrums, sub. Weekly Travel No replacement for Face-Time Solution must focus on communication Adaptability requires immediate feedback, close communication and task visibility

    37. Distributed Agile Teams: Final Thoughts Process and/or tools dont replace critical assessment. Projects and teams (especially distributed) change strategies must change too If possible structure the project so that teams are basically not distributed for major iterations. Agile toolset is not all/none use what works Distributed teams are a growing phenomenon embrace it! Distributed teams are a growing phenomenon Offshoring, open source, global economy all aspects of software development Dist teams are here to stay. We need to focus on enhancing these inherently more complicated team structures. Distributed teams are a growing phenomenon Offshoring, open source, global economy all aspects of software development Dist teams are here to stay. We need to focus on enhancing these inherently more complicated team structures.

    38. Chandler Information Personal Information Management (PIM) software suite Focus on Information Workflows (GTD) Collaboration and Sharing Destruction of Information Silos: Note ? Email ? Calendar Event Started Spring of 2001 Apache License Cross-platform (Python) Effort: 25+ developers (variable) Cost: ~$5 to $10 Million (Guess) Status: Preview 0.7.2 (Nov 13, 2007) http://chandlerproject.org/ http://en.wikipedia.org/wiki/Chandler_%28PIM%29

    39. Distributed Agile Teams: Discussion Questions Whats the difference between agile practices and agile principles? Why differentiate? You are finishing a distributed agile project What were the big challenges? What worked? What didnt?

    40. References Kent Beck, Cynthia Andres: Extreme Programming Explained: Embrace Change (2nd Edition), Addison-Wesley (2005) p.18 KeithBraithwaite and TimJoyce: XP Expanded: Distributed Extreme Programming, Springer Berlin / Heidelberg, 0302-9743 (Print) 1611-3349 (Online), 2005 KeithBraithwaite and TimJoyce: XP Expanded: Patterns for Distributed eXtreme Programming (April 2006) http://www.keithbraithwaite.demon.co.uk/professional/papers/2005/europlop/patterns_distributed_xp.pdf Herbsleb, J. D., and Moitra, D. An empirical study on Global Software Development: Distributed IT Projects, IEEE Software, March/April, USA,2001, p. 16-20. Brooks , F.P. The Mythical Man-Month, Addison Wesley Pub. Co., 1975, 25th Anniversary edition, 2000. Nidiffer, K. E. and D. Dolan, 2005, "Evolving Distributed Project Management," IEEE Software 22(5): 63-72. Scott Rosenburg: Dreaming In Code, Crown Publishers, (2007).ISBN:978-1-4000-8246-9 Christoph Steindl: Distributed Agile, IT Architect and IT Specialist Institute - Central Region in Herrenberg, Germany, 2004. http://www.agilealliance.org/system/article/file/1420/file.pdf

More Related