10.07.2015 Views

Principles of Software Engineering Management - Pioneer.chula.ac.th

Principles of Software Engineering Management - Pioneer.chula.ac.th

Principles of Software Engineering Management - Pioneer.chula.ac.th

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 2 OverviewThe disaster principleDisasters don’t happen by <strong>ac</strong>cident; <strong>th</strong>ey are entirely credible to our own management.The right stuff principleThe right solutions will always fail to produce <strong>th</strong>e right results if you have not defined ex<strong>ac</strong>tlywhat <strong>th</strong>e ‘right results’ are, and <strong>th</strong>en made sure you had <strong>th</strong>e right solutions to <strong>ac</strong>hieve <strong>th</strong>ose results.Green’s manager principleManagers must manage.Einstein’s over-simplification principleThings should be as simple as possible, but no simpler!The <strong>th</strong>ird wave principleYou may forget some critical f<strong>ac</strong>tors, but <strong>th</strong>ey won’t forget you.The multidimensional tools principleIf your tools can’t operate in all critical dimensions, <strong>th</strong>en your problems will.The common sense principleCommon sense is uncommon.The <strong>th</strong>inking-tools principleDynamic environments require <strong>th</strong>inking tools instead <strong>of</strong> un<strong>th</strong>inking dogmas.S<strong>of</strong>twareS<strong>of</strong>tware is all <strong>th</strong>ings which are not hardware in <strong>th</strong>e system.No man is an islandS<strong>of</strong>tware has no life independent from hardware, and must consider <strong>th</strong>e properties <strong>of</strong> <strong>th</strong>e hardwaresystems on which it resides, as well as <strong>th</strong>e people involved.<strong>Engineering</strong><strong>Engineering</strong> is a process <strong>of</strong> design, and trial-construction, <strong>of</strong> some<strong>th</strong>ing, which aims to produce asystem wi<strong>th</strong> a specified set <strong>of</strong> quality-and-cost attributes. We also <strong>ac</strong>cept <strong>th</strong>e notion <strong>th</strong>atengineering is <strong>th</strong>e application <strong>of</strong> heuristics to solving problems.S<strong>of</strong>tware engineeringS<strong>of</strong>tware engineering is primarily a design process; construction and use confirm <strong>th</strong>at <strong>th</strong>e rightdesign ideas have been found.S<strong>of</strong>tware engineering specialistsThe s<strong>of</strong>tware engineering discipline is already so complex <strong>th</strong>at specialists in sub-disciplines arerequired to find <strong>th</strong>e best designs.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 2 Peraphon Sophatsa<strong>th</strong>it


The bricklayer principleCalling a programmer a s<strong>of</strong>tware engineer does not make him an engineer any more <strong>th</strong>an calling abricklayer a construction engineer makes him an engineer.The real s<strong>of</strong>tware engineer principleA real s<strong>of</strong>tware engineer can optimize any single attribute to become ten times better <strong>th</strong>an it wouldo<strong>th</strong>erwise have been.The s<strong>of</strong>tware engineering process principleS<strong>of</strong>tware engineering has multiple measurable requirements as input, and appropriate designsolutions as output.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 3 Peraphon Sophatsa<strong>th</strong>it


Chapter 3 What is <strong>th</strong>e real problem?The principle <strong>of</strong> fuzzy targetsProjects wi<strong>th</strong>out clear goals will not <strong>ac</strong>hieve <strong>th</strong>eir goals clearly. (You can’t hit <strong>th</strong>e bullseye if youdon’t know where <strong>th</strong>e target is!)Pr<strong>ac</strong>tical hintIf you intend to fail, or fear <strong>th</strong>at failure is inevitable, <strong>th</strong>en stick to uncleargoals to hide your incompetence.Pr<strong>ac</strong>tical hintIf you can <strong>th</strong>ink <strong>of</strong> several possible alternative specifications for gettingwhat you want, <strong>th</strong>en what you are specifying is solutions. Ask yourself,‘What do I really want?’ These are your real goals. Alternatively, if youcan ask, ‘Would I be willing to drop <strong>th</strong>is specification if I got what I reallywant, or if <strong>th</strong>is specification were in conflict wi<strong>th</strong> what I really want?,’ <strong>th</strong>enyour specification is probably just a solution, not a real requirement.The principle <strong>of</strong> <strong>th</strong>e separation <strong>of</strong> ends and meansAvoid mentioning solutions in your goal statements.The principle <strong>of</strong> unambiguous quality specificationAll quality requirements can and should be stated unambiguously.Kelvin’s principleI <strong>of</strong>ten say <strong>th</strong>at when you can measure what you are speaking about, and express it in numbers,you know some<strong>th</strong>ing about it; but when you cannot measure it, when you cannot express it innumbers, your knowledge is <strong>of</strong> a meager and unsatisf<strong>ac</strong>tory kind.Shewharts’ measurable quality principleThe difficulty in defining quality is to translate future needs into measurable char<strong>ac</strong>teristics, so <strong>th</strong>ata product can be designed and turned out to give satisf<strong>ac</strong>tion at a price <strong>th</strong>e user will pay.The principle <strong>of</strong> <strong>th</strong>e obvious‘Obvious’ <strong>th</strong>ings, which ‘everybody knows’ cannot be left to take care <strong>of</strong> <strong>th</strong>emselves.The Achilles’ heel principleProjects which fail to specify <strong>th</strong>eir goals clearly, and fail to exercise control over even one singlecritical attribute, can expect project failure to be caused by <strong>th</strong>at attribute.Pr<strong>ac</strong>tical hintYou will probably need to create a scale <strong>of</strong> measure for <strong>th</strong>e quality concept.If you <strong>th</strong>ing you don’t need to, <strong>th</strong>en perhaps you don’t understand <strong>th</strong>eproblem yet. If you are not feeling too creative today, try looking atChapter 19 or possibly Chapter 9 for some ideas.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 4 Peraphon Sophatsa<strong>th</strong>it


