1) What is Agile Development model and explain about different methodologies in Agile Software development?
Agile Development model is an Incremental or iterative model,
It has several methodologies,
Types of Agile Methodologies
o Extreme Programming (XP)
o Agile Unified Process (AUP)
o Dynamic Systems Development Method (DSDM)
o Essential Unified Process (EssUP)
o Exia Process (ExP)
o Feature Driven Development (FDD)
o Open Unified Process (OpenUP)
o Crystal Clear
o Velocity tracking
2) What is the difference between Agile and Waterfall Model?
Difference between Agile and Waterfall Model:
1. The main advantage is the backward scalability in Agile. Under waterfall approach we cannot change the decisions and implementations that we had made under the previous stages. If we want to make changes under waterfall we will have to build the entire project from the scratch once again.
2. The flexibility to error check under any part of the development stage makes Agile more bug free and less erroneous as compared to Waterfall which can only test bugs at the end of the development module.
3. Since Agile provides flexibility to make changes as per customer requirements it is more inclined towards better client satisfaction. This is a real set back for the Waterfall model which doesn't allow any modifications once the module has been completed.
4. Under Agile development modular partitioning of the software can be effectively carried out as compared to its counterpart. Though both of them allows option for segregation the later lacks the modifications in the implementation stage. The rules are set down before the commencement of the project hence it hinders further break down of the logical module. Whereas Agile can be of great help under such situations and can allow simultaneous development of different modules at the same time as per time bound requirement. If we want the project to be more segregated Agile comes as a pain relief for developers.
3) How Agile is different?
Agile is different because
a) Greater Collaboration.
b) Shorter work cycle and constant feedback.
c) Need to embrace Change.
d) Greater flexibility.
e) Greater discipline.
f) Greater stakeholder accountability.
g) Greater range of skills.
4) What are the implications for testing in Agile?
- Agile testing must be iterative.
- Testers cannot rely on having complete specification.
- Agile testers must be flexible.
5) What are the Agile quality strategies?
Agile quality strategies are:
b) Non-solo development.
c) Static and dynamic code analysis
d) Reviews and inspection
- Iteration/sprint demos
- All-hands demo
- Light-weight milestone reviews
e) Short feedback cycles.
f) Standards and guidelines.
6) Explain about the Agile process?
The agile process follows the software development life cycle which includes requirements gathering, analysis, design, coding, testing and delivers partially implemented software and waits for the customer feedback. In the whole process, customer satisfaction is at highest priority with faster development time.
7) What are the new features of agile process?
In agile process new features can be added easily by using multiple iterations.
1. Iterative: The main objective of agile software processes is satisfaction of customers, so it focuses on single requirement with multiple iterations.
Agile process decomposes the complete system into manageable pieces called modules. Modularity plays a major role in software development processes.
3. Time Boxing
As agile process is iterative in nature, it requires the time limits on each module with respective cycle.
In agile processes parsimony is required to mitigate risks and achieve the goals by minimal number of modules.
As the agile process is iterative in nature, it requires the system to be developed in increments, each increment is independent of others, and at last all increments are integrated into complete system.
Due to the iterative nature of agile process new risks may occurs. The adaptive characteristic of agile process allows adapting the processes to attack the new risks and allows changes in the real time requirements.
All the risks associated with each increment are convergent in agile process by using iterative and incremental approach.
As agile process is modular in nature, it needs a good communication among software development team.
Different modules need to be integrated at the end of the software development process.
10. People Oriented
In the agile processes customer satisfaction is the first priority over the technology and process. A good software development team increases the performance and productivity of the software.
8) Where the agile methods focus on?
The agile methods are focused on different aspects of the software development life cycle. Some focus on the practices (extreme programming, pair programming), while others focus on managing the software projects (the scrum approach).
9) What are the benefits of Agile Modeling?
Agile methodology has an adaptive team which is able to respond to the changing requirements.
The team does not have to invest time and effort and finally find that by the time they delivered the product, the requirement of the customer has changed.
Face to face communication and continuous inputs from customer representative leaves no space for guesswork.
The documentation is crisp and to the point to save time.
The end result is the high quality software in least possible time duration and satisfied customer.