What is Agile Methodology?
AGILE methodology is a practice that promotescontinuous iterationof development and testing throughout the software development lifecycle of the project. Both development and testing activities are concurrent unlike the Waterfall model
The agile software development emphasizes on four core values.
- Individual and team interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
In this Software Engineering tutorial, you will learn
- What is Agile Methodology?
- Agile Vs Waterfall Method
- Product Backlog
- Scrum Practices
- Process flow of Scrum Methodologies:
- eXtreme Programming (XP)
- Phases of eXtreme programming:
- Crystal Methodologies
- Dynamic Software Development Method (DSDM)
- Feature Driven Development (FDD)
- Lean Software Development
- Agile metrics
Agile Vs Waterfall Method
Agile and Waterfall model are two different methods for software development process. Though they are different in their approach, both methods are useful at times, depending on the requirement and the type of the project.
Agile method proposes incremental and iterative approach to software design
Development of the software flows sequentially from start point to end point.
The agile process is broken into individual models that designers work on
The design process is not broken into an individual models
The customer has early and frequent opportunities to look at the product and make decision and changes to the project
The customer can only see the product at the end of the project
Agile model is considered unstructured compared to the waterfall model
Waterfall model are more secure because they are so plan oriented
Small projects can be implemented very quickly. For large projects, it is difficult to estimate the development time.
All sorts of project can be estimated and completed.
Error can be fixed in the middle of the project.
Only at the end, the whole product is tested. If the requirement error is found or any changes have to be made, the project has to start from the beginning
Development process is iterative, and the project is executed in short (2-4) weeks iterations. Planning is very less.
The development process is phased, and the phase is much bigger than iteration. Every phase ends with the detailed description of the next phase.
Documentation attends less priority than software development
Documentation is a top priority and can even use for training staff and upgrade the software with another team
Every iteration has its own testing phase. It allows implementing regression testing every time new functions or logic are released.
Only after the development phase, the testing phase is executed because separate parts are not fully functional.
In agile testing when an iteration end, shippable features of the product is delivered to the customer. New features are usable right after shipment. It is useful when you have good contact with customers.
All features developed are delivered at once after the long implementation phase.
Testers and developers work together
Testers work separately from developers
At the end of every sprint, user acceptance is performed
User acceptance is performed at the end of the project.
It requires close communication with developers and together analyze requirements and planning
Developer does not involve in requirement and planning process. Usually, time delays between tests and coding