Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Software Engineering (3150711)

Unit 2: Agile Development

1. Explain Agile Development in detail.


• It is difficult to predict the software requirements in advance. Similarly, the customer
priority often gets changed.
• It is difficult to predict how much design is necessary before the implementation.
• All the software development activities such as analysis, design, construction and testing
are just difficult to predict.
Human Factors:
• Agile development focuses on the talents and skills of the individuals associated in the
development process.
• The people on the agile team and the team itself should have the following characteristics
in the development process.
1. Competence
2. Common Focus
3. Collaboration
4. Decision - Making ability
5. Fuzzy Problem – solving ability
6. Mutual trust and respect
7. Self-organization
• In short, the agile development team members must be talented, skillful, knowledgeable and
good organizers. Every member should have a strong decision - making ability for both
technical and project issues.
• Every member of agile team should exhibit the trust and respect.
Principles:
• Customer satisfaction is the highest priority.
• Changing of requirements is welcome at any development stage.
• Deliver working software frequently at shorter timescales.
• The Customer, Business People and developers must work together daily.
• Trust and support motivated individuals to find solutions.
• Face-to-face conversation is the best method of conveying information.
• Working software is the primary measure of progress.
• Agile processes promote a sustainable environment.
• Continuous attention to technical excellence and good design enhances agility.
• Pay attention to simplicity.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• The team regularly reflects on how to become more effective and adjusts accordingly.

Dr. Subhash University, Junagadh Page 1


Software Engineering (3150711)

2. Explain the merits and demerits of SCRUM. OR Explain Scrum with


merits and demerits.
Merits of Scrum
• Scrum can help teams complete project deliverables quickly and efficiently
• Scrum ensures effective use of time and money
• Large projects are divided into easily manageable sprints
• Developments are coded and tested during the sprint review
• Works well for fast-moving development projects
• The team gets clear visibility through scrum meetings
• Scrum, being agile, adopts feedback from customers and stakeholders
• Short sprints enable changes based on feedback a lot more easily
• The individual effort of each team member is visible during daily scrum meetings

Demerits of Scrum

• Scrum often leads to scope creep, due to the lack of a definite end-date
• The chances of project failure are high if individuals aren't very committed or
cooperative
• Adopting the Scrum framework in large teams is challenging
• The framework can be successful only with experienced team members
• Daily meetings sometimes frustrate team members
• If any team member leaves in the middle of a project, it can have a huge negative impact
on the project
• Quality is hard to implement until the team goes through an aggressive testing process

3. Explain Adaptive Software Development Process Model


• This approach was proposed by Jim Highsmith. It is useful for building complex systems
using iterative approach.
• The focus of this method is on working in collaboration and team self-organization.
• The cycle of ASD consist of three phases like
1. Speculation
2. Collaboration
3. Learning.

Dr. Subhash University, Junagadh Page 2


Software Engineering (3150711)

Speculation:
• Initial phase of ASD process.
• In this phase adaptive cycle planning is conducted.
• In these cycle planning mainly three types of information are used such as
o Customer’s Mission statements
o Project constraints
o Basic requirement of project
Collaboration:
• The motivated people work collaboration to develop the desired software product.
• In this phase collaboration among the members of the development team is a key factor.
• For successful collaboration and coordination, it is necessary to have following qualities
in every individual
o Assist each other work without resentment
o Work had
o Possess required skill set
o Communicate problems and help each to accomplish the given task.
o Criticize without any hate.
Learning:
• As a team members go on developing the components, emphasizes is on learning new
skills and techniques.
• There are three ways by which the team members learn-

Dr. Subhash University, Junagadh Page 3


Software Engineering (3150711)

Focus Group
o The feedback from the end-user is obtained about the software component being
developed. Thus, direct feedback about the developed components can be obtained.
Formal Technical Review
o This review for software components is conducted for better quality.
Postmortems
o The team analysis its own performance and makes appropriate improvements.

4. Explain Extreme Programming (XP) in detail


• Extreme Programming (XP) is one of the best known agile processes. It is suggested by
Kent Beck in 2000.
• The XP uses the concept of object-oriented programming. This approach is preferred
development paradigm.
• As in conventional approach, a developer focuses on the framework activities like planning,
design, coding and testing, the XP also has set of rules and practices.
XP Values
• Beck defined the set of five values that serve as basis for the work performed in XP.
These values are given below.
Communication
o The effective communication must be established between software developers and
stockholders in order to convey the important concepts and to get important feedback.
Simplicity
o XP focuses on the current needs instead of futures needs to incorporate in the design.
o Hence the XP believes that the software design should be simple.
Feedback
o The feedback for the software product can be obtained from the developers of the
software, customers and other software team members.
Courage
o The strict faithfulness to certain XP practices requires courage. The agile XP team
must be disciplined to design the system today, recognize the future requirements and
make the changes dramatically as per demand.

Dr. Subhash University, Junagadh Page 4


Software Engineering (3150711)

Respect
o By following the above XP values the agile team can win the respect of stockholders.
XP Process
• It is widely used model. XP used object-oriented approach for software development.
The key XP activities are given below.

