09 10 Diagnosing Problems

download 09 10 Diagnosing Problems

of 34

Transcript of 09 10 Diagnosing Problems

  • 7/28/2019 09 10 Diagnosing Problems

    1/34

    Applied Software Project Management

    HOW TO DIAGNOSE AND FIX A

    TROUBLED SOFTWAREPROJECTCHUN ON V SA LI D

    N PHN MM NTNWhy Software Projects Fail.ti sao li

    1

  • 7/28/2019 09 10 Diagnosing Problems

    2/34

    Applied Software Project Management

    LACK OF LEADERSHIP..THIU ST CALNH O

    It takes more than a talented and motivated team to make asuccessful project.

    Phi mt nhiu hn mt i ng ti nng v c ng lc thchin mt d n thnh cng .

    Lack of leadership manifests itself in the team members sufferingfrom: Tunnel vision

    Over-reliance on gut instincts:qu ph thuc vo bn nng

    Repeated false starts in the project:lp li nhng li bt u trong d n

    2

  • 7/28/2019 09 10 Diagnosing Problems

    3/34

    Applied Software Project Management

    THE MID-COURSE CORRECTION:STHAY I GIA DNG

    A change in project priorities throws the team intodisarray: mt thay i trong d n s lm i bxo trn

    This usually comes from a lack of understandingof the scope of the project

    When the engineers dont understand the usersand stakeholders needs, they build the wrongsoftwareAnd they might not find out that theres a problem until

    after the work is done!

    3

  • 7/28/2019 09 10 Diagnosing Problems

    4/34

    Applied Software Project Management

    THE DETACHED ENGINEERING TEAMNHM K THUT TCH RI There is an artificial wall between the people who build the software

    and those who need it.:C mt bc tng nhn to gia nhng

    ngi xy dng phn mm v nhng ngi cn n .

    The business people feel like the engineers are moving too

    slowly and dont care about their needs:Cc doanh nhn cmthy nh cc k s ang trin khai qu chm v khng quan

    tm n nhu cu ca h

    The engineers feel like theyre always shooting at a moving

    target because business people dont know what they want: k

    s th cm thy nh ang bn vo mt mc tiu di ng b

    thng nhn ko bit h mun g

    4

  • 7/28/2019 09 10 Diagnosing Problems

    5/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems Fixing Programming Problems

    Fixing Testing Problems

    5

  • 7/28/2019 09 10 Diagnosing Problems

    6/34

    Applied Software Project Management

    FIXING PLANNING PROBLEMS

    Lack of Leadership, the Mid-Course Correction and the Detached

    Engineering Team are project planning problems

    Use a vision and scope document to define the needs of the users and stakeholders:

    S dng mt tm nhn v phm vi ti liu xc nh nhu cu ca ngi s

    dng v cc bn lin quan

    Use a project plan to keep every informed about how those needs will be met:S

    dng mt k hoch d n gi tt c cc thng tin v nhng nhu cu s

    c p ng

    Use risk planning to keep the plan realistic; s dng hoch nh ri ro gi k hochthc t

    6

  • 7/28/2019 09 10 Diagnosing Problems

    7/34

    Applied Software Project Management

    PADDED ESTIMATESGENERATE(PHT SINH) DISTRUST

    Programmers add extra time to their estimatesThey may do this because of unknowns

    Often they have been late in the past, and know

    that they will need extra timeProject managers and senior managers quickly

    figure this out, and start to question individualestimatesAnd the programmers dont have good answers!

    7

  • 7/28/2019 09 10 Diagnosing Problems

    8/34

    Applied Software Project Management

    SELF-FULFILLING PROPHECY:T TINON

    A project manager under pressure simply imposes a deadline,and creates unrealistic estimates that meet it:Mt ngi qun ld n chu p lc ch n gin l p t mt thi hn, v to rac tnh khng thc t p ng n

    The team works nights and weekends to meet the deadline

    The project manager feels vindicated The team eventually gets frustrated and disillusioned: i cui

    cng th tht bi v tht vng

    8

  • 7/28/2019 09 10 Diagnosing Problems

    9/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    9

  • 7/28/2019 09 10 Diagnosing Problems

    10/34

    Applied Software Project Management

    FIXING ESTIMATION PROBLEMSPadded estimates and the self-fulfilling

    prophecy are estimation problems Adopting a repeatable estimation process like Wideband Delphi can help fix

    them:Vic p dng mt quy trnh d ton lp li nh Wideband Delphi c thgip gii quyt chng

    By writing down assumptions, the team can handle risks without padding their

    time and even avoid the risks altogether:Bng cch vit ra nhng gi nh ,nhm nghin cu c th x l nhng ri ro m khng cn m thi gian cah - v thm ch trnh c nhng ri ro hon ton

    It reduces padding and increases honesty through transparency, by letting theteam correct each other in an open meeting:N lm gim m v tng strung thc thng qua s minh bch , bng cch cho php cc i sa nhau

    trong mt cuc hp m

    10

  • 7/28/2019 09 10 Diagnosing Problems

    11/34

    Applied Software Project Management

    WORKING BACKWARDS FROM ADEADLINE Project managers approach a non-negotiable deadline for a

    project by working backwards:Qun l d n tip cn mt thihn khng th thng lng cho mt d n bng cch lm vicngc They shorten the tasks in the schedule or cutting them entirely-ton b until

    everything fits

    When the schedule gets tight, any non-programming activities are cut and thesoftware is released before its finished:Khi lch trnh c cht ch, bt khot ng khng phi lp trnh c ct v phn mm c pht hnh trckhi n c hon thnh

    11

  • 7/28/2019 09 10 Diagnosing Problems

    12/34

    Applied Software Project Management

    MISUNDERSTOODPREDECESSORS The project manager does not take the time to understand how

    tasks depend on each other:ko ginh time hiu cc nhim vph thuc ln nhau ntn

    Problems are discovered partway through the project one taskcant be started because it depends on another:Vn c pht

    hin 1 phn thng qua mt trong nhng nhim v ca d nkhng th bt u bi v n ph thuc vo nhau

    Delays cascade through the project, getting increasinglyworse:tng tng cc s tr li ca d n s lm vn tr nn tit hn

    Some programmers are stuck waiting with nothing to do, whileothers work overtime:Mt s lp trnh vin ang b mc kt chi khng c g lm , trong khi nhng ngi khc lm thmgi

    12

  • 7/28/2019 09 10 Diagnosing Problems

    13/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    13

  • 7/28/2019 09 10 Diagnosing Problems

    14/34

    Applied Software Project Management

    FIXING SCHEDULING PROBLEMS

    Working backwards from a deadline and misunderstoodpredecessors are symptoms of underlying scheduling problems:wbt mt hn cht v mp l du hiu c bn ca vn lp lch c bngp phi,

    They can be avoided by adopting good planning and estimationpractices and creating a project schedule:H c th trnh cbng cch p dng lp k hoch tt v thc hnh d ton v tora mt lch trnh d n

    Schedule techniques like critical path analysis can help spot

    problems early on:K thut lp lch nh phn tch con ngquan trng c th gip vn gii quyt sm.

    14

    A li d S f P j M

  • 7/28/2019 09 10 Diagnosing Problems

    15/34

    Applied Software Project Management

    PROBLEMS ARE FOUND TOO LATE

    There are preventable defects in the software that arent caughtuntil late in the project: mt s li c th phng na c m koth bt c trong sut qu trnh lm d n The team may misunderstand a need, but thats not discovered until

    delivery:i c th hiu sai mt yu cu, nhng li ko pht hin ra cho n khi

    giao sn phm. Requirements may be missed or incorrect: yu cu c th b b qua hoc ko

    chnh xc

    The design may be difficult to use or fail to take all of the features intoaccount: thit k ny c th kh khn s dng hoc li tt c cc c imti ti khon.

    15

    A li d S ft P j t M t

  • 7/28/2019 09 10 Diagnosing Problems

    16/34

    Applied Software Project Management

    BIG, USELESS MEETINGS

    A project manager who has previously been burned by problemsthat were found too late is determined to avoid falling into thesame trap:Mt gim c d n trc y c ti luyn bicc vn c tm thy qu mun c xc nh trnhri vo ci by tng t

    He calls a big meeting with everyone who could possibly haveinput

    The meeting drags on for hours, without making any realprogress

    Eventually, everyone gives up and goes back to the way they

    did things before

    16

    A li d S ft P j t M t

  • 7/28/2019 09 10 Diagnosing Problems

    17/34

    Applied Software Project Management

    THE INDISPENSABLE HERO: KO THTHIU 1 NGI HNG :D

    One critical person is seen as the clear top programmer, and allimportant work is sent through him He may have a unique _c o_skill or experience

    Sometimes he hoardes information so all tasks that rely on it must go throughhim

    He is always working long hoursand causing bottlenecks: tc nghn

    17

    A li d S ft P j t M t

  • 7/28/2019 09 10 Diagnosing Problems

    18/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    18

    A li d S ft P j t M t

  • 7/28/2019 09 10 Diagnosing Problems

    19/34

    Applied Software Project Management

    FIXING REVIEW PROBLEMS

    Problems that are found too late, big useless meetings, and theindispensable hero are problems which can be solved withreviews

    Reviews can catch defects_sai st_ early, when they are

    cheaper to fixA review meeting only includes the people necessary for the

    work to be done

    Reviews especially code reviewscan help the herospread his expertise and knowledge: nh gi- nh gi m

    c bit- c th gip hero truyn ti chuyn mn v kin thcca mnh

    19

    Applied Soft are Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    20/34

    Applied Software Project Management

    ITERATION ABUSE:LM DNG LP LI

    Iteration can be a useful tool, but it is often abusedThe team uses iteration as a guessing gameProgrammers deliver build after build; users and

    stakeholders make small changes to each buildProgrammers like it because they can dive in

    Users and stakeholders like it because they dont have toread documents or think about their needs

    20

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    21/34

    Applied Software Project Management

    SCOPE CREEP

    After the programming has started, users and stakeholders makechanges

    Each change is easy to describe, so it sounds small and theprogrammers agree to it

    Eventually, the project slows to a crawl:Cui cng , d n chmnh ra b

    Its 90% done with 90% left to go

    The programmers know that if they had been told from the

    beginning what to build, they could have built it quickly fromthe start:Cc lp trnh vin bit rng nu h c thngbo t u nhng g build, h c th build n mt cchnhanh chng t khi bt u

    21

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    22/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    22

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    23/34

    Applied Software Project Management

    FIXING REQUIREMENTSPROBLEMS

    When software requirements are not gathered_thuthp_ and specified before the software isdeveloped, it causes scope creep and the team

    resorts to iteration abuse.The team can adopt software requirements engineering

    practices to write down most of the changes before thework begins: i nghin cu c th lm theo nhng yucu ca phn mm v cc k s thc hin vit ra hu htcc thay i trc khi cng vic bt u

    A change control process gives them a handle on the fewchanges that remain

    23

    Applied Software Project ManagementHAUNTED BY GHOSTS OF OLD

  • 7/28/2019 09 10 Diagnosing Problems

    24/34

    Applied Software Project ManagementHAUNTED BY GHOSTS OF OLDPROBLEMS: M NH BI CC VN

    C Programmers find that old bugs suddenly reappear without warning:Lptrnh vin thy rng li c t nhin xut hin tr li m khng cnh boAs the code base grows, it becomes harder to keep control of the

    source code:khi lng code ln ln,n tr nn kh khn hn giquyn kim sot ca m ngun

    They may use a shared folder to store source code, but occasionallyold copies of files are copied over newer ones: h c th s dngmt th mc chia s d lu m ngun, nhng thnh thong 1 s tptin li b gi

    24

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    25/34

    Applied Software Project Management

    BROKEN BUILDS

    The programmers deliver a build which does notworkand the testers cant even begin to test itThe programmers get frustrated because they feel that

    they put a lot of effort into testing the build

    Isnt it the job of the QA team to figure out the build isbroken and tell them what to fix?

    The testers spend hours or days setting up a test

    environment, only to redo it for the next buildQA: i m bo cht lng

    25

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    26/34

    Applied Software Project Management

    SPAGHETTI CODE

    Maintaining old code is the least desirable programming job in manyorganizations Old, highly modified code turns into a twisted mess of execution paths and patches

    Spaghetti code is often used as an excuse to do an unnecessary rewrite

    Maintaining: duy tr, least: ti thiu, desirable: ng nht

    Modified: lm du nh, twisted

    26

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    27/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    27

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    28/34

    Applied Software Project Management

    FIXING PROGRAMMINGPROBLEMS

    When the team adopts good programming habits, they can avoid ghostsof old problems, broken builds and spaghetti code. Get control of the source code with version control software like Subversion

    Use unit tests and test-driven development to increase the quality of the build

    Use refactoring to keep the code readable

    28

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    29/34

    Applied Software Project Management

    REQUIREMENTS HAVENT BEENIMPLEMENTED

    The team delivers software missing behavior or even entire features Software is complex, and even with good review practices, its difficult for

    programmers to fully implement everything

    Missing requirements are difficult to spot because even the programmer missed themwhen looking over his own work

    29

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    30/34

    Applied Software Project Management

    OBVIOUS BUGS SLIPPEDTHROUGH

    Inexperienced testers are expected to just bang onthe software

    Technical support staff, junior programmers, endusers, outside temps and sales people are draftedas testers

    Even when experienced testers are used, they arenot given time to plan

    Decisions about release readiness are made basedon the schedule, rather than the quality

    30

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    31/34

    Applied Software Project Management

    BUT IT WORKED FOR US!

    When a product is not tested in all environments in which it will be used,the tests will be thrown off

    Defects are missed when testers cant adequately replicate theenvironment in which the software will be used:li c b qua khi xtnghim khng th ti to y cc mi trng trong phn mm s

    c s dng Test data may not resemble actual production data:D liu th nghim

    c th khng ging vi d liu sn xut thc t

    31

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

  • 7/28/2019 09 10 Diagnosing Problems

    32/34

    Applied Software Project ManagementFIX A TROUBLED SOFTWARE

    PROJECT

    Fixing Planning Problems

    Fixing Estimation Problems

    Fixing Scheduling Problems

    Fixing Review Problems

    Fixing Requirements Problems

    Fixing Programming Problems

    Fixing Testing Problems

    32

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    33/34

    Applied Software Project Management

    FIXING TESTING PROBLEMS

    When code is delivered with too few requirementsimplemented and too many bugs included, theteam needs better testing practices.Software testers must be involved in every stage of

    development:Kim th phn mm phi c tham giavo mi giai on pht trin

    Test planning must be given adequate time on theschedule:Lp k hoch kim tra phi c thi gian y v lch trnh

    Sufficient budget must be provided for a testingenvironment.ngn sch phi c cung cp cho mt mi trng thnghim

    33

    Applied Software Project Management

  • 7/28/2019 09 10 Diagnosing Problems

    34/34

    pp ed So a e ojec a age e

    COMMON PROBLEMS CAN BEAVOIDED!Almost everyone has experienced at least a few of these problems. We know what causes them, and we have tools, techniques and

    practices that can fix them.

    All it takes is good project management and sound softwareengineering and any project team can do it!