0% found this document useful (0 votes)
96 views17 pages

Agile Frameworks - Part 1

The document discusses various agile frameworks and terms related to software development like IDE, library, API, SDK, toolkit, and framework. It provides details on popular agile methodologies like Scrum, Extreme Programming (XP), Kanban, Feature Driven Development (FDD) and others. The section on XP describes its activities, values, principles, practices, roles and uses a diagram to illustrate its iterative development process.

Uploaded by

Vaibhav Verma
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)
96 views17 pages

Agile Frameworks - Part 1

The document discusses various agile frameworks and terms related to software development like IDE, library, API, SDK, toolkit, and framework. It provides details on popular agile methodologies like Scrum, Extreme Programming (XP), Kanban, Feature Driven Development (FDD) and others. The section on XP describes its activities, values, principles, practices, roles and uses a diagram to illustrate its iterative development process.

Uploaded by

Vaibhav Verma
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/ 17

Agile Frameworks

We are Agile Now, we don’t give dates


Framework and Related Terms
• An IDE is an integrated development environment - a suped-up text editor
with additional support for developing (such as forms designers, resource
editors, etc), compiling and debugging applications. e.g Eclipse, Visual Studio.
• A Library is a chunk of code that you can call from your own code, to help you
do things more quickly/easily. For example, a Bitmap Processing library will
provide facilities for loading and manipulating bitmap images, saving you
having to write all that code for yourself. Typically a library will only offer one
area of functionality (processing images or operating on zip files)
• An API (application programming interface) is a term meaning the
functions/methods in a library that you can call to ask it to do things for you -
the interface to the library.
Agile Frameworks
• An SDK (software development kit) is a library or group of libraries (often with
extra tool applications, data files and sample code) that aid you in developing
code that uses a particular system (e.g. extension code for using features of
an operating system (Windows SDK), drawing 3D graphics via a particular
system (DirectX SDK), writing add-ins to extend other applications (Office
SDK), or writing code to make a device like an Arduino or a mobile phone do
what you want). An SDK will still usually have a single focus.

• A toolkit is like an SDK - it's a group of tools (and often code libraries) that you
can use to make it easier to access a device or system... Though perhaps with
more focus on providing tools and applications than on just code libraries.
Agile Frameworks
• A framework is a big library or group of libraries that provides many
services (rather than perhaps only one focussed ability as most
libraries/SDKs do). For example, .NET provides an application
framework - it makes it easier to use most (if not all) of the disparate
services you need (e.g. Windows, graphics, printing, communications,
etc) to write a vast range of applications - so one "library" provides
support for pretty much everything you need to do. Often a
framework supplies a complete base on which you build your own
code, rather than you building an application that consumes library
code to do parts of its work.
Agile Frameworks
• Agile is an umbrella term for several iterative and incremental software
development approaches. The most popular Agile frameworks include
Scrum, Extreme programming, Kanban and Feature-Driven Development.

• Several core Agile methodologies share the same philosophy expressed


in the Agile Manifesto. However, they have different practices, processes,
and techniques. While implementing Agile, it is not compulsory to follow
an Agile methodology. The best practices from different agile
methodologies can be chosen and implemented in the project.
Some of the key Agile methodologies
• Extreme Programming or XP
• Scrum
• Crystal
• Dynamic System Development Methodology or DSDM Atern
• Feature Driven Development or FDD
• Agile Project Management or APM
• Lean Kanban
• OpenUp
Extreme Programming (XP)
• Extreme Programming (XP) is an agile software development
framework that aims to produce higher quality software, and higher
quality of life for the development team. XP is the most specific of the
agile frameworks regarding appropriate engineering practices for
software development.
• The aim of these practices is to ensure that customers receive what
they need. XP allows developers to respond to changing customer
requirements at any point in the project lifecycle.
History & Overview
• Extreme Programming or XP was developed by Kent Beck and Ward
Cunningham in the 1990s in response to the high cost of changing
requirements and establish strong engineering practices to improve
software quality.
Activities
In Extreme Programming, the four basic activities are −
• Coding
• Testing
• Listening 
• Designing
Activities
• Coding : In pair programming, coding is considered the heart of
development. You code because if you do not code, at the end of the day
you have not done anything.

• Testing: In pair programming, testing needs to be done to ensure that the


coding is done. If you do not test, you do not know when you have
finished coding.

• Listening : In pair programming, you listen to know what to code or what


to test. If you do not listen, you do not know what to code or what to test.
Activities
• Designing : In pair programming, you design so that you can keep
coding and testing and listening indefinitely, as good design allows
extension of the system, with changes in only one place.

• These activities are performed during −


•  Release Planning
• Iteration Planning
• Implementation
Values & Principles
Extreme programming builds around five core principles.
1. Communication: This principle focuses on ensuring that everyone in
the team knows what needs to be done and what the other person is
doing. There will be a frequent collaboration between users and
programmers. The team members communicate using simple designs,
common metaphors, and application of patterns.
2. Simplicity: The focus of this principle is to find the simplest solution
instead of complicating the solution with unwanted features and
functionalities. The team will take small simple steps towards the goal
and mitigate complexities and failures, by refactoring.
Values & Principles
Extreme programming builds around five core principles.
3. Feedback: This principle focuses on ensuring that the solution is
demonstrated to the stakeholders early and regularly. Unit tests are
conducted for feedback from the system; Acceptance Tests are conducted
for feedback from the customer, and Planning Games are conducted for
feedback from the team.
4. Courage: This principle focuses on the courage required to showcase the
work being done. The team should allocate enough time within the sprint
to refactor the code. Refactoring makes future changes easier and removes
obsolete code. The team should showcase the partially done work during
Pair Programming.
Values & Principles
Extreme programming builds around five core principles.
5. Respect: This principle focuses on giving and taking. This includes
respect for others; self-respect; adopting the other four values, and
respect gained from others in the team.
Practices & Roles
The XP Practices introduced a wide range of techniques that are accepted
as standard practices.
Some of the techniques are:
• Fine-scale feedback, which includes: Pair programming; Planning game;
Test-driven development; and Whole team;
• Continuous process, which includes: Continuous integration; Refactoring
or design improvement; and Small releases;
• Shared understanding, which includes: Coding standards; Collective code
ownership; Simple design; and System metaphor;
• Programmer welfare, which includes Sustainable pace.
XP Diagram
XP Diagram
Architectural spike and user stories are taken as input for the release
planning. The outcome of this meeting would result in the release plan,
which would drive the iterations planned within the release. The
outcome of each iteration would be compared against the acceptance
criteria and upon customer approval, the code would be shipped to the
live environment through small release. This cycle of release planning,
iteration planning, development, testing, and customer acceptance
repeats for the entire duration of the project.

You might also like