You are on page 1of 10

Extreme Programming (XP) And Kanban

Name: Irfan Ali Chandio


ID# MIT122240S
Submission Due: Week 7

a. Introduction
Extreme Programming is one of the most discussed subjects in the software
development community. But what makes XP extreme? And how does it fit into the
New World of agile methodologies?. This assignment will establish the agile
methodology and explain why you might want to try one. Then we will see how XP and
Kanban uses a set of practices to build an effective software development team that
produces quality software in a predictable and repeatable manner. When evaluating
certain activities in the software development process one must have a reference to
understand if we are making progress. XP has four core values that are used to guide
the practices that are employed. These values are: Communication, Simplicity,
Feedback, Courage.
XP recognizes that the end goal of a development project is to produce quality,
production code that can be executed and maintained. Anything in a project that does
not directly support this goal is questioned and discarded if appropriate. XP takes 12
software development "best practices," and applies them to the extreme. Every
contributor to the Project is a part of the TEAM and the Team interacts with the
Customer daily. [1].
XP teams practice small releases in two important ways: First, the team releases
running, tested software, delivering business value chosen by the customer, every
iteration. The Customer can use this software for any purpose, whether evaluation or
even release to end users. The most important aspect is that the software is visible,
and given to the customer, at the end of every iteration. Second, XP teams release to
their end users frequently as well. XP Web projects release
as often as daily, in house projects monthly or more frequently.
b. Description of XP
Extreme Programming (XP):
Typically every 1-3 weeks. XP, originally described by Kent Beck, has emerged as one
of the most popular and controversial agile methodologies. XP is a disciplined
approach to delivering high-quality software quickly and continuously. It promotes
high customer involvement, rapid feedback loops, continuous testing, continuous
planning, and close teamwork to deliver working software at very frequent intervals.

Agile methodologies:
Planning Game:
XP teams use a common system of names to be sure that everyone understands how
the system works and where to look to find the functionality you're looking for, or to
find the right place to put the functionality you're about to add.
Small Releases:
XP Teams releases small scripts or patches of the software in order to get the rapid
feedback from clients or customers.
Customer Acceptance Tests:
This test shows if client of customer is satisfied with the work in progess.
Simple Design:
XP team uses highly effective design method which non-technical staff or customer
can understand the software and its works with the help of flow charts.
Pair Programming:
XP team pair the peace of software in terms of scripts and patches to fix the current
software bugs
Test-Driven Development:
XP team deploy the software quickly to the market to test the peace of software in the
market place.
Re-factoring:
XP team also indent the software like for example uses # before the code in order for
customers and clients to understand that what is going to happened with this peace of
code.
Continuous Integration
XP team creates integration of the software in structural way.
XP team with following simple and clear understandings made those points below.
Collective Code Ownership
Coding Standards
Metaphor
Sustainable Pace [2]
Fig-1: XP Process Structure:
Source: [1]
XP has high productivity and high tolerance. Communication is usually strong with
short paths, especially informal (not documented). There is only a small range of
deliverable (artifacts), but these are delivered frequently releases. Moreover, XP
regards a software development project as a system of four control variables: Cost,
Time, Quality and Scope. [4].
Deployment Cycle:
Implementation occurs in small steps (tasks) for which XP defines the following
procedure :
1. Analyze what is to be done. This probably involves analyzing Engineering Tasks
and/or User Stories. If necessary a session is performed together.
2.Write Unit Tests. They (XP Team) will help in finding interfaces and they determine
when the task is completed (Relentless Testing).
3. Implement just enough code to make the tests running. (Do The Simplest Thing
That Could Possibly Work and You Arent Gonna Need It)
4. Simplify the code if necessary. (Re-factoring)
5.Integrate the changes into the codebase. If problems occur resolve them (Continuous
Integration). If the problem cannot be resolved, start over.
This whole procedure takes a couple of hours, at most a day. [5].
c. Description of Kanban
Kanban promotes continuous collaboration and encourages active, ongoing learning
and improving by defining the best possible team workflow. Kanban is based on 3
basic principles:
Visualize what you do today (workflow): seeing all the items in context of each other
can be very informative, Limit the amount of work in progress (WIP): this helps
balance the flow-based approach so teams don 't start and commit to too much work at
once, Enhance flow: when something is finished, the next highest thing from the
backlog is pulled into play. [3], [4].
Kanban stands for Kan- card, Ban- signal. The essence of the Kanban concept is that
a supplier, the warehouse or manufacturing should only deliver components as and
when they are needed, so that there is no excess Inventory. Within this system,
workstations located along production lines only produce/deliver desired components
when they receive a card and an empty container, indicating that more parts will be
needed in production. In case of line interruptions, each workstation will only produce
enough components to fill the container and then stop. In addition, Kanban limits the
amount of inventory in the process by acting as an authorization to produce more
Inventory. Since Kanban is a chain process in which orders flow from one process to
another, the production or delivery of components are pulled to the production line, in
contrast to the traditional forecast oriented method where parts are pushed to the
line. [4]. Fig-2 shows Kanban Flow and Kanban Material Flow.
Fig-2. Kanban Flow and Kanban Material Flow.
Source: [5].
d. Compare & Contrast XP with Kanban
XP Kanban
Typically every 1-3 weeks Just in Time (JIT)
Planing Game Planing Game is done when needed
Small Releases No excess inventory
Customer Acceptance Customer Chain Process
Simple Design: Orders flow from one process to another,
Certified at CMM Level 5 You don't have to be Certified
e. XP Example(s)
For Example in XP CRC stands for Class Responsibility Collaborator. It is a method to
determine and visualize the design of a system. The main tool for this method is the
index card. Each card represents a class within the system. During a CRC session one
starts with a set of cards onto which the names of obvious classes are written (at the
top). If a responsibility (e.g. field or method) is found it is written on the left side of the
card. If the class needs to cooperate with another class to fulfill a responsibility a
collaboration exists. The name of the other class is then written on the right side of the
card. The cards can also be of different colors to express different types of classes. [3],
[6]
Fig-3 Example of CRC Card.
Source: [2].


