Thursday, June 28, 2012

Agile Methodologies

Agile methodologies promote delivery of a long software development project in short-term cycles or iterations. Iteration involves a tiny portion of software that is developed quickly and accurately for a testing purpose. Iterations are technically called time-boxed, because they are based on a predetermined duration. The duration usually varies between different methodologies. Each agile methodology's uniqueness is determined by the number of tasks, steps and work products involved in it.
The methodology that has lots of steps, activities and work products is normally referred to as higher ceremony while the one with fewer steps, activities and work products is called lower ceremony. Agile software developers have power to design the ceremony they want by picking tasks, steps and outcomes for every project. A number of agile methodologies are available but the main three are explained below.
XP or Extreme Programming - This is one of the hugely used agile methods. According to XP, programmers should pick agile practices based on the requirements of every project they are doing. It recommends use of very short iterations, such as seven to thirty days. Extreme programming is also among the methods that have the lowest ceremony. Its work products consist of the story cards, unit tests and code. Even so, XP is associated with the most complicated agile practices that are delivered via four core values. These include courage, communication, feedback and simplicity. There are thirteen practices that diverge from these four core values. Roles in any XP project include the Coach, programmer, customer and tracker.
Scrum - This is among the very commonly used agile methodologies with an iteration of thirty days. Scrum iteration is called a Sprint. Programmers have flexibility to create shorter Sprints that end after every 14 days if they like. The rationale behind the Scrum framework is that each project has to be tackled by an autonomous team. A team usually consists of four to nine members In other words a team of programmers are required to gather daily so as to discuss and come up with the tasks that would make up a Sprint for the following day. It has three main roles including Scrum Master, Product Owner and Team Member.
The Scrum Master is described as person responsible for restoring order among project team members. This is, however, not a domineering role since teams are self-governing. Scrum Master's role is detecting and eliminating obstacles, reporting progress and channeling the teams toward the high priority job. Product Owner is either the actual owner of the project or their representative. The Team Member refers to the software development team that is often made of programmers, database managers, product testers, engineers and all other involved staff.
Feature Driven Development - The fundamental step in this one is the problem domain model creation. It is done by gathering information about the domain from experts called Subject Matter Experts (SMEs). All the data is merged to form a unified model that is used to make a draft plan for the necessary resources. FDD also encourages teamwork and iterations that last for about two weeks. The teams are first given a group of initial features to work on for about 14 days. Several different feature sets can be delivered at the same time by team members but each feature must be finished. It has up to nine roles such as the project manager, development manager, chief architect, class owner, chief programmer, tester, domain expert, technical writer and deployer.
There are other popularly used agile methodologies not discussed in this article. Examples include Lean Software Development, Agile Unified Process, and Dynamic System Development Method among others.

View the original article here

Related Post



No comments:

Post a Comment