Wednesday, 27 May 2015

What is Agile ? 


The word Agile Software Development was in the first minted by the Agile Manifesto in 2001. It is a unit of software development methodologies or a conceptual framework based on iterative and incremental development, where requirements and methods develop through collaboration between self-organization, cross-functional teams.  

The Agile movement proposes alternates to traditional project management. Agile comes are typically used in software development to help businesses respond to uncertainty.

                     Published Manifesto of Agile Methodology 


Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Welcome changing requirements, even late in 
development. Agile processes harness change for 
the customer's competitive advantage.
Deliver working software frequently, from a 
couple of weeks to a couple of months, with a 
preference to the shorter timescale.
Business people and developers must work 
together daily throughout the project.
Build projects around motivated individuals. 
Give them the environment and support they need, 
and trust them to get the job done.
The most efficient and effective method of 
conveying information to and within a development 
team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. 
The sponsors, developers, and users should be able 
to maintain a constant pace indefinitely.
Continuous attention to technical excellence 
and good design enhances agility.
Simplicity--the art of maximizing the amount 
of work not done--is essential.
The best architectures, requirements, and designs 
emerge from self-organizing teams.
At regular intervals, the team reflects on how 
to become more effective, then tunes and adjusts 
its behavior accordingly

Individuals and interactions- in Agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.

Working software- In Agile development , the effective development means to be the strong communication with client to understand the requirement of the software instead of depending the documentation .

Customer collaboration- In Agile development requirement cannot be collect completely at the time of starting the software development due to the various factor. In this approach Continuous interaction with client is very important for the proper Product requirement

Responding to change- Agile approach follows the quick responses to process the change request in the functionality for the continuous development.

Why Agile ?  

The agile method is based on giving high priority to customer involvement , from the very Starting of the development cycle. The approach is to keep the client involved at every step so that there requirement should fulfill at the end of the day .This approach saves the client money and time because the client tests and check there requirement is developed according to there proposed requirement . If there are bugs, process Changes request or changes, then things can be made during production cycles to fix the issue or changes . Traditional models of project management would not find defects as early because they do not test as often. Typically (in traditional methods of production) defects that are not discovered at the different stages can find their way into the final product. This can result in increased overhead prices and client dissatisfaction.

There are many other reason that why this methodology is Used Frequently In current Scenario of Software Development. we can discuss following of them

Engagement of the Stakeholders / team Management/ :This Approach is good opportunity for engagement of the Stakeholder and project team management , Providing the More opportunity to truly understand the client vision.

Return on investment in Agile :
The Iterative nature of Agile development means feature are delivered incrementally enables some benefits to be released early as the Product continues to development. In this development investment is comparatively low as compare to the return on that.

Risk Management and analysis :
Risk is basic factor in Every approach . The risk is calculated at both end (stakeholder/Project Team management). In this approach small module development is easy to understand the issue for future Prospective and to fix as per that . The clear visibility in agile development help to ensure about the Risk analysis.

Cost Beneficial :
This approach is very cost beneficial for the fixed time management and there evolving development requirement. The variables of the cost in agile development are the product feature.

Improving Quality for The Right Product :For breaking down the Project in number of manageable units ensures the team to built the Right Product with high quality development with collaboration of development , testing and business team. 

The article is basically a small intro of Agile methodology what and why it is used in Software development.