0% found this document useful (0 votes)
16 views51 pages

Se Module 3

Uploaded by

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

Se Module 3

Uploaded by

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

Module-3

• Agile Development: What is Agility?, Agility and the cost of


change. What is an agile Process?, Extreme Programming (XP),
Other Agile Process Models, A tool set for Agile process Principles
that guide practice: Software Engineering Knowledge, Core
principles, Principles that guide each framework activity Textbook
1: Chapter 3: 3.1 to 3.6, Chapter 4: 4.1 to 4.4

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
What is Agility?
• Agility has become today’s buzzword when describing a modern
software process

• Agile software development is an approach to building software that


emphasizes adaptability, flexibility, and collaboration.

• Agile development recognizes that requirements and plans can change


throughout a project. The team is encouraged to be flexible and to
adapt toSkill
these changes.
First Prof J V Gorabal ,CSE ATMECE,Mysore
Why Agile Development

• Flexibility

• Improved Collaboration

• Faster Time to Market

• Risk Management

• Customer Satisfaction

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Agility and the cost of change
• The conventional wisdom in software development (supported by decades of
experience) is that the cost of change increases nonlinearly as a project
progresses

• In Agile development : Each iteration delivers a working piece of the


software. This allows for continuous feedback and adaptation. Since features
are built in smaller chunks, changes in one iteration have a less significant
impact on previous ones
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Development Cost /Development Progress

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
What is an agile Process?
• 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.

• For many types of software, design and construction are interleaved. It is difficult to
predict how much design is necessary before construction is used to prove the design

• . Analysis, design, construction, and testing are not as predictable (from a planning
point of view) as we might like.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Agility Principles
• Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.

• Welcome changing requirements, even late in development. Agile


processes harness change for the customer’s competitive advantage.

• Deliver working software frequently, from a couple of weeks


to a couple of months, with a preference to the shorter timescale

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Agility Principles
• Business people and developers must work together daily throughout the
project.

• Build projects around 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 conversation
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Agility Principles
• Working software is the primary measure of progress.

• Agile processes promote sustainable development. The sponsors,


developers, and users should be able to maintain a constant pace
indefinitely
• Continuous attention to technical excellence and good design
enhances agility.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Agility Principles
• Simplicity—the art of maximizing the amount of work not done—is
essential.

• 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.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Politics of Agile Development
• Power Struggles: Shifting from traditional, hierarchical structures to
Agile's collaborative environment can lead to power struggles,
particularly for those who enjoyed control under the old system.

• Documentation vs. Quick Delivery: Agile emphasizes working


software over extensive documentation, which can clash with
stakeholders who value detailed plans and specifications.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Politics of Agile Development
• Prioritization Battles: With Agile's focus on adapting to changing needs,
there can be disagreements over which features to prioritize, potentially
causing friction between development teams and business stakeholders.

• Metrics and Measurement: Traditional metrics used to track progress in


waterfall models might not translate well to Agile's iterative approach. New
ways to measure success and value need to be established.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Human Factors
• Competence.

• Common focus

• Collaboration

• Decision-making ability

• Fuzzy ( Uncertainity) problem-solving ability.

• Mutual trust and respect.

• Self-organization.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Extreme Programming (XP)
Extreme programming (XP) is a software
development methodology that falls under
the umbrella of agile development. It
emphasizes frequent releases in short cycles,
prioritizing responsiveness to changing
customer requirements and high-quality
software.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
XP Values

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
The XP Process
•Planning: This involves defining the scope of the upcoming iteration and prioritizing user
stories with the customer.
•Design: The team collaboratively designs the software based on the chosen user stories,
keeping it simple and focused.
•Coding: Developers work in pairs to write the code, following best practices and ensuring
quality.
•Testing: Continuous testing is a cornerstone of XP. Unit tests are written alongside the code,
and the customer is involved in acceptance testing.
•Listening: The team gathers feedback from the customer and stakeholders throughout the
iteration to adapt and improve the product in subsequent cycles.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Industrial XP
• Readiness assessment.

• Project community.

• Project chartering.(Authorizing Project)

• Test-driven management.

• Retrospectives.(Reflecting on past)

• Continuous learning
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Industrial XP

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
The XP Debate
• Requirements volatility

• Conflicting customer needs

• Requirements are expressed informally

• Lack of formal design.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Other Agile Process Model
• The history of software engineering is littered with dozens of
obsolete process descriptions and methodologies, modeling
methods and notations, tools, and technology

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Other Agile Process Model

