What is Agile methodology? Explain it with the principles used and give an example of any one such model. #SoftwareEnginneringNotes #ipumusing
What is Agile methodology? Explain it with the principles used and give an example of one such model.
An agile process model includes the development concept along with the set of guidelines necessary for the development process. It emphasises flexibility, collaboration, and customer feedback to ensure continuous improvement. The conceptual design is necessary for the satisfaction of the customer and helps in adapting to changing requirements efficiently. The philosophy simplifies development tasks by breaking them into smaller, manageable units. The concept is also necessary for the incremental delivery of the product, allowing teams to release functional parts of the software at regular intervals. The concept of the philosophy makes the development task simple, ensuring faster delivery, better quality, and improved customer satisfaction.
An agile team should be highly motivated, well-trained in the latest skills, and focused on simplifying the development process. Agile development is a flexible approach that differs from traditional methods in certain projects. It encourages continuous communication between developers and customers while focusing on analysis and design. Agile teams can quickly adapt to changes, whether in the project, team members, or new technology. This method can be applied to any software development process and ensures the fast delivery of functional software.
Principles of Agile Alliance:
The Agile Alliance has given twelve agility principles as follows:
1. Customer Satisfaction - Deliver Value
Satisfy customers through early and continuous delivery.
2. Welcome Change - Adaptability
Accommodate changing requirements.
3. Frequent Delivery - Iteration
Deliver the working software frequently in a shorter period.
4. Collaboration - Teamwork
The customer, business, and developers must work together daily during the development.
5. Motivated Individuals - Empowerment
Complete the task with motivated developers and facilitate a healthy and friendly environment.
6. Face-to-Face Communication - Directness
Convey the message orally, in face-to-face conversation.
7. Working Software - Progress
Working software is the primary measure of progress.
8. Sustainable Pace - Balance
The agile process promotes sustainable development.
9. Technical Excellence - Quality
Achieve technical excellence and good design.
10. Simplicity - Minimalism
There must be simplicity in development.
11. Self-Organizing Teams - Autonomy
The best architecture, requirements and design emerge from self-organizing teams.
12. Reflect and Adjust - Improvement
Every team should consider how to become more effective. It should review its behaviour regularly and adjust accordingly.
Thus the principles of agility can be applied to any software process. To achieve agile development, the team must understand and obey all the above principles and conduct proper planning.
Example: Extreme Programming (XP)
Extreme Programming (XP) involves building software step-by-step. You receive feedback often to ensure that the software is of high quality.
Extreme Programming is one of the most commonly used agile process models. All the agile process models obey the principles of agility and the manifesto of agile software development. The XP uses the concept of object-oriented programming. This approach is the preferred development paradigm. Similar to the conventional approach, where a developer focuses on framework activities like planning, design, coding, and testing. XP also has its own set of rules and practices for building the framework.
XP Values:
Following is a set of five values that establish a foundation for all work performed in context with XP :
1. Communication
2. Simplicity
3. Feedback
4. Courage
5. Respect
Developers and customers should meet regularly during any development process. They need to communicate clearly to gather requirements and discuss ideas. A simple design is always easier to turn into code.Feedback plays an important role and leads to discipline in the development process. There is always pressure in the development phase,, so maintaining a disciplinary approach makes the task easy. In addition to all the XP values, agile should inculcate respect among team members, other project stakeholders, and customers.
👉See Also:
Information System and Applications Development (Set-1)
SW Engineering Question Paper (2014)
SW Engineering End Term Paper (2017)
Software Configuration Management (Basic Terms)
Software Metrics (Study Notes)
Software Cost Estimation
Risks Associated With Software Development