Sdec10 lean package implementation

Post on 03-Jul-2015

305 views 4 download

Transcript of Sdec10 lean package implementation

Lean Package Implementation

Lean/Agile Myth #12

Lean/Agile Myth #12

• Lean and Agile Methodologies are only applicable for

greenfield opportunities

- Not applicable for brownfield

- Not applicable for Package Integration

- Not applicable for Application Maintenance Services (Yesterday)

Agenda

• What are Package Implementation Projects ?

• How are Package Implementation Project typically

done?

• What aspects of Package Implementation projects could

be done in a Lean Manner?

• Questions

• What are Package Implementation Projects ?

Package Implementation Projects

• Package Implementation Projects are projects that

typically involves a Commercial Off The Shelf(COTS)

product that needs to be integrated into the client

environment.

• These products involve more or less configuration and

customization depending on the product and fit to the

client’s requirements.

Audience Participation

• Question #1 – Why do companies choose COTS

products?

- Time to Market?

- Cost?

- Transfer of Risk?

- Shared Cost of Ownership?

- Available resources/capacity?

- Product fit to Requirements?

- Others?

Reasons for choosing COTS products

• Surprisingly, the two main reasons for selecting COTS

products to address a business problem are:

- Transfer of Risk

- Shared Cost of Ownership

• The one reason which should have greater importance

but usually is not taken into consideration:

- Product Fit to Requirements (read Cost)

- Rule of thumb is that an 80-90% fit is required to make a COTS

implementation cost effective. Otherwise possibly more money

would be spent customizing a COTS package than building new.

• How are Package Implementation Project typically

done?

Application Maintenance Services

Components

Painful Implementation

Painful Testing

Painful Specification

Painful Contracting

Contracting

• This is done is a very adversarial way to try and

anticipate all aspects of the relationship to ensure both

parties are covered.

• The contracts are very detailed and allow for very little

change and modification

• Most of the contract deals with how the companies will

interact and there is little to any mention of the business

problem being solved.

Specification

• Specification follows the contracting process and the

emphasis is to create extremely detailed specification

documents to define all the functionality required.

• Of course there are always items not thought of or not

detailed enough.

• Many time the product rationale is used to defend

functionality. (i.e. that is how the product works) This can

be initially accepted by the business but frequently

requires change later when reality hits.

Testing

• Testing of the COTS application is then problematic and

it builds upon the specification which was built upon the

contract.

• Testing then attempts to verify that the application works

as documented. Lost in this process is whether the

application is actually addressing the business problem.

Implementation

• Implementation is then built upon the testing which was

built upon the specification which was built upon the

contract and the question that is asked at

Implementation is not:

- Does this solve the business problem?

• Rather it is:

- Can you accept this solution and go live?

Where did it all go wrong?

Lean Principles Refresher

• Before we discuss how Package Implementation can be

done in a Lean manner, let’s do a Lean Principles

Refresher

Lean Software Development

• Lean Software development is a style of software development that emphasizes customer satisfaction through continuous delivery of functional software. In contrast to traditional software development methods, lean developers liaise continuously with business clients.

• Their objective is to deliver working software as frequently as every two weeks during a project, and welcome changes to the requirements in response to evolving business needs.

Lean Software Development

• The most crucial aspect of Lean is the execution of the project in iterations and quick feedback loops possible because of these iterations. It is essential to note that these iterations to not just apply to construction, they also apply to the following tasks: - Project Management and Planning

- Analysis

- Technical Design

- Testing

- Deployment

Lean Software Development

• Iteration planning is ‘the’ key planning initiative

- Iterations need to be planned in conjunction with the client to

accomplish the following:

• Deliver functionality to define the cadence and tempo of the project

• Deliver functionality to deliver real value to the client

• Deliver functionality to reduce and minimize risk for the entire project

• Lessons learned from one iteration must feed into subsequent iterations so

that we don’t execute the project in iterations with similar results, but that we

execute the project in iterations with better results.

- We execute better, smarter, and quicker

Lean Software Development Principles

• Eliminate Waste - The three biggest wastes in software development are:

- Extra Features

- Churn

- Crossing Boundaries

• Build Quality In - If you routinely find defects in your verification process, your process is defective.

- Mistake-Proof Code with Test-Driven Development

