IBMCE AgileCourse Final 20190704
IBMCE AgileCourse Final 20190704
Training Module
Preface
December 2019
Table of Contents
Chapter 1: What is a project? ...........................................................10
1.1 Definition of Project ........................................................................... 10
1.2 Project vs Operations ......................................................................... 10
1.3 Relationship between Project, Program, Portfolio ............................ 11
1.4 Features of Project ............................................................................. 14
1.5 Measuring Project Success.............................................................. 16
1.6 Phases of a Project............................................................................. 17
Initiation............................................................................................... 18
Definition .............................................................................................. 18
Planning ............................................................................................... 19
Execution ............................................................................................. 19
Monitoring & Control ............................................................................ 19
Closure ................................................................................................. 19
Exercise 1: ................................................................................................ 20
Test Your Knowledge ............................................................................... 22
Chapter 2: Project Execution Methodologies .....................................24
2.1 Waterfall Model ............................................................................... 24
2.1.1 How does Waterfall work? ...................................................... 24
2.1.2 Where is Waterfall model suitable? ........................................ 26
2.1.3 Advantages, Disadvantages of Waterfall Model ..................... 27
2.2 V-Model............................................................................................ 28
2.2.1 How does V-Model work? ....................................................... 30
2.2.2 Where is V-model suitable? .................................................... 30
A project is temporary in nature, having a definite start and end date, and
produces a unique output. Projects are conducted to obtain the
organization’s strategic purposes and are considered above and beyond
normal organizational operations.
Operations, however, are the ongoing, repetitive activities that are involved
in the organization’s primary business. They are activities such as staffing
management, payroll, product production, service delivery, etc. As such,
operations include all the “normal” business functions.
However, projects:
• Are led to attain an objective and then terminate
• Organize activities that are not supported under the organization’s
normal operations
• Are directly associated to the achievement of the organization’s
strategic plan
Whereas operations:
• Are on-going and required to sustain the business
Programs are larger initiatives that are broken up into a set of smaller
projects and subprograms and then coordinated centrally. The projects in a
program are related to each other.
A portfolio, program, and project- though similar they may sound, their
meaning and usage is quite different. Now that we know what a project is,
let’s look at program and portfolios.
Program
Portfolio
A project sees many changes throughout its life while some of these
changes may not have any major impact; then- can be some changes which
will change the entire character of course of the project.
8. Successive principle:
What is going to happen during the life cycle of a project is not known
entirely at any stage. The details get finalized continually with the passage
of time. More is known about a project when it enters the construction
phase than what was known, during the detailed engineering phase.
9. Made to order:
A project is always made to the order of its customer. The customer
specifies various requirements and puts constraints within which the
project must be executed.
10. Unity in diversity:
A project is a complex set of thousands of varieties. The varieties are in
terms of technology, equipment and materials, machinery and people, work
culture and ethics. But they remain inter-related and unless this is so, they
either do not belong to the project or will never allow the project to be
completed.
11. High level of sub-contracting:
A high percentage of the work in a project is done through contractors. The
more the complexity of the project, the more will be the extent of
contracting. Normally around 80% of the work in a project is done through
sub-contractors.
Every project has risk and uncertainty associated with it. The degree of risk
and uncertainty will depend on how a project has passed through its various
life-cycle phases. An ill-defined project will have extremely high degree of
risk and uncertainty. There simply cannot be a project without any risk and
uncertainty.
1. Schedule
The schedule evaluation is something you can do more formally at the end
of the stage or phase, or as part of a monthly report to your senior
stakeholder group or Project Board.
Look at your major milestones and check if they still fall on the same dates
as you originally agreed. Work out the slippage, if any, and how much of an
impact this will have on your overall project timescales.
2. Quality
A quality review can evaluate whether what you are doing meets the
standards set out in your quality plans. Best find out now before the project
goes too far, as it might be too late to do anything about it then.
3. Cost
We can look forward and re-forecast the budget to the end of the project.
Comparing this to your original estimate and making sure it is close enough
is important for your management team to feel that the work is on track. If
the forecasts go up too much it is a sign that the spending will be out of
control by the end of the project.
4. Stakeholder Satisfaction
Stakeholders – are essential in getting much of the work done. Finding out
how they feel about the project at present and what you could be doing
differently is worth checking.
5. Team satisfaction
• Initiation
• Definition
• Planning
• Execution
• Monitoring & Control
• Closure
Each project stage is characterized by a distinct set of tasks that take the
project from the first idea to its conclusion. Each stage is of equal
importance and contributes to the overall success of the project.
Initiation
This is perhaps the most important stage of any project as it sets the terms
of reference within which the project will be run. If this is not done well, the
project will have a high likelihood of failure. The initiation stage is where the
business case is declared, scope of the project decided, and stakeholder
expectations set. Time spent on planning, refining the business case and
communicating the expected benefits will help improve the probability of
success. It is tempting to start work quickly, but a poor initiation stage often
leads to problems and even failure.
Definition
Before a project begins, the Project Manager must make that the project
goals, objectives, scope, risks, issues, budget, timescale and approach have
Planning
The key to a successful project is in the planning. Creating a project plan is
the first task that should be done while undertaking any project. Often
project planning is ignored in favor of getting on with the work. However,
many people fail to realize the value of a project plan in saving time, money
and for avoiding many other problems.
Execution
This is where the work to deliver the product, service or wanted result is
carried out. Most of the work related to the project is realized at this stage
and needs complete attention from the project manager.
Closure
Often neglected, it is important to make sure the project is closed properly.
Many projects do not have a clear end-point because there is no formal
sign-off. It is important to get the customers’ agreement that the project
has ended, and no more work will be carried out. Once closed, the project
manager should review the project and record the good and bad points, so
that in the future, successes can be repeated, and failures avoided. A
project that is not closed will continue to consume resources.
Exercise 1:
Procedure:
• Divide the entire team into 4 sub-groups.
• Ask each group to identify themselves as a company
• Give one-one chart paper, Markers to each sub team
• Ask the participant to divide the entire sheet into 4 quarters like
below.
• In each box, as the team to fill what they think from their company
perspective would fall into each of these boxes.
Project: Operation:
Program: Portfolio:
1. A project is;
a. an activity to meet the creation of a unique product or service
b. activities that are undertaken to accomplish routine activities
c. series of tasks that need to be completed to reach a specific
outcome.
d. A and C
e. A and B
Implementation
Implementation teams work to the design to create, code, implement, and
test the solution. It is crucial that the single written document be as clear
as possible, as the team who designs the system may or may not be the
same. If changes are required during the implementation phase (due to
unforeseen issues with the design, integrations, or even changes to the
intended function of the system), this necessitates that a new design be
created and signed off on before the implementation is completed.
Verification
Acceptance tests are then deployed and executed in the verification phase,
with the built solution further tested against the requirements to confirm
that the project meets initial expectations. If it does not, then an
examination is performed to identify the shortfalls and a review is
completed to determine any ratification actions.
Maintenance
Finally, as defects are raised, or new versions of products are needed
(maybe because they are no longer supported), planned changes are made
by a dedicated ownership team. With the Waterfall Model, each stage can
only continue when each of the previous stages are completed and signed
off.
Disadvantages:
• It is hard to allow for new requirements in an ever-changing world.
For example, an organization or industry-wide change of
specifications would take a long time to adopt, with the project
needing to return to the requirements and design stage.
• A project that has dependencies on relatively unstable products
which are constantly in flux may also cause constraint. For example,
if the project makes use of software or technologies with very rapid
release-cycles and paces-of-change, then the project needs to have
fixes being implemented monthly. This makes design and
documentation very difficult and means risk and assumptions must
be embedded into the estimations with widely varying degrees of
accuracy.
• It is difficult to estimate the total time a project will take to complete.
Each organization has different processes and each project has
different issues, including SME shortages, long delays in provisioning
software, and a lengthy approval process.
• A large amount of contingency is often added into timescales. From
the start of project, lots of subjects and outcomes will be
undetermined and only put into production in the final stages of the
project. This creates risk, which gradually diminishes as the project
progresses. Whilst this risk can be decreased with good practices, it
still creates a good deal of uncertainty.
2.2 V-Model
Advantages
• This is a highly disciplined model and Phases are completed one at a
time.
• V-Model is used for small projects where project requirements are
clear.
• Simple and easy to understand and use.
• This model focuses on verification and validation activities early in the
life cycle thereby enhancing the probability of building an error-free
and good quality product.
• It enables project management to track progress accurately.
Disadvantages
• High risk and uncertainty.
• It is not a good for complex and object-oriented projects.
• It is not suitable for projects where requirements are not clear and
contains high risk of changing.
• This model does not support iteration of phases.
• It does not easily handle concurrent events.
2.3 Agile
AGILE methodology is a practice that promotes continuous iteration of
development and testing throughout the software development lifecycle of
the project. Both development and testing activities are concurrent unlike
the Waterfall model.
Agile development enables teams to work quickly and efficiently by
creating clear goals and a standard way of working. Your team even has the
option to choose between several frameworks within Agile project
management.
Advantages:
• Agile projects deliver quickly.
• New requirements can be swiftly incorporated into the design, the
team, and priorities.
• There is stakeholder engagement throughout the development
process to review and improve the products and projects being
delivered.
• Transparency and openness are encouraged with a focus on
improvement over blame.
• Projects that aren’t successful can quickly be contained, repaired, or
retired entirely to save money.
• Defects and required enhancements are caught early because
changes are tested over small iterations. These are picked up and
added to future sprints in the sprint planning phase (for the Scrum
method) or added into the backlog based on importance for next
delivery by the team (for the Kanban method).
• Teams can adapt how they work, providing a more productive and
satisfactory working environment by portraying mood and
highlighting issues in retrospective sessions.
• Documentation is less time consuming and costly because it is limited
to use cases, test cases, user stories, and other artefacts over
detailed product documentation. Documentation as a result, is leaner
and more concentrated, although admittedly less detailed.
Disadvantages:
• Agile projects can be chaotic if not managed well or if the team does
not engage in the practices.
• Documentation can become quickly and easily out of date where
teams have little time to write it over, reducing defects. This makes it
hard for new team members to get up to speed and increases the
number of duplicated conversations and confusion over why
decisions were originally made.
4. What do you call a technical person who can understand the basic
requirements?
a. team leader
b. analyst
c. engineer
d. stakeholder
5. Which of these are benefits of V model
a. Simple and easy to use.
b. Each phase has specific
c. reduces the cost of bug fixes
d. Works most effective with small projects where requirements are
small
e. All the above.
Consider each sprint to be a mini project having its own backlog, design,
development, testing, and deployment phases within the pre-defined
scope of work.
At the end of each sprint, a potentially deliverable product is shipped. In
simple terms, with every iteration conclusion, new features are added to
the main software which results into the software growth.
Agile methodologies have five steps that have their own outcome. Agile
Methods are being widely accepted in software world recently, but it is not
suitable for all products.
1. Planning: During planning, research about the existing systems will be
done to identify the problem that user has. Developer must classify
the problem statement and find the best solution to solve the
problem.
Proponents of Agile methodologies say the four values outlined in the Agile
Manifesto promote a software development process that focuses on quality
by creating products that meet consumers' needs and expectations.
Although the names of these roles might differ from what you call them,
you'll likely find that their descriptions match roles that you're familiar with.
A key aspect of being agile is that people are empowered to make decisions
without many meetings and building consensus. This aspect can be a
significant challenge in some enterprise organizations. Project cadence
with playbacks to all interested parties is key to making the whole
organization more comfortable with decisions.
• Accepts user stories; that is, decides when a user story has delivered the
MVP
• Decides when to go to production and owns or collaborates on the "Go to
Market" plan
Larger projects might have more than one product manager. Ideally, the
project is divided into components or services that individual squads can
work on, and each squad has a product manager who provides direction.
Sponsor
The sponsor is typically an executive who has the vision and owns the
overall delivery and success of the project. Ideally, the squad has playbacks
and brings any issues to the sponsor each week. Part of the sponsor's job is
to ensure that the squad has everything it needs to succeed and to support
it in its use of agile methods.
Visual designer
The visual designer converts the user experience concepts into detailed
designs that emotionally connect with users.
Sponsor user
A product that doesn't satisfy a real user need is a failed design. The best
way to ensure that your project meets users' needs is to involve users in the
process.
In some cases, the sponsor user might be the person who demonstrates
the design or prototypes to other stakeholders. What better way to show
the value of a design than to have a real user show it and explain why it
matters?
Developer
Developers build code by using core agile practices such as "keep it
simple," test-driven development (TDD), continuous integration, polyglot
programming, and microservice design. Agile development requires more
collaboration than is required in the waterfall model.
• Writes code
• Develops delivery pipelines and automated deployment scripts
• Configures services, such as databases and monitoring
• Fixes problems from the development phase through the production phase,
which requires being on call for production support
For developers to have such broad roles, they rely on cloud technologies to
free them from many—and sometimes even all—infrastructure tasks. In an
ideal DevOps organization, the developers take on operations fully and are
on "pager duty" for production problems. In many companies, including
virtually all enterprises, an operations team provides the first response to
production issues.
However, you can still have a DevOps culture if the second call is to a
developer to fix the problem. For more information about the operations
roles that developers take on, see Cloud service management and
operations roles.
Agile coach
The agile coach leads the organization in agile methods. The coach must
have the knowledge and experience to recommend changes to various
practices in response to unique circumstances within the organization. The
coach identifies problems and misapplications of the agile principles and
suggests corrections and continuous improvements.
One approach that works well is for the agile coach to be part of the squad
that has delivery responsibilities. In that way, the coach can provide
guidance about the method and practices as part of the day-to-day work.
The agile coach usually has experience with agile projects and is passionate
about the process and practices. Alternatively, an agile coach can work
across several squads and mentor them on the process and practices.
Incident commander
The incident commander manages the investigation, communication,
and resolution of major incidents. This role has these responsibilities:
Problem owner
The problem owner oversees the handling of a problem and is
responsible to bring it to closure. As needed, this role enlists the help
of analysts and specialists. The problem owner is essentially the same
role as the traditional IT role. However, the tools that those roles use
to identify and solve a problem and ultimately provide a root cause
analysis are different. Typically, the problem owner has a strong
personal interest in the resolution.
Problem analyst
The problem analyst discovers incident trends, identifies problems,
and determines the root cause of a problem. They're SMEs in one or
more areas. This role is radically different from the traditional IT
because business analytics, runbooks, and cognitive techniques play
a major role. However, human supervision and creative thinking are
still important in this role. Typically, an SRE takes this role.
Change owner
The change owner is the person who requests the change. The change
owner has these responsibilities:
Input from the change owner is used to rank the change against all
the other work that the DevOps squad does.
Change manager
The change manager completes the preliminary assessment of a
change record to ensure that it contains the correct information. That
information includes an accurate description, correct classification,
and correct change type of standard, normal, or emergency.
Change implementer
This role implements changes. Typically, the change implementer is
an SRE or associated SME.
Architect
In projects that have experienced developers and a strong anchor
developer, those roles provide "just-in-time" architecture. The use of
"just-in-time" architecture is typical for greenfield projects, which are
not imposed by pre-existing architecture. However, if enough
complexity exists, you need an architect who is separate from the
developers so that development work isn't impacted. You might need
an architect if a project is integrating to existing systems by using a
wide range of services, security, or movement of data, or if you're
coordinating with many other technical teams.
Project manager
Tracking within the squads' day-to-day work is done through user
stories and tracking software, but often, dependencies exist on
groups outside the squad.
Project managers do a wide variety of tasks:
• Procure software
• Coordinate dependencies on systems, exposing APIs
• Report summaries beyond the tracking software
• Manage issues
• Coordinate integration with third parties
User researcher
The user researcher validates all the aspects of a design with real
users. Sometimes the UX leader fulfils this role. However, where more
extensive user research is part of the project, include a user research
expert as part of the team.
The user researcher has these responsibilities:
• Completes the initial research of users and their world to build
personas, empathy maps, and scenario maps
• Validates the problem statements and MVP with real users
• Plans and conducts usability tests throughout the project to get
real-world feedback on all ideas
Agile Waterfall
Test plan is reviewed after each The test plan is rarely discussed during
sprint the test phase.
Agile introduces a product mindset This model shows a project mindset and
where the software product satisfies places its focus completely on
needs of its end customers and accomplishing the project.
changes itself as per the customer's
demands.
Test team can take part in the It is difficult for the test to initiate any
requirements change without change in requirements.
problems.
The Agile Team members are In the waterfall method, the process is
interchangeable, as a result, they always straightforward so, project
work faster. There is also no need manager plays an essential role during
for project managers because the every stage of SDLC.
projects are managed by the entire
team
• Scrum
• Extreme Programming or XP
• Crystal
• Dynamic System Development Methodology or DSDM Atern
• Feature Driven Development or FDD
• Agile Project Management or APM
• Lean Kanban
• OpenUp
3.6.1.2 Activities
In Extreme Programming, the four basic activities are −
• Coding
• Testing
• Listening
• Designing
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.
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
easier and removes obsolete code. The team should showcase the
partially done work during Pair Programming.
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.
Planning
• User stories are written.
• Release planning creates the release schedule.
• Make frequent small releases.
• The project is divided into iterations.
• Iteration planning starts each iteration.
Managing
Coding
• The customer is always available.
• Code must be written to agreed standards.
• Code the unit test first.
• All production code is pair programmed.
• Only one pair integrates code at a time.
• Integrate often.
• Set up a dedicated integration computer.
• Use collective ownership.
Designing
• Simplicity.
• Choose a system metaphor.
• Use CRC cards for design sessions.
• Create spike solutions to reduce risk.
• No functionality is added early.
• Refactor whenever and wherever possible.
Testing
• All code must have unit tests.
• All code must pass all unit tests before it can be released.
• When a bug is found tests are created.
• Acceptance tests are run often and the score is published.
RUP's foundation consists of three key elements: the role, the activity, and
the artefact.
The role performs activities and produces artefacts. Each role is primarily
responsible for a set of activities and artefacts. But all roles will contribute
to other activities and artefacts. Roles, activities, and artefacts are used
repeatedly during the execution of workflows. The workflows form a
sequence of tasks unique to each of the nine software disciplines in the RUP
iterative development software lifecycle framework
Process Overview
The RUP framework is two dimensional, with axes indicating time and
content. The time dimension is ordered by phases, iterations, and
milestones. The content dimension consists of software disciplines
containing the workflows, roles, activities, and artefacts as they apply to
that discipline.
3.6.3.1 Overview
Feature Driven Development (FDD) is an agile framework that, as its name
suggests, organizes software development around making progress on
features. Features in the FDD context, though, are not necessarily product
features in the commonly understood sense.
3.6.3.2 Advantages and Disadvantages
Advantages
• Simple five-step process allows for more rapid development
3. Plan by feature
Once the development of features is planned, it’s all about in which order
the features will be implemented. Teams are selected and assigned with
feature sets.
4. Design by feature
Chief programmer chooses the features and the domain classes that will
be involved in designing the feature. Sequence diagrams are drawn, and
general designs of the features are also finalised. Class and method
prologues are written. This is all followed by a design inspection.
5. Build by feature
After the design inspection, the domain expert explains the specifics.
Class owners start building and implementing all the items necessary to
support the design. Code is developed, unit tested, inspected and
approved by Chief Programmer who then approves it and then the
completed feature is added to the main build.
• You are not allowed to write any production code unless it is to make
a failing unit test pass.
• You are not allowed to write any more of a unit test than is enough to
fail; and compilation failures are failures.
• You are not allowed to write any more production code than is enough
to pass the one failing unit test.
3.6.4.2 Benefits
TDD provides several benefits:
• It can enable faster innovation and continuous delivery because the code
is robust.
• It makes your code flexible and extensible. The code can be refactored or
moved with minimal risk of breaking code.
• Red phase: You write an automated test for a behaviour that you're about to
implement. Based on the user requirement, you decide how you can write
a test that uses a piece of code as if it were implemented. This is a good
opportunity to think about the externals of the code, without getting
distracted by filling in the implementation. Think about what the interface
should look like? What behaviours should a caller of that interface expect?
Is the interface clean and consumable?
• Green phase: You write production code, but only enough production code
to pass the test. You don't write algorithms, and you don't think about
performance. You can duplicate code and even violate best practices. By
addressing the simplest tasks, your code is less prone to errors and you
avoid winding up with a mix of code: some tested (your minimalist
functions) and some untested (other parts that are needed later).
At IBM, teams found that the built-in unit testing produces better code.
One team recently worked on a project where a small portion of the team
used TDD while the rest wrote unit tests after the code. When the code
was complete, the developers that wrote unit tests were surprised to see
that the TDD coders were done and had more solid code.
Unlike unit testing that focuses only on testing the functions, classes, and
procedures, TDD drives the complete development of the application.
Therefore, you can also write functional and acceptance tests first.
To gain the full benefits of unit testing and TDD, automate the tests by
using automated unit test tools. Automating your tests is essential for
continuous integration and is the first step in creating an automated
continuous delivery pipeline.
3.6.5 Scrum
By now, you’ve most probably known about the term – “Scrum”. It is a
popular agile project management methodology which focuses on defining
key features and its objectives in the beginning of each sprint.
Simply put, Scrum was introduced to reduce the overall risk in a software
project, while also providing the value faster.
3.6.6 Kanban
Many development teams use the Kanban method to manage their work.
Fundamentally, Kanban is a visual representation of work in progress. A
Kanban board can be as simple as sticky notes and lanes on a whiteboard
or your team may adopt web-based tools that can be accessed by everyone
on your team. On-line Kanban boards are especially useful if your team is
not co-located.
to track epic stories or broad ideas. A development team might use its board
to track the backlog and work that is in progress and completed.
Agile Certifications:
Here are the top 5 Agile certifications which are the best for Agile
professionals who want to build their career with Agile methodology.
Exercise 1:
Introduction: This is an exercise that we came up with to better
communicate the twelve principles behind the Agile Manifesto.
Procedure:
• Divide participants in to groups, each with a white-board or flip-chart
and markers.
• Have the teams write down the numbers 1 through 12.
• Challenge each team to, within a 15-minute time-box, come up
with three words maximum that effectively capture each of the twelve
principles.
• To avoid ‘analysis paralysis’, make sure to give the teams time updates
throughout (e.g. 10, 5, 2, 1-minute warnings). You will find that teams
will speed up towards the end.
• When time is up, go through each principle and discuss which are the
most important words. Sometimes I like to ask people what their most
and least favourite principles are.
• Post the condensed principles somewhere visible, to make it a regular
talking point.
Logistics:
• Copies of the twelve principles of agile software
• White-boards and/or flip-charts
• Markers
Scrum is the most popular Agile methodology and more than 50% of the
projects make use of this methodology. Some of the salient features that
make Scrum methodology popular are as follows:
Inspection:
Adaptation:
When setting up a new Scrum Team one always must keep in mind that no
new team will deliver with the highest possible performance right from the
beginning. After setting up the team it must go through certain phases as
described by the Tuckman-Model: Forming, Storming, Norming,
performing.
How long it takes until the Scrum Team is in the Performing Phase depends
on the team, and yet it normally takes about 3 Sprints until the teams is
mature enough to deliver their results in a predictable way.
Each of these roles has a well-defined set of responsibilities and only if they
fulfil these responsibilities, closely interact and work together they can
complete a project successfully.
The Product Owner is responsible for maintaining this list and revising
priorities for items as the project progresses and the business environment
changes. The Product Owner is responsible for the success of the product.
He or she defines the features and release schedule and is responsible for
determining the business value of the various features. The Product Owner
constantly refines and reprioritizes the Product Backlog.
The ScrumMaster manages the Scrum process, ensuring that the Scrum
practices are properly executed and that Scrum values are understood by
the team members. He or she ensures that the team is fully productive by
eliminating impediments and shielding them from outside interference (at
least during a sprint).
A Scrum team should be a cross-functional mix of the right skills to
complete the project (for example: developers, testers, interaction
designers, writers). Team members should be committed to the Scrum
team full-time.
4.5 Sprints
A sprint is a short, time-boxed period when a scrum team works to
complete a set amount of work. Sprints are at the very heart
of scrum and agile methodologies, and getting sprints right will help
your agile team ship better software with fewer headaches
Product Backlog
The product owner defines the features and release schedule and is
responsible for determining the business value of the various features. The
product owner constantly refines and reprioritizes the Product Backlog.
Sprint Backlog
The Scrum team and Scrum Master hold a Sprint Planning meeting at the
start of each sprint. At this meeting, the product owner presents the
features from the Product Backlog that are most desired for the upcoming
sprint, describing them so that the team can grasp what is expected. The
product owner and team agree on a goal for the sprint. This is essentially a
vision statement focused on the work for the next two to four weeks. The
team then determines how to accomplish the sprint goal and breaks the
features down into the tasks required.
This list of tasks becomes the Sprint Backlog. The items in the backlog have
time estimates so that the team can determine whether the items can be
completed within one sprint. If there is insufficient time, a feature can be
taken off the Sprint Backlog list and returned to the Product Backlog.
Estimation is done as a team exercise and is not determined by the scrum
master or product owner. The Sprint Backlog represents the work that the
team has committed to finish during the sprint.
During the Daily Scrum meeting, each team member answers three
questions:
This is not a status meeting, but a planning and commitment meeting. The
whole thing should take less than 15 minutes. This regular communication
about what everyone is doing and what issues they are facing can eliminate
the need for other meetings and help team members work more effectively
together.
At the end of each sprint, the team shows off the work that it has
accomplished during the Sprint Review meeting. This is a brief and informal
meeting to which all concerned parties are invited. Its purpose is to
demonstrate the working software and to get feedback from participants
and stakeholders on the results.
After the Sprint Review, the team meets by itself to hold the Sprint
Retrospective. During this meeting, they talk about what is going well — and
what isn't — with respect to the project and their process. This meeting
should result in some change in how they work for the coming sprints,
because they work to continually improve their team and practice
effectiveness.
Although the actual work progress will likely not follow this line, significant
deviations are a cause for concern, particularly if the actual progress
continues to trend away from the ideal.
Impediments List
When there are impediments or blocks to progress, the scrum master might
maintain an Impediments List as an additional scrum artefact.
Product Increment
Product Increment is one of the important artefacts of Scrum. Product
Increment is the combination of all the completed list of Product Backlog
items during the sprint. Product Increment keeps getting incremented in
the subsequent sprints. So, in a sprint, the Product increment is the
integration of all the completed list of Product Backlog Items. Where as in
a Project, Product Increment is the integration of all the completed list of
Sprint backlog items. With each sprint, the product increment increases in
terms of delivered functionality.
4. List maintained by the Scrum master to note the blocks to the project
progress is called _______________.
a. Product Backlog
b. Burn-down chart
c. Product vision
d. Impediment list
This plan is created by the collaborative work of the entire Scrum Team.
Each sprint begins with a sprint planning meeting. For a one month or
four-week sprint this meeting should last eight hours. For a two-week
sprint, plan for about four hours. As a rule of thumb, multiply the number
of weeks in your sprint by two hours to get your total sprint planning
meeting length.
The input to this meeting is the Product Backlog, the latest product
Increment, projected capacity of the Development Team during the Sprint,
and past performance of the Development Team. The number of items
selected from the Product Backlog for the Sprint is solely up to the
Development Team. Only the Development Team can assess what it can
accomplish over the upcoming Sprint. During Sprint Planning the Scrum
Team also crafts a Sprint Goal. The Sprint Goal is an objective that will be
met within the Sprint through the implementation of the Product Backlog,
and it provides guidance to the Development Team on why it is building
the Increment.
Having set the Sprint Goal and selected the Product Backlog items for the
Sprint, the Development Team decides how it will build this functionality
into a “Done” product Increment during the Sprint. The Product Backlog
items selected for this Sprint plus the plan for delivering them is called the
Sprint Backlog.
The Development Team usually starts by designing the system and the
work needed to convert the Product Backlog into a working product
Increment. Work may be of varying size, or estimated effort. However,
enough work is planned during Sprint Planning for the Development Team
to forecast what it believes it can do in the upcoming Sprint. Work planned
for the first days of the Sprint by the Development Team is decomposed
by the end of this meeting, often to units of one day or less. The
Development Team self-organizes to undertake the work in the Sprint
Backlog, both during Sprint Planning and as needed throughout the Sprint.
The Product Owner can help to clarify the selected Product Backlog items
and make trade-offs. If the Development Team determines it has too
much or too little work, it may renegotiate the selected Product Backlog
items with the Product Owner. The Development Team may also invite
other people to attend to provide technical or domain advice.
By the end of the Sprint Planning, the Development Team should be able
to explain to the Product Owner and Scrum Master how it intends to work
as a self-organizing team to accomplish the Sprint Goal and create the
anticipated Increment.
Sprint Planning is important because we can define the Sprint Goal which
is the outcomes of it and a plan of delivering the Increment. Additionally,
the Sprint Backlog contains all the work that should be done in details,
which allows the Development Team to forecast the time and work
needed.
The Sprint Goal is an objective set for the Sprint that can be met through
the implementation of Product Backlog. It provides guidance to the
Development Team on why it is building the Increment. It is created
during the Sprint Planning meeting.
8. Determine the needs, sign up for work, and estimate the work
owned
9. Product Owner answers clarifying questions and elaborates
acceptance criteria
10. Confirm any new issues and concerns raised during meeting
and record.
11. Confirm any assumptions or dependencies discovered during
planning and record.
12. ScrumMaster calls for a group consensus on the plan.
13. Team and Product Owner signal if this is the best plan they can
make given what they know right now.
14. Get back to work.
In Scrum, on each day of a sprint, the team holds a daily scrum meeting
called the "daily scrum.” Meetings are typically held in the same location
and at the same time each day. Ideally, a daily scrum meeting is held in
the morning, as it helps set the context for the coming day's work. These
scrum meetings are strictly time-boxed to 15 minutes. This keeps the
discussion brisk but relevant.
If a programmer stands up and says, "Today, I will finish the data storage
module," everyone knows that in tomorrow's meeting, he will say whether
he finished. This has the wonderful effect of helping a team realize the
significance of these commitments, and that their commitments are to one
another, not to some far-off customer or salesman.
Any impediments that are raised in the scrum meeting become the
ScrumMaster's responsibility to resolve as quickly as possible.
Most teams conduct the daily scrum meeting by having each person
answer the three questions in order. You answer all three, then the next
person, the next and so on. An interesting alternative that some teams find
helpful is to talk through one product backlog item before moving on to
the next. In this way, an individual may give an update at multiple different
times during the same meeting.
The purpose of the Daily Scrum is to inspect and synchronize the team's
progress towards the Sprint Goal for next 24hrs, discuss if anything
impedes the team and re-plan the team's work to achieve the Sprint Goal.
It is not a traditional status meeting.
During the daily scrums, the team gets an excellent understanding about
each other's accomplishments and plan for future. The scrum master is
responsible for resolving any impediments that are raised in the meeting.
If he can't, at least he ensures someone else does.
Backlog can be defined as a set of user stories which are not present in the
current sprint that defines project’s scope context. The stories which are
left unattended, may interfere with the functioning of the development
team. When this happens, the status of user stories will not be clear, and
even the team can lose focus and fail to deliver within the project
completion date.
It will be easy for the product owner, to get the conclusion over the
queries, by asking the questions in the early stages. If there is a question
which is unanswered by too many people, it is time to make some changes
in your backlog items by curating higher priority items to the top of the list
and assigning highest priority to the unanswered questions.
A lot of time is saved at sprint planning meetings, if the backlogs are well
maintained. If the backlog item is clearly specified in the acceptance
criteria and cross-checked properly by the team members, the planning
process can be accomplished prior to the meeting. PBR offers the team
members the opportunity to interact with each other regarding stories.
Importance of PBR:
PBR and its sessions are important mainly due to the following features-
• Do not schedule backlog refinement meeting during the first and last
20% of the Sprint Planning session.
• Backlog refinement meeting should be considered as the first part of
Sprint Planning.
• The backlog items’ list should be well understood by the PO, or
development team member to work well in the meeting. Make sure
that the set of predefined acceptance tests are present.
• Keep an eye on the meeting goals.
• Make sure to assign action items for any unknown thing.
• Do remember that the backlog items are a collaboration between
the PO and the team.
• Feel free to break the product backlog items during the meeting.
After the product backlog refinement meeting, the team can update the
Product Backlog items in line, based on the discussions held. Finally, you
can get a potentially shippable product, ready to be deployed in the
market.
Sprint Review meeting is carried out once the Sprint has been done. It is
meant to inspect the Increment and adapt the Product Backlog if
necessary. When the Sprint Review meeting is taking place, the Scrum
team and stakeholders evaluate what has been done during the Sprint.
The review serves for sharing information, this is not a status meeting. It is
solely held to get some feedback as well as ensure that there is
collaboration.
To ensure their success, sprint review meeting is held at the end of each
sprint. During the review, the Scrum team shows to the stakeholders what
they have accomplished by demonstrating the newly designed features.
A goal for the software is set in the sprint planning meeting. Achieving this
sprint goal is very important. To ensure this has been done, the delivered
project is assessed and compared to the goal during the sprint review.
Each product backlog is also brought into the review to ensure that the
goal has been met.
In a Sprint Review meeting, the Scrum Team and stakeholders discuss the
work done during the Sprint. After assessing the work done along with
changes made to the Product Backlog, the group collaborates on what
steps should be taken next to optimize the value of the software. These
meetings are always intentionally informal to keep the group focused on
encouraging feedback and collaboration.
By the end of the Sprint Review, revisions should be made to the Product
Backlog to better define probable backlog items for the next Sprint
session. The Product Backlog can be adjusted completely to introduce
new opportunities.
Meeting specifics
Time box:
Attendees:
• Scrum Master
• Product Owner
• Scrum Team
When:
The Sprint Retrospective is held after the sprint review at the end of each
sprint. During the retrospective, the team self-identifies elements of the
process that did or did not work during the sprint, along with potential
solutions. It aims to continuously improve the processes. Sprint
Retrospective meetings can be facilitated by asking each person in the
team to answer the following questions.
Alternatively, instead of asking what went well and what didn’t go well, the
following questions may be asked:
Benefits of Retrospective:
Process improvements are made at the end of every sprint. This ensures
that the project team is always improving the way it works.
Participant: When:
• Each team will first write the Input and Output for their respective
topics like if Team A has got the topic as “Sprint Planning” then they
should write what are the inputs for Sprint Planning and what will be
the output.
• After that they must fill the necessary information in each box i.e in
“Purpose”: They must mention the purpose of their respective
topics.
In “Time Box”: Duration of that ceremony
In “Participants”: Who all are required for this
In “When”: Frequency or time of occurrence
• Give 5 Mins for discussion
• After that give 10 mins to fill the chart
• Call any one of the Sub team to display their thoughts in the board
and explain to everyone regarding that ceremony.
• Ask other teams at the end if the team missed out any point
The Sprint Goal is an objective set for the Sprint that can be met through
the implementation of Product Backlog. Sprint goals are the result of a
negotiation between the Product Owner and the Development Team.
Sprint Goals should be specific and measurable. While the selected work
for the Sprint Backlog represents a forecast, the Development Team gives
their commitment to achieving the Sprint Goal.
To determine what the Sprint Goal should be, we should consider the
three questions:
The Sprint goal is typically defined in the first part of the Sprint Planning
Meeting in the following main steps:
Example:
You don’t give an exact number explaining how complex the story is and
how long it’ll take to develop – you give a rough “estimate”.
Here are the examples of relative sizing and its estimation points to
develop following vehicles:
All team members who are responsible for getting a story done should
ideally be part of the estimation.
• Story points are unit less, meaning as a scale, they are only valuable to
compare against each other within the same team.
• Earned points can be used to generate the team’s velocity which can be
used to predict future work capacity.
Identify one or multiple base or reference story against which you would
do relative sizing of the backlog. This story is picked from current product
backlog or a different story which we have done earlier. But what is
important is the understanding of this story is same among everyone on
the team. Team should be confident of this base story.
Product Owner will answer questions and provide explanation about what
exactly this story entails.
These can be bullet points on the story card or text in the “notes” section
of a tool. This is best done by Scrum Master who can add these details as
and when discussions are on.
During discussion, question may arise and must be clarified the same
time. Such as
Every team member must agree upon estimated size decided for a story.
1. DoD for a user story (e.g. writing code, tests and all necessary
documentation)
2. DoD for a sprint (e.g. install demo system for review)
3. DoD for a release (e.g. writing release notes)
There are various factors which influence whether a given activity belongs
in the DoD for a feature, a sprint or a release. Ultimately, the decision rests
on the answer to the following three questions:
A team’s Definition of Done won’t remain the same throughout the lifetime
of the project and neither should it. As the team becomes more effective
and productive and learns to work better, it will naturally enhance and
refine its Definition of Done to produce more valuable and better-quality
features. It will start recognizing patterns in the development processes
and procedures required to produce high quality features, and it'll start
adding these to the DoD. It’s therefore important that the team gets
regular opportunities to revisit the Definition of done and the natural place
to do this is in the sprint retrospective meeting.
• Team does not have the skill set to incorporate activities into the
definition of done for a sprint or for a feature.
• Team does not have the right set of tools. (Example: continuous
integration environment, automated build, servers etc.)
• Team members are executing their sprint in mini-waterfalls. Aha!
Opportunity to be more cross-functional. Sharing of
responsibilities across functional silos.
Procedure:
• Divide the entire team into 4-5 sub groups.
• Ask them to name their group
• Each sub group should have equal no of participant
• Give 5 Mins for discussion
• After that give 10 mins to estimate the user story.
• Call any one of the Sub team members and ask him/her to tell the
story points and explain how they calculate, what are the
parameters they have consider while estimating the User story.
• Repeat it for other teams.
Note: Team has to choose any one number (0,1,2,3,5,8,13,20,40 and
100)
One way to measure agile project performance is with the rate of sprint
success. The sprint may not need all the requirements and tasks in the
sprint backlog to be complete. However, a successful sprint should have a
working product feature that fulfils the sprint goals and meets the scrum
team’s definition of done: developed, tested, integrated, and documented.
Throughout the project, the scrum team can track how frequently it
succeeds in reaching the sprint goals and use success rates to see
whether the team is maturing or needs to correct its course. Sprint
success rates are a useful launching point for inspection and adaptation.
Let's say the product owner wants to complete 500 story points in the
backlog. We know that the development team generally completes 50
story points per iteration. The product owner can reasonably assume the
team will need 10 iterations (give or take) to complete the required work.
It's important to monitor how velocity evolves over time. New teams can
expect to see an increase in velocity as the team optimizes relationships
and the work process. Existing teams can track their velocity to ensure
consistent performance over time and can confirm that a particular
process change made improvements or not. A decrease in average
velocity is usually a sign that some part of the team's development
process has become inefficient and should be brought up at the next
retrospective.
Importance of velocity
Velocity is a key feedback mechanism for the Team. It helps the team to
measure whether process changes it makes are improving its productivity
or reducing it. While a Team's velocity will oscillate from Sprint to Sprint,
over time, a well-functioning Scrum Team's velocity should steadily trend
upward by roughly 10% each Sprint.
Accepted points may be low for a particular iteration when there is a large
number of bugs, chores, or zero-point stories. The Velocity chart makes
these “bug/chore walls” visible by showing iteration velocity dips
alongside an increase in accepted bugs.
Track volatility
• We can't really figure out how much ready and how much is not; it
will be a wild guess.
• We may be led by a false sense of accuracy, due to the use of
fractional numbers.
• Incomplete means the user story still has no value for the customer.
Most teams determine their baseline velocity within about three iterations.
The Sprint Burndown Chart is a visual measurement tool that shows the
completed work per day against the projected rate of completion for the
current sprint. It provides transparency about the current performance
(burndown rate) and allows easy estimation if the Sprint Goal can be
reached in time or if the team has to find additional measures to speed-up
completion of the remaining activities. The rate of progress of a Scrum
Team is called "velocity". It expresses the amount of work in story points
completed per sprint. An import rule for calculating the velocity is that
only stories that are completed at the end of the sprint are counted.
Counting partially finished work (e.g. coding only - test missing) is strictly
forbidden.
• Total Estimate
It is the sum of efforts in hours of all the user-stories, tickets, and issues,
basically it’s the total number of works in hours to which the team is
committed to.
This is what burn down shows and this is how this graph get its name, in
literal meaning it is the “effort burndown chart”. The Team will burndown
some effort each day so that on last day of sprint or release there is no
work effort remains.
• Working Days
Since team need to calculate and carefully work on the commit item each
day, so that is the reason total days of commitment of work are shown in
graph. This is the total working days in a sprint (excluding holidays,
weekend, etc.). This is actually your sprint duration.
• Ideal Effort
The ideal effort is drawn as a guide for a team, its drawn by calculating the
exact amount of effort remaining which team need to burndown. That is
the reason you see a very straight line from the top of Y-axis to X-axis,
which is the last day of your sprint.
• Real Effort
Effort remaining line varies from team to team and day to day. It depends
on how much effort remaining is added or reduced each day. If more items
(user stories and issues) are added after the sprint started, this show as an
upward spike.
At the start of an iteration the team estimates the work for all the tasks it
commits to. The sum of all the hours estimated in story points for all the
tasks is the starting point for the graph. Every day as the team members
work on tasks, the remaining work plotted on the chart should also
reduce. The chart should be updated each day and the graph should
ideally displays a downward trend. What makes the chart an effective
reporting tool is that it shows the team's progress towards the Sprint Goal,
not in terms of time spent but in terms of how much work remains.
The following samples show the team status based upon the Burndown
chart.
A burn-down chart in which sprint commitments are met and progress has
been smooth over the sprint.
The teams are going at a slower pace and may not be able to complete all
the commitments on time. The remaining work then becomes a part of the
product backlog and is carried forward to subsequent sprints.
It shows that we are going at a better rate and may be able to finish
earlier. The stories were probably overestimated; therefore, the team
finished them earlier.
The team performs task breakdown, updates the estimated effort, and
also updates the effort remaining. The entire team drives planning and
tracking using the burn-down tool, which is the biggest advantage of using
it.
• If the task is too big, then it will make tracking on a daily basis
difficult.
• People get confused with the effort spent and the effort remaining. If
these are wrongly plotted, then the report insight will be inaccurate.
• Forgetting to update the remaining time for tasks will lead to
incorrect data.
Example:
Suppose, you have 3 releases integrated into your software product. Each
release has the following number of bugs discovered-
• Release 1 = 5 bugs
• Release 2 = 15 bugs
• Release 3 = 8 bugs
• Code complexity
• The type of defects considered for the calculation
• Time duration which is considered for Defect density calculation
• Developer or Tester skills
• Let the participants decide the way they want to stand (ascending or
descending order)
Note: This exercise helps the participant to understand self-organization
Instructor should not give any clue.
According to Craig Larman and Bass Vodde (the creators of LeSS) the
primary rule of scaling agile is: don’t do it!
you might need a scaling framework. If you can deal with these problems
by re-arranging your teams and product structure, you are better off
without one. If you can’t, please continue reading.
• LeSS
• SAFe
• Scrum@Scale
One Product Owner with one product backlog, and several teams, each
with its own sprint backlog.
SAFe
SAFe’s central premise is to divide the work into value streams. A value
stream consists of the steps that the company continuously repeats to
deliver value to customers and users. Between 5 and 15 teams are
typically involved with a value stream, and this grouping of teams is called
a release train. A release train can contain up to 150 people. Once that
threshold is exceeded it is recommended to have several Agile release
trains within each value stream.
Agile release trains are an organizational structure, and the Release Train
Engineer’s roll is that of a facilitating coach (also known as an Agile Coach
in other organizations).
Process
Within the Agile Release Train, teams work according to Scrum with
sprints of typically 2 weeks.
A Program Increment begins with the “PI Planning Event” (a.k.a. “big
room planning”) – a one to two days event where teams gather together to
plan for the next Program Increment (usually around 10 weeks). Typically,
product managers begin the meeting and set the vision followed by teams
do the actual planning and resolving dependencies between them. The
result of the planning, including dependencies between teams, is
visualized on a Program Board. If uncertainties arise, Product Managers
are constantly on hand to make an immediate decision. The Program
Increment is facilitated by a Release Train Engineer.
Not upfront plan any Backlog Items for the “Innovation & Planning Sprint”
(IP Sprint), the last sprint of the Program Increment. Instead use it to
finalize things that didn’t get finished, help product owners plan future
increments, and just try new things.
Do not fill the Sprints to 100% capacity, but rather only 30-70% to make
room for correcting defects, providing user support, and the unforeseen. It
also provides the capacity for accomplishing those things that product
management takes for granted, but often do not receive dedicated time,
for example, upgrading tools and adapting to new platforms.
A typical Scrum team has three kinds of items in their sprint backlog:
Scrum@Scale
The areas are divided into a Product Owner cycle (red) and a Scrum Master
cycle (gray), as well as some principles on metrics and transparency.
Image courtesy of Jeff Sutherland and Scrum Inc.
• Strategic Vision – Where are we heading with the company and our
products?
• Backlog prioritization – What is most important for us at the company
level, the portfolio level, and within the project?
• Backlog decomposition and refinement – How do we allocate the tasks
among the teams, and how do we conduct sessions in preparation for
them?
• Release Planning – How do we plan for our deliveries? What comes
when?
Establish continuous integration (CI) with high test coverage across all
teams
• Define how customer, local team, and offshore team will communicate
and maintain synchronization
• Define daily and distributed stand-ups, retrospectives and sprint review
time
• Set of activities the team will perform to absolutely insure and maintain
high-quality software
• Define consensus-based design, Coding standards, Code reviews,
Scrum-of-Scrums, Pair Programming, Source control philosophy,
Defect tracking mechanism, Definition of “Ready” and “Done” and
more.
• You can read this excellent post on Norming and Chartering
• This would reduce integration time, improves quality, team morale and
builds knowledge redundancy
1. A shift of mindset
2. A shift of skills
3. A shift of behavior
1. Active Collab
Pros: Intuitive, outstanding support, iOS apps, can bill the client straight
through the app, time tracking, and the ability to limit which user sees
what.
If you have a project that needs a powerful communication tool, Agilo for
Scrum is one of your better bets. Agilo for Scrum automatically updates
stakeholders on the project’s progress. It also offers tools to make sure
that all team members are aware of the latest updates; every change
made by a user is automatically shown to their teammates by the
“Incoming Activity” panel. Additionally, Agilo offers a “Sprint Report” and
burn down charts for project managers looking to data mine their
progress.
Cons: No ability to host more than one project, no mobile app, and some
have noted that the system is difficult to learn.
Cost: €10 a month for unlimited users, one team, one project, or €20 for
unlimited users, unlimited teams, and 1 project.
Cons: There are so many features that Atlassian Jira + Agile has a strong
learning curve for new users and switching between apps can be a pain.
4. Pivotal Tracker
Cons: Support can be slow for non-paying users and the system is difficult
to customize.
Cost: Free for three users, 2GB of storage, and two private projects; also
free for public projects, non-profits, and academic institutions. Starts at
$12.50/month for five collaborators and goes up to $250/month for 50
collaborators.
5. SprintGround
Cost: Free for three users, two projects, and 50MB of file storage. Starts at
€24 a month for eight users, unlimited projects, and 1GB of storage. At the
high end (for firms with more than 21 collaborators), SprintGround
charges €5 per user, per month.
Kanban is all about visualizing your work, limiting work in progress, and
maximizing efficiency(or flow). Kanban teams focus on reducing the time it
takes to take a project(or user story) from start to finish. They do this by
using a Kanban board and continuously improving their flow of work.
Scrum teams commit to ship working software through set intervals called
sprints. Their goal is to create learning loops to quickly gather and
integrate customer feedback. Scrum teams adopt specific roles, create
special artifacts, and hold regular ceremonies to keep things moving
forward.
Scrum Kanban
Regular fixed length sprints Continuous
Cadence
(i.e., 2 weeks) flow
Release
At the end of each sprint Continuous delivery
methodology
Both Scrum and Kanban allow for large and complex tasks to be broken
down and completed efficiently. Both place a high value on continual
improvement, optimization of the work and the process. And both share
the very similar focus on a highly visible work flow that keeps all team
members in the loop on WIP and what’s to come.
Kanban until an optimal set of limits is arrived at to keep the flow steady
and efficient.
Scrum Extreme
Work in iterations (called Work in iterations that are one or
sprints) that are from two two weeks long.
weeks to one month long.
Answer Keys
NOTICES
This material is meant for IBM Academic Initiative use only. NOT FOR RESALE.
TRADEMARKS
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of the
International Business machines Corp., registered in many jurisdictions worldwide.
Other product and service names might be trademarks of IBM or other companies. A
current list of IBM trademarks in available on the web at “Copyright and trademark
information” at www.ibm.com/legal/copytrade.html.
Adobe, and the Adobe logo are either registered trademarks or trademarks of Adobe
Systems Incorporated in the United States, and/or other countries.
Microsoft, Windows and the Windows logo are trademarks of Microsoft Corporation in
the United States, other countries or both.
This document may not be reproduced in whole or in part without prior permission of
IBM.