Balanced agile approach is designed to take advantage of agile tradition values the same time to better manage its own challenges. The approach covers four key areas: agile organization, agile system architecture, agile process and agile project management.
Report
Share
Report
Share
1 of 68
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
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
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
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
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
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.
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
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.
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
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.