Cybage ExcelShore

Transcription

Cybage ExcelShore
White Paper
Cybage ExcelShore:
‘Process++’ framework—
A true definition of quality and productivity
Over the years, quality frameworks have evolved in the manufacturing
industry. They have been subsequently imbibed by the relatively-nascent IT
industry. Quality can be defined in many ways—ranging from simply
matching the stated specifications to anticipating and fulfilling the stated
and implied needs. Project quality management is said to focus on ensuring
that the project meets the needs or expectations of the stakeholders. Some
theories believe in precision (Big ‘mac’ effect!) and some in ‘fitness for use’
or ‘fit for purpose’.
Realistically speaking, all of these concepts are valid, but possible or relevant only with
respect to unit cost. No framework covers the concept of quality per unit cost
effectively. This paper tries to find an answer to this limitation of the existing
frameworks. The latest thoughts on ‘lean-6-sigma’ framework (applied to software
development)’ emphasize cost reduction in an absolute sense, but fall short of defining
quality with respect to a given cost (quality per unit cost).
01
Process Drivers
Excelshore:
Strategic
Objectives
operational efficiency,
continuous improvement!
Competitive
Drivers
Lean:
Reduce waste, increase
process speed!
Differentiated
Value Chain
CMMi, 6-sigma:
Yesterday’s milestone 
today’s benchmark!
CMM, Agile,
ITIL:
Develop processes
around best practices!
Organizational
Alignment
ISO9001:
Document what we do,
do what we document!
A CIO (or a typical client for an IT services company) would be more interested in a
successful project delivery at a reasonable cost that fits the budget. The client’s
definition of ‘success’ will include meeting his budget constraints along with other
targets such as ‘quality (matching his specifications), ‘quality (meeting business users’
expectations)’, and ‘achieving a product in his ‘go-to-market’ time (schedule)’. Although
this seems too easy from a common sense standpoint, many older frameworks do not
cover this balance effectively. They lay a tremendous focus on documented
evidence-based approach for achieving an absolute quality standard (CMMI or ISO).
The developments in the last two to three decades have given rise to Agile
methodologies such as Scrum, RAD, XP, and KANBAN and the focus on imbibing
‘lean-6-sigma’ principles from the manufacturing industry are meant to make the
quality frameworks more pragmatic and oriented towards the rapidly-evolving business
scenarios where perhaps change is the only constant.
02
The Journey so far
Yesterday’s
milestone is
today’s
benchmark
Bottom up
Lean
Six Sigma PCMM
CMMI level 5 ver 1.3
CMMI Level 5 ver 1.1
Quality management
system /ISO 27001
Top Down
Disciplined &
standardized way
of doing things
Improve and innovate
the process. Build
quality around people
processes
Reduce waste increase
process speed
Time
CMMI (Capability Maturity Model Integration) is a proven industry framework providing
a way to manage hardware and software development from product inception through
deployment and maintenance. CMMI was developed to improve the software
engineering domain. It helps in developing and improving the process maturity of an
organization, enabling it to meet its business goals. CMMI allows users to select one or
both of the model representations to best suit their business needs. This flexibility, built
into every CMMI model, supports both staged and continuous approaches for process
improvement with common terminology, architecture, and appraisal methods.
CMMI models provide guidance for improving processes that meet the business goals
of an organization. They may also be used as frameworks for appraising the process
maturity of the organization. They also help eliminate the barriers existing within an
organization.
03
However, CMMI implementation requires additional resources, time, and knowledge
(mind-share). It also necessitates a major change in the organizational culture.
According to the newer generation of Agile practitioners, CMMI is overblown, tedious,
and lackluster. The risk of red-tapism is high in CMMI, just as the risk of anarchy is
tremendous in Kanban or extreme programming practices. CMMI tends to promote
processes over substance, affecting the time-to-market requirements of an
organization. At the same time, Agile practices, which may be good enough to deliver a
quality product for now, are not mature enough to either create an organizational
learning baseline useful for future estimations or to manage the human attrition factor
that is so common in the software services industry. CMMI also fails to comprehend
various human perspectives, along with the structural and cultural factors that are
crucial for the success of any project. To some people, Agile practices are a marked
improvement because these practices focus more on product and human interaction,
unlike the classical (assembly-line) process models.
In the scuffle between classical and modern or Agile frameworks, an adversarial attitude
is depicted, which is not only irrational, but also damaging to the common goal of
developing high-quality software in the shortest possible time. By selecting appropriate
techniques to conquer specific challenges, we can work with a successful mix of
frameworks and processes, with the highest possible return on investment.
Let’s concentrate on the ‘common goal of developing the highest quality of software in
the shortest possible time, and at the lowest possible cost’.
We all know that Agile philosophy focuses on client satisfaction via early, frequent, and
continuous delivery of relevant and working software. The objective is to welcome
changing requirements and harness change for the client’s competitive advantage.
Business users, analysts, and developers must work together daily and working
software deliveries, which is a measure of progress, should be on a shorter time scale.
04
Take a look at a sample of typical Agile Process work flow
Typical Agile Process
e & Co
de
Iteration
Pro
Test & Validate
Temptation to prioritise
new features over iterating
previous iteration’s problems
Requirements
g
Ima
duct R
elease
Temptation to release
before it’s right
Agile says: Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done. The best architectures,
requirements, and designs emerge from self-organizing teams. At regular intervals, the
team reflects on how to become more effective, then tunes and adjusts its behavior
accordingly. Agile is a type of software development that is based on increments and
iteration.
Now, this seems very good with experienced team members and very flat
organizations. How does a dynamic IT services industry truly implement Agile within its
more vertical framework and achieve ‘compliance on scale’ also, which is a prime need
to drive thousands of very young software professionals?
Someone who knows these frameworks will say that, Agile, by design, is highly flexible
and can hence be shaped into a CMMI-compliant software development process
05
without changing the underlying philosophy of the Agile Manifesto. However,
‘compliance on scale’ remains a problem to be solved.
Also, as we add to the flexibility, Agile projects tend to become difficult to predict, from
timelines to budgets. As life becomes ‘Agile’, it also becomes a bit ambiguous.
Agile Scrum is one of the leading causes of Scope Creep. Without a definite end date,
the project management stakeholders are tempted to keep demanding new
functionalities. With a mutual trust environment, this is fine and achievable. However, in
the client-vendor scenario, an objective measurement of success is almost impossible
within an Agile framework. ‘Are the team members committed or otherwise? Has the
project completed successfully or otherwise?’ are difficult questions to answer. Attrition
or project changes are common in the service industry. If any of the team members
leave during a sprint, it can have a huge adverse impact on the sprint’s success.
A critic of the Agile methodology states that it doesn’t have enough control and results
in undocumented changes and chaos. Scrum addresses parallelization by introducing
user stories and enabling every team member to edit every line of code that the team is
responsible for. It also describes how to serialize the work using backlog and sprints.
However, it does not work well for larger teams (more than 8-10 developers) and it has
no solutions for parallelization of the work between multiple departments, controlling
work over various phases, and load balancing. Agile does not have enough control over
the management of multiple teams.
In our pursuit of a perfect framework, to find the answers to the aforementioned
questions, we now come to Scalable Agile. It is an Agile software development process
that refers to the ability to manage large projects with multiple teams. It is a
much-debated subject. Many believe that Agile development cannot be sustained
when a project is large or multiple teams are involved. It’s faster. It’s continuous
delivery. It enables releases ‘on demand’ by having multiple ‘on-demand’ environments
and accepting changes when they are ready. This process is scalable to an indefinite
number of contributing individuals and teams by eliminating centralized iteration
planning and centralized testing.
Now, this opens the door to many types of contributors, not just Scrum teams, or
06
people trained in a particular process. Established Scrum teams can grab a sprint
backlog, and work as contributors with no process change. If we are bringing in c
ontributors we don’t know, do we control them? Are we managing them? They are
managing themselves in unknown ways! Is our project in control? Let’s say we control
the backlog, so we control what people work on. We also control the code changes and
other changes that we accept. So, we can have an effective control over what goes in
the product.
Still, we need an answer to the question from the service industry management
standpoint—how do we manage these contributors who are required for project
success but are not a part of the team? How does the organization structure respond to
the competing project needs?
A developer’s opinion on the debate depends also on his or her approach to Agile. If
you truly believe in Agile, you probably think it’s scalable!
The Cybage Agile processes are truly scalable because they are supported by an
organizational framework which not only covers software development and project
management processes, but also manages the contributions coming from
organizational supporting teams via a predictable IT-enabled framework.
Moving on from a more standard implementation of Agile, that is Scrum, to a more
agile framework, that is Kanban: In this approach, the process—from definition of a task
to its delivery to the client—is to pull work from a row. Release date is a matter of
choice and doesn’t affect the work stream.
Kanban is more flexible and focuses even more on a continuous delivery. By delivering
small portions of a project continuously to the client, teams have multiple prospects to
manage future iterations with the updated requirements. Kanban revolves around
productivity and efficiency, two concepts that also tie back to the reduction of waste.
The Kanban system focuses on the reduction of waste in all its forms—over-production,
unnecessary motion, defects, over-processing, and waiting.
When waste is removed from a process, project productivity goes up. When work is
properly re-prioritized as needed and communicated using the Kanban cards (or the IT
07
representation as in some ALM tools) the project resource doesn’t have to question
what he or she should work on next.
Kanban is definitely less effective in shared-resource situations. Kanban in itself doesn’t
remove variability, so unpredictable and lengthy downtimes could provide poor quality
of the system in terms of scrap and rework and this could also affect the functionality. It
can be rigid to product mix changes and small or random orders do not fit the model
well.
The advantage of Lean methodology is the increase in efficiency of the development
process by eliminating waste. This increases the process of software development,
which in turn, decreases project time and cost. The Lean method helps in delivering the
product early. That is, your development team can deliver more functionality in less
time, hence allowing more projects to be delivered.
In Kanban and Lean methodologies, team collaboration and affirmation is very
important to the project’s success. These methods believe in less micromanagement
and more empowerment. Developers do influence the decisions of how a particular
functionality is to be achieved.
Even with the usage of ‘lean-6-sigma’ principles, the project is highly dependent on the
cohesiveness of the team and individual commitment of the team members.
Achievement in the project depends on how well-organized the team members are and
how sound their technical skills are.
CMMI, ‘lean-6-sigma’ , or Agile methodologies, and many other process frameworks or
models still fall short in areas such as loss of a key resource from a team or resources
who are misfits in their teams although they do have some relevant but different skills.
08
My Interpretation
Risk of Anarchy
Need/ Assumption:
developers are senior, mature and motivated!
Increasing from Waterfall to KANBAN
Focus on finishing the product /
features as required by user
Requires more trust
Benefit:
More flexibility and
responsiveness to business
KANBAN
AgileSCRUM
KANBAN
Iterative,
Spiral
AgileSCRUM
Waterfall
Iterative,
Spiral
Waterfall
Risk of Bureaucracy
More top down
Focus on estimations
Decreasing from Waterfall to KANBAN
More visibility, better
projections for senior stakeholders
Better organization wide data
Benefit:
More structure and
processes increase predictability
Cybage has combined the proven best practices of the classical models such as CMMI
and modern set of Agile techniques along with its well-integrated model which
facilitates human resource management in projects and improves the productivity and
quality per unit cost for its clients.
This model of IT-enabled intelligent business decisions, known as the ‘ExcelShore’
model of operational excellence, enables senior managers to make data-driven
decisions; thus improving efficiency at every level.
09
Combined with Cybage-specific SDLC and project management processes, ExcelShore
ensures delivery excellence in a holistic way. This combination covers the capability and
maturity of people along with the capability and maturity of processes.
It is a great human capital management ecosystem which also embodies itself into
higher productivity for clients via well-managed human hierarchies. It acts as a uniform
system handling optimal resource allocation for the right opportunities, overcoming
the barriers of various business units.
Now, let’s look at another classical quality theory posing a challenge to the software
services industry.
Business Challenges
Operational Excellence
Doing right for
the first time
Defects
Lower maintenance cost
Time
re
ho
lS
ce
Ex
Productivity
Schedule
Adherence
Doing it
efficiently
Doing it on-time
every time
Lower development
cost
Lower Schedule
overrun cost
cle
y
c
ife nt
L
on eme
i
t
ca nag
i
l
p a
Ap M
10
When we talk about Cost of Quality, it consists of Cost of Prevention, Cost of Appraisal
(reviews), and Cost of Rework or Failure (internal and external). Increase in quality is
supposed to save cost also due to lesser defects and lesser reworks or failures. This also
results in increased productivity, aiding on-time deliveries, increased client satisfaction,
and overall increased return on investment. While the classic quality theory that quality
is free or quality pays for itself is generally true, as we invest more and more upfront,
both the costs, Cost of Prevention and Cost of Production, increase. Beyond a point, the
costs of appraisal and rework don’t decrease proportionately; and soon these costs
stop decreasing. The challenge is more especially in software development where
capability and maturity of people is as important as the capability and maturity of
processes. In fact, it is very difficult to practically separate the Cost of Production from
the Cost of Prevention (which is supposed to be a part of COQ—Cost of Quality). For
instance, when you have a senior architect working on an architecture or design review,
or a business analyst spending time in requirements elicitation with the client and/or
training the team in the domain or the PM and the team spending time in establishing
simple ALM (Application Life Cycle Management) practices and developing proficiency
in a tool, or simply undergoing soft skills training such as ‘accent and voice
neutralization’ or ‘cross-cultural sensitivity’; how do we classify this cost? It is clear that
these investments will typically result in less rework, less failures, and higher client
satisfaction. But how does one attribute these costs to a software project? (Specifically,
does it get accounted in COP or COQ?)
From the aforementioned analysis, it must be clear by now that it is imperative to look
at the quality and productivity in a holistic way, especially from the angle of quality per
unit cost. The Cybage process framework is closely interacting with the ExcelShore
framework for overall strategic decision-making. This holds good especially from the
human capital management standpoint thereby enabling project practitioners to look
at quality and productivity from this entirely new angle.
The Cybage Project Health Check is a set of
well-integrated models that are meant to
facilitate project management and improve the
software development process simultaneously.
Knowing one’s project is a basic requirement.
11
That said, the Cybage KYP – PHC initiative ensures that delivery managers, project
managers, and teams understand and appreciate the project in the same way as the
multiple points of contacts or project stakeholders understand. A project becomes
successful not only by striking the right balance of scope, quality, and schedule with
reference to cost (resources), but also by keeping the stakeholders happy! This feat is
possible only when you understand the key success factors in line with the needs of the
stakeholders of your project.
Unique Direction of Process Department
Process Review System
‘Evidence Based
Compliance’ - focus of
SQA’s going forward
Wider coverage,
fewer questions!
Cybage also has its own unique task management system, which not only includes
standard task management workflows and time management portal, but also an
innovative advisory service to project managers for task allocation. While this service
includes standard features of scheduling, it mainly focuses on matching the varying skill
levels of individual members of a team with the relative complexity of tasks. Our
ExcelShore framework enables this organization-wide experience and skill level matrix.
This integrated framework also allows every project to have a systematic knowledge
management planning, human shadowing techniques, and excellent risk mitigation
strategies with system-suggested ideal project hierarchies guiding the project
managers.
Thus, the Cybage value proposition is not only in the true implementation of scalable
Agile practices and best-in-class CMMI processes, but also through its own unique set
of IT systems guiding the projects in human capital management, effective task
management, risk management, and knowledge management.
12
Recently many scholars, practitioners, and quality gurus have started to talk about
productivity as a function of human talent, focus, dedication, and knowledge or skill
level of teams rather than the classical definition based on only process view. In
software or any knowledge industry, productivity largely depends on the level of
human capital invested. Traditionally, quality frameworks have decided to bypass this
important aspect and focus purely on ‘process–driven’ calculation of productivity.
Cybage can calculate productivity in the true sense of the word, capturing both the ‘art’
and ‘science’ of it, giving true ‘value for money’ to its clients.
Cybage Software Pvt. Ltd.
[An SEI-CMMI Level 5 & ISO 27001 Company]
HQ: Cybage Towers, Survey No 13A/ 1+2+3/1, Vadgaon Sheri, Pune 411014 |
Tel: 91 20 6604 4700 | Fax: 91 20 6604 1701
Pune | Hyderabad | Gandhinagar | Seattle | New Jersey | San Francisco |
Atlanta | Austin | London | Frankfurt | Amsterdam | Sydney
www.cybage.com
© 2014. Cybage Software Ltd. All rights reserved.
13