Software Project Management with the RUP

 

Duration:

 3 days It can be extended to 4 days, or tailored to the needs of a particular organization.

Audience:

Developers, and software project managers; some practical experience of software development projects is required. 

Pre-requisite

Familiarity with basic software development principles and software development lifecycles 

Brief Description

Applying project management practices to software development.

 

Description:

There is a wealth of information on project management. But unfortunately, we have come to realise that only a small fraction applies to software project management. This course is about new practices and new ideas project managers ought to consider to make their software development projects succeed. What makes software development in project management? Why did the traditional approaches to project management used in other industries fail in software endeavors? This course will include a critique of the “thermostat model” of management of WBS (Work Breakdown Structure), Gantt and PERT charts, and much of the common wisdom represented in the PMBOK, for example. We will look at how a new breed of techniques and tools are emerging, more suited to software development, with iterative development and agile methods: XP, Scrum, Lean Development, Adaptive development, RUP, and how to reconcile the new with the old.

"He that will not apply new remedies must expect old evils." (Francis Bacon, Essays, 1561-1626).

Course content

This course is organized into 12 modules:

 

Managing software projects

  • Types of software projects
  •  What makes a software project different and difficult
  • Software project management and software development process
  • The PMBOK
  • CMMi
  • Introduction to the Rational Unified Process® (RUP) framework
  • Introduction to Agile techniques
  •  What do software project managers manage?

Managing risks

  • Defining success and failure
  • What is a risk?
  • Taxonomy of software project risks
  • The project risk list
  • Introducing iterative development to better manage risks
  • Risk management in Agile projects

Managing time

  • Software development lifecycle
  • Phase and iterations in RUP®
  • Project estimations, from COCOMO to Use Case points
  • Phases and iteration planning
  • Managing time in Agile projects

Managing quality

  • What is software quality?
  • It’s relationship with software testing
  • Process quality and product quality
  • Reviews and inspections
  • Assessing quality
  • Measurements

Managing objective and scope

  • The feature/cost/time dilemma
  • Managing requirements and requirements creep
  • Earned value systems and burn-down charts
  • Time boxing
  • Scrum.

Managing complexity

  • Software project management and software architecture
  • The architect and the manager
  • Project dynamics
  • Keeping track of decisions and rationale
  • Programme management and portfolio management

Managing changes

  •   Types of changes
  • Defects and enhancements
  • Classification and priorities
  • Project backlog
  • Tracking changes

Managing software assets

  •   Software as an asset
  • Configuration management
  • Software reuse
  • Intellectual property issues; licenses, patents, open-source.

Managing people

  • Skills and competencies
  • Role versus individuals
  • Team structure, distributed team
  • Intercultural factors
  • Hiring, compensating, rewarding, firing, and other HR issues
  • Software development ethics

Managing external stakeholders

  •   Software acquisition; iterative or progressive acquisition
  • Outsourcing and offshoring.

Managing the software process

  • Just the right process
  • Process implementation project
  • Roles of an SEPG, and software process improvement
  • Post-mortem and retrospectives.

Managing software projects: wrap up

  • Putting it all together
  • Sources of information