- Stop Building Legacy Code

- The Big Bang is Obsolete

Lean Software Development Principles

• Create Knowledge - Planning is useful. Learning is essential.

- Use the Scientific Method

- Standards Exist to be Challenged and Improved

- Predictable Performance is Driven by Feedback

• Defer Commitment - Abolish the idea that it is a good idea to start development with a complete

specification.

- Break Dependencies

- Maintain Options

- Schedule Irreversible Decisions at the Last Responsible Moment

Lean Software Development Principles

• Deliver Fast - Lists and queues are buffers between organizations that simply slow things

down.

- Rapid Delivery, High Quality, and Low Cost are Fully Compatible

- Queuing Theory Applies to Development, not Just Servers

- Limit Work to Capacity

• Respect People - Engaged, thinking people provide the most sustainable competitive advantage.

- Teams Thrive on Pride, Commitment, Trust, and Applause

- Provide Effective Leadership

- Respect Partners

• Optimize the Whole - Brilliant products emerge from a unique combination of opportunity and

technology.

- Focus on the Entire Value Stream

- Deliver a Complete Product

- Measure UP

• What aspects of Package Implementation projects could

be done in a Lean Manner?

Audience Participation

• Question #2 – How could we implement an COTS

application in a Lean Manner?

- Visual Project Management?

• i.e. dashboards/Ticket Boards

- Iterations?

- Requirement Management?

- Implementation?

- Logistics?

- Lean Project Management?

• i.e. Daily Stand ups

Requirements Management

• Requirements Management is key to any successful

project. For Package Implementation projects it becomes

even more important to ensure everyone understands

the requirements.

• Frequently Use Cases are the traditional way of

documenting requirements.

• A much better way of defining requirements are:

- User Stories

- Test Cases

User Stories

• A user story of one or more sentences in the everyday

or business language of the user that captures what the

user wants to achieve.

• They are typically in the following format:

- "As a <role>, I want <goal/desire> so that <benefit>"

• User Stories are much more concise that Use Cases and

provide this extra communication and detail required

when dealing with an external and somewhat unknown

COTS product.

• These User Stories can then be collected together to

define features of the system.

User Stories

• One challenge with User Stories is the ability to

document batch on non end user processes

• Honestly we need to address this on all Lean project

Test Cases

• Traditionally Test Cases are not used for Requirements

Management but rather for the testing process itself.

• Ultimately, there are no better requirements than to list

the test cases that will confirm the requirement has been

met or not met.

• These Test Cases should be defined at the start of the

project and with User Stories will define the system

requirements.

Iterations

• Traditionally, Package Implementations follow a Big

Bang approach. All the functionality is analyzed,

designed, coded, tested, and implemented at once.

• This does not take advantage of one of the main tenets

of Lean to execute better as we progress through the

project.

• It is highly recommended that Package Implementations

also be implemented in iterations. These iterations

should go right through to production.

Iterations

• It is important to remember that these iterations are not

just for development and testing, but for all phases of the

project including testing and implementation.

• Sometimes critical items are left out of iterations like

Reporting and Data Conversion. This is not

recommended. An iteration must be able to stand on it’s

own.

Iteration Schedule

• Agreement on scope and schedule

• Execution of required scope

• Demonstration of iteration scope

- This is more than a simple project led demonstration

- The business execute all of the User Stories and Test cases to

ensure the expected outcome occur

• Feedback is then solicited for new User Stories or test

cases that should be added to future iterations

• Clients are then asked to sign off that iteration

Implementation

• For some unknown reason the bulk of Package

Implementations still implement using the Big Bang

approach

• Very rarely are they implemented using the parallel or

pilot approach

• This adds a great amount of risk to the projects.

Contractual

• Include Contractual incentives

- profit sharing for finishing early

- Cost sharing for finishing late

- Ability and incentive to add additional business value

• Concept of trading User Stories

Logistics

• Lean Software Development recommends having the

project team and business co-located.

• For Package Implementations, I would also recommend

that the vendor should also be co-located.

Conclusion

• The principles of Lean Software Development are

applicable to all types of projects

• They are some areas of Package Implementation

projects that can benefit greatly. These are:

- Requirements Management

- Iterations

- Implementation

- Contractual

- Logistics

Questions?