0% found this document useful (0 votes)
105 views45 pages

Unit2 MU Newpdf 2024 01 08 19 59 51

This document provides an overview of agile development and several agile methodologies including Scrum, Extreme Programming (XP), Adaptive Software Development (ASD), and others. It defines agile as an iterative software development approach that prioritizes collaboration, customer feedback, and adaptability. Key aspects of agile methodologies discussed include short iterations, frequent working software delivery, emphasis on communication and self-organizing teams.

Uploaded by

nagabe8303
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views45 pages

Unit2 MU Newpdf 2024 01 08 19 59 51

This document provides an overview of agile development and several agile methodologies including Scrum, Extreme Programming (XP), Adaptive Software Development (ASD), and others. It defines agile as an iterative software development approach that prioritizes collaboration, customer feedback, and adaptability. Key aspects of agile methodologies discussed include short iterations, frequent working software delivery, emphasis on communication and self-organizing teams.

Uploaded by

nagabe8303
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Unit 2- Agile Development

Subject : Software Engineering


Subject Code: 01IT0601
Semester: 6th

Asst. Prof. Kumar Parmar


Topics
Agile Development
SDLC: Agile Method, Manifesto, Various Agile Modeling Techniques, Scrum,
Scrum Reference Card, LSS (Large Scale Scrum), XP, ASD, Crystal
What is Agile?
• Agile in software engineering is an iterative and flexible development approach that
prioritizes collaboration, customer feedback, and adaptability.
• “Adaptability” refers to the ability of development teams to respond and adjust to
changes in requirements, priorities, and circumstances throughout the project lifecycle.
What is Agility?
• Effective response to change.
• Agile software development is a conceptual framework for software engineering that
promotes development iterations throughout the life-cycle of the project.
• Software developed during one unit of time is referred to as an iteration, which may last
from one to four weeks.
• Agile methods also emphasize working software as the primary measure of progress
What is Agility?
• Effective communication among all stakeholders
What is Agility?
• Drawing the customer onto the team
• Eliminate the “us and them” attitude
Software Development Team

Customer
What is Agility?
• Organizing a team so that it is in control to perform the work
Principles to achieve agility
• Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
• Welcome Changes requirement is allowed late in development.
• Deliver working software frequently, from a couple of weeks to a couple of months,
with a preference to the shorter time scale.
• Business people and developers must work together daily throughout the project.
• Build project around a motivated individuals. Give them the environment and support
they need, and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a
development team is face-to-face conversion.
Principles to achieve agility
• Working software is primary measure of software.
• The Sponsors, developers and users should be able to maintain a constant pace
indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behavior accordingly.
Agile Software Process
• An agile process must be adaptable.
• It must adapt incrementally.
• Requires customer feedback.
• An effective catalyst (main source) for customer feedback is an operational prototype.
Manifesto for Agile Software Development
Agile Vs Waterfall
Agile Model Waterfall Model

• Agile method proposes incremental and iterative approach to • Development of the software flows sequentially from start
software design point to end point.

• The agile process is broken into individual models that • The design process is not broken into an individual models
designers work on.

• The customer has early and frequent opportunities to look at the • The customer can only see the product at the end of the
product and make decision and changes to the project project

• Development process is iterative, and the project is executed in • The development process is phased, and the phase is much
short (2-4) weeks iterations. Planning is very less. bigger than iteration. Every phase ends with the detailed
description of the next phase.

• It requires close communication with developers and together • Developer does not involve in requirement and planning
analyze requirements and planning process. Usually, time delays between tests and coding
Where agile methodology don’t work
• Project plan & requirements are clear & unlikely to change.
• Unclear understanding of Agile Approach among Teams.
• Big Enterprises where team collaboration is tough.
Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Feature Driven Development (FDD)
• Agile Modelling (AM)
• Rational Unify Process(RUP)
• Crystal
Extreme Programming (XP)
• The most widely used agile process, originally proposed by Kent Beck. XP uses an object-
oriented approach as its preferred development paradigm (ideal pattern).

