You are on page 1of 27

ABC Company

Agile Development
• Current ABC Company Pain Points
• Problems with Waterfall Lifecycle
• Overview of Agile / Iterative Development
• Integration and Challenges
• Pilot Recommendations
• Next Steps
• Questions
Agile & Iterative Development
Current ABC Company Pain Points
• Churn in Initiation and Conceptual Phases

Typical Project Plan


Concept Func Tech
Startup Initiation Build / Test Deploy
Design Design Design

Typical Project Execution:


Option A: Cut Build / Test / Deploy Time and Decrease Quality
Concept Func Tech
Startup Initiation Build / Test Deploy
Design Design Design

OR
Option B: Extend Project End Date and Increase Cost
Concept Func Tech
Startup Initiation Build / Test Deploy
Design Design Design
Agile & Iterative Development
Current ABC Company Pain Points
• Perception of Slow Delivery by Clients

12 Month Project (originally a 9 month project)

Concept Func Tech


Startup Initiation Build / Test Deploy
Design Design Design

Months 1-9: No Visible Value

Month 10: Value Is


Visible (Client
begins testing)

Month 12: Value Is


Achieved
Agile & Iterative Development
Current ABC Company Pain Points
• Not Flexible to Requirements Change

12 Month Project (originally a 9 month project)

Concept Functional Tech


Startup Initiation Build / Test Deploy
Design Design Design

Theory:
All requirements More requirements /
should be defined problems discovered
during build. Functional
More requirements Design / Technical
discovered. Conceptual Design changes
Design changes
More requirements /
More requirements
problems discovered
discovered. Functional
during testing.
Design changes
Functional Design /
Technical Design / Build
changes
Agile & Iterative Development
Current ABC Company Pain Points
• Critical Issues are not Driven Out Early

12 Month Project (originally a 9 month project)

Concept Functional Tech


Startup Initiation Build / Test Deploy
Design Design Design

Example Project: Data Models mapped, and not all BizTalk can’t talk correctly to SAP
Project will use BizTalk to integrate DB2 and SAP data is present. Requires changes for the required data. Custom
for a custom .NET app to DB2 and SAP. connector is required ($50,000).
Serious delays while connectors are
At a conceptual level, SAP agrees that the Project must redo entire evaluated, purchased and
necessary data is there. Functional Design and is now tied implemented.
to SAP release. Funds must be
At a conceptual level, Enterprise Modeler agrees made available for SAP
that the necessary data is there. development.

Problem:
Assumptions were made in Conceptual that weren’t proven until Functional and Technical.
These assumptions ended up being incorrect – resulting in serious delays
Agile & Iterative Development
Current Pain Points
• Testing Doesn’t Occur Until the End (Fail Late)

12 Month Project (originally a 9 month project)

Concept Functional Tech


Startup Initiation Build / Test Deploy
Design Design Design

Bugs and critical Integration issues


aren’t driven out until here
resulting in delays
Agile & Iterative Development
Problems with the Waterfall Lifecycle
• Miller’s pain points mimic those of Waterfall pain points:
– Major risks aren’t attacked early
– Value to Customer isn’t delivered until the end of a project
– Change isn’t easily accommodated
– Quality is often reduced to meet deadlines
– Bugs and integration issues aren’t found until the end
– Delivery of requirements isn’t by priority
Agile & Iterative Development
Overview of Agile / Iterative Development
• What is Agile / Iterative Development (AID)?
– A philosophy and approach to software development
– An approach to fine-grained project management
– NOT a specific methodology
– Several methodologies incorporate AID
• SCRUM
• XP
• RUP
• UP
• Evo

“Iterative development is an approach to building software in which the overall lifecycle is


composed of several iterations in sequence. Each iteration is a self-contained mini-
project composed of activities such as requirements analysis, design, programming and
testing. The goal for each iteration is an iteration release – a stable, integrated, tested
and partially complete system.”
Agile & Iterative Development
Overview of Agile / Iterative Development
• Agile Development is focused on an iterative (addressing all aspects of the
lifecycle in each iteration) and flexible approach to software development
Agile & Iterative Development
Overview of Agile / Iterative Development
• Agile / Iterative Development recognizes that each phase of a project contains
varying levels of the lifecycle and can’t be performed in isolation
Agile & Iterative Development
Overview of Agile / Iterative Development
• Attack Major Risks Early and Continuously
– A major goal with iterative development is to reduce risk early on. This is done by
analyzing, prioritizing, and attacking top risks in each iteration.

