ibm software group proposals and statements of work gordon lee
TRANSCRIPT
IBM Software Group | Lotus software
Agenda
Why learn how to do proposals?ƒ In the workplaceƒ For this course
Exercise 1ƒ 2 teams, build your first Statement of Workƒ Review
Exercise 2ƒ 2 teams, build your second Statement of Workƒ Review
Lectureƒ Business Integration Projectsƒ Different components of a Statement of Work
Exercise 3 (optional)ƒ 2 teams, build your third Statement of Work
Acknowledgements: Patricia Oberndorf, Carnegie Melon Software Engineering Institute
IBM Software Group | Lotus software
Why is this lecture included in the curriculum?
Real world contentƒ The Apprentice – 3rd season: Booksmart v Streetsmartƒ “What you learn in school” vs “what it is like in the real world”ƒ “Theory” vs “practical”ƒ Don’t confuse “sell” with “install”
Business Integration – special considerationsƒ Preparation for the real worldƒ Avoid making the mistakes that others have experienced
Course Workshopsƒ You will experience some of the practical integration challenges
IBM Software Group | Lotus software
Requirements gathering and Proposal writing
How do companies do business with each other?ƒ Company A needs to have some work doneƒ Company A issues a RFP – request for proposals. This action initiates an open competition. It is
important that they do as much as possible to eliminate any appearance or possibility of an “inside job”.
ƒ Companies B, C, D, and E want to compete for the job. Each company will prepare proposals, and will submit these proposals to Company A by the due date
ƒ Company A reviews the various proposals, and selects winner, Company C, sayƒ Company C is invited to submit a Statement of Work (contract)ƒ Company C prepares the SOW, including scope, price, and presents it to Company Aƒ Negotiation occursƒ Signature on both sides – work starts
For this courseƒ I will give you the complete format of a SOW, with all the sections describedƒ It will help structure your thinking of how to approach a business integration problemƒ You may choose to use this format for project reports/assignments
Have some funƒ Learn from each otherƒ Form two teams, come to front of the class
IBM Software Group | Lotus software
Exercise 1 – Write a Statement of Work
Learning Situationƒ A metaphor which uses a different context will help bring out key learning points
Team 1ƒ You are parents of a 2 year old boy, looking for a babysitterƒ Prepare a SOW that you want the babysitter to sign
Team 2ƒ You are a babysitter, looking for workƒ Prepare a SOW that you want the parents to sign
GO!ƒ You have 20 minutes
IBM Software Group | Lotus software
Exercise 1 – Review
Team 1ƒ Present SOWƒ Team 2: Critique Team 1’s effort
Team 2ƒ Present SOWƒ Team 1: Critique Team 2’s effort
Discussionƒ Why is SOW important?ƒ What should it cover?
IBM Software Group | Lotus software
Exercise 2 – Write a Statement of Work
Same teamsƒ Switch roles
Team 2ƒ You are parents of a 2 year old boy, looking for a babysitterƒ Prepare a SOW that you want the babysitter to sign
Team 1ƒ You are a babysitter, looking for workƒ Prepare a SOW that you want the parents to sign
GO!ƒ You have 20 minutes
IBM Software Group | Lotus software
Exercise 2 – Review
Team 1ƒ Present SOWƒ Team 2: Critique Team 1’s effort
Team 2ƒ Present SOWƒ Team 1: Critique Team 2’s effort
Discussionƒ Did we get better?ƒ Does your role (buyer vs seller) influence what you look for in a SOW?
IBM Software Group | Lotus software
Today’s Environment – What are SW Projects really like?
Booksmartƒ In school, students learn how to take projects from start to finish in a clean room
(sterile) environmentƒ Projects follow the traditional project planning processƒ Problem statements are often contrived or artificial to ensure learning points are
achievedƒ Project assignments are known to be do-able from a technical perspectiveƒ Time needed to finish assignment is also pre-determined and known
Streetsmartƒ Nothing is as simple as it should be, eg. Gathering requirements, testingƒ Murphy’s law around every cornerƒ Many project managers are naïve about Business Integrationƒ You don’t know what you don’t knowƒ What you do know isn’t always so
IBM Software Group | Lotus software
Today’s Environment – What are SW Projects really like?
Budgetsƒ Companies are spending more and more of their IT budget on maintenance of
existing systemsƒThere is never enough money to do everything that is neededƒPriorities and tradeoffs
ƒ Fresh projects are rarely startedƒExisting code is not thrown outƒWe never start with a “clean slate”
ƒ Use what we have vs create newƒThis includes older versions of code that have not been upgradedƒEspecially if the existing systems still work
Business Integrationƒ The world is moving towards increasingly complex systemsƒ Many of these systems are actually be systems of systems
ƒmultiple pre-existing systems networked togetherƒ The frequency with which off-the-shelf items are being used is rising
ƒBuy vs Build
IBM Software Group | Lotus software
What Makes Integration Challenging?
• built-in assumptions of end-user processes that may not match yours
• licensing, data rights, warranties
• Frequent, continuous change of Vendor products and marketplace
• Vendor products driven by marketplace, not your system context
VendorProducts
Vendors
Integrated System
???
IBM Software Group | Lotus software
What Makes Integration Challenging?
VendorProducts
Vendors
Integrated System
???
• varying architectural paradigms across system components
• dependencies among system components
• limited control of frequency or content of Vendor releases
• limited visibility into Vendor product internals and behavior
IBM Software Group | Lotus software
Thoughts
How do you create systems from a variety of pre-existing parts that weren’t built to work together and that you don’t own and/or are not free to change arbitrarily?
Interoperability is the fundamental problem Scope is far greater than simply interoperability of data Scope includes degrees of coupling, ownership Scope includes interoperability at the programmatic (and other) levels
We can never anticipate fully the boundaries within which a given system will be expected to operate
ƒ There will always be new things to integrate into the systemƒ Integrating systems in a network can affect all other systems in the network in
unintended ways
IBM Software Group | Lotus software
An Instance of the Problem
System “C”
We know quite a lot about constructing systems from components (over which we may have little or no control).
We know very little about constructing an interoperable network of systems…the key distinction being that the network is unbounded (or very loosely bounded) and has no single controlling authority.
We know something about composing systems of systems from individual systems (over which we may have little or no control).
System “B”
System “A”
Network “X”
Unplanned, unexpected, emergent behavior here…
IBM Software Group | Lotus software
Automobile Microprocessors
… and thisdoesn’t include things like on-
board entertainment and navigation
systems
IBM Software Group | Lotus software
Digital Cameras
There is code (logic) reused in many cameras, related to lighting/exposure
This is in place to prevent users from taking “bad pictures”
How many times have you wanted to “just take the picture” and had the camera prevent you from doing so?
IBM Software Group | Lotus software
Exercise 3
Your examplesƒ Unintended interactions between products/systemsƒ Eg. Add a USB external hard drive and your webcam stops workingƒ Eg. Install a new game, and your internet connection is brokenƒ Eg. Take an Aspirin, lowers risk of heart attack or stroke
IBM Software Group | Lotus software
Conclusions
We are all facing the challenges of integration and interoperability Of components – subsystems – whole systems
That we do not control Installing one software product may require JVM V1.2.3 Another software component requires JVM 1.2.2, patch level 1 The JVMs should be backward/forward compatible, but aren’t Product support for each component won’t look at your problems unless the
full stack (which they have tested) is present Every vendor is pointing their finger at each other The number of possible combinations of products, release versions, patch
levels, etc. is uncountableDespite the potential problems, smart reuse and componentization is absolutely the way of the future
Companies can’t afford to build from scratch each time The ability to build systems by connecting existing components will be a
competitive differentiator Those students who are able to understand and master this skill will be in
great demand
IBM Software Group | Lotus software
Components of a SOW
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
1. Project Description
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
1. Project Description
Why do we need this section?ƒ People who have management and financial responsibility to sign this contract are
often further away from the project details ƒ Should be written in the language of business, appropriate to the industry and
parties involvedƒ Use appropriate level of detail (relative to size of deal, complexity, expectation of
the client)ƒ It will also be reviewed / critiqued by technical people, so a reasonable amount of
technical content (eg. Architectural drawings, component description, interface standards, etc.) should be included
Requirementsƒ Client will always want everything (wish list)ƒ Up to the vendor to draw out what is Negotiable v non-negotiableƒ Prioritizing and trading-off the negotiablesƒ Assigning costs to each requirement is often a good way of helping the client
prioritize
IBM Software Group | Lotus software
2. Our Responsibilities
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Schedule
ƒTestingƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
2. Our Responsibilities
Why do we need this section?ƒ When a project goes well, everyone fights for creditƒ When a project fails, blame is assigned
Assumptionsƒ You can’t know everything about all componentsƒ Your SOW will be overwhelming if every detail is documented
Dependenciesƒ How can we verify supplier assertions?ƒ If we know the right properties of all the constituents, how do we use that
information? Is that enough?Questions/challenges
ƒ Predicting properties of composite systemsƒEven if you know all about the constituents, how do you know how the aggregation will behave?
ƒ Behaviour of unbounded systemsƒGetting the right balance of centrality and independenceƒEg. When you have a system of autonomous constituents, how does one communicate failure so the others can react appropriately?
IBM Software Group | Lotus software
2. Our Responsibilities
Examples of Responsibilitiesƒ We will validate your requirementsƒ We will design and test the solutionƒ We will deploy to end usersƒ We will set up production environmentƒ We will provide documentationƒ We will do training of your staff
Examples of Assumptionsƒ How many users will be supportedƒ What hardware is supportedƒ What operating systems are in the user communityƒ Coexistence with other software, systems
IBM Software Group | Lotus software
3. Your Responsibilities
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
3. Your Responsibilities
Why do we need this section?ƒ When a project goes well, everyone fights for creditƒ When a project fails, blame is assigned
Assumptionsƒ Who buys the hardware, who buys the software?ƒ Who owns the hardware, who owns the software after the project is complete?
Dependenciesƒ Who is responsible for setting up the network, and what response time?
Examplesƒ You will provide a project managerƒ Your staff will be available to make decisions and clarifyƒ You provide office space, facilities, and machinesƒ You provide the necessary documentation and clerical support for photocopyingƒ You will provide access to data for testingƒ You will give us access to your lab
IBM Software Group | Lotus software
4. Estimated Schedule
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
4. Estimated Schedule
Why do we need this section?ƒ Timeline – associated with deliverables, milestonesƒ Resources – staffing, hiring
Examplesƒ Phase 0 – Workshop and Interviewsƒ Phase 1 – Solution Design and Testingƒ Phase 2 – Solution Implementationƒ Phase 3 – End User Deploymentƒ Phase 4 – Deployment to production
What to includeƒ Schedule (eg. Microsoft Project), with critical path clearly identifiedƒ Dependencies you have on the clientƒ Deliverables that you must deliver to client
Assumptionsƒ Testing, testing, testingƒ Testing, testing, testingƒ Testing, testing, testing
IBM Software Group | Lotus software
5. Completion Criteria
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
5. Completion Criteria
Why do we need this section?ƒ Both sides need to agree, beforehand, how we know a project is “finished”ƒ Protect both sides
Examplesƒ Number of hours spentƒ Calendar dateƒ Delivery of functional systemƒ Delivery of reportƒ Completion of function testƒ Completion of performance standard
IBM Software Group | Lotus software
6. Charges
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
6. Charges
Why do we need this section?ƒ The almighty dollar
Examplesƒ Upon project startƒ At major checkpoints, deliverablesƒ Penalty clauses for missed milestonesƒ Different rates for different skill levelsƒ Include software and hardware, travel costsƒ Minimum charges (hours)ƒ How to change ratesƒ Accounts Payable terms
IBM Software Group | Lotus software
7. Acceptance Process
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
7. Acceptance Process
Why do we need this section?ƒ When the solution is delivered by vendor, project is not finished until accepted by
clientƒ Payment is often tied to customer acceptanceƒ Need to describe, in advance, what acceptance criteria, acceptance tests will be
used to evaluateExamples
ƒ Reasonable timelines for acceptance (within 3 days of deliverable)ƒ How to rectify, correct, resubmit
IBM Software Group | Lotus software
8. Ending Project Early
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
8. Ending Project Early
Why do we need this section?ƒ An “out” for both sides
Why?ƒ Sometimes things just don’t work outƒ Consultants unable to deliverƒ Changing environment
IBM Software Group | Lotus software
9. Project Change Request procedure
Sectionsƒ Project Descriptionƒ Our Responsibilities
ƒAssumptionsƒ Your Responsibilities
ƒAssumptionsƒ Estimated Scheduleƒ Completion Criteriaƒ Chargesƒ Acceptance Processƒ Ending Project Earlyƒ Project Change Request procedure
IBM Software Group | Lotus software
9. Project Change Request
Why do we need this section?ƒ Projects are so complex that not all requirements or assumptions can be
anticipated at the start of the projectƒ Used primarily by project managers to control scope creepƒ Used by clients as a vehicle to communicate new requirementsƒ Investigated and sized, costed out, and mutually agreed to