Concept
Extreme Programming is a discipline of agile software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they currently are in the development process, and to adjust the practices to their unique situation.
Scrum is an agile process that can be used to manage and control complex software and product development using iterative and incremental practices. It significantly increases productivity and reduces time to benefits while facilitating systems development.
Argument
XP is successful because it stresses customer satisfaction. The methodology is designed to deliver to the customer the software he needs when it is needed. It allows the developers to confidently respond to changing customer requirements, even late in the life cycle.
This methodology also emphasizes on team work. Indeed, Managers, customers, and developers are all part of a team dedicated to delivering software that meets quality requirements. Practices used include targeted unit testing, refactoring, small releases and use of spikes.
Scrum, on the other hand, enables the creation of self-organizing teams by encouraging verbal communication across all team members and across all areas involved in the project. One of the key principles of scrum is its recognition that “empirical” challenges cannot be addressed successfully in a traditional "process control" manner. Hence, scrum adopts an empirical approach - accepting that the problem cannot be fully understood or defined, and instead focusing on maximising the team's ability to respond to challenges using an agile approach. This process includes the use of product backlog, daily scrum meetings, sprint planning and backlog.
Even though both XP and Scrum are radically agile methods, and Scrum often uses methods and practices coming from XP, they differ in some points. In fact, XP seems to focus on team productivity (i.e. doing something the right way and as productively as possible). Scrum instead focuses more on doing the right thing, getting the Risk on Investment from building the 20% of the functionality that is necessary to get the value and maybe not building the rest.
Also, the XP approach emphasizes on estimations, like finely defined user stories, and to measure and improve these estimates.
Scrum keeps the requirements more extensive, more in general user terms analyzed during the iteration. Estimating is not as important as in XP. The team does what it can, and gets better at figuring out how much it can do each iteration as it learns each others skill sets, the business domain, and the technology - iteration by iteration. It cares more about delivering business value than having estimates, which become meaningless in a collaborative setting.
This methodology also emphasizes on team work. Indeed, Managers, customers, and developers are all part of a team dedicated to delivering software that meets quality requirements. Practices used include targeted unit testing, refactoring, small releases and use of spikes.
Scrum, on the other hand, enables the creation of self-organizing teams by encouraging verbal communication across all team members and across all areas involved in the project. One of the key principles of scrum is its recognition that “empirical” challenges cannot be addressed successfully in a traditional "process control" manner. Hence, scrum adopts an empirical approach - accepting that the problem cannot be fully understood or defined, and instead focusing on maximising the team's ability to respond to challenges using an agile approach. This process includes the use of product backlog, daily scrum meetings, sprint planning and backlog.
Even though both XP and Scrum are radically agile methods, and Scrum often uses methods and practices coming from XP, they differ in some points. In fact, XP seems to focus on team productivity (i.e. doing something the right way and as productively as possible). Scrum instead focuses more on doing the right thing, getting the Risk on Investment from building the 20% of the functionality that is necessary to get the value and maybe not building the rest.
Also, the XP approach emphasizes on estimations, like finely defined user stories, and to measure and improve these estimates.
Scrum keeps the requirements more extensive, more in general user terms analyzed during the iteration. Estimating is not as important as in XP. The team does what it can, and gets better at figuring out how much it can do each iteration as it learns each others skill sets, the business domain, and the technology - iteration by iteration. It cares more about delivering business value than having estimates, which become meaningless in a collaborative setting.
0 comments:
Post a Comment