• Five values of XP: • Defines four framework activities


• Communication • Planning
• Simplicity • Design
• Feedback • Coding
• Courage • Testing
• Respect
Extreme Programming (XP)

CRC: class-responsibility, collaborator


Extreme Programming (XP) - Planning
• User story-cards
• Release planning
• Small releases
• Iterative process
• Stand up meetings
Extreme Programming (XP) - Design
• Simple design
• It is always good to keep the things simple to meet the current requirements

• Spike solution
• For answering the tough technical problem

• Refactoring
• Reduction in the redundancy, elimination of unused functionalities

• Encourage the use of CRC (class-responsibility-collaborator) cards


Extreme Programming (XP) - CRC

http://agilemodeling.com/artifacts/crcModel.htm
Extreme Programming (XP) - Coding
• Customer availability
• In XP, customer should be the part of the project development

• Paired programming
• All code must be coded by groups of two people working at the same computer

• Collective code ownership


• By having collective code ownership approach,
• Everyone contributes new ideas
• Anyone can change any line of code to fix a bug
Extreme Programming (XP) - Testing
• Unit testing
• All the code must be tested by unit testing using test cases before its release

• Continuous integration
• As soon as one task is finished, integrate it into the whole system

• No overtime
• Conduct the release plan meeting to change the scope or to reschedule the project
delivery
Extreme Programming (XP)
• Advantages:
• The developers who prefer to use this methodology create extremely simple code that can
be improved at any moment.
• Bug detection is guaranteed when regular testing is done during the development stage.
• changes are made based on client feedback during development stages keeps overall costs
low.
• Employee Satisfaction
Extreme Programming (XP)
• Disadvantages:
• XP is also very time consuming and has a lot of refactoring involved in its procedures.
• Constant involvement of the customer.
• The lack of proper documentation creates problems in large products when project
members leave and new members come in later.
Adaptive Software Development (ASD)
• Adaptive Software Development (ASD) was proposed by Jim Highsmith. ASD has
evolved from the RAD practices.
• This is a technique for building complex software systems using iterative approach.
• ASD focus on working in collaboration and team self-organization.
• ASD incorporates three phases
• Speculation (refers to the act of forming opinions or making guesses about something without sufficient

evidence or knowledge.)

• Collaboration
• Learning
Adaptive Software Development (ASD)

JAD : Joint Application Development


Adaptive Software Development - Speculation
• The adaptive cycle planning is conducted.
• In this cycle planning mainly three types of information is used
• Customer’s mission statement
• Project constraints
• Delivery date, budgets etc…

• Basic requirements of the project


Adaptive Software Development - Collaboration
• In this, collaboration among the members of development team is a key factor.
• For successful collaboration and coordination it is necessary to have following qualities in
every individual
• Assist each other without offense
• Work hard
• Posses the required skill set
• Communicate problems and help each other
• Criticize without any hate
Adaptive Software Development - Learning
• Emphasize is on learning new skills and techniques.
• There are three ways by which the team members learn
• Focus groups
• The feedback from the end-users is obtained.
• Formal technical review
• This review is conducted for better quality.
• Postmortems
• Team analyses its own performance and makes appropriate improvements.
Adaptive Software Development - Learning
• Emphasize is on learning new skills and techniques.
• There are three ways by which the team members learn
• Focus groups
• The feedback from the end-users is obtained.
• Formal technical review
• This review is conducted for better quality.
• Postmortems
• Team analyses its own performance and makes appropriate improvements.
Scrum
• This model is developed by Jeff Sutherland and Ken Schwaber in 1995.
• Scrum is an agile process model which is used for developing the complex software
systems.
• It is a lightweight process framework.
• Lightweight means the overhead of the process is kept as small as possible in order to
maximize the productivity.
Scrum
• There are small working teams on the projects due to which there is maximum
communication and minimum overhead.
• The task of people must be partitioned into small and clean packets.
• The process must accommodate the technical or business changes if they occur.
• The process should produce software increments.
• During product building the constant testing and documentation must be conducted.
• The SCRUM process must produce the working model of the product whenever required.
Scrum
Scrum
• Product Owner
• Responsible for representing the business and customer needs.
• Possibly a Product Manager or Project Sponsor
• Decides features, release date, prioritization, $$$

