NEWS
Showing posts with label Agile. Show all posts
Showing posts with label Agile. Show all posts

Tuesday, September 6, 2011

Difference Between Agile and Scrum


Agile and Scrum are terms used in project management. The Agile methodology employs incremental and iterative work cadences that are also called sprints. Scrum, on the other hand is the type of agile approach that is used in software development.

Agile

The Agile methodology is used in project management and it helps project makers to build software applications that are unpredictable in nature. Iterative and incremental work cadences called sprints are used in this methodology. It is basically inspired from traditional sequential model or the waterfall model.

The benefit of using the Agile methodology is that the direction of the project can be accessed throughout its development cycle. The development is accessed with the help of iterations or sprints. At the end of each sprint, an increment of work is presented by the team developing the project. The focus is mainly on the repetition of work cycles and the product they yield. This is the reason why the agile methodology is also called as incremental and iterative.

In agile approach, the each step of development such as requirements, analysis, design etc are continually monitored through the lifecycle of the project whereas this not the case with the waterfall model. So by using agile approach, the development teams can steer the project in the right direction.

Scrum

Scrum is a type of agile approach that is used in development of software applications. It is just a framework and not a methodology or a full process. It does not provide detailed instructions to what needs to be done rather most of it is dependent on the team that is developing the software. Because the developing the project knows how the problem can be solved that is why much is left on them.

Cross-functional and self-organizing teams are essential in case of scrum. There is no team leader in this case who will assign tasks to the team members rather the whole team addresses the issues or problems. It is cross-functional in a way that everyone is involved in the project right from the idea to the implementation of the project.

As it is an agile methodology, it also makes use of series of iterations or sprints. Some of the features are developed as a part of the sprint and at the end of each sprint; the features are completed right from coding, testing and their integration into the product. A demonstration of the functionality is provided to the owner at the end of each sprint so that feedback can be taken which can be helpful for the next sprint.

The product is the primary object of a scrum project. At the end of each sprint, the system or product is brought to a shippable state by the team members.

Tuesday, April 12, 2011

Agile and Waterfall differences

One of the most important differences between the agile and waterfall approaches is that waterfall features



distinct phases with checkpoints and deliverables at each phase, while agile methods have iterations rather


than phases. The output of each iteration is working code that can be used to evaluate and respond to


changing and evolving user requirements.
Waterfall assumes that it is possible to have perfect understanding of the requirements from the start. But



in software development, stakeholders often don’t know what they want and can’t articulate their requirements.


With waterfall, development rarely delivers what the customer wants even if it is what the customer asked for.


Agile methodologies embrace iterations. Small teams work together with stakeholders to define quick prototypes,


proof of concepts, or other visual means to describe the problem to be solved. The team defines the


requirements for the iteration, develops the code, and defines and runs integrated test scripts, and the users


verify the results. Verification occurs much earlier in the development process than it would

with waterfall, allowing stakeholders to fine-tune requirements while they’re still relatively easy to change. 

 
refer: http://www.serena.com/docs/repository/solutions/intro-to-agile-devel.pdf

Monday, March 22, 2010

Agile software development

Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated.

Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
Conceptual foundations of this framework are found in modern approaches to operations management and analysis, such as lean manufacturing, soft systems methodology, speech act theory (network of conversations approach), and Six Sigma.

History
The modern definition of agile software development evolved in the mid-1990s as part of a reaction against "heavyweight" methods, perceived to be typified by a heavily regulated, regimented, micro-managed use of the waterfall model of development. The processes originating from this use of the waterfall model were seen as bureaucratic, slow, demeaning, and inconsistent with the ways that software developers actually perform effective work. A case can be made that agile and iterative development methods mark a return to development practice from early in the history of software development. Initially, agile methods were called "lightweight methods."

An adaptive software development process was introduced in a paper by Edmonds (1974). Notable early Agile methods include Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM) (1995). These are now typically referred to as Agile Methodologies, after the Agile Manifesto published in 2001.
In 2001, 17 prominent figure in the field of agile development (then called "light-weight methods") came together at the Snowbird ski resort in Utah to discuss ways of creating software in a lighter, faster, more people-centric way. They coined the terms "Agile Software Development" and "agile methods", and they created the Agile Manifesto, widely regarded as the canonical definition of agile development and accompanying agile principles. Later, some of these people formed The Agile Alliance, a non-profit organization that promotes agile development.
Agile methods are a family of development processes, not a single approach to software development.
The Agile Manifesto states:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
· Individuals and interactions over processes and tools
· Working software over comprehensive documentation
· Customer collaboration over contract negotiation
· Responding to change over following a plan

Agile methods
Some of the well-known agile software development methods:
Agile Modeling
Agile Unified Process (AUP)
Agile Data Method
DSDM
Essential Unified Process (EssUP)
Extreme Programming (XP)
Feature Driven Development (FDD)
Open Unified Process (OpenUP)
Scrum
Lean software development

Agile practices
Test Driven Development (TDD)
Behavior Driven Development (BDD)
Continuous Integration
Pair Programming
Planning poker RITE Method