Risk Profile:
Waterfall vs. Iterative
Agile & Iterative Development
Overview of Agile / Iterative Development
• Deliver Value to Your Customer Sooner
– AID allows for recurring releases that can be either internal or external
– Prioritization of requirements means the highest value is delivered first
– Customer sees growing value at the end of each iteration
– If at any point project is halted, most critical value has already been delivered
– Customer may choose to halt project once key requirements are delivered, saving
money
Agile & Iterative Development
Overview of Agile / Iterative Development
• Accommodate Change Early in the Project
– Modern systems are too complex to allow you to get the requirements and the design
right the first time around
– AID recognizes the cost of change, and therefore combines all pieces of the lifecycle
into an iteration with the goal of driving out changes as early as possible
– AID completely supports change management, but is better able to accommodate
change
Agile & Iterative Development
Overview of Agile / Iterative Development
• Baseline an Executable Architecture Early On
– An executable “skeleton” drives out the most critical technical questions early on that
impact functionality, cost, scope, estimates and feasibility
– Risks are discovered during early integrations when they are less costly to address
Agile & Iterative Development
Overview of Agile / Iterative Development
• Discover Defects and Correct Them Over Several Iterations
– Testing is integrated in each iteration, helping to discover bugs much sooner
– Constant retesting throughout the lifecycle results in higher quality solutions
– Cutting a project short doesn’t impact the testing, because it’s been done with each
iteration
Agile & Iterative Development
Overview of Agile / Iterative Development
• Work Together As One Team
– Avoid the concept of “hand-offs” - keep team members engaged throughout the
project
– Demonstrate functionality at the end of each iteration and allow the customer and
team to recommend changes
– Strongly emphasizes teamwork vs silos
Agile & Iterative Development
Overview of Agile / Iterative Development
• Provide Full Transparency into a Project
– AID emphasizes full transparency through various artifacts which are available to
ALL project members, stake holders and interested parties
• Backlog
• Daily Meetings
• Burn down chart
• Iteration Reviews
• Client Involvement
– Allows for teams to be self-organizing and self-executing, but provides immediate
insight into incorrect courses of action
– Provides more control and feedback to all interested parties
Agile & Iterative Development
Overview of Agile / Iterative Development
• Common Practices
– Product Manager – responsible for prioritizing all product requirements and defining
them
– SCRUM Master – responsible for the executable deliverable and the day-to-day
activities within an iteration
– War Room – team is put into one room (including the client if possible) to help
facilitate communication and feedback
– Daily Meetings – the team meets on a daily basis to discuss what was accomplished
yesterday, what will be accomplished today, and any roadblocks. Meeting is
normally 10 minutes in length and open to all stakeholders.
– Iteration Tasklist (aka Sprint Backlog) – Iteration priorities are placed into a central
task list and the team executes against those
– Iteration Review – completed functionality is demonstrated at the end of each
iteration to all interested parties
– Continuous Integration – any code checkins are immediately compiled and tested
(via automation) to identify any issues
– Iteration Planning – each iteration, the next set of priorities are taken from the
“Product Backlog” and added to the Iteration Plan
– Burn Down Chart (aka Sprint Chart) – displays estimates vs. actuals, projecting
completion of tasks according to current burn rate
Agile & Iterative Development
Example Burn Down Chart
Sprint Back log

800

700

600

500
Work Remaining

Day
400
Remaining

300

200

100

Days
Agile & Iterative Development
Overview of Agile / Iterative Development
• Recommended Role Alignments
– Product Manager – BA (define reqs, functionality and priorities)
– SCRUM Master – SA (manage development of executable software to meet reqs and
priorities)
– Project Manager – Project Manager (manage major milestones, finances and course-
grain planning)
Agile & Iterative Development
Integration and Challenges
• Comparison of Traditional vs. Agile
Traditional Agile

Fundamental Systems are fully specifiable, predictable, and can be built High-quality, adaptive software can be developed by small
Assumptions through meticulous and extensive planning teams using the principles of continuous design improvement
and testing based on rapid feedback and change

Control Process centric People centric

Management Style Command-and-control Leadership-and-collaboration


Knowledge Formal Formal
Management
Role Assignment Individual – favors specialization Self-organizing teams – encourages role interchangeability

Communication Formal Informal