Hint: go out and get your hands dirty wi<strong>th</strong> <strong>th</strong>e real users <strong>of</strong> <strong>th</strong>e presentsystems. There are always comparable systems to look at, and <strong>th</strong>ese giveclues about existing system measures and <strong>th</strong>eir levels.The evil circle principleIf requirements are unclear, incomplete or wrong, <strong>th</strong>en <strong>th</strong>e architecture will be equally wrong.If <strong>th</strong>e architecture is wrong, <strong>th</strong>en our cost estimates will be wrong.If <strong>th</strong>e cost estimates are wrong, <strong>th</strong>en people will know we are badly managed.If <strong>th</strong>e high-level requirements and architecture are wrong, <strong>th</strong>en <strong>th</strong>e detailed design <strong>of</strong> <strong>th</strong>em will beequally wrong.If <strong>th</strong>e detailed designs are wrong, <strong>th</strong>en <strong>th</strong>e implementation will be wrong.So we end up re-doing <strong>th</strong>e entire project as badly as <strong>th</strong>e last time, because somebody will cover up<strong>th</strong>e initial failure, and we will presume <strong>th</strong>at <strong>th</strong>e me<strong>th</strong>ods we used initially were satisf<strong>ac</strong>tory.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 5 Peraphon Sophatsa<strong>th</strong>it


Chapter 4 What is a solution, and what is not?The principle <strong>of</strong> a solution wor<strong>th</strong> consideringA solution wor<strong>th</strong> considering is one whose positive contribution to your requirements outweighsits negative ones.The holy cow principle <strong>of</strong> solutionsSolutions are only valid as long as <strong>th</strong>ey best serve our current requirements, but no longer.The principle <strong>of</strong> solution flexibilityA solution idea can be specified as a requirement, or as an answer to a requirement, depending onyour priorities.The unholy solution principleSolutions are never holy; <strong>th</strong>ey can and should be changed in <strong>th</strong>e light <strong>of</strong> new requirements,conflicts wi<strong>th</strong> o<strong>th</strong>er solutions, or negative pr<strong>ac</strong>tical experience wi<strong>th</strong> <strong>th</strong>em.The net result principleSolutions should be selected and judged on <strong>th</strong>eir pr<strong>ac</strong>tical ability to contribute well to high-priorityneeds.The hidden solution principleSolutions should never be specified or implied in a goal statement, unless <strong>th</strong>ey really are <strong>th</strong>e highprioritygoal itself.The management by results principle<strong>Management</strong> must avoid <strong>th</strong>e imposition <strong>of</strong> solution ideas, and instead concentrate on goal-priorityspecification.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 6 Peraphon Sophatsa<strong>th</strong>it


Chapter 5 Evaluating solutionsThe side-effect principleYou must find out by how much all your critical attributes are imp<strong>ac</strong>ted by <strong>th</strong>e proposed solution.The principle <strong>of</strong> fuzzy numbersEven if we don’t know for sure, we can make a rough estimate, and improve it later.The uncertain certainty principleUncertainty must certainly be stated in no uncertain terms.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 7 Peraphon Sophatsa<strong>th</strong>it


Chapter 6 Estimating <strong>th</strong>e riskThe risk principleIf you don’t <strong>ac</strong>tively att<strong>ac</strong>k <strong>th</strong>e risks, <strong>th</strong>ey will <strong>ac</strong>tively att<strong>ac</strong>k you.The risk sharing principleThe real pr<strong>of</strong>essional is one who knows <strong>th</strong>e risks, <strong>th</strong>eir degree, <strong>th</strong>eir causes, and <strong>th</strong>e <strong>ac</strong>tionnecessary to counter <strong>th</strong>em, and shares <strong>th</strong>is knowledge wi<strong>th</strong> his colleagues and clients.The risk prevention principleRisk prevention is more cost-effective <strong>th</strong>an risk detection.The promise principleNever make promises you cannot keep, no matter what <strong>th</strong>e pressure.The written promise principleIf you do make any promises, make <strong>th</strong>em yourself, and make <strong>th</strong>em in writing.The promise caveat principleWhen you make a promise, include your estimate <strong>of</strong> how much deviation could occur for reasonsoutside <strong>of</strong> your control, for reasons wi<strong>th</strong>in your control, and for reasons o<strong>th</strong>ers in <strong>th</strong>e company cancontrol.The early re<strong>ac</strong>tion principleWhen some<strong>th</strong>ing happens during <strong>th</strong>e project <strong>th</strong>at you did not foresee, which increases deviationfrom planned risk, immediately raise <strong>th</strong>e issue, in writing, wi<strong>th</strong> your constructive suggestion as tohow to deal wi<strong>th</strong> it.The implicit promise principleIf you suspect someone else – your boss or a client – <strong>of</strong> assuming you have made promises, <strong>th</strong>entake <strong>th</strong>e time to disclaim <strong>th</strong>em, and repeat <strong>th</strong>e promises you have made, if any, in writing.The deviation principleWhen indicating possible deviation, make a list <strong>of</strong> <strong>th</strong>e possible causes <strong>of</strong> deviation, as well as alist <strong>of</strong> <strong>th</strong>e <strong>ac</strong>tions you could take to control <strong>th</strong>ose risks.The written pro<strong>of</strong> principleHang <strong>th</strong>e following sign near your desk: if you haven’t got it in writing from me, I didn’t promiseit.The principle <strong>of</strong> risk exposureThe degree <strong>of</strong> risk, and its causes, must never be hidden from decision-makers.The asking principleIf you don’t ask for risk information, you are asking for trouble.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 8 Peraphon Sophatsa<strong>th</strong>it


The ‘why not <strong>th</strong>e best?’ principleThe ‘best imaginable’ can be a reality, if you are willing to risk or s<strong>ac</strong>rifice any o<strong>th</strong>er plannedattributes.The uncertainty motivation principleUncertainty in a technical project is half technical and half motivational, but wi<strong>th</strong> good enoughmotivation, uncertainty will not be allowed to lead to problems.Ng’s visibility principleWe don’t trust it until we can see it and feel it.The reality principleTheoretical estimation is as <strong>ac</strong>curate as our oversimplified estimation models b<strong>ac</strong>ked by obsoletehistorical data. The real <strong>th</strong>ing is a somewhat more reliable indicator.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 9 Peraphon Sophatsa<strong>th</strong>it


