Agility 1
Agility 1
• pervasiveness of change
• • changes in the software being built,
• • changes to the team members,
• • changes because of new technology,
• • changes of all kinds that may have an impact on the product
• they build or the project that creates the product
Agility
• Agility is effective response to change
• it enables effective communication among the stakeholders,software developers
and others involved in the project
• AGILE – to move quickly and easily
--relating to or denoting a method of project management, used especially
for software development, that is characterized by the division of tasks into
short phases of work and frequent reassessment and adaptation of plans.
• emphasize an incremental delivery strategy that gets working software to the
customer rapidly and feasible for the product type and operational environment.
Agility Cost of Change
• The conventional wisdom in software development (supported by decades of expe- rience) is that the cost of
change increases nonlinearly as a project progresses
• Agility ( “flattens” the cost of change curve (allowing a software team to accommodate changes late in a
software project without much cost and time impact.
Agile Manifesto
• Individuals and interactions over Processes and tools.
• Working software over comprehensive documentation.
• Customers are collaboration over contact negotiation.
• Responding to change over following a plan.
Advantages
• Advantages of Agile Methodology
1.Customer satisfaction is rapid, continuous development and delivery of
useful software.
2.Customer, Developer, and Product Owner interact regularly to
emphasize rather than processes and tools.
3.Product is developed fast and frequently delivered (weeks rather than
months.)
4.A face-to-face conversation is the best form of communication.
5.It continuously gave attention to technical excellence and good design.
• Disadvantages of Agile methodology:
1.It is not useful for small development projects.
2.There is a lack of intensity on necessary designing and documentation.
3.It requires an expert project member to take crucial decisions in the
meeting.
4.Cost of Agile development methodology is slightly more as compared
to other development methodology.
Agile methodology Waterfall model
It divides the project development lifecycle into a The software development process is divided into
sprint. distinct phases.
Agile is the collection of many different projects. It is completed as one single project.
The test plan is reviewed after each sprint Test plan is reviewed after complete development.
Testing team can take part in the requirements It is difficult for the test to initiate any change in
change phase without problems. needs.
Extreme Programming (XP)?
• Extreme programming is a software development methodology that’s
part of agile methodologies.
• XP is built upon values, principles, and practices,
• its goal is to allow small to mid-sized teams to produce high-quality
software and adapt to evolving and changing requirements.
XP Values
• The XP values:
• communication
• Simplicity
• Feedback
• courage
• respect
Communication
• In order to achieve effective communication between software engineers and other
stakeholders
• XP emphasizes close, yet informal (verbal) collaboration between customers and
developers, the establishment of effective metaphors for communicating important
concepts, continuous feedback, and the avoidance of voluminous docu- mentation
as a communication medium.
• a metaphor is “a story that everyone—customers, programmers, and managers—
can tell about how the system works”
Simplicity
• Many agile process models have been proposed and are in use across the industry.
Adaptive Software Development (ASD)
• Scrum
• Dynamic Systems Development Method (DSDM)
• Crystal
• Feature Drive Development (FDD) • Lean Software Development (LSD) • Agile Modeling (AM)
• Agile Unified Process (AUP)
SCRUM
• Scrum (the name is derived from an activity that occurs during a rugby match) is an agile software
development method that was conceived by Jeff Sutherland and his development team in the early
1990s.
• Framework activities: requirements, analysis, design, evolution, and delivery.
• Each framework activity, has work tasks occur within a process pattern called a sprint.
• The work conducted within a sprint is adapted to the problem and is defined and often modified in real
time by the Scrum team
• Scrum incorporates a set of process patterns that emphasize project priorities, compartmentalized
work units, communication, and frequent customer feedback.
• Scrum is light-weighted framework
• Scrum emphasizes self-organization
• Scrum is simple to understand
• Scrum framework help the team to work together
Key points on Scrum
• Scrum emphasizes transparency, inspection, and adaptation.
• The product is built incrementally in fixed-length iterations (sprints).
• Changes are only made between sprints unless there is a compelling
reason to make a change during a sprint.
• Scrum provides a flexible and collaborative approach to project
management, allowing teams to adapt to changing requirements and
deliver a potentially shippable product at the end of each sprint.
• It is widely used in various industries for its focus on iterative
development, continuous improvement, and customer feedback.
Lifecycle of Scrum
• Each of these process patterns defines a set of development actions:
• Backlog—a prioritized list of project requirements or features that provide busi- ness value for the
customer. Items can be added to the backlog at any time.
• The product manager assesses the backlog and updates priorities as required.
• Sprints—consist of work units that are required to achieve a requirement de- fined in the backlog
that must be fit into a predefined time-box
• Changes (e.g., backlog work items) are not introduced during the sprint
• Scrum meetings—are short (typically 15 minutes) meetings held daily by the Scrum team. Three
key questions are asked and answered by all team members
• What did you do since the last team meeting?
• What obstacles are you encountering?
• What do you plan to accomplish by the next team meeting?
• A team leader, called a Scrum master, leads the meeting and assesses the responses from each
person. The Scrum meeting helps the team to uncover potential problems as early as possible.
• Demos—deliver the software increment to the customer so that functionality that has been
implemented can be demonstrated and evaluated by the customer
Scrum Events
• Sprint: A time-boxed iteration (usually 2-4 weeks) during which
a potentially shippable product increment is created.
• Sprint Planning: A meeting at the beginning of each sprint where
the team plans the work to be done.
• Daily Scrum (Stand-up): A short daily meeting where team
members discuss progress, plan for the day, and identify and
address impediments.
• Sprint Review: The Sprint Review is held at the end of each sprint.
The Scrum Team, stakeholders, and the Product Owner come together
to review the completed work. The Development Team demonstrates
the product increment, and stakeholders provide feedback. This
session informs future planning and adjustments to the Product
Backlog.
• Sprint retrospective: The Sprint Retrospective occurs after the Sprint
Review and involves the Scrum Team reflecting on the previous
sprint. The team discusses what went well, what could be improved,
and any action items for enhancing their processes. The focus is on
continuous improvement.
• Advantage of using Scrum framework:
• Scrum framework is fast moving and money efficient.
• Scrum framework works by dividing the large product into small sub-products. It’s
like a divide and conquer strategy
• In Scrum customer satisfaction is very important.
• Scrum is adaptive in nature because it have short sprint.
• Disadvantage of using Scrum framework:
• Scrum framework do not allow changes into their sprint.
• Scrum framework is not fully described model. If you wanna adopt it you need to
fill in the framework with your own details like Extreme Programming(XP),
Kanban, DSDM.
• It can be difficult for the Scrum to plan, structure and organize a project that lacks
a clear definition.
• The daily Scrum meetings and frequent reviews require substantial resources.
Requirement Engineering
• The broad spectrum of tasks and techniques that lead to an understanding of re- quirements is
called requirements engineering.
• From a software process perspective, requirements engineering is a major software engineering
action that begins during the communication activity and continues into the modeling activity.
• It must be adapted to the needs of the process, the project, the product, and the people doing
the work.
• Requirements engineering provides the appropriate mechanism for understand- ing what the
customer wants, analyzing need, assessing feasibility, negotiating a rea- sonable solution,
specifying the solution unambiguously, validating the specification, and managing the
requirements as they are transformed into an operational .
• It encompasses seven distinct tasks: inception, elicitation, elaboration, negotiation,
specification, validation, and management. It is important to note that some of these tasks
occur in parallel and all are adapted to the needs of the project.
• Requirements engineering provides the appropriate mechanism for
understand- ing
• what the customer wants,
• analyzing need,
• assessing feasibility,
• negotiating a rea- sonable solution,
• specifying the solution unambiguously,
• validating the specification,
• and managing the requirements as they are transformed into an operational .
Requirement Engineering Task/Stages
• It encompasses seven distinct tasks:
• Inception,
• Elicitation,
• Elaboration,
• Negotiation,
• Specification,
• Validation.
• Management.
• It is important to note that some of these tasks occur in parallel and all
are adapted to the needs of the project.
Inception
• How does a software project get started?
• Is there a single event that becomes the catalyst for a new
computer-based system or product, or does the need evolve
over time?
INCEPTION
• most projects begin when a business need is identified or a potential new market
or service is discovered.
• Stakeholders from the business community (e.g., business managers, marketing
people, product managers) define a business case for the idea, try to identify the
breadth and depth of the market, do a rough feasibility analysis, and identify a
working description of the project’s scope.
• This phase helps to understand a basic understanding of the
problem, the people who want a solution, the nature of the
solution that is desired, and the effective- ness of preliminary
communication and collaboration between the other stakeholders
and the software team.
Elicitation
• ask the customer, the users, and others what the objectives for the system or product are, what is to be
accomplished, how the system or product fits into the needs of the business, and finally, how the sys- tem
or product is to be used on a day-to-day basis.
• a collaborative, team-oriented approach to requirements gathering, stakeholders work together to identify
the problem, propose elements of the solution, negotiate different approaches and specify a preliminary
set of solution requirements
• Collaborative Requirements Gathering
• Meetings are conducted and attended by both software engineers and other stakeholders.
• Rules for preparation and participation are established.
• An agenda is suggested that is formal enough to cover all important points
• but informal enough to encourage the free flow of ideas.
• A “facilitator” (can be a customer, a developer, or an outsider) controls the meeting.
• A “definition mechanism” (can be work sheets, flip charts, or wall stickers or an electronic
bulletin board, chat room, or virtual forum) is used.
• each attendee is asked to make a list of objects that are part of the environment that surrounds the
system, other objects that are to be produced by the system, and objects that are used by the
system to perform its functions.
• In addition, each attendee is asked to make another list of services (processes or functions) that
manipulate or in- teract with the objects.
• Finally, lists of constraints (e.g., cost, size, business rules) and performance criteria (e.g., speed,
accuracy) are also developed.
Quality Function Deployment
• Quality function deployment (QFD) is a quality management technique that translates
the needs of the customer into technical requirements for software.
• QFD “concen- trates on maximizing customer satisfaction from the software
engineering process”
• QFD identifies three types of requirements
• Normal requirements. The objectives and goals that are stated for a prod-uct or
system during meetings with the customer. If these requirements are present, the
customer is satisfied. Examples of normal requirements might be requested types of
graphical displays, specific system functions, and defined levels of performance.
• Expected requirements. These requirements are implicit to the product or system
and may be so fundamental that the customer does not explicitly state them. Their
absence will be a cause for significant dissatisfaction. Examples of expected
requirements are: ease of human/machine interaction, overall operational correctness
and reliability, and ease of software installation.
• Exciting requirements. These features go beyond the customer’s expecta- tions
and prove to be very satisfying when present. For example, software for a new
mobile phone comes with standard features, but is coupled with a set of
unexpected capabilities (e.g., multitouch screen, visual voice mail) that delight
every user of the product.
• Because many different stakeholders exist, the requirements of the system will be
explored from many different points of view.
• For example, the marketing group is in- terested in functions and features that will excite
the potential market, making the new system easy to sell.
• Business managers are interested in a feature set that can be built within budget and that
will be ready to meet defined market windows.
• Each of the stakeholders needs will contribute information to the requirements
engineering process.
• As information from multiple viewpoints is col- lected, emerging requirements may be
inconsistent or may conflict with one another.
• The team should be able to categorize all stakeholder information (including inconsistent
and conflicting requirements) in a way that will allow decision makers to choose an
internally consistent set of requirements for the system.
• Working toward Collaboration
• Customers (and other stakeholders) must collaborate among them-selves and with
software engineering practitioners for a successful system.
• The job of a requirements engineer is to identify areas of commonality (i.e., re-
quirements on which all stakeholders agree) and areas of conflict or inconsistency
(i.e., requirements that are desired by one stakeholder but conflict with the needs of
another stakeholder
• stakeholders collaborate by providing their view of requirements, but a strong
“project champion”(e.g., a business manager or a senior technologist) may make the
final decision about which requirements to be finalised.
• Asking the First Questions
• The first set of context-free questions focuses on the customer and other stakeholders, the
overall project goals and benefits. For example, you might ask:
• • Who is behind the request for this work?
• Who will use the solution?
• What will be the economic benefit of a successful solution? • Is there another source for the
solution that you need?
• These questions help to identify all stakeholders who will have interest in the software to be built.
• The next set of questions enables you to gain a better understanding of the prob- lem and allows
the customer to voice his or her perceptions about a solution:
• How would you characterize “good” output that would be generated by a successful solution?
• What problem(s) will this solution address?
• Can you show me (or describe) the business environment in which the
• solution will be used?
• Will special performance issues or constraints affect the way the solution is approached?
• The final set of questions focuses on the effectiveness of the communication
activity itself.
• Are you the right person to answer these questions? Are your answers “official”?
• Are my questions relevant to the problem that you have?
• Am I asking too many questions?
• Can anyone else provide additional information?
• Should I be asking you anything else?
• These questions (and others) will help to “break the ice” and initiate the communi-
cation that is essential to successful elicitation.
Developing USE CASES
• a use case tells a story about how an end user (playing one of a number of possible
roles) interacts with the system under a specific set of circumstances.
• The story may be narrative text, an outline of tasks or interactions, a template-
based description, or a diagrammatic representation.
• Regardless of its form, a use case depicts the software or system from the end
user’s point of view.
• The first step in writing a use case is to define the set of “actors” that will be
involved in the story.
• Actors are the different people (or devices) that use the system or product within
the context of the function and behavior that is to be described. Actors represent
the roles that people (or devices) play as the system operates.
• It is important to note that an actor and an end user are not
the same.
• A typical user may play a number of different roles when
using a system, whereas an actor represents a class of
external entities (often, but not always, people) that play
just one role in the context of the use case.
• Primary actors interact to achieve required system function and derive the intended benefit from the system.
They work directly and frequently with the software.
• Secondary actors support the system so that primary actors can do their work
• Once actors have been identified, use cases can be developed. a number of
questions, that should be answered by a use case:
• Who is the primary actor, the secondary actor(s)?
• What are the actor’s goals?
• What preconditions should exist before the story begins?
• What main tasks or functions are performed by the actor?
• What exceptions might be considered as the story is described?
• What variations in the actor’s interaction are possible?
• What system information will the actor acquire, produce, or change?
• Will the actor have to inform the system about changes in the external environment?
• What information does the actor desire from the system?
• Does the actor wish to be informed about unexpected changes?
Building Requirement Model
• The intent of the analysis model is to provide a description of the required informational,
functional, and behavioral domains for a computer-based system.
• The model changes dynamically as you learn more about the system to be built, and other
stakeholders un- derstand more about what they really require.
• As the requirements model evolves, certain elements will become relatively stable, providing a solid
foundation for the design tasks that follow.
• Elements of the Requirements Model
• Scenario based elements
• Class based elements
• Behavior Elements
• Flow oriented elements.
Elements of the Requirements Model
• Scenario-based elements. The system is described from the user’s point of view
using a scenario-based approach.
• Scenario-based elements of the requirements model are often the first part of the
model that is developed.
• Scenarios are created by using
• Use case Diagram,
• Activity Diagram
• User Stories
Use case Diagram
• Entry Block: Allows the control into the control flow graph
• Exit block:control flow leaves through the exit block.
Behavioral Elements
• It helps to understand the overall behavior and factors that influence
the behavior of a system.
• 1.State Transition Diagram
Overall states of system
Events which are responsible for a change in state of a system.