CSE403 Software Engineering, Autumn 1999
Gary Kimura
Lecture #26 Notes
a) Who decides when it is ready to ship?
i) The developer?
ii) The customer?
iii) The managers?
iv) The executive?
b) What factors are involved in the decision?
i) Is the software ready?
ii) Do we need the revenue?
iii) Is there an external factor that is setting the completion date?
c) It is not just the software being ready that determines when to ship
i) Development and testing plays a big role in getting the product ready, but there is also…
ii) Documentation
iii) Manufacturing
iv) Sales and marketing
v) Support and more
d) Does it meet the requirements
e) Is the quality sufficient for the customer
i) PC mentality
ii) Mission critical systems
iii) Financial, medical, imbedded systems in planes, factories, safety critical equipment
f) Is the software ready and tested
i) What are the remaining bugs like
(1) Are there showstopper bugs (i.e., bugs that you cannot ship knowing it is in the product)
(2) What is the cost of keeping a known bug in the product
(a) Is it an obscure bug
(b) Are there easy workarounds for the bug
(3) Is the product “bug free”
ii) In house testing
(1) Is the daily pass rate acceptable? The definition of acceptable open to discussion.
(2) Has it successful run through its validation suite?
(3) Is everyone happy with the product
iii) Off-site testing through release candidates
(1) Are the beta customers satisfied
iv) Is the product stable enough for its intended market
v) What do we do when we stop finding bugs
g) Is the documentation done and accurate
h) Is manufacturing ready for the release
i) There is physical manufacturing and shipping of the release media and documentation
ii) Filling the distribution channel
iii) Even with internet distribution there needs to be well planned capacity
i) Is product support ready
i) Whether the support is “on-site”, “9 to 5”, “24 by 7”, “phone”, or “mail only”, the support staff needs to be trained and have adequate communication capacity.
j) Is sales and marketing ready
A lot of this probably depends on the type of customer
a) The shrink warp market
b) ISV – More technical savvy than the regular shrink wrapped market, however also less tolerant of silly, stupid errors
c) IHV – They have a different set of issues from ISV including automated setup and installation, and customization support
d) Contract work – Various levels from delivering an entire turnkey system to only a small component that the buyer will integrate.
e) Internal technical support (e.g., an internal development tools group)
a) All source changes must be reviewed and approved. It must be for a specific showstopper bug. Bugs are recorded in a bug database called “raid”. Sometimes kept an open showstopper bug active just to check-in more “fixes”
b) Daily builds and stress runs (yes, seven days a week including most holidays)
c) A typical day near the end
i) 5 AM results are starting to be gathered for the previous night stress run
ii) 7 AM release of the previous nights stress results. Developers then have until noon or so to debug all the crashed machines. Sometimes you need to keep the machine a lot longer.
iii) 8 AM meeting of the development team managers looking at the nightly stress results and new bugs review (they decide which bugs need to be fixed, and when to ship the product). Near the very end this becomes a twice a day meeting
iv) 10 AM to 3 PM the build lab is willing to accept any bug fixes for approved showstopper bugs
v) 5 PM dinner is served
vi) 6 PM the next build is released and everyone installs the new system and starts up stress, and those will showstoppers bugs continue to work.
d) When it is finally decided to ship the product then the bits go into escrow as the golden media is produced and manufacturing starts ramping up. Testing continues and if necessary the bits can be recalled from escrow and the release done over again.
e) Work continues on the subsequent release for the various server editions and international language versions.
a) Media hype
i) Setting expectations
ii) Beta previews
iii) Getting beta customer testimonials might be important
b) Competitive pressure
i) Market share before quality
ii) First one defines the market and grabs market share even with junk
iii) The followers often play catch-up with mixed success (unless you are a monopoly)
c) Timing the release
d) When do we get paid and are we ready for the IPO?
e) Major release vs. minor release
i) Big delta or small delta
ii) Customer perception based on version number
iii) Some IHV contracts are based on version number
f) Where to have the ship party