Chapter 7 An introduction to <strong>th</strong>e ‘evolutionary delivery’ me<strong>th</strong>odThe ‘small is beautiful’ principleIt is easier to see and deal wi<strong>th</strong> <strong>th</strong>e effect <strong>of</strong> one small increment <strong>of</strong> <strong>th</strong>e solution, <strong>th</strong>an it is tounderstand <strong>th</strong>e imp<strong>ac</strong>t <strong>of</strong> <strong>th</strong>e entire solution at once.The principles <strong>of</strong> Tao The ChingThat which remains quiet, is easy to handle.That which is not yet developed is easy to manage.That which is weak is easy to control.That which is still small is easy to direct.Deal wi<strong>th</strong> little troubles before <strong>th</strong>ey become big.Attend to little problems before <strong>th</strong>ey get out <strong>of</strong> hand.For <strong>th</strong>e largest tree was once a sprout,<strong>th</strong>e tallest tower started wi<strong>th</strong> <strong>th</strong>e first brick,and <strong>th</strong>e longest journey began wi<strong>th</strong> a first step.Capablanca’s next-move principleThere is only one move <strong>th</strong>at really counts: <strong>th</strong>e next move.The Norwegian mountain survival principleYou need never be ashamed <strong>of</strong> turning b<strong>ac</strong>k in time.The juicy bits first principleIf you deliver <strong>th</strong>e juiciest bits <strong>of</strong> <strong>th</strong>e project first, you will be forgiven for not providing all <strong>th</strong>eydreamt about, or for not doing it as cheaply and quickly as <strong>th</strong>ey hoped.The mountain goat principleTake one step at a time up <strong>th</strong>e slippery mountainside, and make absolutely sure <strong>th</strong>at e<strong>ac</strong>h ho<strong>of</strong> ison solid ground before you take <strong>th</strong>e next step.The ‘how little?’ principleAn ideal next evolutionary step costs as little as possible to implement, and gives as much aspossible in <strong>th</strong>e way <strong>of</strong> results to <strong>th</strong>e end user.The never-too-small-for-evolution principleWhen you <strong>th</strong>ink your project is too small for evolutionary step delivery, you have probablymisjudged <strong>th</strong>e real size <strong>of</strong> your project.The self-fulfilling tru<strong>th</strong> principleEvolutionary development estimates tend to come true, because if <strong>th</strong>ey were false, but becomecritical, we can correct <strong>th</strong>e project trajectory to hit <strong>th</strong>em.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 10 Peraphon Sophatsa<strong>th</strong>it


Lindbloom’s scientific muddling principle: The iron law <strong>of</strong> incrementalism (Lindbloom,1980)If a wise policymaker proceeds <strong>th</strong>rough a succession <strong>of</strong> incremental changes, he avoids seriouslasting mistakes in several ways.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 11 Peraphon Sophatsa<strong>th</strong>it


Chapter 8 Function specificationThe functional requirements principleThe functional requirement specification lists essential <strong>th</strong>ings which <strong>th</strong>e product must do, andwhich must be delivered at specified times. It is different from <strong>th</strong>e quality-and-resource attributesrequired, and from <strong>th</strong>e solutions selected to re<strong>ac</strong>h <strong>th</strong>ose attributes.The binary function principleA functional specification is ‘present’ or ‘absent’ from a plan or a real system. There is no such<strong>th</strong>ing as a degree <strong>of</strong> presence or absence <strong>of</strong> a function.The explosion principleFunction ideas can be defined in more detail by exploding <strong>th</strong>em into constituent ideas.The delineation principleA functional specification is not necessarily a specification to build some<strong>th</strong>ing new. It can be usedto delineate <strong>th</strong>e existing functions whose attributes are to be imp<strong>ac</strong>ted by planned changes atplanned points in time.Pr<strong>ac</strong>tical hintI recommend <strong>th</strong>at every single function idea or function specification beginon a new line, and be tagged by a unique identification <strong>of</strong> some sort.The essentials-first principleDivide functions into ‘<strong>th</strong>ings which can be implemented early,’ and ‘<strong>th</strong>ings which can be deliveredlater.’The divide-to-communicate principleWhen making functional explosions for purposes <strong>of</strong> presentation or analysis, you can divide <strong>th</strong>eminto simple categories such as existing groups wi<strong>th</strong>in your organization or o<strong>th</strong>er categories whichmay make it easier for o<strong>th</strong>er people to understand your plans.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 12 Peraphon Sophatsa<strong>th</strong>it


Chapter 9 Attribute specificationThe critical control principleAll critical attributes must be specified and controlled <strong>th</strong>roughout <strong>th</strong>e project and product lifetime.The measurability principleAll attributes can and should be made measurable in pr<strong>ac</strong>tice.The attribute hierarchy principleIt is <strong>of</strong>ten convenient to express attributes as a hierarchy <strong>of</strong> attributes and sub-attributes.The result-oriented attribute principleThe attributes should be specified in terms <strong>of</strong> <strong>th</strong>e final end-user results demanded.The prerequisite principleThe initial attribute specification must be made early (day one, hour one) in <strong>th</strong>e project, before anyattempt is made at solution specification.The fluid attribute-level principleDon’t ever try to freeze ex<strong>ac</strong>t attribute requirements. You must expect changes by <strong>th</strong>e user duringdevelopment, and because <strong>of</strong> <strong>th</strong>e uncontrolled side-effects <strong>of</strong> your real system.The overview principleThe attribute requirement specification should be written on one page, and in a consistentlanguage.The ‘set’ principle <strong>of</strong> hierarchical measurementThe lowest measurable levels <strong>of</strong> attribute specification are <strong>th</strong>e sets <strong>of</strong> measures which define allhigher level attribute names which group <strong>th</strong>em.The principle <strong>of</strong> detailYou must define <strong>th</strong>ings to whatever level <strong>of</strong> detail is necessary to control <strong>th</strong>e critical parameters <strong>of</strong>your system.The iterative specification principleWrite down your first <strong>th</strong>oughts, <strong>th</strong>en improve upon <strong>th</strong>em continuously. (It is easier to refinewritings <strong>th</strong>an <strong>th</strong>oughts, especially when o<strong>th</strong>er people are going to help you.)Pr<strong>ac</strong>tical hintImagine some level which is obviously totally un<strong>ac</strong>ceptable under anycircumstances. Imagine improvements along <strong>th</strong>e scale until you begin towonder if <strong>th</strong>e level you are imagining might be <strong>ac</strong>ceptable to some users,under certain conditions. You are now in <strong>th</strong>e right area. If necessary,define several worst case levels, using <strong>th</strong>e qualifier (in paren<strong>th</strong>eses).For example:Worst (for beta test site users) = 80%Worst (for initial paying customers) = 95%Worst (one year after initial customer delivery) = 99%<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 13 Peraphon Sophatsa<strong>th</strong>it