• 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)


Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Adaptive Software Development (ASD)
• Adaptive Software Development (ASD)
has been proposed by Jim Highsmith
[Hig00] as a technique for building
complex software and systems. The
philosophical underpinnings of ASD
focus on human collaboration and team
self-organization

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Adaptive Software Development (ASD)

• Speculation: speculation in adoptive software development is about staying


proactive, responsive, and forward-thinking in order to better meet the needs of
stakeholders and deliver valuable software products.

• Collaboration and Communication: Teams work closely with stakeholders, such as


users and clients, to understand their needs and gather feedback. Open
communication channels facilitate quick responses to changes and ensure alignment
with evolving requirements.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Adaptive Software Development (ASD)

• Learning will help them to improve their level of


real understanding. ASD teams learn in three ways:
focus groups, technical reviews and
project postmortems.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Scrum and Sprints
• Scrum (the name is derived from an activity that occurs during a rugby
match13) is an agile software development method that was conceived by Jeff
Sutherland and his development team in the early 1990s. In recent years,
further development on the Scrum methods has been performed by Schwaber
and Beedle [Sch01a] ( Agile Framework)

• Sprints—Consist of work units that are required to achieve a requirement


defined in the backlog( List of tasks) that must be fit into a predefined time-
box Skill First Prof J V Gorabal ,CSE ATMECE,Mysore
What is Scrum in ASD?
• Scrum is a management framework that teams use to self-organize tasks and work
towards a common goal.

• It is a framework within which people can address complex adaptive problems

• Scrum allows us to develop products of the highest value while making sure that we
maintain creativity and productivity.

• The iterative and incremental approach used in scrum allows the teams to adapt to the

changing requirements .
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Backlog in ASD
• Backlog:a prioritized list of project requirements or features
that provide business value for the customer. Items can be
added to the backlog at any time (this is how changes are
introduced). The product manager assesses the backlog and
updates priorities as required.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
What is Sprint in Agile Software Development?
• A sprint is a short, time-boxed period when a scrum
team works to complete a set amount of work. Sprints are at the
very heart of scrum and agile methodologies, and getting sprints
right will help your agile team ship better software with fewer
headaches.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Scrum meetings
• 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 [Noy02]:

• 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


Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Scrum Master
• 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. Also,
these daily meetings lead to “knowledge socialization” [Bee99]

and thereby promote a self-organizing team structure .

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Demos
• Demos:Deliver the software increment to
the customer so that functionality that has
been implemented can be demonstrated
and evaluated by the customer.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Dynamic Systems Development Method (DSDM)

• The Dynamic Systems Development Method (DSDM) [Sta97] is an agile software


development approach that “provides a framework for building and
maintaining systems which meet tight time constraints through
the use of incremental prototyping in a controlled project
environment” [CCS02].

• The DSDM philosophy is borrowed from a modified version of the Pareto principle—80
percent of an application can be delivered in 20 percent of the time it would take to deliver
the complete (100 percent) application
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
DSDM Life Cycle
• Feasibility Study: Establishes the basic business requirements and
constraints

• Business Study: Establishes the functional and information


requirements that will allow the application to provide business
value

• Functional model iteration: Produces a set of incremental


prototypes that demonstrate functionality for the customer
Skill First Prof J V Gorabal ,CSE ATMECE,Mysore
DSDM Life Cycle
• Design and build iteration:Revisits prototypes built during functional
model iteration to ensure that each has been engineered in a manner that
will enable it to provide operational business value for end users

• Implementation—Places the latest software increment (an


“operationalized” prototype) into the operational environment. It should be
noted that (1) the increment may not be 100 percent complete or (2)
changes may be requested as the increment is put into place
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Crystal
• Alistair Cockburn [Coc05] and Jim Highsmith [Hig02b] created the Crystal
family of agile methods

• Crystal: In the realm of Agile software development, is a bunch of


adaptable methodologies focused on people over processes,
Maneuverability describes how easily something can be moved and
directed, basically the ability to change position or direction with ease.

• Crystal: Emphasizes empowering teams to find their own solutions for each
project, as opposed to being Prof
constrained by predetermined methods
J V Gorabal ,CSE ATMECE,Mysore
Skill First
Feature Driven Development (FDD)
• Iterative and incremental

• Customer-centric

• Feature-driven

• Structured

• Recommended: FDD is a good choice for projects that are complex or have a long
development timeline. It is also a good choice for projects where customer
involvement is essential.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Feature Driven Development (FDD)

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Lean Software Development (LSD)

• Lean Software Development (LSD) has adapted the principles of lean


