0% found this document useful (0 votes)
1K views16 pages

Agile Technologies-Notes

Uploaded by

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

Agile Technologies-Notes

Uploaded by

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

Agile Technologies 22MCA424

Agile
Technologies
Subject Code:22MCA424

SRINIVAS V
Asst. Professor, BIT

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Module-1
Agile Software Development is an iterative and incremental approach
to software development that emphasizes the importance of delivering
a working product quickly and frequently.
It is based on the Agile Manifesto, a set of principles for software
development that prioritize individuals and interactions, working
software, customer collaboration, and responding to changes.
Agile Software Development is a software methodology that values
flexibility, collaboration, and customer satisfaction.

Agile 4 values are:

The values of the Agile Manifesto are:


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

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Why Agile?:
Agile development is popular. Its benefits- even the ability to release
software more frequently.
Understanding Success:
The traditional idea of success is delivery on time, on budget, and
according to specification.
Standish provides some classic definitions.

Successful
“ Completed on time, on budget, with all features and functions as
originally specified”.
Challenged
“ Completed and operational but over budget, over the time estimate,
fewer features and functions than originally specified”.
Impaired
“Cancelled at some point during the development cycle”.

Behind Deadlines:
There has to be more to success than meeting deadlines… but to what?

I loved the challenge of programming. When I got a program to work, it


was a major victory. My definition of success centered on Personal
rewards.
1 Srinivas V Asst. Professor, BIT
Agile Technologies 22MCA424

As I gained experience, my software become more complicated and I


often lost track of how it worked. I had to abandon some programs
before they were finished. I began to believe that maintainability was
the key to success- an idea that was confirmed as I entered the
workforce and began working with teams of other programmers. I
prided myself on producing elegant, maintainable code. Success meant
technical excellence.

In the project teams were part of larger ecosystem involving dozens,


hundreds, or even thousands of people. In fact, for the people funding
work, the value of the software had to exceed its cost. Success meant
delivering value to the organization.

Organizational Success:
What do organizations value?

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Although some projects’ value comes directly from sales, there’s more
to organizational value than revenue. Project provide value in many
ways, and you can’t always measure that value in dollars and cents.
Aside from revenue and cost savings, sources of value include:
. Competitive differentiation
Brand Projection
Enhanced Customer loyalty
. Satisfying regulatory requirements
Original research
Strategic information

Enter Agility
Agile development focuses on achieving personal, technical, and
organizational success.

Organizational Success:
Agile methods achieve organizational success by focusing on delivering
value and decreasing costs. This directly translates to increased return
on investment. Agile methods also set expectations early in the project,
so if your project won’t be organizational success, you’ll find out early
enough to cancel it before your organization has spent much money.

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Specially, agile teams increase value by including business experts and


by focusing development efforts on the core value that the project
provides for the organization. Agile projects release their most valuable
features first and release new versions frequently, which dramatically
increases value.

Agile teams decreases costs as well. They do this partly by technical


excellence; the best agile projects generate only a few bugs per month.

Technical Success:
Extreme Programming, the agile method focus on achieving technical
success. XP programmers work together, which helps them keep track
of the details necessary for great work and ensures that at least two
people review every piece of code.

Programmers continuously integrate their code, which enables the


team to release the software whenever it makes business sense. The
whole team focuses on finishing each feature completely before
starting the next, which prevents unexpected delays.
Extreme Programming includes advance technical practices that lead to
technical excellence. The most well-known practice is test driven
development.

Personal Success:
Executives and senior management.

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

They will appreciate the team’s focus on providing a solid return on


investment and the software’s longevity.
Users, stakeholders, domain experts, and product managers.
They will appreciate their ability to influence the direction of
software development. The team’s focus on delivering useful and
valuable software, and increased delivery frequency.

Project and Product Managers:


They will appreciate their ability to change direction as business
needs change, the team’s ability to make and meet commitments, and
improved stakeholder satisfaction.
Developers:
They will appreciate their improved quality life resulting from
increased technical quality, greater influence over estimates and
schedules, and team autonomy.

Testers:
They will appreciate their integration as first-class members of the
team, their ability to influence quality at all stages of the project, and
more challenging , less repetitious work.

Agile Methods
Agile Methods are processes that support the agile philosophy. Agile
methods consists of individual elements called practices. Practice
include using version control, setting coding standards, and giving
weekly demo to your stakeholders.
1 Srinivas V Asst. Professor, BIT
Agile Technologies 22MCA424

Agile Methods are:


1. Agile Unified Process.
2. Behavior Driven Development (BDD)
3. Crystal Clear
4. Dynamic Systems Development Method (DSDM)
5. Extreme Programming (XP)
6. Feature Driven Development (FDD)
7. Kanban
8. Lean Development
9. Scrum

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Practices of Agile Software Development:


