The Agile Process or software development refers to a set of software development methods that are based on iterative development. In this process, the solutions and requirements both evolve mutual collaboration between cross functional teams. These teams are self-organizing in nature.
The Agile software development approach generally promotes a regimented type of project management process which encourages: 1. Frequent adaptation and inspection 2. Self-organization and accountability 3. A leadership philosophy which promotes teamwork 4. A organization approach which bring into line the development with customer needs and organization goals 5. And a group of finest engineering practices having an intention to allow for rapid delivery of good-quality software program.
Extreme Programming (XP)
It really is a software program development methodology with an intention to improve software responsiveness and high quality to the volatile requirements of consumers. Being a kind of Agile process, it promotes frequent releases in tiny development cycles. This introduces checkpoints and improves the productivity in a way that the new requirements from consumers may be adopted.
The benefits of Extreme Programming are: 1. Unit testing of all code 2. Avoiding programming of capabilities until necessary 3. Programming in pairs or carrying out extensive code review 4. Clarity and simplicity in code 5. Volatile customer requirements much better understood 6. A flag management structure 7. Frequent communication between the programmers and even with the customer
The drawbacks of Extreme programming are: 1. No documented compromises of user conflicts 2. Unstable requirements 3. Lack of overall design document or specification 4. Incorporates inadequate software program design 5. Necessitates meetings at recurrent intervals at huge expense to consumers 6. Can enlarge the risk of scope creep due to the lack of thorough requirements documentation 7. Requires excess of cultural change to adopt
Scrum is an incremental, iterative framework for agile software program development and project management. The word “Scrum” is not actually an acronym. Nonetheless, several firms using this methodology spell it with capital letters. Initially Scrum methodology was focused for management of software development projects, but in recent times it might be employed to run general program/project management approach or software program maintenance teams. Scrum, which contains sets of predefined roles and practices, is a process skeleton. Principal roles in this approach are:
1. Product Owner – Represents Stakeholders 2. Scrum Master – The one responsible for maintaining the processes 3. Team – cross functional group of about 6-8 folks who do actual design, testing, implementation, etc.
Every single of the iteration is known as a”sprint”, typical time frame for which is generally about two to four weeks. The length of every sprint is decided by the team. The item “backlog” pushes the set of capabilities into a spring. These capabilities are prioritized set of greater level requirements for the task to be carried out. Based on this item “backlog”, the team determines how several of the items may be completed inside the next sprint. When the sprint begins, nobody is allowed to alter the sprint backlog, which means that the set of requirements are frozen. On effective completion of a sprint, the team demonstrates the usage of that particular software.
This methodology ought to be encouraged in organizations considering that the major advantage of employing the Scrum is that it enables the creation of teams that are extremely self-organizing in nature. This is achieved by encouraging verbal communication amongst the team members, co-location of all of the team members and disciplines that are involved for the project.
Differences between Scrum and Extreme Programming(XP): 1. The time span for iterative sprints is various in both approaches. 2. Adjustments aren’t allowed by the Scrum teams in the course of their sprints. Whereas Extreme Programming teams need to be much more agreeable to modifications. 3. Function is done by XP teams in strict priority order. Whereas in case of Scrum, the product owner prioritizes the set of activities. four. XP does prescribe some engineering practices; Scrum doesn’t.