Agile as per english dictionary means able to move quickly and easily.
Agile inshort means iterative / incremental development methodology.
- Adaptive planning
- Evolutionary development and delivery
- A time-boxed iterative approach
- Encourages rapid and flexible response to change
In simple terms I called it test based development where requiierement evolves with each iteration
Honestly, last part of setence likes and cherished by all cutomers, think about you being one of them and have all right to say what qualities your desired software should have during the course of development would be big plus.
Agile philosophy push these key items forefornt
- Customer satisfaction by rapid delivery of useful software
- Welcome changing requirements, even late in development
- Working software is delivered frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Regular adaptation to changing circumstances
Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software.
It comprises of
- requirements management
- software architecture
- computer programming
- software testing
- software maintenance
- change management
- project management
- release management
Some of the popular tools I have used which will discuss in this article
- Team Foundation Server from Microsoft
- IBM Rational Team Concert from IBM
- uberSVN WANdisco
- Visual Studio Application Lifecycle Management Microsoft
To begin with will start with Team Foundation Server from Microsoft
Team Foundation Server (commonly abbreviated to TFS) is a Microsoft product which provides
- source code management (either via Team Foundation Version Control or Git),
- requirements management,
- project management (for both agile software development and waterfall teams),
- automated builds,
- lab management,
- release management capabilities.
It covers the entire Application Lifecycle Management. TFS can be used as a back end to numerous integrated development environments but is designed to provide the most benefit by serving as the back end to Microsoft Visual Studio or Eclipse.