Type: principles
Status: final
Version: 2007-07-26
Gist: Conduct reviews in the right order.
P1: check formal characteristics
P2: only if the object is clean, it's useful to see if it's right
No fluff, just stuff: Rolf Goetz' engineering blog on requirements, projects and systems.
P1: check formal characteristics
P2: only if the object is clean, it's useful to see if it's right
The IT world is misperforming when trying to optimize IT costs, because when one subsystem is optimized normally the performance of the surrounding systems decreases.
We have to optimize the whole.
At Toyota, they even optimized their suppliers (and customers?).
Same thing with single projects. Most of the time it is easier to solve a problem by means of thinking out side the box of this praticular project.
S1: produce a feature list
S2: Give the offshore team a tiny (2-3% of total size) bit of features
- prioritized based on business value
S3: write the test cases, give them to the offshore team
S4: use focus groups
S5: if the features are delivered, go back to the feature list and ask the focus group: do we have enough business value?
P1) Step aside and let your team members work
P2) Only do 2 things
- make shure everybody has what they need to succeed
- create a place where people want to be
Note: If your people are passionate about what they are contributing to your endeavor, THEY will work things out (better than you can). You just sit and watch!
Note: It is a leader's responsibility to protect the team from leaders higher up in the food chain, that are trying to dictate how to do things.
P1: Evolutionary Development can very briefly described as:
Decide what needs to be done.
Do the most important things first.
Release the product incrementally as you complete items.
Re-evaluate and repeat.
P2: Waterfall Development can very briefly described as:
Decide what needs to be done.
Do things in an efficient sequence.
When finished, release the product.
Note: Kelly Waters descibes waterfall as: "Seeking to complete *everything* before releasing *anything*."
P3: There are at least 3 types of change where, if they occur, evolutionary development is better in handling than waterfall development.
Change in business needs (less frequent, large change each)
Change in requirements (frequent, medium change each)
Change in business rules (more frequent, small change each).
P1: Objectivity and rationality are desirable.
P2: We usually face risk and uncertainty and need to acknowledge this and act in accordance with it.
P3: Focus on single future outcomes is usually at the expense of an objective view of the future, which requires a recognition of uncertainty.
P4: It is better to be honest.
P5: These considerations are very important and usually outweigh others.
Note: Sven Biedermann offers the notion of 'a project without risk and uncertainty isn't a project'.
S1: Explain the 'project': "multiply 2 numbers of 4 digits each, on paper". Every participant will conduct the project on his or her own.
S2: Ask for everybody's estimate, how long the project will take to be finished.
S3: Everybody shall measure the time needed, from reception of the requirements to delivery of the result.
S4: Give the requirements: "The numbers are: 4-5-6-7 and 9-8-7-6".
S5: Let them re-estimate.
S6: Interrupt them now and then by talking, because this happens to every project.
S7: Yot down the times needed.
S8: Ask if they have testet the result. Make them test their results and take the time again.
S9: Add the times and compare them to the original and second estimates.
S10: Show them a solution to very different requirements. Make something up, like changing the order of the digits.
Note: There are a couple of interesting questions to ask here.
Like "What does 'finished' mean?",
"What was the reason for the adjustment of the original estimate?",
"What was the impact of the interrupts?",
"Is it rational to forget testing, and why does it happen all the time?",
"Why were we assuming that we really understood the requirements?"