MSDBOK Logo

Managing Software Development

Welcome to the course notes repository for Managing Software Development.
This resource provides a comprehensive, practical, and accessible guide to the key topics in the field. Whether you are an MS student, a professional, or simply curious, these notes are designed to support your learning and growth.


Overview

Explore the major areas covered in this course:

graph LR
    A[Managing Software Development]
    A --> B[People]
    A --> C[Processes]
    A --> F[Needs]
    A --> D[Scope]
    A --> E[Planning]
    A --> G[Tracking]

    B --> B1["What is a technical person?"]
    B --> B2["Managing & motivating teams"]
    B --> B3["Decision making"]

    C --> C1["Project lifecycle stages"]
    C --> C2["Process frameworks & models"]
    C --> C3["Choosing the right process"]

    F --> F1["Customer Expectations"]
    F --> F2["Requirements Management"]
    F --> F3["Risks management"]

    D --> D1["Work Breakdown Structure (WBS)"]
    D --> D2["Estimation methods"]

    E --> E1["Agile vs. plan-driven"]
    E --> E2["Milestone & activity planning"]
    E --> E3["Critical path analysis"]

    G --> G1["Progress monitoring"]
    G --> G2["Earned Value Management"]
    G --> G3["Burndown charts"]

Areas Covered

1. People

Understand what makes technical teams tick:

  • What is a “technical person”?
  • Managing and motivating teams
  • Decision making in software projects

2. Processes

Learn how to manage the variability of human factors:

  • Project lifecycle stages
  • Process frameworks and models
  • Choosing the right process for your context

3. Needs

Master the art of managing expectations and risks:

  • Understanding customer needs
  • Requirements gathering and management
  • Risk identification and mitigation

4. Scope

Define and estimate project boundaries:

  • Work Breakdown Structure (WBS)
  • Estimation methods for time and effort

5. Planning

Plan for quality and success:

  • Agile vs. plan-driven approaches
  • Milestone and activity planning
  • Critical path analysis
  • Release planning (Buffered MoSCoW method)

6. Tracking

Monitor progress and adapt:

  • Progress monitoring and metrics
  • Earned Value Management (EVM)
  • Burndown and burnup charts

7. Selected Materials

Access curated resources to deepen your understanding:

  • Books
  • Research papers
  • Guides and online courses
  • Teaching materials (e.g. Assignments)

Contributing

We welcome contributions from students, practitioners, and educators!

How to Contribute

  • Fix content issues: typos, fact checks, source validation → See guidelines
  • Add method descriptions: 1-2 page technique descriptions → Use template
  • Write analysis papers: 3-4 page comparative studies → Use template

📖 Read full contribution guidelines


Objective

These course notes aim to:

  • Provide a structured and accessible overview of Managing Software Development topics.
  • Equip readers with insights that bridge theory and real-world application.
  • Encourage collaboration and knowledge-sharing within the software development community.

Approach:

  • Focus on breadth over depth, introducing a wide range of concepts and practices.
  • Present current and leading industry techniques, highlighting their strengths and limitations.
  • Emphasize understanding the differences between approaches, rather than immediate mastery.
  • Encourage critical thinking:
    • Reason about which techniques to apply in different contexts
    • Justify your choices with clear arguments
    • Explicitly state your assumptions, based on available facts

Our goal is to help you build a foundation for making informed decisions in software development management.


Acknowledgments

Much of the content in this handbook is heavily inspired by and adapted from lectures by Eduardo Miranda and David Root on software project management. The structure, examples, and pedagogical approach throughout the planning, processes, and materials sections reflect their teaching materials and frameworks.

Pages with significant lecture-based content include an Acknowledgments section crediting the original instructors, along with proper citations in the Sources section. All content pages maintain rigorous attribution practices with full citations for frameworks, methods, and research.


Feel free to explore, contribute, and enhance your understanding of software development management!

Disclaimer: AI is used for text polishing and explaining. Authors have verified all facts and claims. In case of an error, feel free to file an issue.