Planning
• The planning activity starts with creation of a set of stories.
• Each story is written by customers and putted on index card. The customer assigns a
value to the story the agile team assesses each story and assigns a cost.
• These stories are grouped together for a deliverable increment. A commitment is to made
delivery on time. After the first increment project velocity is used to help define delivery
dates for the increment.

Design
• It follows simple principle of keep it. Encourage the use CRC cards.
• For complex design problem suggested spike solutions as a design prototype. It
encourages refactoring for an iterative refinement of the internal program design and that
design occurs both before and after coding starts.

Coding
• Recommends the construction of a series of unit tests for each of the stories before coding
starts which encourage pair programming.

Dr. Subhash University, Junagadh Page 5


Software Engineering (3150711)

▪ Developers work in pair, checking each other work and providing the support to
always do a good job.
▪ It is used for real time problem solving and real time quality assurance.
▪ Focus of developer is on problem on hand.

• Needs continuous integration with other stories of the software’s which provides a smoke
testing environment.
Testing
• Unit tests should be developed using a framework to make testing automated which
motivates towards regression testing. Integration and validation testing can occur on
daily basis. And acceptance test also called customer test. These tests derived from
user’s stories.

5. Discuss the concept of Agility.


• It is a property consisting of quickness, lightness & ease of movement.
• The ability to create, and response to change in order to profit in a unstable global business
environment.
• The ability to quickly reprioritize use of resources when requirements, technology, and
knowledge shift.
• A very fast response to sudden market changes and emerging threats by intensive customer
interaction.
• Use of evolutionary, incremental and iterative delivery to converge on an optimal customer
solution.
• Maximizing Business value with right sized, just-enough and just-in-time processes and
documentation.
Agility Principles:
• Our highest priority is to satisfy the customer through early and continuous delivery of
valuable customer.
• Welcome changes requirements, even late in development. Agile processes harness change
for the customer’s competitive advantages.
• Deliver working software frequently, from a couple of weeks to couple of months, with a
preference to the short time cycle.
• Business people and developers must work together daily throughout the project.
• Build project around motivated individuals. Give them the environment and support they
need and trust 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.
• Working software is the primary measure of progress.

Dr. Subhash University, Junagadh Page 6


Software Engineering (3150711)

• 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.
• Simplicity – the art of maximizing the amount of work not done – is essential.
• The best architectures, requirements, design emerge from self-organizing teams.
• At regular intervals, the team reflects on to become more effective, then tunes and adjusted
its behavior accordingly.

6. List the different Agile Process Model and Explain any one with suitable
example.

1. Extreme Programming (XP)


2. Adaptive Software Development (ASD)
3. Dynamic Systems Development Method (DSDM)
4. Scrum
5. Feature Driven Development (FDD)
6. Crystal
7. Agile Modelling (AM)

➢ Feature Driven Development (FDD):

• Originally Peter Coad suggested this approach for object-oriented software engineering.
• Stephen Palmer and John Flesing has extended and enhanced Coad’s work.
• In FDD, the feature means client valued function. It is iterative and increment software
development process.
• In FDD, the collaborative activities are carried out. These activities are called as process.

• Various phases in the FDD life cycle are given below.


Development Overall Model
▪ In this phase high-level walkthrough of scope and detailed domain walkthroughs are
conducted.

Dr. Subhash University, Junagadh Page 7


Software Engineering (3150711)

▪ Later on peer reviews and discussions are carried out on these walkthrough and
domain area models are created.
▪ These domain area models are then merged into overall models.
Built Feature List
▪ Initially, the list of features is created.
▪ The domain is functionally decomposed into various subject areas.
▪ These subject areas contain the business activities.
▪ The step within activities forms the categorized feature list.
▪ Features are basically the client valued functions and can be expressed in form.
Plan By Feature
▪ After completing the building of feature list the development plan is created.
▪ The features are assigned as classes and are chief programmer or the class owner is
assigned with appropriate classes.

Design By Feature
▪ A design package was produced for each feature.
▪ A chief programmer selects a small group of features and these features are to be
developed within two weeks. For each feature the sequence diagram is created.

Build By Feature
▪ Finally, a complete client valued function is developed for each feature.
▪ The class owners develop the actual code for their classes and this code is promoted
to the main build.
Benefits
▪ Features represents small block of deliverable functionalities hence user can better
describe, understand and review them.
▪ The features can be arranged into hierarchical business related grouping.
▪ The team can develop every feature within the two weeks.
▪ The features are typically smaller in size and therefore can be analyzed effectively.
▪ Project planning, scheduling and tracking can be driven by features

7. What is Agile Manifesto?


• The Agile Manifesto is a document that sets out the key values and principles behind the
Agile philosophy and serves to help development teams work more efficiently and
sustainably.
Key Values:
• Individuals and interactions over processes and tools.
• Working software over comprehensive documentation.
• Customer collaboration over contract negotiation.
• Responding to change over following a plan.

Dr. Subhash University, Junagadh Page 8