Chapter 10 Solutions: how to find and specify <strong>th</strong>emThe solution determination principleAttributes determine solutions.The principle <strong>of</strong> full coverageYou must have enough solutions to meet all your objectives.The principle <strong>of</strong> what really determines <strong>th</strong>e solutionsAttributes determine solutions. But functions and <strong>th</strong>eir environment determine attributerequirements.The S = f(A) principleSolutions are a function <strong>of</strong> all attribute requirements.The infinitely complex principleThe process <strong>of</strong> finding a complete set <strong>of</strong> solutions for all attribute requirements is complex and isnever perfected.The imperfect design principleThe perfect design solution will never exist. You won’t ever have time to find a perfect designsolution, but you can continue working toward one for <strong>th</strong>e system lifetime.The moving target principleSince real attribute requirements will be forced to change in time, <strong>th</strong>e design must becorrespondingly adaptable to be able to meet <strong>th</strong>em in <strong>th</strong>e future.Pr<strong>ac</strong>tical hintDon’t worry about getting <strong>th</strong>e design solution complete or perfect. Youcan’t, anyway.Do a reasonable job, so <strong>th</strong>at you reduce wasted time in evolutionaryimplementation steps.Be prepared to learn from evolutionary implementation experience, tochange your design whenever necessary in order to keep it in <strong>ac</strong>cordancewi<strong>th</strong> <strong>th</strong>e real needs and <strong>th</strong>e real technology.You can’t get it right <strong>th</strong>e first time, but you can get a good start, and <strong>th</strong>enyou can get it more right as you evolve <strong>th</strong>e system.The most important design effort initially is to pl<strong>ac</strong>e a large number <strong>of</strong>open-ended design strategies in pl<strong>ac</strong>e, so <strong>th</strong>at your learning and changeprocess will be comfortable.The tag principleUntagged ideas never die, but <strong>th</strong>ey do just fade away.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 14 Peraphon Sophatsa<strong>th</strong>it


Pr<strong>ac</strong>tical hintIn large systems you will want automated support to keep tr<strong>ac</strong>k <strong>of</strong> tags andfind <strong>th</strong>eir cross-reference. A data dictionary system or database may be auseful start. Some users will want to extend <strong>th</strong>is design control concept to alonger term configuration control scheme, for multiple delivered andmaintained versions <strong>of</strong> <strong>th</strong>e s<strong>of</strong>tware.If <strong>th</strong>e documentation you have to work wi<strong>th</strong> does not have tags, <strong>th</strong>en create<strong>th</strong>em for your own protection: create tags for <strong>th</strong>e most elementary designstatements; use a hierarchical design statement and tagging me<strong>th</strong>od.The most powerful motivator for <strong>th</strong>orough use <strong>of</strong> tags is <strong>th</strong>e use <strong>of</strong> Fagan’sinspection me<strong>th</strong>od. When you have to cross check a number <strong>of</strong> voluminousspecifications and designs for detail, <strong>th</strong>en <strong>th</strong>e tag saves you a lot <strong>of</strong> timescanning many documents to find what you <strong>ac</strong>tually want.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 15 Peraphon Sophatsa<strong>th</strong>it


Chapter 11 Solution evaluationPr<strong>ac</strong>tical hintThe IE table can be nicely put onto a conventional spreadsheet program on apersonal computer. It can also be used <strong>th</strong>en to produce charts <strong>of</strong> designprogress.The principle <strong>of</strong> imp<strong>ac</strong>t estimation tablesEstimating <strong>th</strong>e imp<strong>ac</strong>ts <strong>of</strong> many solutions on all objectives is filled wi<strong>th</strong> sources <strong>of</strong> error, all <strong>of</strong>which toge<strong>th</strong>er amount to a smaller error <strong>th</strong>an <strong>th</strong>e error <strong>of</strong> not trying to estimate at all.Pr<strong>ac</strong>tical hintWe have at times used spreadsheet s<strong>of</strong>tware to calculate <strong>th</strong>e above measure,and to give some impression <strong>of</strong> <strong>th</strong>e strong solutions and weak ones.Remove <strong>th</strong>e weakest ones first.Pr<strong>ac</strong>tical hintImp<strong>ac</strong>t estimation side-effects can serve as a systematic argument for oragainst a particular solution when making presentation to colleagues.The principle <strong>of</strong> side-effect estimationSide-effect estimation brings out <strong>th</strong>e good news, and <strong>th</strong>e bad news, early.Pr<strong>ac</strong>tical hintMost managers seem to feel comfortable when <strong>th</strong>e safety f<strong>ac</strong>tor is two orbetter. This implies a minimum <strong>of</strong> 200% for quality attributes and amaximum <strong>of</strong> 50% for resource attributes, in <strong>th</strong>e imp<strong>ac</strong>t estimation sum. Use<strong>th</strong>ese as starting safety f<strong>ac</strong>tors until you get more experience.The safety f<strong>ac</strong>tor principleTo hit <strong>th</strong>e bull’s eye at least once, use a better bow <strong>th</strong>an seems necessary, allow <strong>th</strong>ree arrows atleast, and borrow Robin Hood if you can.Pr<strong>ac</strong>tical hintBe prepared to b<strong>ac</strong>kup <strong>th</strong>e detailed numbers in <strong>th</strong>e top level presentationwi<strong>th</strong> lower level estimates. This level <strong>of</strong> presentation is suitable for graphicbar chart presentations.The estimation hierarchy principleDeeper estimation gives better generalization, or <strong>th</strong>e more trees you <strong>ac</strong>tually count, <strong>th</strong>e more sureyou are about <strong>th</strong>e woods.The fundamental principle <strong>of</strong> estimationPerfect estimation <strong>of</strong> complex systems costs too much.Pr<strong>ac</strong>tical hintDon’t ever look b<strong>ac</strong>k. Do not attempt to compare your imp<strong>ac</strong>t estimationnumbers wi<strong>th</strong> <strong>th</strong>e real system results. You will cause yourself unnecessary<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 16 Peraphon Sophatsa<strong>th</strong>it


