Agile Development PDF

Document Details

Dr. Anuradha Acharya

Tags

agile development software development agile methodologies software engineering

Summary

This document provides an overview of agile development methodologies, with a focus on Extreme Programming (XP) and Adaptive Software Development (ASD). The text outlines key principles, values, and practices, and provides descriptions of the different phases involved in each method.

Full Transcript

Agile Development Dr. Anuradha Acharya objective To understand the concept of agility and the corresponding models which can reduce the problems encountered in conventional models. What is agility? Agility describes modern software process. It ref...

Agile Development Dr. Anuradha Acharya objective To understand the concept of agility and the corresponding models which can reduce the problems encountered in conventional models. What is agility? Agility describes modern software process. It refers to the response to changes in the software development. It recognises that the software is developed by individuals working in teams and that the skills of these people, their ability to collaborate : which is the core success of the project. Any agile software process is characterized in a manner that addresses a number of key assumptions about the majority of software projects: 1. It is difficult to predict in advance which software requirements will persist and which will change. It is equally difficult to predict how customer priorities will change as the project proceeds. 2. For many types of software, design and construction are interleaved. That is, both activities should be performed in tandem so that design models are proven as they are created. It is difficult to predict how much design is necessary before construction is used to prove the design. 3. Analysis, design, construction, and testing are not as predictable (from a planning point of view) as we might like. How to handle unpredictability? – Agile process must be Adaptable. – An agile software process must adapt incrementally. – To accomplish incremental adaptation, an agile team requires customer feedback. – An effective catalyst for customer feedback is an operational prototype. – Hence, an incremental development strategy should be instituted. – Software increments (executable prototypes or portions of an operational system) must be delivered in short time periods so that adaptation keeps pace with change (unpredictability) Note : The principles define an agile spirit that is maintained in each of agile process models. Politics of Agile Development There is considerable debate about benefits of Agile Development and more traditional software engineering. The two sides say: Traditional SE Methodologists are bunch of stick-in-the-muds that produce flawless documentation than a working system that meets business needs. Agile Developers are glorified hackers who will have big problems when they try to scale up their toys into enterprise strength SW. There is much that can be gained by considering the best of both. Many agile concepts are simply adaptations of good software engineering concepts Integration and validation testing/Smoke testing/Regression testing XP Values Communication : Verbal Communication with effective metaphors, avoidance of voluminous documents Simplicity : Design based on the current needs without considering the future needs, simple design with the concept of refactoring. Feedback : feedback is collected from customers, team members, software. Unit testing to exercise each operation, according to the specification within a class. The user stories or use cases are used for acceptance testing, followed by adding of new requirements based on the feedback as a part of iterative planning. Courage : Discipline to design for today, recognizing that future requirements may change leading to rework of the design and implementation code. Respect : Among team members, between other stakeholders. Key Practices of XP Pair Programming: Two developers work together on the same code, enhancing code quality and sharing knowledge in real-time. Test-Driven Development (TDD): Automated tests are written before code is developed to ensure that features meet the specified requirements and reduce bugs. Continuous Integration: Code changes are integrated and tested frequently throughout the day to identify and fix issues early, maintaining a stable codebase. Refactoring: The code is continuously improved in structure without changing its external behavior, aiming for cleaner and more maintainable code. Collective Code Ownership: Any team member can modify any part of the codebase, promoting collaboration and shared responsibility. Key Practices of XP Continue…. Simple Design: The design is kept as simple as possible while meeting current requirements, avoiding unnecessary complexity. Customer Collaboration: Regular interactions with customers provide feedback and adjustments, ensuring the product aligns with user needs and expectations. Frequent Releases: Small, incremental updates are delivered every few weeks to provide early value and allow for ongoing user feedback. Story Cards: User stories are captured on cards to detail features and requirements, guiding development and prioritizing work. Iteration Planning: Sprint planning meetings define goals, select user stories, and estimate effort, ensuring clear objectives and alignment with business priorities Adaptive Software Development (ASD) It is an iterative and agile software development process that emphasizes rapid delivery of high-quality software, flexibility in the face of changing requirements, and collaboration between teams and stakeholders Key Features of the Adaptive Software Development (ASD) Model Iterative and Incremental: ASD is based on iterative cycles where the software is developed in small, manageable pieces called increments. Emphasis on Collaboration: Collaboration among the development team, stakeholders, and customers is crucial in ASD. Speculate: Instead of rigid planning, ASD relies on speculation where initial plans are made with the understanding that they will evolve as the project progresses. Learn: ASD is designed to adapt to changes. Teams learn from each iteration and use this knowledge to improve the product and process in subsequent cycles. Change-Driven Development: Unlike traditional models that resist change, ASD embraces it. Risk Management: By working in small iterations and constantly refining the product, ASD helps in identifying and mitigating risks early in the development process. Scrum is an Agile framework methodology. It is designed to help teams work together, emphasizing teamwork, accountability, and iterative progress toward a well-defined goal. Scrum team roles Product owner – Defines and prioritizes the work (Product Backlog). – Ensures the team is building the right product. Scrum master – Facilitates the Scrum process and ensures the team follows Scrum principles Development team – Cross-functional team members who work together to deliver a potentially shippable product increment at the end of each sprint Scrum Artifacts( Terms) Product Backlog – A prioritized list of everything that might be needed in the product. – Managed and owned by the Product Owner. Sprint Backlog – A list of tasks selected from the Product Backlog that the team commits to completing in a sprint. – The team selects items from the Product Backlog and plans how to deliver them. Increment – The sum of all the Product Backlog items completed during a sprint, plus the value of the increments of all previous sprints. – At the end of each sprint, the increment should be a working product that can be released. Scrum Events Sprint – A time-boxed period (usually 1-4 weeks) during which a potentially shippable product increment is created. – The heart of Scrum, where the actual work is done. Sprint Planning – A meeting at the start of each sprint where the team selects Product Backlog items to work on and plans how to accomplish them. – The Product Owner, Scrum Master, and Development Team all participate. Daily Scrum – A short, time-boxed (15-minute) meeting held every day where the team synchronizes activities and plans for the next 24 hours. Sprint Review – A meeting held at the end of the sprint where the team demonstrates the increment to stakeholders. – Feedback is gathered, and the Product Backlog may be adjusted accordingly. Sprint Retrospective – A meeting held after the Sprint Review to reflect on the sprint process. – The team discusses what went well, what didn’t, and how to improve in the next sprint. Scrum

Use Quizgecko on...
Browser
Browser