Dr. Ambedkar Institute Of Technology Subject-Software Engineering And Project Management Sub Code-21CST601 Branch-Computer Science And Engineering Topic-Agile Development Models Presented By: Kushal Gowda U B 1DA21CS179 Submitted To: Dr. Praveena M V Assistant Professor Dept. Of CSE
Agile Development Agile Software Development is a software development methodology that values flexibility, collaboration, and customer satisfaction. It is based on the Agile Manifesto, a set of principles for software development that prioritize individuals and interactions, working software, customer collaboration, and responding to change. Agile Software Development is an iterative and incremental approach to software development that emphasizes the importance of delivering a working product quickly and frequently. It involves close collaboration between the development team and the customer to ensure that the product meets their needs and expectations.
Agile Software Development Process Requirements Gathering : The customer’s requirements for the software are gathered and prioritized. Planning: The development team creates a plan for delivering the software, including the features that will be delivered in each iteration. Development: The development team works to build the software, using frequent and rapid iterations. Testing: The software is thoroughly tested to ensure that it meets the customer’s requirements and is of high quality. Deployment: The software is deployed and put into use. Maintenance: The software is maintained to ensure that it continues to meet the customer’s needs and expectations.
Agile Process Models Extreme Programming (XP) Dynamic Systems Development Method (DSDM) Scrum Crystal Feature Driven Development (FDD ) Lean Software Development
Extreme Programming(XP) Relies on object-oriented approach Key activities Planning (user stories created and ordered by customer value) Design (simple designs preferred, CRC cards and design prototypes are only work products, encourages use of refactoring) Coding (focuses on unit tests to exercise stories, emphasizes use of pairs programming to create story code, continuous integration and smoke testing is utilized) Testing (unit tests created before coding are implemented using an automated testing framework to encourage use of regression testing, integration and validation testing done on daily basis, acceptance tests focus on system features and functions viewable by the customer)
Adaptive Software Development Self-organization arises when independent agents cooperate to create a solution to a problem that is beyond the capability of any individual agent Emphasizes self-organizing teams, interpersonal collaboration, and both individual and team learning Adaptive cycle characteristics Phases Mission-driven Component-based Iterative Time-boxed Risk driven and change-tolerant Speculation Collaboration Learning
Scrum SCRUM is an agile development process focused primarily on ways to manage tasks in team-based development conditions. There are three roles in it, and their responsibilities are: Scrum Master: The scrum can set up the master team, arrange the meeting and remove obstacles for the process Product owner: The product owner makes the product backlog, prioritizes the delay and is responsible for the distribution of functionality on each repetition. Scrum Team: The team manages its work and organizes the work to complete the sprint or cycle.
Crystal There are three concepts of this method- Chartering: Multi activities are involved in this phase such as making a development team, performing feasibility analysis, developing plans, etc. Cyclic delivery: under this, two more cycles consist, these are: Team updates the release plan. Integrated product delivers to the users. Wrap up: According to the user environment, this phase performs deployment, post-deployment.
A dvantages of Agile Development Faster Time-to-Market Improved Customer Satisfaction . Increased Flexibility Better Quality Improved Team Collaboration Reduced Risk Increased Employee Engagement Improved Adaptability
Disadvantages of Agile Development Lack of Planning Difficulty in Estimating Effort Limited Scalability Difficulty in Managing Complexity Lack of Documentation Resistance to Change Difficulty in Measuring Progress