• Scrum Master
• Typically a Project Manager or Team Leader
• Responsible for enacting Scrum values and practices
• Remove impediments (obstacle) / politics, keeps everyone productive
Scrum
• Project Team
• 5-10 members; Teams are self-organizing
• Cross-functional (different functional expertise) : QA, Programmers, UI Designers, etc.
• Membership should change only between sprints (A sprint is a short, time-boxed period
when a scrum team works to complete a set amount of work)
Scrum (roles)
Scrum (roles)
Scrum (roles)
Scrum – sprint planning
Scrum Development Activities
• Backlog
• It is a list of project requirements or features that must be provided to the customer.
• The items can be included in the backlog at any time.
• The product manager analyses this list and updates the priorities as per the
requirements.

• Sprint
• These are the work units that are needed to achieve the requirements mentioned in the
backlogs.
• Typically the sprints have fixed duration or time box (of 2 to 4 weeks).
• Thus sprints allow the team members to work in stable and short-term environment.
Scrum Development Activities
• Meetings
• There are 15 minutes daily meetings to report the completed activities, obstacles and
plan for next activities.
• Following are three questions that are mainly discussed during the meetings.
• What are the tasks done since last meeting ?
• What are the issues that team is facing ?
• What are the next activities that are planned ?

• Demo
• During this phase implemented functionalities are demonstrated to the customer.
Crystal Agile Framework
• What is the Crystal Method?
• an agile framework focusing on individuals and their interactions, as opposed to
processes and tools.
• In other words, this framework is a direct outgrowth of one of the core values
articulated in the Agile Manifesto.

• The Crystal agile framework is built on two core beliefs:


• Teams can find ways on their own to improve and optimize their workflows
• Every project is unique and always changing, which is why that project’s team is best
suited to determine how it will tackle the work
Crystal Agile Framework
• What is the History of the Crystal Method?
• Alistair Cockburn, developed the Crystal method for IBM in 1991. He decided to focus
not on developing specific step-by-step development strategies that would work across the
board for teams involved in any project, but instead to develop guidelines for team
collaboration and communication. Method were therefore all based around the team itself:
• Human-powered (meaning the project should be flexible and tailored to the needs and
the preferred work modalities of people involved)
• Adaptive (meaning the approach uses no fixed tools but can be altered to meet the
team’s specific needs)
• Ultra-light (meaning this methodology does not require much documentation or
reporting)
Crystal Agile Framework
• What are the Strengths and Weakness of Crystal?
• Crystal’s strengths include:
• Allows teams to work the way they deem most effective
• Facilitates direct team communication, transparency and accountability
• The adaptive approach lets teams respond well to changing requirements

• Crystal’s weaknesses include:


• Lack of pre-defined plans
• Lack of documentation can lead to confusion
Lean Software Development (LSD)
• Lean Software Development (LSD) has adapted the principles of lean manufacturing.
• The lean principles that inspire the LSD process can be summarized as eliminate waste,
build quality in, create knowledge, defer commitment, deliver fast, respect people, and
optimize the whole.
• Each of these principles can be adapted to the software process.
• For example, eliminate waste within the context of an agile software project can be
interpreted to mean. (1) adding no extraneous features or functions, (2) assessing the cost
and schedule impact of any newly requested requirement, (3) removing any superfluous
process steps, (4) establishing mechanisms to improve the way team members find
information, (5) ensuring the testing finds as many errors as possible,
Lean Software Development (LSD)
• (6) reducing the time required to request and get a decision that affects the software or the
process that is applied to create it, and (7) streamlining the manner in which information is
transmitted to all stakeholders involved in the process.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy