Upload
telliant-systems
View
218
Download
0
Embed Size (px)
Citation preview
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
1/16
Applying Lean Principles to
Sotware Product Development
Intelligent Sotware. Delivered
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
2/16
To address requent changes in business requirements during sotware product
development, organizations resort to having more rigid processes in place to
ensure adherence to cost and time estimates. These actions result in centralization
o decision making, leading to urther increase rigidity and delay in decision
making. Changes to requirements may not be accommodated due to the loss o
exibility and the end result is delivery o a product that lacks some o the eatures
that are now demanded by customers. Thus, a linear sotware development
model that is so widely adopted (like waterall methodology) does not permit
iterative development and early testing. By the time requirements changes are
evaluated or implementation, changes may need to be done in design. This
can be expensive and time consuming. Applying principles o lean management
to sotware product development can help overcome some o these challenges.
Lean principles also help build a continuous improvement cycle within the process
o new sotware product development.
Lean principles ocus on eliminating waste, delivering value to customers, reducing
cycle times, and implementing continuous process improvement initiatives. Once
Lean principles are implemented, several benets can be realized including:
Reduction in costs through waste elimination and compressing/
eliminating waiting time
Reduced testing cycles with early testing during the development lie
cycle
Continuous process improvement leading to reduction in the number
o deects identied during testing
More exibility in dealing with changing requirements
INTRODUCTIONLean Principles best
address requent
changes in sotware
development with early
testing and a continuous
improvement cycle.
This paper begins with an overview o the principles o lean sotware development.
Subsequently we will highlight how the application o Lean tools improves the
product development process by examining their impact on various phases o the
sotware product development lie cycle.
p. 2
Applying Lean Principles to Sotware
Product Development
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
3/16
Mary and Tom Poppendieck enunciated the seven principles listed below or
sotware development in their book Implementing Lean Sotware Development:
From Concept to Cash:
Eliminate waste: Anything that does not add value to the customer is deemed
wasteul. Lean principle advocates that organizations should learn to identiy
and eliminate waste. In sotware development, waste can include unwanted
eatures in products, repeated cycles o testing, slack time between phases o
the project (waiting or approvals or appropriate resources) and creating excess
documentation.
Build in quality: Allow or integrity and testing to be carried out to provide
eedback rom end users to the team. I there are repeated cycles o testing, it
indicates that the development process is not in order and requires to be xed
beore proceeding urther. Lean advocates an iterative development model that
introduces testing early in the sotware development lie cycle thereby eliminating
discovery o deects late in the development lie cycle and thus helps avoid costly
xes in the orm o changes to design.
Create knowledge: Knowledge generation is done through eedback loops,
iterations, synchronization and set based development. Feedback can be
obtained rom testing, getting customer response to the output and increasing
the eedback loop to the development team. Iterations help obtain requent
eedback, allow the ability to decide as late as possible, prioritize high value
items early and require team planning, short complete cycles and help achieve
convergence. Synchronization permits development o multiple components using
architecture matrix strategy. Set based development help solutions to emerge by
communicating constraints.
Lean suggests that there should be interaction o the sotware development team
with customers to get eedback early in the lie cycle o product development.
Set based development implies developing multiple options, communicating
constraints and discovering a solution.
Deer commitment:Allowing decisions to be made as late as possible ensures
that possible solutions are not eliminated early during the product development
lie cycle. This includes identiying the last possible moment or making decisions
and making decisions ater evaluating all alternatives/options. In product
Relating Lean Principles to
Sotware Development
Iterative development
model in sotware
development
eliminates waste in
many phases o the
development lie
cycle.
p. 3
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
4/16
development lie cycle, requirements are allowed to evolve over a period o time
instead o insistence on nalizing the requirements in the beginning o the
development cycle, as advocated by linear models o sotware development. In
the idea generation phase o product development, not ruling out some o the
ideas generated early can be valuable urther down the process.
Deliver ast: This is required to satisy customers who like rapid delivery. This
can be accomplished by allowing people to be sel-directed, reducing the cycle
time, managing slack by eliminating or reducing the wait time between activities
and highlighting the cost implications o delay in delivery.
Respect people:Team members need to be empowered by allowing them to
determine or them the work processes and have in place a eedback loop between
managers and the team members. They need to be motivated by providingthem with clear, objective, and measurable goals with access to customers and
management providing them support, guidance, resources and protection as
required. The team also needs to have a leader to set direction, align people and
enable motivation. Expertise must be ostered within teams and opportunities
or continuous improvement should be provided. This can be accomplished by
having a governance model that empowers the sotware product development
team members to make decisions within the boundaries o the scope o work.
Optimize the whole: To be able to visualize the system as a whole and
understand the nature o interactions between various components o the system
and identiy appropriate measures and metrics or perormance measurements.
This principle also promotes the system way o thinking during solution
development. Comparing Lean Principles and Agile Methodology
On the surace, some o the Lean principles appear quite similar to what is suggested
by Agile methodology o sotware development in that they advocate aster
delivery, exibility o accommodating changing requirements, deer commitment
(keeping options open) and build quality in (advocating early testing). Lean,
however has a broader view and takes the entire context o sotware development
into account viewing Agile development methodology as supporting the practices
advocated by Lean sotware development. Lean ideas provided a context or
developing the tools that are used by Agile. Agile is oten conused to mean
no documentation whereas Agile recommends that minimum documentation
be created keeping in mind the needs o the project. This is in line with the
Lean concept o avoiding waste by doing away with excessive documentation and
instead ocusing on delivering sotware that can be tested or correctness and
utility value. As described above, Lean can addresses all organizational unctions
and has an impact on the entire system.
p. 4
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
5/16
Sotware product development goes through various phases rom idea generation
to product launch. At the end o each phase is a structured review process that
results in a Go/No Go decision. Ideas can be sourced rom various sources
including employees, customers, or vendors and are screened or easibility.
Upon approval by management ater a business review, a project may be created
and unded or developing the product. Sotware product development goes
through the ollowing phases beore the product launch:
Incorporating Lean Principles in
Sotware Product Development
Each Phase o LeanDevelopment requires
many sources to
review, this assures the
product is exactly what
the client wants.
p. 5
Iterative Development& early testing
Concept
EvolveProductFeatures
set
Feature(s)Design
Feature(s)Dev.
Feature(s)Testing
IntegrationTesting
Gate Review
The table below shows the various phases o product development and a
representative list o Lean principles that can be applied:
Phase Application o Lean Principles
Concept Wish list of product features provided bypotential customers
Product Features
& Requirements
identication
Requirements evolve during the course o
product development and cannot be nalized in
the beginning o product developmentDeveloping only those requirements that are
required by customers (eliminating waste)
Adoption o an Iterative process that can
accommodate requirements changes
during product development lie cycle (deer
commitment)
Product Design
& ArchitectureArchitecture should be exible to accommodate
changing business requirements
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
6/16
Phase Application o Lean Principles
Product Development Sotware development is done iteratively a seto requirements is taken up or development -
this ollows a cycle o design, develop and test
Scenario driven development based on user
stories comprising user experience, technical
specications and interaction standards
Focus on continuous improvement
Product Testing Build in quality introduction o testing early in
the development lie cycle
Integration testing done in the end toensure components work well together ater
development
Product Launch Customer feedback is used to enhance productfeatures in a steady state
The table below shows the various phases o product development and a
representative list o Lean principles that can be applied:
Dimension Lean Principle Applied
Measures Identiy easy to capture and limited number o
metrics or continuous monitoring
Continuously monitor the program to identiy
areas o improvement
Governance Empower people
Promote extensive interaction between end
users and development teams
Respect people by promoting sel-organizing
teams
Adherence to standards
p. 6
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
7/16
Outcomes Realized When Applying Lean
Practices Sotware Product Development
Requirements Development
Lean advocates close interaction between the product development team and the
client partners or prospective clients. With the close involvement o end users or
client partners during the early stages o requirements development, only those
requirements by customers that are seen as being valuable are identied or
elaboration, validation, and development. This results in elimination o wasted
eort in developing eatures in the product that are not seen as valuable by
customers thereby reducing time and cost o product development. Customers
also need not pay or eatures that they do not see value in. In the early stages o
product development, value is identied and hence waste also gets identied and
eliminated. According to a study done by Standish Group in 2009, over 64% o
product eatures are not used by organizations post implementation. Having well
dened requirements would prevent unnecessary expenditure on implementing
eatures that do not serve any purpose.
Sotware Features Usage, Source: The Standish Group, 2009
I requirements stability is too low, it implies that specications are being nalized
too early. Lean advocates making delayed commitments. This allows or better
articulation o requirements leading to nalization at a later time, but developing a
product that is more closely aligned to customer requirements.
Since potential customers or client partners are involved early on during the product
development, validation o requirements happens early in the lie cycle o product
development. Close interactions between the business team and the technology
team can result in improved collaboration and hence a better understanding o the
implications o decisions.
With the close
involvement o
end users and
client partners the
requirements are
identied early
reducing time and
cost o development
p. 7
45%
7%
13% 16%
19%
Always
Often
Sometimes
Rarely
Never
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
8/16
In summary, applying Lean principles during requirements development
results in the ollowing benets:
Elimination o waste
Prioritization o requirements driven by client partners/potential customers
resulting in better alignment o product eatures with market demand
Allowing or requirements to develop iteratively instead o nalizing
requirements early in the development cycle ensures that the nal
product being delivered is aligned to customers expectations.
Product design and architecture
Sotware products need to be exible and congurable to allow customers to
respond quickly to the challenges in business. Lean principles articulate building
a exible architecture that would help development teams to be nimble ooted
in responding to changing business requirements. Open computing and Service
Oriented Architecture are popular approaches that help implement a exible
architecture.
Adopting this approach would lower maintenance costs or customers on an
ongoing basis, besides increasing the ability to support emerging business needs
and lowering technology related risks. This would help organizations quickly
launch new products in the market and maintain parity or competitive advantage
vis--vis competition.
Development
Lean stresses on having short development cycles and delivering value at the end
o each o these cycles. Agile methodology closely aligns itsel to Lean principles.
The stress is on iterative development that ocuses on:
Delivering unctionality and business value in each sprint/iteration
through a cycle o build, test and validation
Addressing high risk items early to reduce risk as the development
progresses
Evolving the understanding o product requirements through each
iteration
p. 8
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
9/16
Faster decision making (Every iteration is time bound which orces aster
decision making without actually reezing scope. The unaddressed
unctionality in an iteration is carried over to the next iteration)
Increasing the number o eedback loops through regular delivery o
working sotware
Eliminating slack between iterations by including all activities rom
planning through delivery as a part o the iteration instead o having
additional external processes that can create wait time and cause waste
to be created
In summary, applying Lean principles during requirements development results in
the ollowing benets:
Delivery o a sotware product that is in alignment with customers
requirements.
Allows requirements to evolve during the course o product development
instead o orcing nalization o product eatures/requirements early on
in the development lie cycle. The end result is a sotware product that
is more aligned to meet customers requirements even when there are
changes to requirements rom the time the product was conceptualized.
A simultaneous ocus on early risk reduction and value delivery orces
identication o solution constraints early on and allows a solution toevolve taking into account all alternatives.
Implementing unctionality o highest priority rst by delivering working
code early in the cycle also validates the architecture, reduces technical
and project risk and increases the likelihood o successul product
development.
Knowledge is created through short eedback loops achieved by early end
user testing during each iteration.
Where product development companies have teams that are not co-
located, the teams are synchronized through continuous integration.
Early testing during each iteration ensures that quality is built in early on
Too many cycles o testing i run, would be a pointer to x earlier
processes. This can result in continuous improvement in the sotware
engineering processes.
p. 9
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
10/16
Product testing
Lean emphasizes early testing and continuous process improvements. The
benets o adopting this approach are:
Reduced testing cycles and hence a reduction in overall sotware
development costs
Early detection o bugs/deects and resolution o the same resulting in
avoiding costly xes o deects later in the development lie cycle
Applying Lean to other dimensions o
sotware product development
Besides the dierent phases o sotware product development, Lean principles
can be applied to other dimensions o sotware product development:
Measures:Lean advocates that metrics that are captured as a part o sotware
development should be:
Easily understood, collected, analyzed and be limited
Used to monitor the program health and identiy areas or improvements
Eective metrics provide the required inormation to management to take timely
and appropriate action. Metrics collection should be automated and be used toanalyze critical trends that can acilitate good program governance. While the
standard Earned Value Management related metrics help determine the current
status, they can also set expectations on how the budget is spent. The ocus should
be on collecting those metrics that are easily understood, easily collected, and
acted upon.
Continuous collection, monitoring and analysis o metrics combined with iterative
development helps measure the variance between quality o working code
delivered and the specications. This helps take early corrective action. Collectionand dissemination o metrics can happen through project dashboard sotware.
While corrective action can result in course correction, analysis o metrics can
result in process improvements that can be implemented within the organization
that is engaged in product development. This can result in process improvement
initiatives.
Governance: Lean principles ocus on quick decision making, empowering
people, permitting project team members to have a say in the processes and
adherence to standards. These are examined below in detail:
p. 10
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
11/16
Lean principles advocate empowering people rather than try and control and
directly manage them. This requires a high degree o maturity o team members
who are capable o being sel-directed. Team members would have the authority
to allocate work (to them) that would be perormed within the overall governance
structure. Such a participatory approach ensures that all team members have a
say in the decision making process. Team members would select their activities
and tasks, commit to the work and co-ordinate regularly to ensure that progress
is smooth. In combination with the iterative model o development, empowering
people through sel-direction works well because o the ollowing reasons:
In each iteration, the deliverables are agreed upon by all stakeholders
and the development team.
Iterations ensure that there is overall direction and serve as a control
mechanism or the Product Development Manager to keep the team
members ocused on the task on hand
Increased motivation o team members that can positively impact
productivity
Promotes greater collaboration between team members
Decision making is decentralized and quicker because team members are
empowered
Better opportunities or team members to up skill themselves
Lean principles suggest adoption o policies and standards that would promotecollaborative team work. The development team may be spread across locations,
geographies, and time zones. To ensure seamless collaboration and integration,
an integrated environment should be in place to ensure that there is support or
interaction between project team members. Having a standardized integrated
lie cycle environment during the product development process helps lower costs,
capture metrics, and assist easier onboarding o project resources.
To be eective, the governance model should actor in the capabilities o the
project team members and the organizations environment. Successul governance
models ocus on enabling collaborative work between project team members and
motivating them to perorm at their peak levels instead o being directed.
p. 11
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
12/16
Review meetings/Retrospectives:
At the end o an iteration project teams should hold review meetings to reect on
their perormance. These meetings should be used to analyze what went o welland where the team went wrong. What went o well should be prioritized or
implementation as best practices and where we went wrong should be used to
identiy continuous improvement initiatives.
Outsourcing:
To take advantage o lower costs, compressing time to market and access to a
scalable pool o resources, sotware product development rms may choose to
outsource some phases o product development. Most oten, this is the iterative
development phase. Some o the Lean principles that can be adapted when having
vendor partners include:
Treating the project team as one team instead o dividing them as
onshore and oshore partners
Providing access to communication tools such as instant messaging, video
conerencing
Facilitate participation in team meetings by scheduling telephonic
meetings scheduled with time zone overlaps
Ensure ow o customer eedback to the oshore team
Facilitate interaction with the onshore team by having some o the
oshore team members travel onshore or a short duration during the
initial iterations
While Agile ocuses on continuous eedback loops rom customers/end users, Lean
principles advocate continuous integration, people empowerment, and continuous
customer eedback. Applying Lean principles can help organizations that have
outsourced some o the product development phases.
p. 12
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
13/16
Summary o Benets Derived From
Adopting Lean Principles
Adopting LeanPrinciples enables
product development
requirements to evolve
and members to
be sel-directed to
upgrade their skills
Various benets that accrue by adopting lean principles are summarized below:
Reduced cost o product development by eliminating waste by
Not implementing requirements/eatures that are not desired
by customers,
Adopting agile/iterative development model o sotware
development that allows requirements to evolve during
product development
Testing early and avoiding expensive design changes due to
late testing
o
o
o
More productive sotware development members who are sel-directed
and have an orientation to continuously upgrade their skills
Developing products with a exible architecture that can support the
evolving business needs o customers and reduce the total cost o
ownership to customers
Allows or the development o multiple options in parallel
Enables set-based development by examining all options
Continuous process improvement achieved by introducing testing early
on in the development lie cycle
Capturing metrics that are easily understood and analyzed
Continuously delivers value/unctionality addressing the high risk
elements rst, thereby reducing technical risk as the project progresses
over time
p. 13
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
14/16
Challenges o Using Lean Principles
Whereas the advantages o adopting Lean principles have been listed earlier,
there are some challenges as well that are provided below:
The project team members need to be sel-directed (given the emphasis
placed on empowerment) and capable o working as a cohesive unit.
Having team members that are not committed can result in derailment o
the project.
Lean advocates making late decisions (compared to the insistence on
timely sign o in linear methodologies o sotware development) to
ensure that all possible solutions are considered beore making a choice.
When requirements keep evolving without an end in sight, there is a
large possibility o scope creep. This has to be managed well; else there
would be accompanying schedule and budget slippage as well resulting
in ailure.
Lean is ocused on continuous improvement and the timelines or
implementation can be long. The payback period or reaping the
benets would also be long. This can encounter internal resistance within
the organization and the commitment o senior management would be
required to overcome this.
Some organizations have tried to adopt practices that have worked
successully in other organizations in their own organizations. The ocus
should instead be to understand the principles that contributed to the
success rather than the practices.
CONCLUSION
The concept o Lean evolved rom the manuacturing industry and has relevance to
sotware product development as well. In act, Lean has helped the Agile development
methodology and its variants to evolve as well. Agile methodology scores over the
traditional linear model o sotware development by not insisting on nalizing
requirements, but allows or midway course correction. In Agile method, instead
o building the whole product and commencing testing, the product is developed in
small incremental pieces, tested or acceptance by customers, and adjusted where
required. Quality also gets built into the system early as testing commences earlier
in the sotware development lie cycle instead o being done in the end and in a time
boxed manner. Integration challenges arise when there are multiple iterations being
run and dierent teams dispersed in dierent locations work on a product. While Agile
does not prescribe a solution to overcome integration challenges, Lean concepts help.
In Lean, the work is broken down into dierent components and the output o one
stream can lead to another and ultimately combined into the product. While multiple
p. 14
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
15/16
iterations may be the norm in product development initiatives, Lean principles like
set-based and concurrent engineering approaches help achieve synchronization.
This paper has highlighted the benets that accrue to sotware product development
rms during each phase o development by implementing Lean principles. Besides
suggesting some principles that can be applied to the dierent phases o sotware
development, Lean also suggests principles or other dimensions such as metrics
and governance. Collecting limited actionable metrics, team empowerment, early
eedback during product development rom customers and continuous improvement
processes are some o the benets that are derived rom adopting Lean processes
in sotware development.
The Lean Sotware and Systems community agrees on a ew principles listed below
(The Lean principles are provided in brackets):
Following a system thinking and design approach (optimize the whole)
Respect people and encourage leadership (people empowerment)
Using scientic methods (continuous improvements)
Reduce ow time and waste to improve efciency (eliminate waste)
Beore embarking on the path to implementing Lean, organizations need to evaluate
their internal processes and the suitability o Lean in their environment. Lean sotwaredevelopment processes need to be tailored to the organizations where they evolve.
Lean principles in sotware development are still evolving and given the outcomes in
product development rms, the adoption is likely to increase going orward. Forays
made to implement Lean principles have produced mixed results in the past and
this has added to the reluctance o moving away rom the traditional linear model
o sotware development. Some o the ailure can also be attributed to incorrect
understanding o the principles and abandoning the eort midway without going the
ull distance.
Implementing Lean would entail a long term commitment. Most organizations would
be ollowing some o the principles advocated by Lean already. However, it may take
organizations a long time to adopt every practice. There is no particular order o
priority in which to implement them. However, the practices are synergistic and can
be implemented incrementally to realize the benets. While the ultimate aim o Lean
is to eliminate waste altogether, practically it is impossible to achieve this.
p. 15
7/29/2019 Whitepaper Final-Applying Lean Principles to Software Product Dev
16/16
In an article titled Lean programming in 2003, Mary Poppendieck summarizes
the benets o applying Lean principles to sotware development as ollows: Lean
thinking applied to sotware development as Lean programming will lead to the
highest quality, low cost, shortest lead time sotware development possible. These
benets that are supported by empirical evidence rom dierent studies should spursotware development organizations to adopt Lean principles, moving away rom
the traditional linear development models.
ABOUT TELLIANT SYSTEMS, LLC
Telliant Systems is an Inormation Technology services, solutions and
stafng company serving businesses globally. Headquartered in Johns
Creek, GA, USA, with an oshore development center in India, Telliant
is committed to providing a truly dierent approach to outsourced
sotware development services. Telliant provides a range o IT services
including application development, sotware testing and perormance
analysis and tuning. Our services cover several sotware platorms
including Java/J2EE, Microsot .NET, Mobile and a variety o open
source technologies including Linux, PHP, MySQL etc. Telliant works
with our clients using several engagement models including dedicated
oshore model, turn-key projects and onsite services and several hybrid
models based on what suits the customer best. We also serve several
industry segments such as banks and nancial services companies,
insurance, social media and healthcare industries among others.
Atlanta Ofce
10475 Medlock Bridge Rd,
Building 400
Johns Creek, GA 30097.
Phone: (678) 892 2801www.telliant.com
Contact Details
p 16