grief. The main point is to motivate you to change your design, not topredict its attributes. The only <strong>th</strong>ing you want to compare wi<strong>th</strong> reality isyour high-priority targets.Of course we need to learn from past mistakes <strong>of</strong> estimation, but <strong>th</strong>e imp<strong>ac</strong>testimation table is ot <strong>th</strong>e right pl<strong>ac</strong>e to do <strong>th</strong>is because it is at too early stage<strong>of</strong> design. Too many changes are made after <strong>th</strong>e estimates are made.Pr<strong>ac</strong>tical hintYour system design standards should contain rules for when you requirejustification <strong>of</strong> an estimate in writing. Inspection checklists for <strong>th</strong>e imp<strong>ac</strong>testimation should ask questions like:1. Are all estimates obviously reasonable?2. Are all controversial or large estimates (over 5%) satisf<strong>ac</strong>torilyjustified in writing?Get at least one independent person to sign <strong>of</strong>f on any imp<strong>ac</strong>t estimation(inspector, peer review or a manager).Pr<strong>ac</strong>tical hintGet a <strong>th</strong>orough inspection done at least once on an imp<strong>ac</strong>t estimation table,<strong>th</strong>en review <strong>th</strong>e experiences wi<strong>th</strong> your team before deciding whe<strong>th</strong>er youhave time to do <strong>th</strong>is or not. Look for <strong>th</strong>e indirect side-effects <strong>of</strong> <strong>th</strong>is processto give <strong>th</strong>e clearest benefit, such as getting goals clarified and definitions <strong>of</strong>solutions clarified.The principle <strong>of</strong> early estimationYou don’t have to estimate <strong>th</strong>e imp<strong>ac</strong>t <strong>of</strong> design suggestions – but if you don’t, you will find outwhen you implement <strong>th</strong>em just how bad <strong>th</strong>ey are.The expert principleExperts know <strong>th</strong>ey don’t know, <strong>th</strong>e o<strong>th</strong>ers try to fool people <strong>th</strong>at <strong>th</strong>ey do.Pr<strong>ac</strong>tical hintDemand <strong>th</strong>at everyone who proposes an idea ensures (not necessarily bydoing it personally) <strong>th</strong>at an imp<strong>ac</strong>t estimation, wi<strong>th</strong> justification, is availablefor at least <strong>th</strong>e ‘top ten’ attributes, before <strong>th</strong>ey seriously push <strong>th</strong>e idea orsuggest it to o<strong>th</strong>ers. If <strong>th</strong>ey don’t, you will have to.Don’t let <strong>th</strong>is stop creative brainstorming – but do let it be <strong>th</strong>e brainstormingfilter.The estimator principleDesign solutions alone have no value except when we can estimate contribution to our designobjectives.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 17 Peraphon Sophatsa<strong>th</strong>it


Pr<strong>ac</strong>tical hintIf people hesitate to commit <strong>th</strong>emselves to numbers initially, use <strong>th</strong>e imp<strong>ac</strong>tanalysis language to get <strong>th</strong>em moving, discussing and communicating.The imp<strong>ac</strong>t analysis principleEven superficial systematic analysis <strong>of</strong> solution completeness will turn up many defects in ourdesign.Pr<strong>ac</strong>tical hintKeep it public. Keep <strong>th</strong>e solution comparison model and its evaluations and<strong>th</strong>eir basic f<strong>ac</strong>ts open and available to everyone. There will always beforces which push for secrecy, discover <strong>th</strong>e best solutions.The principles <strong>of</strong> solution comparisonSolutions must be compared on <strong>th</strong>e basis <strong>of</strong> <strong>th</strong>eir imp<strong>ac</strong>t on all critical objectives. Any<strong>th</strong>ing else isa false comparison.orThe best solution is <strong>th</strong>e one <strong>th</strong>at is best for your objectives, <strong>th</strong>ere is no generally best solution.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 18 Peraphon Sophatsa<strong>th</strong>it


Chapter 12 The inspection process: early quality and process controlThe principle <strong>of</strong> Fagan’s inspection rulesFagan developed inspection at IBM, <strong>th</strong>erefore his inspection rules had to contribute to net pr<strong>of</strong>it inorder to survive.andIf you <strong>th</strong>ink an inspection rule is unnecessary, you have probably misunderstood <strong>th</strong>e me<strong>th</strong>od.Pr<strong>ac</strong>tical hintFollow inspection rules completely until you can prove <strong>th</strong>at dropping <strong>th</strong>emor varying <strong>th</strong>em gives better measurable results. If you simplify or modify<strong>th</strong>e me<strong>th</strong>od before you can measure it, <strong>th</strong>en you won’t understand whyFagan did it <strong>th</strong>at way.Pr<strong>ac</strong>tical hintMake sure <strong>th</strong>at <strong>th</strong>e introductory year <strong>of</strong> using inspection in yourenvironment is led by champions <strong>of</strong> <strong>th</strong>e cause. Make sure <strong>th</strong>at <strong>th</strong>echampions are well trained. Send <strong>th</strong>em on a public course on <strong>th</strong>e subject.Make sure <strong>th</strong>ey are well read in inspection literature. Make <strong>th</strong>emresponsible for seeing <strong>th</strong>at <strong>th</strong>e moderators do <strong>th</strong>eir job properly, as reflectedin <strong>th</strong>e statistics collected about effort and effect.The moderator principleInspections wi<strong>th</strong>out trained moderators will only have moderate success.Pr<strong>ac</strong>tical hintSome companies plan inspections up to <strong>th</strong>e lunch hour or end <strong>of</strong> <strong>of</strong>ficehours, hoping <strong>th</strong>at people will get toge<strong>th</strong>er in <strong>th</strong>eir own time for <strong>th</strong>ispurpose. Those who have instituted <strong>th</strong>is on company time report <strong>th</strong>at it pays<strong>of</strong>f in terms <strong>of</strong> constructive and creative ideas.The inspection-steps principleIf you <strong>th</strong>ink some <strong>of</strong> <strong>th</strong>e inspection steps are too time consuming, and you drop <strong>th</strong>em, you are indanger <strong>of</strong> losing more time <strong>th</strong>an you save. (You can find out for sure by analyzing you statistics.)The single page principleIf a subject is really important, and you understand it really well, <strong>th</strong>en you can state it on a singlepage.Pr<strong>ac</strong>tical hintStatistics about costs <strong>of</strong> finding and fixing defects are vital for defendingand improving <strong>th</strong>e me<strong>th</strong>od <strong>of</strong> inspection and o<strong>th</strong>er s<strong>of</strong>tware engineeringme<strong>th</strong>ods in your development process. If you fail to collect and analyze<strong>th</strong>em, you risk leaving bad me<strong>th</strong>ods in too long, and risk not recognizingand selling better me<strong>th</strong>ods to colleagues and management. Don’t fail tocollect and use <strong>th</strong>e statistics; it is a necessary overhead.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 19 Peraphon Sophatsa<strong>th</strong>it


