Thursday, February 21, 2013

Development Methodlogies under Agile practices

There is some misunderstanding between the Agile practice and its  practical approaches. I have explained its three practical approaches here.

Agile is a methodology, and there are various ways to define what agile is. To a large extent, if it involves constant unit testing and the ability to quickly adapt when the business needs change then it is probably agile. The opposite is the waterfall method.

There are various implementations that are codified by consultants, such as Xtremem Programming, Scrum and RUP (Rational Unified Process).

Scrum- Scrum is just one of the many iterative and incremental agile software development method. You can find here a very detailed description of the process.

In the SCRUM methodology a sprint is the basic unit of development. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and followed by a review or retrospective meeting where the progress is reviewed and lessons for the next sprint are identified. During each sprint, the team creates finished portions of a product.

In the Agile methods each iteration involves a team working through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders.

So if in a SCRUM sprint you perform all the software development phases (from requirement analysis to acceptance testing), and in my opinion you should, you can say SCRUM sprints correspond to AGILE iterations.

Extreme Programming(XP)-Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. Extreme Programming implements a simple, yet effective environment enabling teams to become highly productive. The team self-organizes around the problem to solve it as efficiently as possible.
Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology.

RUP-The RUP process framework with Rational Method Composer provides:
Processes based on the best practices adopted in thousands of projects worldwide. Avoid inventing everything from scratch and reuse processes that have been successful for other organizations.
Capability patterns that allow project managers to rapidly add or remove reusable chunks of processes addressing common problems. Because no two projects are alike, project managers can modify the process to address specific project needs.
Ready-to-use delivery processes to provide the project manager with a quick starting point for planning and initiating a project. A delivery process provides an initial project template and identifies which type milestones to use in the project, which work products to deliver by each milestone, and which resources are needed for each phase.
RUP promotes iterative development and organizes the development of software and systems into four phases, each consisting of one or more executable iterations of the software at that stage of development.

The information is taken from related books and sites.

No comments: