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

Agile

Application
Development
Overview

Introduction to Agile Principles & Project


Agile and Scrum Values Ownership

Introduction to
Scrum
What is Agile?
° Agile is the ability to create and respond to change. It is a way of dealing with,
and ultimately succeeding in, an uncertain and turbulent environment.
° The authors of the Agile Manifesto chose “Agile” as the label for this whole
idea because that word represented the adaptiveness and response to change
which was so important to their approach.
° It’s really about thinking through how you can understand what’s going on in
the environment that you’re in today, identify what uncertainty you’re facing,
and figure out how you can adapt to that as you go along.
° Read about the Agile History -
https://martinfowler.com/articles/agileStory.html
What is Agile?
° The Agile Method and methodology is a particular approach
to project management that is utilized in software
development.
° This method assists teams in responding to the
unpredictability of constructing software.
° It uses incremental, iterative work sequences that are
commonly known as sprints.
What is Agile Software Development?
° Agile software development is more than frameworks such as Scrum, Extreme
Programming or Feature-Driven Development (FDD).

° Agile software development is more than practices such as pair programming, test-driven
development, stand-ups, planning sessions and sprints.

° Agile software development is an umbrella term for a set of frameworks and practices
based on the values and principles expressed in the Manifesto for Agile Software
Development and the 12 Principles behind it. When you approach software development
in a particular manner, it’s generally good to live by these values and principles and use
them to help figure out the right things to do given your particular context.
Manifesto for Agile Software Development
°
We are uncovering better ways of developing software by doing it and helping others
do it.
Through this work we have come to value:

1. Individuals and interactions over Processes and tools


2. Working software over Comprehensive documentation
3. Customer collaboration over Contract negotiation
4. Responding to change over Following a plan