The statistics principleInspection wi<strong>th</strong>out statistics is like night driving wi<strong>th</strong>out headlights; you may not see obst<strong>ac</strong>les oropportunities until it is too late.Pr<strong>ac</strong>tical hintPublish optimum rate curves on your internal newsletter, and publishexamples <strong>of</strong> estimated and real losses due to inspections being conductedoutside <strong>th</strong>e best rates <strong>of</strong> speed. Tell people where information aboutoptimum rates can be found, and give an idea <strong>of</strong> <strong>th</strong>e valid rates.The inspection-rate principleInspection rates are to defect-finding efficiency what automobile speed rates are to fuel efficiency;too slow or too fast are bo<strong>th</strong> wasteful – and you have to measure carefully to find <strong>th</strong>e optimumspeeds for different conditions.Pr<strong>ac</strong>tical hintIf you collect inspection statistics and compare <strong>th</strong>em wi<strong>th</strong> test statistics andoperational statistics, you will be able to measure <strong>th</strong>e benefits <strong>of</strong> inspectionyourself, very quickly. See <strong>th</strong>e Omega project example <strong>of</strong> very early-ininitial-useattempts to quantify <strong>th</strong>e benefits <strong>of</strong> inspection.Pr<strong>ac</strong>tical hintMake sure you measure and predict savings in manpower, money and timeto your management in order to justify your investment in starting andcontinuing an inspection effort. One client <strong>of</strong> mine neglected to do <strong>th</strong>is, anddropped inspection. One year later <strong>th</strong>ey discovered <strong>th</strong>at 400 similarprograms were ten times cheaper to maintain <strong>th</strong>an 400 similar non-inspectedprograms. (ICI, UK.)The universal inspection principleInspection can be used effectively on any technology or management documentation. It is notlimited to s<strong>of</strong>tware.Pr<strong>ac</strong>tical hintYou can demonstrate <strong>th</strong>e power <strong>of</strong> inspection to your management byinspecting marketing and management documents. This device can be usedto get understanding and goodwill from management. Remember, yourown projects should be integrated wi<strong>th</strong> bo<strong>th</strong> <strong>th</strong>e highest company planningand marketing strategy documents.The principle <strong>of</strong> highest level inspectionIf you fail to inspect <strong>th</strong>e higher levels <strong>of</strong> planning and goal-setting, <strong>th</strong>en inspection at <strong>th</strong>e lowerlevels will only serve to confirm errors made earlier!orWhat is put into a design-or-planning process should always have exited successfully forminspection beforehand.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 20 Peraphon Sophatsa<strong>th</strong>it


Pr<strong>ac</strong>tical hintYou must be prepared to raise <strong>th</strong>e clarity <strong>of</strong> planning, requirementsspecification, and design documentation substantially in order to exploitinspection. Inspection will in itself stimulate <strong>th</strong>is improvement by makingpoor pr<strong>ac</strong>tices more publicly embarrassing.The invisible-defects-don’t-count principleIf you don’t understand ex<strong>ac</strong>tly what someone says, you cannot be sure if <strong>th</strong>ey are wrong.orThere is a good reason why politicians make vague promises.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 21 Peraphon Sophatsa<strong>th</strong>it


Chapter 13 Evolutionary delivery planning and implementationPr<strong>ac</strong>tical hintUse cross-reference tags in your evolutionary plan specification tosystematically check <strong>th</strong>at all solution and function specifications are to befound in some step <strong>of</strong> your plan. You can refer to a large set <strong>of</strong> <strong>th</strong>e ideas bymeans <strong>of</strong> a single high level tag, at rough step planning stages.The principle <strong>of</strong> open-ended architectureAll solution ideas will to some degree allow change in a measurable way.E<strong>ac</strong>h solution idea has multiple ease-<strong>of</strong>-change attributes.The expected range <strong>of</strong> e<strong>ac</strong>h solution idea’s ease-<strong>of</strong>-change attributes can be noted and used toselect <strong>th</strong>em for new designs.The need for open-endedness is relative to a particular project’s requirements.E<strong>ac</strong>h open-ended solution idea has side-effects which must ultimately be <strong>th</strong>e basis for judging <strong>th</strong>eideas for possible use.You cannot maximize <strong>th</strong>e use <strong>of</strong> open-endedness – but must always consider <strong>th</strong>e balance <strong>of</strong> allsolution attributes against all requirements.You cannot finally select one particular open-ended design idea wi<strong>th</strong>out knowing which o<strong>th</strong>erdesign ideas are also going to be included.There is no final set <strong>of</strong> open-ended design ideas for a system; dynamic change is required andinevitable because <strong>of</strong> <strong>th</strong>e external environment change.Open-endedness will, by definition, cost less in <strong>th</strong>e long term, but not necessarily more in <strong>th</strong>e shortterm.If you don’t consciously choose an open architecture initially, your system’s evolution will te<strong>ac</strong>hyou about it <strong>th</strong>e hard way.The principle <strong>of</strong> evolutionary deliveryAll large projects are capable <strong>of</strong> being divided into many useful partial result steps.The only critical step is <strong>th</strong>e next one.Evolutionary steps should be delivered on <strong>th</strong>e principle <strong>of</strong> ‘<strong>th</strong>e juiciest one next.’Result delivery (not <strong>th</strong>e construction <strong>ac</strong>tivity) is <strong>th</strong>e only point.Open-ended architecture should be at <strong>th</strong>e base, o<strong>th</strong>erwise <strong>th</strong>e step transition cost will beunnecessarily high.Any step sequence you plan will be changed by <strong>th</strong>e f<strong>ac</strong>ts you learn as you deliver <strong>th</strong>e early steps.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 22 Peraphon Sophatsa<strong>th</strong>it


Maximizing your real progress towards your specified goals is <strong>th</strong>e only measure <strong>of</strong> successfulevolutionary delivery.The evolutionary process can lead to change <strong>of</strong> our technical design solutions, or change <strong>of</strong> yourlower-priority requirements so <strong>th</strong>at you can re<strong>ac</strong>h your higher-priority goals instead.You don’t need to recreate a minimum working system before making your first improvements, ifyou use an already existing system to make a start wi<strong>th</strong>.If <strong>th</strong>e evolutionary delivery me<strong>th</strong>od doesn’t work, <strong>th</strong>en you haven’t been doing it properly.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 23 Peraphon Sophatsa<strong>th</strong>it