manufacturing to the world of software engineering. The lean principles that
inspire the LSD process can be summarized ([Pop03], [Pop06a]) as eliminate
waste, build quality in, create knowledge, defer commitment, deliver fast,
respect people, and optimize the whole.

• Lean Software Development (LSD) is an Agile approach that streamlines


software development by adapting principles from lean manufacturing.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
What is Lean
Manufacturing?
• Lean Manufacturing is a systematic approach to minimizing
waste within a manufacturing system while simultaneously
maximizing productivity

• Kaizen: Continuous improvement involving everyone in the organization.

• Kanban: A scheduling system for lean and just-in-time (JIT) production.

• Mapping out all steps in the production process and identifying which ones add
value and which do not.
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Core Principles in Lean Software
Development(LSD)
• Eliminate Waste

• Build Quality In By following these principles, Lean Software


• Create Knowledge Development aims to deliver high-quality software
• Defer Commitment faster and with less waste. It complements Agile
• Deliver Fast: methodologies by providing a strong focus on value
• Respect People and continuous improvement.

• Optimize the Whole


Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Agile Unified Process (AUP)

• The Agile Unified Process (AUP) adopts a “serial in the large” and
“iterative in the small” [Amb06] philosophy for building computer-
based systems.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Agile Unified Process (AUP)
• Modeling: Understanding the problem and designing the solution.

• Implementation: Writing and testing the code.

• Testing: Ensuring the software works as expected.

• Deployment: Delivering the software to the end users.

• Configuration Management: Managing changes to the software.

• Project Management: Planning, monitoring, and controlling the project.

• Environment: Setting up and maintaining the development environment


Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
A Toolset for the Agile Process

• A toolset for the Agile process encompasses various categories that


support the different aspects of Agile methodologies. These tools
help streamline workflows, enhance collaboration,
ensure continuous integration and delivery, and manage
projects effectively.

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Project Management Tools
• JIRA: A popular tool for tracking tasks, managing projects, and organizing
Agile workflows. It supports Scrum and Kanban boards, backlog prioritization,
and sprint planning.

• Trello: A flexible and visual tool using boards, lists, and cards to manage tasks
and workflows. It is simple and suitable for smaller teams.

• Asana: A comprehensive project management tool that helps teams plan,


organize, and track work. It supports task assignment, deadlines, and progress
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Collaboration Tools
• Slack: A communication platform that provides real-time messaging, file
sharing, and integration with other tools. It enhances team collaboration and
information sharing.

• Microsoft Teams: Combines chat, video meetings, file storage, and app
integration to support team collaboration and communication.

• Confluence: A collaboration tool for documentation, knowledge sharing, and


project collaboration. It integrates well with JIRA for linking project
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
documentation with tasks.
Principles that guide practice

• Software engineering practice is a broad array of


principles, concepts, methods, and tools that you
must consider as software is planned and developed. Principles that
guide practice establish a foundation from which software
engineering is conducted

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Quick Look
• What is it?- Principles and Practices

• Who does it?- Practioners

• Why is it important?-Reach Successfull destination

• What are the steps?-Follow professional steps and practices

• What is the work product?-Outcome by Professional practices

• How do I ensure that I have done it right?- Appropriate


Methods
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
McConnell indicates- Core principles
• Provide value to end users

• Keep it simple

• Maintain the vision

• Recognize others consume ; What you produce

• Be open to the future

• Plan for Reuse

• Think……………..Think……..Think
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Principles That Guide Practice
1. Divide and conquer.

2. Understand the use of abstraction.

3. Strive for consistency

4. Focus on the transfer of information.

5. Build software that exhibits effective modularity

6. Look for patterns

7. When possible, represent the problem and its solution from a number of different perspectives

8. Remember that someone will maintain the software.


Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First
Principles that Guide Each Framework
activity
Communication Principles
1. Listen.

2. Prepare before you communicate

3. Someone should facilitate the activity.(Facilitator)

4. Face-to-face communication is best.

5. Take notes and document decisions.

6. Strive for collaboration.

7. Stay focused; modularize your discussion.

8. If something is unclear, draw a picture

Prof J V Gorabal ,CSE ATMECE,Mysore


Skill First
Principles that Guide Each Framework activity

10 -(a) Once you agree to something, move on.

-(b) If you can’t agree to something, move on.

-(c) If a feature or function is unclear and cannot be clarified at the


moment, move on

11 Negotiation is not a contest or a game. It works best when both parties


win
Prof J V Gorabal ,CSE ATMECE,Mysore
Skill First

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