Software Engineering (3150711)

Principles:
• Customer satisfaction is the highest priority.
• Changing of requirements is welcome at any development stage.
• Deliver working software frequently at shorter timescales.
• The Customer, Business People and developers must work together daily.
• Trust and support motivated individuals to find solutions.
• Face-to-face conversation is the best method of conveying information.
• Working software is the primary measure of progress.
• Agile processes promote a sustainable environment.
• Continuous attention to technical excellence and good design enhances agility.
• Pay attention to simplicity.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• The team regularly reflects on how to become more effective and adjusts accordingly.

8. Define the terms: 1) Agility 2) Agile team


1) Agility
• Agility is the ability of a business as a whole to respond quickly to changes, especially
external changes. For example, by adapting business processes or changing customer
experiences.
• Agility is a crucial factor for businesses that are in a digital transformation. There are many
ways to achieve agility, including digital technologies, innovative product design, process
agility, and culture shifting.
2) Agile team
• An Agile team is a group of employees, contractors, or freelancers responsible for executing
an Agile project. Agile teams are typically co-located and often wholly dedicated to the
project during its timeline, with no obligations to other projects.
• An Agile team needs every person required to produce the end product or service. The team
is typically cross-functional, and roles will vary depending on the project’s needs and the
type of Agile framework chosen.

9. What is Extreme Programming (XP)? What are the advantages of it?

• Extreme Programming (XP) is one of the best-known agile processes. It is suggested by


Kent Beck in 2000.
• The Extreme Programming is one of the most commonly used agile process models. All the
agile process models obey the principles of agility and the Mainfesto of agile software
development.

Dr. Subhash University, Junagadh Page 9


Software Engineering (3150711)

• The XP uses the concept of object-oriented programming. This approach is preferred


development paradigm.
• As in conventional approach, a developer focuses on the framework activities like planning,
design, coding and testing, the XP also has set of rules and practices.
Advantages of Extreme Programming:
• Save costs and time
• Reduces the risks
• Simplicity
• Process is visible and accountable
• Constant feedback
• Working software faster
• Increase employee satisfaction and retention
• No unnecessary programming work
• Stable software through continuous testing
• Error avoidance through pair programming
• Changes can be made at short notice
• Code is clear and comprehensible at all times

10. Discuss SCRUM as agile software development process model.


• Scrum is an agile process model which is used for developing the complex software
systems.
• It is light weight process framework that can be used to manage and control the software
development using iterative and incremental approach.
• Here the term light weight means the overhead of the process is kept as small as possible in
order to maximize product time.

Dr. Subhash University, Junagadh Page 10


Software Engineering (3150711)

Scrum Roles:
➢ Product Owner
• They are stockholders of the customer.
• Then ensure team delivers values to business.
• The scrum process needs to be one product owner sometimes they are part of
development team.
• Important role of product owner is communication with development team.
➢ Development Team
• They are responsible for delivering the product.
• These are the persons working in a team to develop the software solutions.
• They include member like analyst, designer, technical communicator, developer, etc.
➢ Scrum Master
• The Scrum master leads the meeting and analyses the response of each team member.
• The potential problems are discussed and solved in the meeting with the help of master.

Development Activities:
➢ Backlog
• It is basically list of project requirements or features that must be provided to the
customer.
• The items can be included in the backlog list at any time.
• The product manager analysis 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.
• Thus, sprints allow the team members to work in stable and short-term environment.
➢ Meetings
• These are 15 minutes daily meetings to report the completed activities, issues and plan
for next activities. There are three questions asked frequently.

 What are the tasks done since last meetings?


 What are the issues that a team is facing?
 What are the next activities that are planned?
➢ Demo
• During this phase, the software increment is delivered to the customer.
• The implemented functionality which is demonstrated to the customer.
• Note that demo focuses on only implemented functionalities and not all the planned
functionalities of the software product.

Dr. Subhash University, Junagadh Page 11


Software Engineering (3150711)

Scrum Process:

➢ Define
• This phase includes the processes related to initiation of a project: Create Project Vision,
Identify Scrum Master and Stakeholder(s), Form Scrum Team, Develop Epic(s), Create
Prioritized Product Backlog, and Conduct Release Planning.

➢ Plan and Estimate


• This phase consists of processes related to planning and estimating tasks, which include
Create User Stories, Approve, Estimate, and Commit User Stories, Create Tasks,
Estimate Tasks, and Create Sprint Backlog.

➢ Implement
• This phase is related to the execution of the tasks and activities to create a project's
product. These activities include creating the various deliverables, conducting Daily
Standup Meetings, and grooming (i.e., reviewing, fine-tuning, and regularly updating)
the Product Backlog at regular intervals.

➢ Review and Retrospect


• This phase is concerned with reviewing the deliverables and the work that has been done
and determining ways to improve the practices and methods used to do project work.

➢ Release
• This phase emphasizes on delivering the Accepted Deliverables to the customer and
identifying, documenting, and internalizing the lessons learned during the project.

Dr. Subhash University, Junagadh Page 12

You might also like