We know quite a lot about constructing systems from components

advertisement
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
Download