Wednesday, April 30, 2008

XP Vs Scrum

XP (eXtreme Programming) is broad in scope and well define method of all of the agile methods. XP is the only method of Agile which provides deep and profound disciplines for the developers to do their works, like Test Driven development. It is a collection of techniques for day to day development work. While on the other hand, Agile is lightweight process that can be used to manage and control software and product development using iterative, incremental practices. It produces a potentially shippable set of functionality at the end of every iteration.

XP process
Customers define application features with user stories. To develop the system, Team should follow a common coding standard. Team Develops codes as per requirements in each user stories. Designer develop an automated unit tests to run throughout the system. Team can edit the code design as per the requirements as an iteration or refactoring. Team works in a pair programming. They can exchange their code with others, rather having a repository to place codes and all documents which also provides version control to roll back to earlier versions if required. Team members must have to release their work (code) every few hours, they can't hand in the code more than a day. Customer Representative is always there on-site throughout the development process as a part of a team.

Scrum Process

Scrum Master-Is an experience engineer who is responsible for making quick decision based on incomplete data, also responsible for dealing with hurdles that may come up in progress of Team Members; he acts as an interface between management and scrum team.
Product Backlog-Before you do anything else, you must align your development team with the business, nominate a Product owner who will be responsible for approval of the changes in backlog and also prioritized the work.
Scrum Team - Self organizing, committed to work, responsible to achieve deadlines, size of 5 -10.
Sprint - To develop a deliverable a fixed period is available. It includes design, coding, testing and documentation, Scrum Team can add or remove items in backlog.
Daily Scrum Meeting -15-30 minutes meeting on daily bases to discuss about what was achieved?, what will you achieve before next meeting.
Review - Team present the increment against management, customers, users and product owner, team tell story about their work experience. Scrum is very useful methodology for customize the problem by iterations planning and release planning.

Key Differences
Scrum provide management framework to avoid hurdles on the sprint of team. It in a formal way exposes the development activities of the team to non technical staff; it is a project management process not an engineering process. Scrums wrap the management process for helping and guiding throughout the project. It also explains idea about how team will be secure, and it says about the meetings and what those meeting for.
XP is a collection of techniques for daily development work. XP explains techniques like pair programming, test-driven development, lazy programming, Iterations. It contains all of the management ideas of Scrum and plus it contains engineering practice that is missing from Scrum.

Conclusion
Scrum is a subset of XP. Because many Scrum team accept that in their process of developing they are following XP practices like Acceptance Testing, Pair Programming, and Continuous Integration and Test Driven development.

No comments: