Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Balanced Agile Approach for
Large Scale System
Developments May 1, 2017
Cary Xie, caryxie@yahoo.com
Excel Investments LLC
Table of Contents
Introduction Balanced Agile Approach
Highlights
Agile Organization
Agile System Architecture
Agile Process
Agile Project Management
Introduction
While traditional methodologies have
many challenges, agile approaches often
face their own difficulties and pitfalls,
especially for large scale system
development.
Introduction: Traditional Methodology Challenges
Slow Time-to-market
High Development Cost
Lack of Scalability Hard to Align with Business Needs
Disconnected
Design
Long Development Cycle
Difficult to Onboard
New Developers
Lack of Maintainability and
Extensibility
Poor Requirement Capture
Hard to Manage Schedule
Deployment Difficulties
Development
schedule
squeeze
Lack of Ownership
Integration Challenges
High Degree of Software
Coupling
Complex Development Process Inability to Change Requirements
Lack of Engineering Disciplines
Hard to Maintain
Software Quality
Low Development
Productivity
Introduction: Traditional Methodology
Project
Successful
Project with
Noticeable
Difficulties
Project Failed
Introduction: Agile Approach Difficulties
Lack of Overall
Design
Risk of not Well-
structured Software
Difficulties for Large
Scale Systems
Allow Technical
Debt to Build Up
Risk Test Coverage due to
Time-boxed Development
Hard to handle Difficult
Problems
Legacy Architecture not Fit Well
Multiple Teams
Work on Same
Product
Hard to Handle
Comprehensive
Requirements
Introduction: Agile Approach
Project
Successful
Project with
Noticeable
Difficulties
Project Failed
Introduction
This presentation is to discuss a
Balanced Agile Approach which can
take advantage of agile tradition
values while better manage its
difficulties.
Balanced Agile Approach
Highlights
Balanced Agile Approach Highlights
• Break down the development work into small
components.
• Each component is designed to be easily and
quickly modified.
• The application is designed to allow quickly
adding and/or removing any components.
Incremental Process
Balanced Agile Approach Highlights
• Iterative process is short time frame with fixed
duration.
• Each iteration involves a cross-functional team
working on delivering a working solution.
• The working solution is fully tested and ready for
deployment and release.
Iterative Process
Balanced Agile Approach Highlights
• The full agile process is defined with system
development life cycle (SDLC) model in mind, and
the iteration process is a major component.
• The full agile process is designed to be flexible.
• The full agile process is able to scale up running
multiple iteration processes in parallel or in serial.
Full Agile Process
Balanced Agile Approach Highlights
• Close collaboration and collective ownership
between business owners / end customers and
the project team are throughout the process.
• At the end of each iteration, key stakeholders
review progress, provide feedback, and re-
evaluate priorities aiming maximized business
value.
Collaborative and Partnership
Balanced Agile Approach Highlights
• Product owners take the lead to ensure overall
system design meets customer’s needs.
• System architects take the lead to ensure
overall system architecture is flexible to meet
customer’s needs.
• A teams works closely with the product owner
and the system architect.
Balanced Approach to Overall Design
Balanced Agile Approach Highlights
• The organization changes to focus on
customers.
• The organization changes to ensure stable
and productive environment for the teams.
• The system architecture changes to provide a
foundation and application platform.
A Culture Changes
Balanced Agile Approach Highlights
• The project management is to manage full agile
process most likely with multiple teams.
• The project management is to apply a balanced
approach towards project scope, schedule, cost,
risk and quality.
Project Management
Balanced Agile Approach Highlights
• The team stays focus on deliverables it has committed to
work on.
• The team advocates evolutionary development, early
delivery, and continuous improvement.
• Team works towards improving flexibility, simplicity and
agility.
Continuous Attention to Excellence
Balanced Agile Approach Highlights
• Balanced agile approach accelerates the delivery
of initial business value.
• Through a process of continuous feedback, the
approach is able to continue to deliver business
value.
Delivering Business Value
Balanced Agile Approach Highlights
• Modern quality management shifts its primary
quality focus away from the deliverable, and
instead looks at the underlying process of how it
was created.
• All cross-functional team members are
responsible for quality process improvement.
Focus on Quality
Balanced Agile Approach
Agile
Organization
Agile Organization
Organization Objectives
Focus on meeting
customers’
needs
Ensure
customer
satisfaction
Agile Organization
Management Role and Responsibility
Enable
members to
contribute
their best
efforts
Remove any
impediment
that might
hurt the team
performance.
No one-way-
top-down
commands,
Establish
horizontal,
open and
interactive
conversations
Build
organization
capability to
meet project
demands
Capital
allocation
based on
customer’s
needs/priority
and product
performance
Agile Organization
Team Role and Responsibility
A cross-
functional group
of individuals
with ability and
authority to
design, develop,
test and deploy
solutions.
Team members
are empowered
and
accountable
for deliverables
that meet the
customer’s
requirements.
Team is
responsible for
managing and
plan their work.
Team is
responsible for
quality, and
continuously
improve the
quality.
Agile Organization
SME, SA and SF Role and Responsibility
Subject Matter
Experts (SME) are a
group of individuals
capable of
providing expertise
in their specified
areas.
System Architects
(SA) are
responsible for
overall system
architecture and
its interfaces
internal and
external.
Special Functions
(SF) are individuals
who specialized in
certain functions
that can be brought
in on an as-needed
and temporary
basis.
General operation
and admin
functions are also
available for the
teams.
Agile Organization
Product Owner Role and Responsibility
The product
owner has the
project
ownership.
The owner or its
representative is
available (mostly
physically) to answer
any requirement related
questions team may
have in a timely
manner.
The owner is
responsible to
make all customer
requirement
related decisions
in a timely manner,
and to ensure they
are visible to all.
The owner should
hold long term
vision and balance
it with near term
customer’s needs
Agile Organization
Project Manager Role and Responsibility
The project or
program
manager has a
critical role when
working on large
scale system
project with large
numbers of
different teams.
The manager is
responsible for
coordinating
and supporting
project
management
aspects among
different
teams.
The manager is
responsible for
overall full agile
process life cycle
management and
timely progress
update from
teams.
The manager is
responsible to
develop real
world agile
process based
on its framework.
The manager is
responsible for
working with a
team and
together to
develop agile
iteration work
flow.
Agile Organization
Scalable Agile Organization
Top
Manager
Product
Mgt.
Agile CF
Team
Agile CF
Team
Agile CF
Team
System
Architects
Product
Mgt.
Agile CF
Team
Agile CF
Team
System
Architects
Product
Mgt.
Agile CF
Team
Project
Mgt.
SME and
SF
Operation
and Admin
Balanced Agile Approach
Agile System
Architecture
Agile System Architecture: System Level
System Level Architecture
consists of one or more applications, and can
easily ADD new, MODIFY and/or REMOVE the
existing applications to meet customer’s needs.
A1
A2
A3
A4
A5
A6
A7
A8
A1… A8 == Application 1… 8
Agile System Architecture: Application Level
Application Level Architecture
consists of one or more application components,
and can easily ADD new, MODIFY and/or REMOVE
the existing components to meet customer’s needs.
C1
C2 C3
C4
C5 C6
C7
C8
C9
C10
C11
C12
C13
C14 C15
C16 C17 C18
C19 C20
C1… C20 == Application Component 1… 20
Agile System Architecture
An Application Component is a
basic building block for the agile
system architecture.
Agile System Architecture
Application Component Key Attributes
Small, loosely coupled, distributed, self-contained, and messaging
enabled processes or services.
Communicate through a well-defined application interface (API), and
protocols should be light weighted and service-oriented.
Should be able to update, replace/remove, and/or deploy the
components independently and easily.
Designed based on what function(s) performed or services provided,
and only focus on one or two it can do the best.
Agile System Architecture: Design Highlights
Design for Scalability Design for Security
Design for Agility Design for Fault Tolerance
Design for Component’s Public APIs
Basic Component Architecture Example
Agile System Architecture
Design for Scalability
Enable to scale up development efforts with
developers working in parallel for different components.
With easy to understand and to modify components,
allows new development members to join the team and be
productive shortly.
Able to scale up operations and to enhance
availability with capability of running multiple instances at
the same or different distributed nodes.
Agile System Architecture
Design for Security
Design secured access controls to only
processes (services) and/or individuals who have passed
authentication and have the authorization.
Take a strategic approach to security segmentation for
data, functions/services and environments.
Try to centralize security policies and apply them
across the board to build consistency and reduce the
necessity of human interaction.
Agile System Architecture
Design for Agility
Break down an application into well-organized components
with clearly defined functions / services and application
interfaces (APIs).
The component is designed to be small in size, simple in
architecture, and bound in contexts. It allows to quickly
add, remove and/or modify.
The component is designed to be autonomously developed,
decentralized built, independently deployable, released with
automated processes, and distributed operated.
Agile System Architecture
Design for Fault Tolerance
The component is designed to quickly detect and tolerate
the failure when it makes a service request to another
component or an external application.
The component is designed to apply adaptive approach
followed by best effort principals when it handles an error
and fault situation.
The component is designed to follow the distributed model
so it allows a system or an application to continue run when
it is in failure.
Agile System Architecture
Design for Component’s Public APIs
The component’s public API is the only way it communicates
with and exposes its functionality / services to other
components and applications.
The API is designed to support one-to-one and/or one-to-
many client requests, and synchronous and/or
asynchronous based on requirements.
The component’s interface should choose lightweight and
service-oriented protocols, and its API messages should
consider containing both data and/or actions,
The API should have a well-defined versioning plan to properly
manage ever evolving and changing requirements.
Agile System Architecture
Basic Component Architecture Example
Data Store
Logic
Server (and Client) Mgt.
API
Device Mgt.
Balanced Agile Approach
Agile Process
Agile Process: Overview
The Balanced Agile Approach proposes
an Full Development Process, (Agile
Process), which is composed of a
number of process groups to ensure the
effective flow of the project throughout
its development life cycle.
Agile Process
Initiating
Planning
Closing
PlanningExecuting
Executing
Agile Process
• Gather information about what we need
to build (requirements).
• Who are customers and product owners.
• Method selected to quantify monetary
benefit.
Initiating Process
Agile Process
• Balanced approach to plan scope, schedule,
cost, quality and risk.
• Develop work items with priority.
• Identify project team members.
• Procurement if it requires.
Planning Process
Agile Process
• Perform analysis, design, development, build,
tests, QA, deploy and release.
• Conduct review and feedback for working
solutions.
• Allow to move back to Planning Process for
requirement changes.
Executing Process
Agile Process
• Deliver the final results.
• Close the project.
• Update all required information.
Closing Process
Agile Process
The Agile Process is a high level
process framework, which allows a
project manager to apply its
principals for his/her real world
projects.
Agile Process
A Real World Agile Process with One Iteration
Initiate
Project
Scope,
Cost,
Schedule,
Risk,
Quality
Work Items
with
Priority
Accept
?
Release to
Market
Yes
No
Iteration
Process
Initiating Planning Executing Closing
Iteration
ProcessIteration
ProcessIteration
Process
Iteration
Process
Agile Process
A Real World Agile Process with Multiple Serial Iterations
Initiate
Project
Scope,
Cost,
Schedule,
Risk,
Quality
Work Items
with
Priority
Accept
?
Release to
Market
Yes
No
Initiating Planning Executing Closing
Release to
Market
Agile Process
A Real World Agile Process with Multiple Parallel Iterations
Yes
No
Iteration
Process
•
•
•
Initiating Planning Executing Closing
Initiate
Project
Scope,
Cost,
Schedule,
Risk,
Quality
Work Items
with
Priority
Accept
?
Release to
Market
Iteration
Process
Iteration
Process
Iteration
Process
Release to
Market
Agile Process
The Iteration Process is an important
component of the Agile Process,
which allows the Agile Process to
scale up its development efforts to
meet customer’s needs.
Agile Process
Agile Iteration Process Work Flow
Analyze Design Implement Build + Test
Review +
Feedback
Agile Process
The Iteration Process Work Flow is
a framework, which allows a
project manager to work with team
to custom the work flow to meet
the project’s needs.
Agile Process
A Real World Agile Iteration Process Work Flow
Review +
Feedback
Analyze +
Design Implement
Build for
Unit
Testing
Build for
Integration
Testing
Build for
QA
Agile Process
A Real World Agile Iteration Process Work Flow
Customer
Feedback
Develop
Function
#1
Integration
& Testing
Integration
& Testing
Demo
Release
…..
Develop
Function
#N
Integration
& Testing
Agile Process
A Real World Agile Iteration Process Work Flow
Review +
Feedback
Discover Design Develop Build +
Test
Build + QA
Agile Process
A Real World Agile Iteration Process Work Flow
Sprint
Review
Sprint
Planning
Sprint Backlog
& Goal
Sprint
Daily Scrum Meeting
Sprint Backlog Update
Balanced Agile Approach
Agile Project
Management
Agile Project Management
Agile Project Management is to focus
on full agile process life cycle
management.
Agile Project Management
• Understand the customer and business
needs.
• Identify major stakeholders.
Initiating Process
Agile Project Management
• Based on scope, create work items with priority and
develop resource requirements.
• Based on customer’s schedule, cost expectation, and
available resources, develop required number of
teams to work in parallel, schedule and budget.
• Understand the risk involved and develop risk matrix
and risk response plan.
Planning Process
Agile Project Management
• Develop quality plan with metrics and checklist to
share with teams.
• Develop procurement plan if there is a need.
• Set up an effective method for required
coordination among different teams working in
parallel.
Planning Process
Agile Project Management
• Form project teams.
• Work with teams to define the Agile Iteration
Process Work Flow that is suitable for the teams
to perform.
• Finalize the deliverables with schedule forecast
working with teams.
Executing Process
Agile Project Management
• Work with the team to manage and control cost.
• Install progress update method with the teams and
provide overall project performance updates with
stakeholders.
• Install the quality check points with the team.
• Install the risk monitor and control steps with the
team.
Executing Process
Agile Project Management
• The proposed Agile Process is designed to move
easily back to Planning process when a change
request become official.
• Discuss requirement change guideline with the
product owner and the related teams, and install
required simple steps to make them official.
Executing and Planning Process
Agile Project Management
• While Agile Iteration is a major process within the
executing process group, it is designed to allow the
team to have the ability and authority to conduct its
development work.
• It is also by design that the team has the authority to
decide what iteration work flow works better for them.
Executing Process and Agile Iteration
Agile Project Management
• Close the project.
• Ensure to update all required information.
Closing Process
Final Note
While this presentation focuses on
software system development, it can
expand to other engineering,
commercial and social system
development.

More Related Content

Balanced Agile Approach

  • 1. Balanced Agile Approach for Large Scale System Developments May 1, 2017 Cary Xie, caryxie@yahoo.com Excel Investments LLC
  • 2. Table of Contents Introduction Balanced Agile Approach Highlights Agile Organization Agile System Architecture Agile Process Agile Project Management
  • 3. Introduction While traditional methodologies have many challenges, agile approaches often face their own difficulties and pitfalls, especially for large scale system development.
  • 4. Introduction: Traditional Methodology Challenges Slow Time-to-market High Development Cost Lack of Scalability Hard to Align with Business Needs Disconnected Design Long Development Cycle Difficult to Onboard New Developers Lack of Maintainability and Extensibility Poor Requirement Capture Hard to Manage Schedule Deployment Difficulties Development schedule squeeze Lack of Ownership Integration Challenges High Degree of Software Coupling Complex Development Process Inability to Change Requirements Lack of Engineering Disciplines Hard to Maintain Software Quality Low Development Productivity
  • 5. Introduction: Traditional Methodology Project Successful Project with Noticeable Difficulties Project Failed
  • 6. Introduction: Agile Approach Difficulties Lack of Overall Design Risk of not Well- structured Software Difficulties for Large Scale Systems Allow Technical Debt to Build Up Risk Test Coverage due to Time-boxed Development Hard to handle Difficult Problems Legacy Architecture not Fit Well Multiple Teams Work on Same Product Hard to Handle Comprehensive Requirements
  • 7. Introduction: Agile Approach Project Successful Project with Noticeable Difficulties Project Failed
  • 8. Introduction This presentation is to discuss a Balanced Agile Approach which can take advantage of agile tradition values while better manage its difficulties.
  • 10. Balanced Agile Approach Highlights • Break down the development work into small components. • Each component is designed to be easily and quickly modified. • The application is designed to allow quickly adding and/or removing any components. Incremental Process
  • 11. Balanced Agile Approach Highlights • Iterative process is short time frame with fixed duration. • Each iteration involves a cross-functional team working on delivering a working solution. • The working solution is fully tested and ready for deployment and release. Iterative Process
  • 12. Balanced Agile Approach Highlights • The full agile process is defined with system development life cycle (SDLC) model in mind, and the iteration process is a major component. • The full agile process is designed to be flexible. • The full agile process is able to scale up running multiple iteration processes in parallel or in serial. Full Agile Process
  • 13. Balanced Agile Approach Highlights • Close collaboration and collective ownership between business owners / end customers and the project team are throughout the process. • At the end of each iteration, key stakeholders review progress, provide feedback, and re- evaluate priorities aiming maximized business value. Collaborative and Partnership
  • 14. Balanced Agile Approach Highlights • Product owners take the lead to ensure overall system design meets customer’s needs. • System architects take the lead to ensure overall system architecture is flexible to meet customer’s needs. • A teams works closely with the product owner and the system architect. Balanced Approach to Overall Design
  • 15. Balanced Agile Approach Highlights • The organization changes to focus on customers. • The organization changes to ensure stable and productive environment for the teams. • The system architecture changes to provide a foundation and application platform. A Culture Changes
  • 16. Balanced Agile Approach Highlights • The project management is to manage full agile process most likely with multiple teams. • The project management is to apply a balanced approach towards project scope, schedule, cost, risk and quality. Project Management
  • 17. Balanced Agile Approach Highlights • The team stays focus on deliverables it has committed to work on. • The team advocates evolutionary development, early delivery, and continuous improvement. • Team works towards improving flexibility, simplicity and agility. Continuous Attention to Excellence
  • 18. Balanced Agile Approach Highlights • Balanced agile approach accelerates the delivery of initial business value. • Through a process of continuous feedback, the approach is able to continue to deliver business value. Delivering Business Value
  • 19. Balanced Agile Approach Highlights • Modern quality management shifts its primary quality focus away from the deliverable, and instead looks at the underlying process of how it was created. • All cross-functional team members are responsible for quality process improvement. Focus on Quality
  • 21. Agile Organization Organization Objectives Focus on meeting customers’ needs Ensure customer satisfaction
  • 22. Agile Organization Management Role and Responsibility Enable members to contribute their best efforts Remove any impediment that might hurt the team performance. No one-way- top-down commands, Establish horizontal, open and interactive conversations Build organization capability to meet project demands Capital allocation based on customer’s needs/priority and product performance
  • 23. Agile Organization Team Role and Responsibility A cross- functional group of individuals with ability and authority to design, develop, test and deploy solutions. Team members are empowered and accountable for deliverables that meet the customer’s requirements. Team is responsible for managing and plan their work. Team is responsible for quality, and continuously improve the quality.
  • 24. Agile Organization SME, SA and SF Role and Responsibility Subject Matter Experts (SME) are a group of individuals capable of providing expertise in their specified areas. System Architects (SA) are responsible for overall system architecture and its interfaces internal and external. Special Functions (SF) are individuals who specialized in certain functions that can be brought in on an as-needed and temporary basis. General operation and admin functions are also available for the teams.
  • 25. Agile Organization Product Owner Role and Responsibility The product owner has the project ownership. The owner or its representative is available (mostly physically) to answer any requirement related questions team may have in a timely manner. The owner is responsible to make all customer requirement related decisions in a timely manner, and to ensure they are visible to all. The owner should hold long term vision and balance it with near term customer’s needs
  • 26. Agile Organization Project Manager Role and Responsibility The project or program manager has a critical role when working on large scale system project with large numbers of different teams. The manager is responsible for coordinating and supporting project management aspects among different teams. The manager is responsible for overall full agile process life cycle management and timely progress update from teams. The manager is responsible to develop real world agile process based on its framework. The manager is responsible for working with a team and together to develop agile iteration work flow.
  • 27. Agile Organization Scalable Agile Organization Top Manager Product Mgt. Agile CF Team Agile CF Team Agile CF Team System Architects Product Mgt. Agile CF Team Agile CF Team System Architects Product Mgt. Agile CF Team Project Mgt. SME and SF Operation and Admin
  • 28. Balanced Agile Approach Agile System Architecture
  • 29. Agile System Architecture: System Level System Level Architecture consists of one or more applications, and can easily ADD new, MODIFY and/or REMOVE the existing applications to meet customer’s needs. A1 A2 A3 A4 A5 A6 A7 A8 A1… A8 == Application 1… 8
  • 30. Agile System Architecture: Application Level Application Level Architecture consists of one or more application components, and can easily ADD new, MODIFY and/or REMOVE the existing components to meet customer’s needs. C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C1… C20 == Application Component 1… 20
  • 31. Agile System Architecture An Application Component is a basic building block for the agile system architecture.
  • 32. Agile System Architecture Application Component Key Attributes Small, loosely coupled, distributed, self-contained, and messaging enabled processes or services. Communicate through a well-defined application interface (API), and protocols should be light weighted and service-oriented. Should be able to update, replace/remove, and/or deploy the components independently and easily. Designed based on what function(s) performed or services provided, and only focus on one or two it can do the best.
  • 33. Agile System Architecture: Design Highlights Design for Scalability Design for Security Design for Agility Design for Fault Tolerance Design for Component’s Public APIs Basic Component Architecture Example
  • 34. Agile System Architecture Design for Scalability Enable to scale up development efforts with developers working in parallel for different components. With easy to understand and to modify components, allows new development members to join the team and be productive shortly. Able to scale up operations and to enhance availability with capability of running multiple instances at the same or different distributed nodes.
  • 35. Agile System Architecture Design for Security Design secured access controls to only processes (services) and/or individuals who have passed authentication and have the authorization. Take a strategic approach to security segmentation for data, functions/services and environments. Try to centralize security policies and apply them across the board to build consistency and reduce the necessity of human interaction.
  • 36. Agile System Architecture Design for Agility Break down an application into well-organized components with clearly defined functions / services and application interfaces (APIs). The component is designed to be small in size, simple in architecture, and bound in contexts. It allows to quickly add, remove and/or modify. The component is designed to be autonomously developed, decentralized built, independently deployable, released with automated processes, and distributed operated.
  • 37. Agile System Architecture Design for Fault Tolerance The component is designed to quickly detect and tolerate the failure when it makes a service request to another component or an external application. The component is designed to apply adaptive approach followed by best effort principals when it handles an error and fault situation. The component is designed to follow the distributed model so it allows a system or an application to continue run when it is in failure.
  • 38. Agile System Architecture Design for Component’s Public APIs The component’s public API is the only way it communicates with and exposes its functionality / services to other components and applications. The API is designed to support one-to-one and/or one-to- many client requests, and synchronous and/or asynchronous based on requirements. The component’s interface should choose lightweight and service-oriented protocols, and its API messages should consider containing both data and/or actions, The API should have a well-defined versioning plan to properly manage ever evolving and changing requirements.
  • 39. Agile System Architecture Basic Component Architecture Example Data Store Logic Server (and Client) Mgt. API Device Mgt.
  • 41. Agile Process: Overview The Balanced Agile Approach proposes an Full Development Process, (Agile Process), which is composed of a number of process groups to ensure the effective flow of the project throughout its development life cycle.
  • 43. Agile Process • Gather information about what we need to build (requirements). • Who are customers and product owners. • Method selected to quantify monetary benefit. Initiating Process
  • 44. Agile Process • Balanced approach to plan scope, schedule, cost, quality and risk. • Develop work items with priority. • Identify project team members. • Procurement if it requires. Planning Process
  • 45. Agile Process • Perform analysis, design, development, build, tests, QA, deploy and release. • Conduct review and feedback for working solutions. • Allow to move back to Planning Process for requirement changes. Executing Process
  • 46. Agile Process • Deliver the final results. • Close the project. • Update all required information. Closing Process
  • 47. Agile Process The Agile Process is a high level process framework, which allows a project manager to apply its principals for his/her real world projects.
  • 48. Agile Process A Real World Agile Process with One Iteration Initiate Project Scope, Cost, Schedule, Risk, Quality Work Items with Priority Accept ? Release to Market Yes No Iteration Process Initiating Planning Executing Closing
  • 49. Iteration ProcessIteration ProcessIteration Process Iteration Process Agile Process A Real World Agile Process with Multiple Serial Iterations Initiate Project Scope, Cost, Schedule, Risk, Quality Work Items with Priority Accept ? Release to Market Yes No Initiating Planning Executing Closing Release to Market
  • 50. Agile Process A Real World Agile Process with Multiple Parallel Iterations Yes No Iteration Process • • • Initiating Planning Executing Closing Initiate Project Scope, Cost, Schedule, Risk, Quality Work Items with Priority Accept ? Release to Market Iteration Process Iteration Process Iteration Process Release to Market
  • 51. Agile Process The Iteration Process is an important component of the Agile Process, which allows the Agile Process to scale up its development efforts to meet customer’s needs.
  • 52. Agile Process Agile Iteration Process Work Flow Analyze Design Implement Build + Test Review + Feedback
  • 53. Agile Process The Iteration Process Work Flow is a framework, which allows a project manager to work with team to custom the work flow to meet the project’s needs.
  • 54. Agile Process A Real World Agile Iteration Process Work Flow Review + Feedback Analyze + Design Implement Build for Unit Testing Build for Integration Testing Build for QA
  • 55. Agile Process A Real World Agile Iteration Process Work Flow Customer Feedback Develop Function #1 Integration & Testing Integration & Testing Demo Release ….. Develop Function #N Integration & Testing
  • 56. Agile Process A Real World Agile Iteration Process Work Flow Review + Feedback Discover Design Develop Build + Test Build + QA
  • 57. Agile Process A Real World Agile Iteration Process Work Flow Sprint Review Sprint Planning Sprint Backlog & Goal Sprint Daily Scrum Meeting Sprint Backlog Update
  • 58. Balanced Agile Approach Agile Project Management
  • 59. Agile Project Management Agile Project Management is to focus on full agile process life cycle management.
  • 60. Agile Project Management • Understand the customer and business needs. • Identify major stakeholders. Initiating Process
  • 61. Agile Project Management • Based on scope, create work items with priority and develop resource requirements. • Based on customer’s schedule, cost expectation, and available resources, develop required number of teams to work in parallel, schedule and budget. • Understand the risk involved and develop risk matrix and risk response plan. Planning Process
  • 62. Agile Project Management • Develop quality plan with metrics and checklist to share with teams. • Develop procurement plan if there is a need. • Set up an effective method for required coordination among different teams working in parallel. Planning Process
  • 63. Agile Project Management • Form project teams. • Work with teams to define the Agile Iteration Process Work Flow that is suitable for the teams to perform. • Finalize the deliverables with schedule forecast working with teams. Executing Process
  • 64. Agile Project Management • Work with the team to manage and control cost. • Install progress update method with the teams and provide overall project performance updates with stakeholders. • Install the quality check points with the team. • Install the risk monitor and control steps with the team. Executing Process
  • 65. Agile Project Management • The proposed Agile Process is designed to move easily back to Planning process when a change request become official. • Discuss requirement change guideline with the product owner and the related teams, and install required simple steps to make them official. Executing and Planning Process
  • 66. Agile Project Management • While Agile Iteration is a major process within the executing process group, it is designed to allow the team to have the ability and authority to conduct its development work. • It is also by design that the team has the authority to decide what iteration work flow works better for them. Executing Process and Agile Iteration
  • 67. Agile Project Management • Close the project. • Ensure to update all required information. Closing Process
  • 68. Final Note While this presentation focuses on software system development, it can expand to other engineering, commercial and social system development.