° That is, while there is value in the items on the right, we value the items on the left
more.
Individuals and Interactions Over Processes and Tool
°
Valuing people more highly than processes or tools is easy to understand because
it is the people who respond to business needs and drive the development
process.
° If the process or the tools drive development, the team is less responsive to
change and less likely to meet customer needs.
° Communication is an example of the difference between valuing individuals
versus process.
° In the case of individuals, communication is fluid and happens when a need
arises.
° In the case of process, communication is scheduled and requires specific content.
Working software over Comprehensive documentation
° Historically, enormous amounts of time were spent on documenting the product for development
and ultimate delivery.
° Technical specifications, technical requirements, technical prospectus, interface design
documents, test plans, documentation plans, and approvals required for each.
° The list was extensive and was a cause for the long delays in development.
° Agile does not eliminate documentation, but it streamlines it in a form that gives the developer
what is needed to do the work without getting bogged down in minutiae.
° Agile documents requirements as user stories, which are sufficient for a software developer to
begin the task of building a new function.
° The Agile Manifesto values documentation, but it values working software more.
Customer Collaboration Over Contract Negotiation
° Negotiation is the period when the customer and the product manager work out the details of a
delivery, with points along the way where the details may be renegotiated.
° Collaboration is a different creature entirely. With development models such as Waterfall,
customers negotiate the requirements for the product, often in great detail, prior to any work
starting.
° This meant the customer was involved in the process of development before development began
and after it was completed, but not during the process.
° The Agile Manifesto describes a customer who is engaged and collaborates throughout the
development process, making.
° This makes it far easier for development to meet their needs of the customer. Agile methods may
include the customer at intervals for periodic demos, but a project could just as easily have an
end-user as a daily part of the team and attending all meetings, ensuring the product meets the
business needs of the customer.
Responding to change over Following a plan
° Traditional software development regarded change as an expense, so it was to be avoided.
° The intention was to develop detailed, elaborate plans, with a defined set of features and with
everything, generally, having as high a priority as everything else, and with a large number of
many dependencies on delivering in a certain order so that the team can work on the next piece
of the puzzle.
° With Agile, the shortness of an iteration means priorities can be shifted from iteration to iteration
and new features can be added into the next iteration. Agile’s view is that changes always
improve a project; changes provide additional value.
° Perhaps nothing illustrates Agile’s positive approach to change better than the concept of Method
Tailoring, defined as: “A process or capability in which human agents determine a system
development approach for a specific project situation through responsive changes in, and
dynamic interplays between contexts, intentions, and method fragments.” Agile methodologies
allow the Agile team to modify the process and make it fit the team rather than the other way
around.
12 Principles behind the Agile Manifesto
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's
competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them
to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-
face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior
accordingly.
12 Principles behind the Agile Manifesto
1. Customer satisfaction through continuous delivery of the product
• In the case of traditional management methodologies, customers get to see the product only after
completion and when several tests and quality checks have been performed. This not only keeps the
customers in dark but also makes it problematic for the team members to introduce any changes in the
product.
• In order to keep the customers happy, it’s important to continuously engage them with a working
version of the product. Show small increments every sprint and make changes as required.
2. Divide large chunks of work into smaller and achievable tasks for quicker completion and easier
integration of changes
• Handling a huge and complex task would be both time and energy-consuming while managing project
tasks. A better way is to divide the task into smaller parts that can be easily completed. The customers
would always be kept in the loop and it would be easier for the team members to identify potential
bottlenecks and handle any potential delays.
3. Adhere to the decided timeframe for the delivery of a working product
• The Agile philosophy favors a smaller time frame and frequent delivery of the product. This iterative
process requires team members to continuously improve their performance.
12 Principles behind the Agile Manifesto
4. All stakeholders must frequently collaborate to ensure that the project is going in the correct direction
• A major problem associated with traditional project management methodologies is that the
stakeholders are often oblivious to the development stages of the project. The Agile principles
encourage all stakeholders to remain involved in all stages of the project in order to ensure constant
feedback and a valuable end product.
5. Create a supportive environment to motivate team members and encouraging them to get the job done
• It is the responsibility of the project manager to create an encouraging and motivating environment
where members are not afraid to voice their opinions and give suggestions for the betterment of the
team’s performance. Giving the team members the confidence and motivating them would cause their
overall performance to improve significantly which will ultimately be better for the project.
6. Prefer face-to-face communication over other methods
• In the Agile manifesto, a lot of importance is given to effective communication between the involved
parties. For effective communication, methods like memos and email are not preferred and more
importance is given to face-to-face communication. This is now easier because of the advances in
communication technologies. All stakeholders can now have a meeting through video conferencing
rather than coming to the office for a short meeting.
12 Principles behind the Agile Manifesto
7. The only measure of success is a working product
• The only factor to measure success is the delivery of a working product that satisfies the
customer. Before Agile, there were many measures of success and that resulted in a drop in
the quality of the final product.
8. Try to keep the pace of development constant
• A repeatable and iterative pattern should be established where product development takes
place at a constant rate. This prevents the team members from being overwhelmed and over-
stressed, while the project keeps on progressing at an acceptable rate.
9. Maintain the quality of the product by paying attention to technical details
• Providing value to the customer is the primary objective of any Agile team. It’s extremely
important to have a multi-skilled team that can handle all the technical aspects of the project
and provides the opportunity for continuous improvement.
12 Principles behind the Agile Manifesto
10. Maintain simplicity
• In each time box, the tasks at hand should be the main focus of all team members. Too much
planning and adding extra features to the product should be avoided during the
development.
11. Promote self-organization in the team
• A self-organized team with decision-making powers would simply perform better because the
responsibility of satisfying the customers will on the team members, rather than a single
project manager.
12. Regularly reflect on your performance for continuous improvement
• Agile methodologies stand on the concept of iteration, where teams learn from their past
mistakes and continuously improve their performance. Project managers should promote
sessions where the whole team reflects on their performance and discuss ways to improve
their technical and management skills.
What is a self-organizing team?
° Unlike traditional teams, self-organizing teams do not wait for managers to assign any work to
them. Instead, they identify all the work that needs to be done, prioritize tasks that are required,
and manage the timelines on their own.
° Team members are also consistently looking for the most productive and efficient ways to work
since they have a high sense of responsibility and ownership. At the same time, they also
effectively communicate with other members to identify tasks that have been picked up by others
already and the ones that are remaining.
° Every member of a self-organizing team sees the list of pending tasks as what is remaining for the
entire team and not just for the individual.
° While self-organizing teams don’t have a manager overlooking everything, there is usually a
mentor to help guide everyone. The biggest advantage with self-organizing teams is that instead
of a manager pushing tasks, team members get to decide what tasks they want to work on.
Key characteristics of a self-organized team
1. Teamwork and collaboration
• When there is no manager to bring the team together and push orders, it is up to the members to communicate and work with each
other. As a result, self-organizing teams need to be highly collaborative and work as a close unit.
2. Competency
• Since there is no manager to give team members clear direction and instructions at every step of the process, members need to have
confidence in their own project management skills and the skills of their colleagues to successfully accomplish tasks.
3. Constant growth and improvement:
• As part of a self-organizing team, members need to constantly seek opportunities growth and look for all the different ways that they
can improve their skills to increase the overall productivity levels.
4. Respect and trust in the team
• Team members need to have trust in the skills of their co-workers and believe that everyone can get the work done even when there
is no manager to hold them accountable. They should also respect each others’ opinions and find a way to work together even if they
have opposing views.
5. Ownership
• All the members of a self-organizing team should have a strong sense of ownership and commitment towards their work. With no one
to point out their mistakes, members need to learn from their mistakes themselves and apply the lessons they learn to achieve
effective results.
Agile is a Mindset
° Ultimately, Agile is a mindset informed by the values contained in the Agile
Manifesto and the 12 Principles behind the Agile Manifesto. Those values and
principles provide guidance on how to create and respond to change and how to
deal with uncertainty.
° You could say that the first sentence of the Agile Manifesto encapsulates the
whole idea: “We are uncovering better ways of developing software by doing it
and helping others do it.”
° When you face uncertainty, try something you think might work, get feedback,
and adjust accordingly.
° Keep the values and principles in mind when you do this. Let your context guide
which frameworks, practices, and techniques you use to collaborate with your
team and deliver value to your customers.
What is Agile Project Management?
° Agile project management is defined as an “iterative and incremental
approach to delivering project requirements throughout the life cycle
of a project”.
° Technically, referring to Agile as a project management methodology
would be wrong. Any methodology is defined as a set of rules and
procedures that must be followed in pre-described cases.
° Agile does not do that; instead, it effectively allows project
management to be completed in any manner as long as the core
principles of Agile are followed. Agile values and principles help a
team thinks and interact in a way that can introduce agility in the
project.
Benefits of Agile Project Management
1. Improved business alignment
• The team has to closely work with the customers to adapt and incorporate their constantly changing needs. This brings an
alignment in the project execution.
2. Acute focus on business value
• Agile ensures that at any given time the project team is focused on delivering the most valuable item to be delivered. The
team is in a way, forced to prioritize the backlog items according to the customer’s demands.

