10 diagnosing problems ii

Upload: vinh1964

Post on 05-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 10 Diagnosing Problems II

    1/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 1

    Why Software Projects Fail

    (Part II)

    How to diagnose and fix a

    troubled software project

  • 7/31/2019 10 Diagnosing Problems II

    2/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 2

    Iteration Abuse

    Iteration can be a useful tool, but it is oftenabused

    The team uses iteration as a guessinggame

    Programmers deliver build after build; users andstakeholders make small changes to each build

    Programmers like it because they can dive in

    Users and stakeholders like it because they dont

    have to read documents or think about their needs

  • 7/31/2019 10 Diagnosing Problems II

    3/13

  • 7/31/2019 10 Diagnosing Problems II

    4/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 4

    Fixing Requirements

    ProblemsWhen software requirements are notgathered and specified before the software is

    developed, it causes scope creep and theteam resorts to iteration abuse.

    The team can adopt software requirementsengineering practices to write down most of the

    changes before the work beginsA change control process gives them a handle on

    the few changes that remain

  • 7/31/2019 10 Diagnosing Problems II

    5/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 5

    Haunted by Ghosts of Old

    ProblemsProgrammers find that old bugssuddenly reappear without warning

    As the code base grows, it becomesharder to keep control of the source code

    They may use a shared folder to store

    source code, but occasionally old copies offiles are copied over newer ones

  • 7/31/2019 10 Diagnosing Problems II

    6/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 6

    Broken Builds

    The programmers deliver a build which doesnot workand 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 is broken and tell them what to fix?The testers spend hours or days setting up a test

    environment, only to redo it for the next build

  • 7/31/2019 10 Diagnosing Problems II

    7/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 7

    Spaghetti Code

    Maintaining old code is the leastdesirable programming job in many

    organizationsOld, highly modified code turns into a

    twisted mess of execution paths and

    patchesSpaghetti code is often used as an excuse

    to do an unnecessary rewrite

  • 7/31/2019 10 Diagnosing Problems II

    8/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 8

    Fixing Programming Problems

    When the team adopts goodprogramming habits, they can avoid

    ghosts of old problems, broken buildsand spaghetti code.Get control of the source code with version

    control software like Subversion

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

    Use refactoring to keep the code readable

  • 7/31/2019 10 Diagnosing Problems II

    9/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 9

    Requirements Havent Been

    ImplementedThe team delivers software missingbehavior or even entire features

    Software is complex, and even with goodreview practices, its difficult for

    programmers to fully implement everything

    Missing requirements are difficult to spotbecause even the programmer missedthem when looking over his own work

  • 7/31/2019 10 Diagnosing Problems II

    10/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 10

    Obvious Bugs Slipped

    ThroughInexperienced testers are expected to justbang on the software

    Technical support staff, junior programmers,end users, outside temps and sales peopleare drafted as testers

    Even when experienced testers are used,

    they are not given time to planDecisions about release readiness are madebased on the schedule, rather than the quality

  • 7/31/2019 10 Diagnosing Problems II

    11/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 11

    But It Worked For Us!

    When a product is not tested in allenvironments in which it will be used,

    the tests will be thrown offDefects are missed when testers cantadequately replicate the environment inwhich the software will be used

    Test data may not resemble actualproduction data

  • 7/31/2019 10 Diagnosing Problems II

    12/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www.stellman-greene.com 12

    Fixing Testing Problems

    When code is delivered with too fewrequirements implemented and too manybugs included, the team needs better testingpractices.Software testers must be involved in every stage

    of development

    Test planning must be given adequate time on the

    scheduleSufficient budget must be provided for a testing

    environment.

  • 7/31/2019 10 Diagnosing Problems II

    13/13

    Applied Software Project Management

    Andrew Stellman & Jennifer Greene

    Applied Software Project Management

    http://www stellman-greene com 13

    Common Problems Can Be

    Avoided!Almost everyone has experienced atleast a few of these problems.

    We know what causes them, and wehave tools, techniques and practicesthat can fix them.

    All it takes is good project managementand sound software engineering andany project team can do it!