Scrum: Scrum is a framework for agile software development that
involves iterative cycles called sprints, daily stand-up meetings, and a
product backlog that is prioritized by the customer.
Kanban: Kanban is a visual system that helps teams manage their work
and improve their processes. It involves using a board with columns to
represent different stages of the development process, and cards or
sticky notes to represent work items.
Continuous Integration: continuous integration is the practice of
frequently merging code changes into the shared repository, which

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

helps to identify and resolve conflicts early in the development


process.
Test-Driven Development: Test-Driven Development (TDD) is a
development practice that involves writing automated tests before
writing code. This helps to ensure that the code meets the
requirements and reduce the likelihood of defects.
Pair-Programming: Pair Programming involves two developers working
together on the same code. This helps to improve code quality, share
knowledge, and reduce the likelihood of defects.

Agile Principles:

1. Our highest priority is to satisfy the client through early and


continuous delivery of valuable computer software.

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

2. Welcome dynamical necessities, even late in development. Agile


processes harness modification for the customer’s competitive
advantage.
3. Deliver operating computer software often, from a pair of weeks to a
couple of months, with a preference to the shorter timescale.
4. Business individuals and developers should work along daily
throughout the project.
5. The build comes around actuated people. Offer them the setting and
support they have, and trust them to urge the task done.
6. The foremost economical and effective methodology of
conveyancing info to and among a development team is face-to-face
speech.
7. Working computer software is the primary live of progress.
8. Agile processes promote property development. The sponsors,
developers, and users got to be able to maintain a relentless pace
indefinitely.
9. Continuous attention to technical excellence and smart style
enhances nimbleness.
10. Simplicity- the art of maximizing the number of work not done – is
essential.
11. The most effective architectures, necessities, and styles emerge
from self- organizing groups.
12. At regular intervals, the team reflects on a way to become simpler,
then tunes and adjusts its behavior consequently.

Don’t Make Your Own Method:

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Just as established agile methods combine existing practices, you might


want to create your own agile method by mixing together practices
from various agile methods.
However, creating a brand-new agile method is a bad idea if you’ve
never used agile development before.
Unless you understand those principles intimately-that is, unless
you’ve already mastered the art of agile development-you’re probably
not going to choose the right practices.

The Road to Mastery:


Mastering the art of agile-development requires real-world experience
using a specific, well-defined agile method.
Extreme Programming for this purpose. It has several advantages:
It places a strong emphasis on technical practices in addition to the
more common teamwork and structural practices.
XP has undergone intense scrutiny. There are thousands of pages
explanations, experience reports, and critiques out there. It capabilities
and limitations are very well understood.
I have a lot of experience with XP, which allows me to share insights
and practical tips that will help you apply XP more easily.

To Master the art of agile development- or simply to use XP to be more


successful- follow these steps:

1. Decide why you want to use agile development. Will it make your
team and organization more successful? How?
1 Srinivas V Asst. Professor, BIT
Agile Technologies 22MCA424

2. Adopt as many of XP’s practices as you can. XP’s practices are self-
reinforcing. So it works best when you use all of them together.
3. Follow the XP practices rigorously and consistently.

Find A Mentor:
As you adapt XP to your situation, you’re likely to run into
problems and challenges. I provide solutions for a wide variety of
common problems, but you’re still likely to encounter situations
that I don’t cover. For these situations, you need a mentor: as an
outside expert who has mastered the art of agile development.

The hardest part of finding a mentor is finding someone with


enough experience in agile development.

Sources to try to include:

Other groups practicing XP in our organization


Other Companies practicing XP in your area
A local XP/Agile user group
XP/Agile Consultants
The XP mailing list:
Extremeprogramming@yahoogroups.com

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

Understanding XP:
Extreme Programming (XP) is an Agile project management
methodology that targets speed and simplicity with short development
cycles and less documentation.

The XP Team:

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

XP Teams perform nearly every software development activity


simultaneously. Analysis, Design, Coding, Testing and even deployment
occur with rapid frequency.

XP does it by working in iterations: Week-long increments of work.


Every week, the team does a bit of releasing planning, a bit of design, a
bit of coding, a bit of testing and so forth.
They work on stories: very small features, or part of features, that have
a customer value.
Team software development is different. The same information is
spread out among many members of the team. Different people know:

∙How to design and program the software (programmers, designers,


and architects)
∙Why the software is important (product manager)
∙The rules the software should follow (domain experts)
∙How the software should behave (interaction designers)
∙How the user interface should look (graphic designers)
∙Where defects are likely to hide (testers)
∙How to interact with the rest of the company (project manager)
∙Where to improve work habits (coach)

All of this knowledge is necessary for success. XP acknowledge this


reality by creating cross-functional teams composed of diverse people
who can fulfill all the team’s roles.

1 Srinivas V Asst. Professor, BIT


Agile Technologies 22MCA424

1 Srinivas V Asst. Professor, BIT

You might also like