whitepaper final-applying lean principles to software product dev

Upload: telliant-systems

Post on 04-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 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