Chapter 14 The management <strong>of</strong> s<strong>of</strong>tware productivityThe user as judge principleThe end users <strong>th</strong>emselves, not <strong>th</strong>e producers, should be <strong>th</strong>e final judge <strong>of</strong> productivity in <strong>th</strong>e sense<strong>of</strong> s<strong>of</strong>tware quality.The never ending judgement principleS<strong>of</strong>tware systems need to be judged on a continuous basis <strong>th</strong>roughout <strong>th</strong>eir lifetime – not just by<strong>th</strong>e first user, <strong>th</strong>e first mon<strong>th</strong>.The multiple test principleS<strong>of</strong>tware systems should have formally defined <strong>ac</strong>ceptance test criteria which are applicable at alltimes for all critical qualities.The principle <strong>of</strong> s<strong>of</strong>tware productivityIf is not <strong>th</strong>e s<strong>of</strong>tware itself which is productive. The interesting results are created by people whomake use <strong>of</strong> <strong>th</strong>e s<strong>of</strong>tware.If you can’t define it, you can’t control it.The ore precisely you can specify and measure your particular concept <strong>of</strong> productivity, <strong>th</strong>e morelikely you are to get pr<strong>ac</strong>tical and economic control over it.Productivity is a multi-dimensional matterProductivity must be defined in terms <strong>of</strong> a number <strong>of</strong> different and conflicting attributes whichlead to <strong>th</strong>e desired results.Productivity is a management responsibilityIf productivity is too low, managers are always to blame – never <strong>th</strong>e producers.Productivity must be project-defined; <strong>th</strong>ere is no universal measureReal productivity is giving end users <strong>th</strong>e results <strong>th</strong>ey need – and different users have differentresult priorities, so productivity must be user-defined.Architecture change gives <strong>th</strong>e greatest productivity changeThe most dramatic productivity changes result from radical change to <strong>th</strong>e solution architecture,ra<strong>th</strong>er <strong>th</strong>an just working harder or more effectively.Design-to-cost is an alternative to productivity increasesYou can usually re-engineer <strong>th</strong>e solution so <strong>th</strong>at it will fit wi<strong>th</strong>in your most limited resources. Thismay be easier <strong>th</strong>an finding ways to improve <strong>th</strong>e productivity <strong>of</strong> people working on <strong>th</strong>e currentsolution.A stitch in time saves nineFrequent and early result-measurements during development will prevent irrelevant production.The ounce <strong>of</strong> prevention (which is wor<strong>th</strong> a pound <strong>of</strong> cure)Early design quality control is at least an order <strong>of</strong> magnitude more productive <strong>th</strong>an later proeucttesting. This is because repair costs explode cancerously.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 24 Peraphon Sophatsa<strong>th</strong>it


Do <strong>th</strong>e juicy bits firstThere will never be enough well-qualified pr<strong>of</strong>essionals, so you must have efficient selection rulesfor sub-tasks, so <strong>th</strong>at <strong>th</strong>e most important ones get done first.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 25 Peraphon Sophatsa<strong>th</strong>it


Chapter 15 Some deeper and broader perspectives on evolutionary delivery and relatedtechnologyChapter 16 Ten principles for estimating s<strong>of</strong>tware attributesThe dependency principleAll system attributes are affected by all o<strong>th</strong>ers.The sensitivity principleEven <strong>th</strong>e slightest change in one attribute can cause uncertainly large changes in any o<strong>th</strong>erattribute.The zero<strong>th</strong> law <strong>of</strong> reliability generalizedYou can re<strong>ac</strong>h almost any ambitious level if you are willing to s<strong>ac</strong>rifice all <strong>th</strong>e o<strong>th</strong>er attributes.The design-to-price principleYou can get more control over costs by designing to stay wi<strong>th</strong>in interesting limits, <strong>th</strong>an you can bypassively trying to estimate <strong>th</strong>e costs resulting from a design which gives priority to o<strong>th</strong>erobjectives.The iterative estimation principleYou get more control over estimation by learning from evolutionary early-and-frequent resultdeliveries, <strong>th</strong>an you will if you try to estimate in advance for a whole large project.The quality determines cost principleYou cannot <strong>ac</strong>curately estimate <strong>th</strong>e costs <strong>of</strong> any<strong>th</strong>ing when cost determining quality attributes areunclearly defined.The natural variation principleAll system attributes can be expected to vary to some degree <strong>th</strong>roughout <strong>th</strong>eir lifetime.The early bird principleAny me<strong>th</strong>od which gives you early feedb<strong>ac</strong>k and correction <strong>of</strong> reality is more likely to give youcontrol over <strong>th</strong>e final result <strong>th</strong>an big-bang me<strong>th</strong>ods.The <strong>ac</strong>tivist principleEstimation me<strong>th</strong>ods alone will not change a result which is <strong>of</strong>f <strong>th</strong>e tr<strong>ac</strong>k. Active correction mustbe a part <strong>of</strong> your me<strong>th</strong>odology. (Action, not estimation, produces results)The ‘future shock’ principleData from past project might be useful, but it can never be as useful to you as current data fromyour present project.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 26 Peraphon Sophatsa<strong>th</strong>it


