1. Trang chủ
  2. » Công Nghệ Thông Tin

Applied Software Project Management - HOW TO DIAGNOSE AND FIX A TROUBLED SOFTWARE PROJECT pptx

34 501 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề How to diagnose and fix a troubled software project
Trường học Applied Software Project Management
Thể loại Bài tập lớn
Định dạng
Số trang 34
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

THE MID-COURSE CORRECTION A change in project priorities throws the team into disarray  This usually comes from a lack of understanding of the scope of the project  When the enginee

Trang 1

HOW TO DIAGNOSE AND FIX A TROUBLED SOFTWARE

PROJECT

Why Software Projects Fail

1

Trang 2

LACK OF LEADERSHIP

 It takes more than a talented and motivated team to

make a successful project.

 Lack of leadership manifests itself in the team members

suffering from:

 Tunnel vision

 Over-reliance on gut instincts

 Repeated false starts in the project

Trang 3

THE MID-COURSE CORRECTION

 A change in project priorities throws the

team into disarray

 This usually comes from a lack of

understanding of the scope of the project

 When the engineers don’t understand

the users’ and stakeholders’ needs, they build the wrong software

 And they might not find out that there’s a problem until after the work is done!

3

Trang 4

THE DETACHED ENGINEERING

TEAM

 There is an artificial wall between the

people who build the software and those who need it.

moving too slowly and don’t care about their needs

Trang 5

FIX 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

Trang 6

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

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

 Use risk planning to keep the plan realistic

Trang 7

PADDED ESTIMATES GENERATE

DISTRUST

 Programmers add extra time to their

estimates

 They may do this because of unknowns

 Often they have been late in the past, and “know”

that they will need extra time

 Project managers and senior managers

quickly figure this out, and start to question individual estimates

 And the programmers don’t have good answers!

7

Trang 8

SELF-FULFILLING PROPHECY

 A project manager under pressure simply imposes a

deadline, and creates unrealistic estimates that meet it

 The team works nights and weekends to meet the

deadline

 The project manager feels vindicated

 The team eventually gets frustrated and disillusioned

Trang 9

FIX 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

Trang 10

FIXING ESTIMATION PROBLEMS

 Padded estimates and the self-fulfilling

prophecy are estimation problems

 Adopting a repeatable estimation process like Wideband Delphi can help fix them

 By writing down assumptions, the team can handle risks without padding their time – and even avoid the risks altogether

 It reduces padding and increases honesty through transparency, by letting the team correct each

other in an open meeting

Trang 11

WORKING BACKWARDS FROM A

DEADLINE

 Project managers approach a non-negotiable deadline for

a project by working backwards

 They shorten the tasks in the schedule or cutting them entirely until everything fits

 When the schedule gets tight, any non-programming activities are cut and the software is released before it’s finished

11

Trang 12

MISUNDERSTOOD

PREDECESSORS

 The project manger does not take the time to

understand how tasks depend on each other

 Problems are discovered partway through the

project one task can’t be started because it depends on another

 Delays cascade through the project, getting

increasingly worse

 Some programmers are stuck waiting with

nothing to do, while others work overtime

Trang 13

FIX 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

Trang 14

FIXING SCHEDULING PROBLEMS

 Working backwards from a deadline and misunderstood

predecessors are symptoms of underlying scheduling problems

 They can be avoided by adopting good planning and estimation practices and creating a project schedule

 Schedule techniques like critical path analysis can help spot problems early on

Trang 15

PROBLEMS ARE FOUND TOO LATE

 There are preventable defects in the software that aren’t

caught until late in the project

 The team may misunderstand a need, but that’s not discovered until delivery

 Requirements may be missed or incorrect

 The design may be difficult to use or fail to take all of the features into account

15

Trang 16

BIG, USELESS MEETINGS

been burned by problems that were found too late is determined to avoid falling into the same trap

 He calls a big meeting with everyone who could possibly have input

 The meeting drags on for hours, without making any real progress

 Eventually, everyone gives up and goes back to the way they did things before

Trang 17

THE INDISPENSABLE “HERO”

 One “critical” person is seen as the clear top

programmer, and all important work is sent through him

 He may have a unique skill or experience

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

go through him

 He is always working long hours – and causing bottlenecks

17

Trang 18

 Fixing Planning Problems

 Fixing Estimation Problems

 Fixing Scheduling Problems

 Fixing Review Problems

 Fixing Requirements Problems

 Fixing Programming Problems

 Fixing Testing Problems

Trang 19

FIXING REVIEW PROBLEMS

meetings, and the indispensable “hero” are problems which can be solved with reviews

 Reviews can catch defects early, when they are cheaper to fix

 A review meeting only includes the people necessary for the work to be done

 Reviews – especially code reviews – can help the

“hero” spread his expertise and knowledge

19

Trang 20

 Programmers like it because they can dive in

 Users and stakeholders like it because they don’t have to read documents or think about their

Trang 21

SCOPE CREEP

 After the programming has started, users

and stakeholders make changes

 Each change is easy to describe, so it sounds

“small” and the programmers agree to it

 Eventually, the project slows to a crawl

 It’s 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 from the start

21

Trang 22

 Fixing Planning Problems

 Fixing Estimation Problems

 Fixing Scheduling Problems

 Fixing Review Problems

 Fixing Requirements Problems

 Fixing Programming Problems

 Fixing Testing Problems

Trang 23

FIXING REQUIREMENTS

PROBLEMS

 When software requirements are not

gathered and specified before the software is developed, 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 the work begins

 A change control process gives them a handle on the few changes that remain

23

Trang 24

HAUNTED BY GHOSTS OF OLD

 They may use a shared folder to store source code, but occasionally old

copies of files are copied over newer ones

Trang 25

 “Isn’t 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

25

Trang 27

FIX 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

Trang 28

FIXING PROGRAMMING

PROBLEMS

 When the team adopts good programming habits, they can

avoid ghosts of 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

Trang 29

REQUIREMENTS HAVEN’T BEEN

 Missing requirements are difficult to spot because even the programmer

missed them when looking over his own work

29

Trang 30

OBVIOUS BUGS SLIPPED

THROUGH

 Inexperienced testers are expected to just

“bang on the software”

 Technical support staff, junior programmers, end users, outside temps and sales people

are drafted as “testers”

 Even when experienced testers are used,

they are not given time to plan

 Decisions about release readiness are made based on the schedule, rather than the

Trang 31

“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 can’t adequately replicate the environment in which the software will be used

 Test data may not resemble actual production data

31

Trang 32

 Fixing Planning Problems

 Fixing Estimation Problems

 Fixing Scheduling Problems

 Fixing Review Problems

 Fixing Requirements Problems

 Fixing Programming Problems

 Fixing Testing Problems

Trang 33

FIXING TESTING PROBLEMS

 When code is delivered with too few

requirements implemented and too many

bugs included, the team needs better testing practices.

 Software testers must be involved in every stage

Trang 34

COMMON PROBLEMS CAN BE

AVOIDED!

 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 software

engineering… and any project team can do it!

Ngày đăng: 28/06/2014, 07:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w