3. Shorter delivery cycles


• The shorter delivery cycles help the customers get a return on investment as early as possible. The ongoing project work
gets reviewed by the clients in real-time. There’s also improved visibility into the product and project progress which
ensures transparency.

4. Reduced project cost


• This is achieved by reducing the amount of rework that goes into further development and improvement of the project.
As customer feedback comes at regular intervals, there is much less need for entire revamps and returning to the drawing
board.
• Agile also helps the teams to get an insight regarding what features and not required in the product. The statistics point
out that 46 percent of the features are not even used in the end products and Agile spares the development teams from
wasting time and money which goes into the development of unwanted features.
Agile Project Management vs Traditionnel Project Management
° Adaptability to changes: Agile methodology is all about being responsive to changes even if it
entirely changes the scope of the project. In traditional project management, the managers have
to step forward if changes are required while that is not the case with Agile project management.
° Customer over adherence to plan: Agile puts the emphasis on customer satisfaction. Since it is an
iterative process, the product is improved and tested continuously to meet the customer’s
requirements. In traditional project management, adherence to plan is important. Planning is done
initially and focus is directed towards completion of the plan.
° Improved control over decision making: Agile provides control to all teams at all levels making
them self-sufficient and self-manageable so teams can perform better and faster. In traditional
project management, the control of decision making lies with the management which slows down
the speed of the project.
° Metric of success: Agile measures its success by only one metric and that is the value of the
product delivered. On the contrary, there are numerous metrics for success in traditional project
management and sometimes it can be forgotten that the most important person for any business
is the customer.
Frameworks in Agile methodology
1. Agile Scrum Methodology
2. Kanban
3. Lean Software Development
4. Extreme Programming (XP)
5. Crystal
6. Dynamic Systems Development Method (DSDM)
7. Feature Driven Development (FDD
Frameworks in Agile methodology
1. Scrum:
• Scrum project management methodology works on the principle of simplifying any complex project into several small
parts called ‘sprints’. Based on sprint planning, these sprints can last from 2-4 weeks and each member of the team
has a specific task to do. The whole team is kept updated on the progress through daily meetings called standups and
several graphical illustrations like the ‘burn down’ chart.
• A product backlog is maintained where all tasks are recorded in order of their priority which is set either by the
customers or their proxy.
2. Kanban:
• The main focus of the Kanban methodology is to ensure continuity. The entire project is visualized on a Kanban
board where the tasks being performed, the tasks to do, and the completed tasks are listed separately.
• Unlike many other methodologies, Kanban works comfortably in an organizational system where the official hierarchy
is considered very important.
3. Lean software development:
• This method focuses on improving the flow of value throughout the system. It helps to eliminate wastes of lean in
the system such as incomplete work and task switching. It helps the work from piling up and proposes that more
work should only be pulled in when there is the capacity to get it done.
Frameworks in Agile methodology
4. XP:
• Extreme programming or XP is used by small teams for small to medium-sized product development especially when product
requirements are changing rapidly.
5. Crystal:
• This Agile methodology is focused on giving more autonomy to the development teams and encourages them to improve the product
and tackle issues on their own. Individuals and their interactions are valued more than processes and tools.
6. Dynamic Systems Development Method
• It is used in the projects with a low budget and tight schedule. This methodology focuses on the following aspects of the project such
as,
• Feasibility of the project
• Conducting a business study
• Creating a Functional model
• Continuous prototype iteration
• Design and build iterations
• Implementation of the final deliverable

7. Feature-Driven Development
• FDD focuses on breaking down the project in small, client-valued functions that can be delivered in short time spans. It also stresses
the product development is a human activity rather than a purely mechanical undertaking and hence individuals and their interactions
are given a great deal of value.
Introduction to Scrum project management
° Scrum project management works by dividing a long-term complex problem into simple goals.
The goals are then assigned to team members who have the required skill set to achieve them in
an efficient manner. The short-term goals are termed as sprints and the team decides its own
sprint length, as long as it is less than a time period of 4 weeks (2 weeks are most common).
° It is an iterative process in which team members regularly discuss their performance in retrospect
and work on continuous improvement.
° All the activities in Scrum project management revolve around the sprint. As soon as the project
is received, it is divided into sprints and some of them are prioritized depending on their
importance. An advantage of the versatile nature of this process is that any changes in the scope
of the project can be easily accommodated.
° This is considered one of the most distinguishing and attractive features of scrum methodology.
Some of the common activities in Sprint are listed below:
° Sprint Planning Meeting:
• As the name suggests, sprint planning marks the beginning of any particular sprint. The product owners and team
members discuss the tasks and their importance in order to create a priority list. A sprint backlog is created and jobs
are assigned to the team members.
° Stand-up:
• This is typically how the day starts for a scrum team member. A brief meeting is convened on a daily basis where all
members give an update on the tasks completed in the previous day, their plans for that day, and the difficulties they
are facing.
• These meetings are a great way to keep the whole team informed about the progress of the project and in identifying
any potential problems before they can affect the project.
° Sprint Review:
• The work completed during the sprint is always reviewed right after its completion. All stakeholders of the project are
a part of this and their feedback is taken into consideration.
° Sprint Retrospective:
• In this stage, the participants of the project reflect on their work during the previous sprint and recognize the areas
that may need improvement for future sprints.
The 3 main roles in Scrum methodology are :
The 3 main roles in Scrum methodology are :

° Product owner:
• The product owners represent the interests of the customer/end-user of the product. They
have the job of deciding the priority levels on the product backlogs and be a proxy of the
stakeholders.
° The Scrum Master:
• They are responsible for implementing the Scrum Methodology on the project. Unlike
traditional project managers, they do not provide day to day instructions or assign tasks.
Their main job is to remove any hurdles faced by the team members and ensure that the
project runs smoothly.
° Team Members:
• They are a group of 5-9 people who hail from different departments and are responsible for
completing their individual tasks.
Some of the artifacts in Scrum Methodology are as follows
° Product Vision:
• It deals with the long-term direction of the project. Each member of the scrum team knows what they are trying to
achieve and work together to achieve it.
° Product Backlog:
• It is a comprehensive list of all the requirements of a certain project. The backlog belongs to the product owner and
he has the authority to change the order according to priority.
° Spring Backlog:
• It is a list of items/deliverables selected from the product backlog for a certain sprint.
° Definition of Done:
• This basically indicates the bare minimum criteria for all the deliverables of the project. An item can only be
completed when it meets the predetermined acceptance criteria.
° Increment:
• This defines all the completed items during the most recent sprint and the sprints before that. It is necessary for the
increment to be completed and in order to do that, it must be ‘done’ in accordance with the sprint team’s definition.
Final thoughts
° The Scrum methodology is ultimately designed to make
communication and collaboration easier for all parties. Hence it’s not
that hard to implement it in your project. Before doing that, you must
ensure that every stakeholder is on board and completely
understands what Scrum actually is. Make an implementation
strategy and build a roadmap for everyone to follow.
° You are now ready to plan your first Sprint, it is an iterative process
and the most recent version will always be better than the previous
one. So don’t worry about failing and keep your head held high.
° https://www.atlassian.com/agile/scrum

You might also like