Chapter 17 Deadline pressure: how to beat itThe deadline mirage principleRe<strong>th</strong>ink <strong>th</strong>e deadline given to you; it may not be real.The solution mirage principleRe<strong>th</strong>ink <strong>th</strong>e solution handed to you; it may be in <strong>th</strong>e way <strong>of</strong> on-time delivery.The o<strong>th</strong>er viewpoint principleRe<strong>th</strong>ink <strong>th</strong>e problem form o<strong>th</strong>er people’s point <strong>of</strong> view; it will help you simplify your problem andconvince <strong>th</strong>em to agree wi<strong>th</strong> you.The expert trap principleDon’t trust <strong>th</strong>e experts blindly; <strong>th</strong>ey will cheerfully lead you to disaster. Be skeptical and insist onpro<strong>of</strong> and guarantees.The all-at-once trap principleRemember, nobody needs all <strong>of</strong> what <strong>th</strong>ey asked for by <strong>th</strong>e deadline. They would simply like youto provide <strong>th</strong>e mir<strong>ac</strong>le if possible.The real needs principleDon’t damage you credibility by bowing to pressure to make impossible promises. Increase yourcredibility by fighting for solutions which solve <strong>th</strong>e real needs <strong>of</strong> your bosses and clients.The ends dictate <strong>th</strong>e means principleIf <strong>th</strong>e deadline is critical and seems impossible to re<strong>ac</strong>h, don’t be afraid to change to solution.The principle <strong>of</strong> conservation <strong>of</strong> energyIf deadlines are critical, make maximum use <strong>of</strong> existing systems and ‘known technology.’ Avoidresearch-into-unknowns during your project.The evolutionary delivery principleAny large project can be broken down into a series <strong>of</strong> earlier and smaller deliverables. Don’t giveup, even if you have to change <strong>th</strong>e technical solution to make it happen. Keep you eye on results,not technologies.The ‘don’t blame me’ principleIf you succeed using <strong>th</strong>ese principles, take <strong>th</strong>e credit. Give your boss and <strong>th</strong>ese ideas some creditin a footnote. If you fail, you obviously didn’t apply <strong>th</strong>ese principles correctly. If you must blamesomebody, don’t mention my name, mention your boss’s. (<strong>Management</strong> is always at fault.)<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 27 Peraphon Sophatsa<strong>th</strong>it


Chapter 18 How to get reliable s<strong>of</strong>tware systemsThe first principle <strong>of</strong> solutionsThere are usually a lot <strong>of</strong> <strong>th</strong>em. You have to find an appropriate set <strong>of</strong> solutions to <strong>th</strong>e total (notjust for reliability) set <strong>of</strong> attributes-objectives which you have decided to aim for.The second principle <strong>of</strong> solutionsIf is almost impossible to know ex<strong>ac</strong>tly what <strong>th</strong>e ex<strong>ac</strong>t attributes <strong>of</strong> a specified solution are inadvance. But you can know approximately.The first defense principleThe first defense is to not expect to get any particular level <strong>of</strong> attributes until you can measure <strong>th</strong>atyou have <strong>th</strong>em.The second defense principleMake it an integrated par to <strong>of</strong> your design process to validate <strong>th</strong>e solution ideas in pr<strong>ac</strong>tice beforeyou promise <strong>th</strong>em to anybody else.<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 28 Peraphon Sophatsa<strong>th</strong>it


Chapter 19 S<strong>of</strong>tware engineer templatesPr<strong>ac</strong>tical hintDon’t’ be too concerned wi<strong>th</strong> defining <strong>th</strong>e attribute category itself. Theimportant <strong>th</strong>ing is to get a specification somewhere <strong>of</strong> all critical attributes.Chapter 20 <strong>Principles</strong> for motivating your colleagues to use quality metricsPr<strong>ac</strong>tical hintYou might have to use written caveats. The simplest one is to pr<strong>ac</strong>ticegiving estimates wi<strong>th</strong> explicit uncertainty f<strong>ac</strong>tors like: 60 ± 20% or 60 -80% or 60?? However, entire pages may need a ‘rubber stamp’ like‘Exploratory Uncommitted Estimates Only.’Or you might include in such documents <strong>th</strong>e following: ‘Warning: <strong>th</strong>enumbers in <strong>th</strong>is document do not represent predictions or promises. Theyare used to improve communication about possibilities in a complex system.Unless o<strong>th</strong>erwise explicitly indicated, you can expect realities to be verydifferent from <strong>th</strong>ese numbers. Final numbers may depend on changedpriorities, new technological decisions and implementation experiences.’Pr<strong>ac</strong>tical hintMy favorite initial ‘te<strong>ac</strong>hing’ trick is immediately to connect <strong>th</strong>e proposedtechnical solutions to <strong>th</strong>e quality metrics using <strong>th</strong>e imp<strong>ac</strong>t estimation table.This is not a solid reality, <strong>of</strong> course. But it does force people to <strong>th</strong>ing about<strong>th</strong>e meaning <strong>of</strong> bo<strong>th</strong> <strong>th</strong>eir objectives and <strong>th</strong>e technological solutions <strong>th</strong>ey areconsidering.Pr<strong>ac</strong>tical hintMake it clear <strong>th</strong>at <strong>th</strong>e estimates <strong>of</strong> requirements <strong>of</strong> imp<strong>ac</strong>ts are not tied to<strong>th</strong>e individual who first mentions <strong>th</strong>e estimate. The team must <strong>ac</strong>cept <strong>th</strong>eresponsibility for <strong>th</strong>e number. Hidden anonymously among peers (‘<strong>th</strong>eydidn’t know any better ei<strong>th</strong>er!’), timid but creative individuals might justventure a valuable initial opinion.One technique to dramatize <strong>th</strong>at <strong>th</strong>e numbers are not static is to modify <strong>th</strong>emintentionally, using such simple tools as spreadsheet s<strong>of</strong>tware, to do imp<strong>ac</strong>testimation or to do attribute specification. Ask a lot <strong>of</strong> ‘What if?’ questions,by changing <strong>th</strong>e data on <strong>th</strong>e spreadsheet, to get people <strong>th</strong>inking; but also toget <strong>th</strong>e message <strong>ac</strong>ross <strong>th</strong>at <strong>th</strong>e numbers can be changed as easily as abudget suggestion.Explain <strong>th</strong>at <strong>th</strong>e numbers are highly dependent on many f<strong>ac</strong>tors, which arenot pinned down yet (like <strong>th</strong>e budget for <strong>th</strong>e development, or <strong>th</strong>e o<strong>th</strong>erquality requirements and <strong>th</strong>eir priority). Explain <strong>th</strong>at numbers are <strong>th</strong>e bestavailable tool for rationally exploring a complex technological design.Explain <strong>th</strong>at no early requirements, wishes or imp<strong>ac</strong>t estimates are holy ifwe decide <strong>th</strong>at some<strong>th</strong>ing else has a higher priority. There is no need to feel<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 29 Peraphon Sophatsa<strong>th</strong>it


guilty if <strong>th</strong>e final numbers five years from now are different from whatanyone suggests now. But, numbers, at least approximate ones, arenecessary for getting us on a controlled and efficient iteration pa<strong>th</strong> towardsour future, even if <strong>th</strong>at future involves dynamically changing requirementsand technologies.Chapter 21 The Omega project: inspection experienceChapter 22 The production planning case<strong>Principles</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Engineering</strong> <strong>Management</strong> 30 Peraphon Sophatsa<strong>th</strong>it

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!