f. Kanban Example(s)
Kanban is a new technique for managing a software development process in a highly
efficient way. Kanban underpins Toyota's "just-in-time" (JIT) production system.
Although producing software is a creative activity and therefore different to mass-
producing cars, the underlying mechanism for managing the production line can still
be applied. [7]
Moreover. Kanbans are produced with bar codes and the system is ready to accept
data entry through scanners, etc [6].
Fig-4 Kanban Example:
Source: [7].
Who can adopt Kanban?
One of the best things about Kanban is the low barrier to adoption. You don't have to
be practicing Scrum or XP or be certified at CMM Level 5. The columns on your
Kanban board could be as simple as: "To Do", "Doing", and "Done".
You're in good enough shape to start using Kanban if you can (manually or otherwise):
Check out the code from a source code control system
Build the code
Check it works
Deploy it
Conclusion:
The power of XP lies in the cooperation of the various rules and practices. Given the
success stories of XP projects it must work, however. I think that is necessary to try
XP in an actual project in order to fully understand and evaluate it. In contrast,
advantages of Kanban processing provides a simple and understandable process.
Provides quick and precise information. There are low costs associated with the
transfer of information. Provides quick response to changes. There is a strict limit of
over-capacity in processes. Avoids overproduction. Minimizes waste. Full control can
be maintained. Delegates responsibility to line workers
References:
[1]. Sambasivam. G, (2006), 'Exterme Programming', Available at
http://www.unf.edu/~broggio/cen6016/ExtremeProgramming%28XP%29Article.pdf
Viewed at 16
th
Aug 2014.
[2]. Newkirk. J, (2002), 'Introduction to Agile Processes and Extreme Programming',
Available at
ftp://www.ufv.br/dpi/mestrado/XP/newkirk_XP.pdf , Viewed at 16
th
Aug 2014.
[3.], Dudziak. T, (2000) , 'extreme Programming: An Overview ', Available at:
http://www.versionone.com/Agile101/Agile-Development-Methodologies-Scrum-
Kanban-Lean-XP/ Viewed at 18
th
Aug 2014.
[4]. Konovalov. S and Misslinger. S , (2006), 'Extreme Programming', Available at:
http://www14.in.tum.de/konferenzen/Jass06/courses/3/presentations/ExtremeProgram
ming.pdf
Viewed at 20
th
Aug 2014.
[5]..Jarvis. B and Gristock. S. P , (2001), ' Extreme Programming (XP) Six Sigma
CMMI', Available at: www.sei.cmu.edu/library/assets/jarvis-gristock.pdf , Viewed at
20
th
Aug 2014.
[6]. Glovia International, (2014), ' Automate the flow of material using pull
techniques',Available at: http://www.fujitsu.com/downloads/CN/it/products/Kanban.pdf
Viewed at 21
st
Aug 2014.
[7]. Kanban Blog, (2014), 'Kanban Explained: Who can adopt Kanban', Available at:
http://kanbanblog.com/explained/ , Viewed at 21
st
Aug 2014.