IBM Software Group Proposals and Statements of Work Gordon Lee 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 Vendors • Frequent, continuous change of Vendor products and marketplace • Vendor products driven by marketplace, not your system context • licensing, data rights, warranties ??? Vendor Products Integrated System IBM Software Group | Lotus software What Makes Integration Challenging? • varying architectural paradigms across system components Vendors • limited control of frequency or content of Vendor releases • limited visibility into Vendor product internals and behavior • dependencies among system components ??? Vendor Products Integrated System 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 We know quite a lot about constructing systems from components (over which we may have little or no control). Unplanned, unexpected, emergent behavior here… We know something about composing systems of systems from individual systems (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. System “B” System “A” System “C” Network “X” IBM Software Group | Lotus software Automobile Microprocessors … and this doesn’t include things like onboard 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 Airbus From: http://www.aboutairline.com/safety_eng.htm IBM Software Group | Lotus software Diet Coke + Mentos http://eepybird.com/exp214.html 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 uncountable Despite 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 evaluate Examples ƒ 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