Customer’s Role Important Critical

Project Cycle Guided by tasks or activities Guided by product features

Development Life cycle model (Waterfall, Spiral or some variation The evolutionary-delivery model
Model
Desired Mechanistic (bureaucratic with high formalization) Organic (flexible and participatory encouraging cooperative
Organization social action)
Form / Structure
Agile & Iterative Development
Integration and Challenges
• Challenges within Miller
– Project Management
• The ABC CompanyProject Lifecycle addresses a course-grain, comprehensive view
• AID addresses a fine-grained, short-term view
– Estimation
• Estimation becomes harder because the primary focus is on iterations, not the full project
• The project changes as it moves forward
• Resource allocation is more difficult from a budgetary standpoint because iterative tends to take a “top-down” task-based
approach with the team as a whole, vs. each individual addressing only a small piece at a certain point
– Fiscal Management
• The first iteration may include functional and technical design, and limited development to drive out high-risk issues. This results
in a possible blending of capital and expense dollars for the startup phase
– Resource Management
• Agile projects focus much more on the team, requiring the availability of resources (rooms) and individuals. Matrixed schedules
with low client availability will lessen the success of agile
– Project Lifecycle
• AID changes the lifecycle, integrating the full lifecycle into each phase. This poses problems within our currently structured
waterfall approach, with clear phases and reviews for each phase
Agile & Iterative Development
Integration and Challenges
• Challenges within ABC Company– Possible Solutions
– Project Management
• Allow the team to manage the micro tasks, and PO to manage the macro tasks (approach taken with .NET project) and milestones
– Estimation
• Provide an overall estimate using the Product Backlog (similar to today’s estimates based on requirements)
• Revise estimates at the end of each iteration
– Fiscal Management
• No suggestions. Would require a change in capital allocation.
– Resource Management
• Currently a BA or SA may be assigned to 5 projects, each lasting 10 months. One approach could be to assign them to the 5
projects, but do them in succession, each lasting 2 months. This would result in much faster delivery of each project (and sooner)
and allow for dedicated focus.
• For developers, this isn’t a major issue. Just bring on developers according to the iteration plan and priority skill sets.
– Project Lifecycle
• Revise the lifecycle for AID projects to allow for a combined review at the end of each iteration
Agile & Iterative Development
Pilot Recommendations
• 6-9 month Project - benefits won’t be obvious with a smaller project
• Not driven by a tight timeline – allow for team learnings and changes in
approach
• Self-Organizing Team Autonomy – allow the team to organize itself
• Individuals that are flexible
• Lifecycle Flexibility – allow for some flexibility in the project for reviews and
lifecycle (i.e. combining Func/Tech Design at the end of each iteration)
• Committed Team – provide team members that can focus most of their time on
the pilot
• Available Client – a client that is interested and available is ideal
• Mentor / Coach – team should have a coach available with agile experience
that can guide them as they progress
Agile & Iterative Development
Next Steps
• Select pilot project
• Educate team on SCRUM and assign roles / responsibilities
• Conduct pilot – report learnings to Stake Holders at each iteration
• Develop recommendations for long-term approach and positioning
• Implement long-term plan
Agile & Iterative Development
Common Questions
• Does AID mean you no longer have change management?
– No, it just means you have a faster change management cycle that is driven by client
priorities and adjusted for each iteration
• Doesn’t this mean clients can make whatever changes they want, building a
huge wishlist?
– Clients can make changes, but they’re driven by priorities, with the team developing
the most critical functionality first. This approach allows clients to create a wish list, if
they want, but see what it does to the timeline and budget. It also forces them to
make decisions in priority, which helps to eliminate most “blue sky” features. Even if
they do build a huge wishlist, they’ll only get the most critical functionality within the
given time and budget constraints.
Agile & Iterative Development
Common Questions
• Does AID mean there’s no documentation?
– No. Some approaches to AID recommend this, but the form we’ll be implementing
will have the same expectations for documentation
• Doesn’t this mean we’ll lose control of projects and allow them to do whatever
they want?
– Absolutely not. The team is driven by the priorities set between the Product Manager
(BA) and Client. The team is expected to execute against these priorities, and their
progress is highly visible between the daily meetings, Sprint Chart, backlog
completion and Iteration Review. AID allows teams to organize themselves in the
most efficient manager, while providing more visibility and control to organizations
throughout the lifecycle.

You might also like