Software Management

Prof. Dr. Mirco Schoenfeld

General Project Management

Success criteria for project management (obviously)

  • deliver the software at the agreed time
  • deliver a software that meets customer’s expectations
  • keep costs within budget
  • maintain a happy and well-functioning development team

Specifities

Why is managing software engineering different from other types of engineering?

Specifities

  1. Product is intangible
  2. Large software projects are often ‘one-off’ projects
  3. Software processes are variable and organization specific

Question

Why does the intangibility of software systems pose special problems for software project management?

Tasks

Responsibilities of most managers in software engineering

  • project planning
  • reporting
  • risk management
  • people management
  • proposal writing

Risk Management

Risk

Risk is something that you’d prefer not to have happen.

(Sommerville 2011)

Risk types

Types of risks:

  • Project risks
  • Product risks
  • Business risks
  • Overlaps of the above

Risk types

Examples of common project, product, and business risks

(Sommerville 2011)

Risk management

Risk Management

(Sommerville 2011)

Risk Identification

At least these six types of risk should be considered for risk identification checklists

  • technology risks
  • people risks
  • organizational risks
  • tools risks
  • requirement risks
  • estimation risks

Examples of Risk Types

Examples of Risk Types

(Sommerville 2011)

Classification of risks

Classification of risks

  • probability of the risk
    e.g. low | moderate | high | very high
  • effects of the risk
    e.g. catastrophic | serious | tolerable | insignificant

Plan your mitigation strategy

Plan ahead!

  1. Identify and monitor top X risks
  2. Plan mitigation strategies (prioritized)
    1. Avoidance strategy: reduce risk of occurence
    2. Minimization strategy: reduce impact of risk
    3. Contingency plans: prepare for worst cases

Risks are not the only risk

Risks are not the only risk in software engineering.

It is also about keeping your developers happy.

People Management

  • it costs a lot to recruit and retain good people
  • good software engineers are not necessarily good people managers
  • software project managers need technical and softer skills!

Motivating people is key

Motivating people is key!

  • task-oriented people:
    motivated by intellectual challenge
  • self-oriented people:
    motivated by personal success and recognition
  • interaction-oriented people:
    motivated by presence and actions of co-workers

(Bass and Dunteman 1963; Sommerville 2011)

Critical management task

A critical management task in this regard:

Putting together a group that has the right balance of technical skills, experience, and personalities (Sommerville 2011)

Further critical management tasks

Additional critical management tasks in software project management:

  • Group organization
  • Communcation environment
  • Project scheduling
  • Identification of milestones
  • Estimation techniques
  • Release management

Agile Project Management

Notice that we didn’t discuss how to write plans?

That’s because planning doesn’t work well with agile methods.

Quick reminder

A quick reminder… agile means

  • developing requirements incrementally
  • delivering software in short and rapid increments
  • constant changes to requirements and software

This requires a different approach in management.

Scrum

A management method adapted to particular strenghts of agile methods is called Scrum.

(Schwaber and Sutherland 2011)

Scrum

Scrum is

  • focused on managing iterative development
  • less about technical approaches
  • not about programming practices
  • easily combinable with, e.g. XP
  • a management framework for projects

Scrum process

(Sommerville 2011)

Scrum: Sprint Cycles

The innovative feature of Scrum is the sprint cycles.

  1. Assessment phase: review backlog, prioritize, estimate risks, involve customer
  2. Selection phase: select features and functionality to develop during sprint
  3. Development phase: developers develop isolated from customer.
  4. Review the work done and present to stakeholders

Scrum: Roles

Scrum does not have project managers, but

  • Scrum master (1)
  • Product owner (1)
  • Developer (~8)

Scrum: Roles

In Scrum, the whole team is responsible and accountable to create a valuable increment.

Team sizes

Do you notice something?

Agile team sizes

Can this be agile?

Scaling Agile Methods

Scaling agile methods is an issue.

Agile in large companies

Introducing agile methods in large companies might be difficult because

  • project managers might be reluctant to accept the risk of such an approach
  • agile methods might interfere with quality procedures and company standards
  • people are likely to have a wide range of skills rather than a high level of skills
  • there may be cultural resistance

Agile in larger scales

Critical adaptations to scale agile methods according to Sommerville (2011):

  1. can’t focus on code alone; requires more up-front design and system documentation
  2. cross-team communication is essential
  3. continuous integration is practically impossible; frequent builds and releases are still essential

Agile in larger scales

Much effort has been devoted to scaling agile methods:

  • Disciplined Agile Delivery (DAD)
  • Scrum@Scale (S@S)
  • Scaled Agile Framework (SAFe)

References

Bass, Bernard M, and George Dunteman. 1963. “Behavior in Groups as a Function of Self-Interaction, and Task Orientation.” The Journal of Abnormal and Social Psychology 66 (5): 419.
Schwaber, Ken, and Jeff Sutherland. 2011. “The Scrum Guide.” Scrum Alliance 21 (1): 1–38.
Sommerville, Ian. 2011. “Software Engineering.” ISBN-10 137035152.