09 10 diagnosing problems
TRANSCRIPT
-
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!