SENG2021

 

Project Management 🏈

Part One: Agile Fundamentals (2024)

What is this lecture and where does it fit in?

In this lecture

 

  • Principles of project management
  • Issues in software project management
  • Agile software development principles
  • Software project management with scrum
  • Teamwork

 

 

Evolution of Agile/PM/Teamwork in SENG

 

  • COMP1531: How to deal with other people, introduction to agile project management
  • SENG2021: ???
  • SENG3011: Applying agile principles, advanced teamwork, leadership and management theory
  • DESN2000: Applying agile principles to product design + prototyping
  • COMP2511, SENG4920, DESN2000, any other course with teamwork/pair work... much needed practice dealing with other people

PM/Teamwork in SENG2021

 

  • Project-based course
  • In-depth discussion of Agile principles + practices (today!)
  • Sprint 1 - using Agile principles to plan Sprint 2
  • Agile Software Development over Sprints 2, 3, 4
  • Reflection on Agile practices in Weekly blogging/Portfolio
  • A proactive approach to conflict management
  • Lots and lots of dealing with other people :) 

Projects

What is a project?

  • A large-scale task to complete
  • Definite time of delivery (start and finish date)
  • Capitalised set budget
  • An end product (Solution presentation)
  • Benefit realisation (Value Creation)

 

  • Most projects fail

Factors in Project Management

time + quality + resources = scope

  • What happens if we...
    • Decrease/increase time?
    • Decrease/increase resources?
    • Decrease/increase quality?

Speed vs Quality

  • A foundational tradeoff in software engineering
  • We care more about quality than quantity in this course

The Agile Paradigm

The Waterfall Paradigm

  • Sequential approach to developing software
  • Ensure the current step is perfect before moving onto the next one
  • Projects take months - years to complete

Problems with Waterfall

  • The game changes
    • Changing market
    • Changing client expectations
    • Changing technical world
  • The Evolution of Requirements
  • We can't predict everything up-front
    • Known unknowns
    • Unknown unknowns

Agile Paradigm

  • There is no golden solution to project management
  • Agile philosophies and methodologies are an improvement, but still have flaws
  • Different companies, systems and projects have different requirements - and hence ways of management

Agile Philosophy

  • Individuals and interactions over processes and tools
    • Projects are all about people - put people at the centre of how they are planned
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
    • Making the customer part of the team
    • Keeping the customer in the loop and engaged
  • Responding to change over following a plan
    • Being prepared for changes and unknowns

Agile Characteristics

  • Short release cycles
  • Iteration and incremental improvement
  • Frequent communication
  • Making the team part of the decision-making - a democratic approach to leadership

Agile Variations

  • Scrum
  • Extreme Programming (XP)
  • Kanban
  • Crystal
  • Dynamic Systems Development Method (DSDM)
  • Agile Unified Process
  • Feature-Driven Development
  • Adaptive Software Development

Scrum: An Agile Implementation

Scrum

Team Lead / Scrum Master

  • Responsible for enacting Scrum Values & Practices
  • Ensures that the team is fully functional and productive
    • Removes impediments / blockers
  • Ensure close co-operation across the team
  • Manager Leader of People
  • In software
    • Usually the most (or one of) technically capable member in the team
    • Responsible for engineering decisions ("How")
    • Oversees planning, implementation, incident response

Product Owner

  • An expert on the domain
  • Visionary - CEO as Product Owner (Steve Jobs)
  • Link between the team and broader community
    • Market
    • External stakeholders (can be one of them!)
  • Take strategic / revenue responsibility
  • Requirements Engineering
  • Usability and customer acceptance
  • Does not need to be technically proficient - but this helps significantly
  • Good with people, requirements, HCI, UX

Delivery Manager

  • AKA Iteration Manager
  • Arrange and organise work to make engineers' jobs as simple as possible
  • Keep engineers productive:
    • Removing blockers
    • Facilitating communication between teams
    • Organising / administrating backlog
  • Co-ordinating meetings / standups
  • End goal is delivery - throughput

Product Backlog

  • A list of all work that needs to be done at some point in future
  • Ordered by priority 
  • Maintained by Product Owner
  • Regularly updated
  • Can contain
    • User Stories / General Requirements
    • Technical Stories
    • Spikes 
    • Research stories

Sprints

  • 1 - 4 weeks
  • Small chunks of work are completed and checked-in
  • Have something to show by the end of the sprint
    • Demo or die
  • Iterative development - each ticket is its own SDLC
    • Economies of scale

Sprint Planning Meeting

  • Team selects items from the backlog they can commit to completing
  • Sprint backlog created
    • Tasks are identified and estimated (Story Points)
    • A collaborative process
  • Often occurs at the beginning of a sprint
  • Preparation for sprint planning:
    • Ticket Grooming
    • Ticket Prioritising
  • Set sprint goal

Measuring Progress

  • Measurements are a core part of management
    • Many measurements in management don't mean anything
  • Burndown: a measure of throughput in a sprint
  • Y-Axis - Work to complete (Story Points)
  • X-Axis - Time of the Sprint

Standups

  • "Communication saturation" - frequency
  • Communication is central to teamwork
  • Daily at work
  • 3 times a week for the project
  • Each member says
    • What they have completed
    • Any blockers / issues they encountered
    • What they are going to do next
  • Short & sharp
  • Synchronous or asynchronous

Sprint Review & Retrospective

  • Review
    • Team demos & presents what it accomplished
    • No slides
    • Whole team participates
    • Invite everyone
  • Retrospective
    • Whole team participates
    • What went well? What can we do better?

Task Tracking & Management

  • Kanban
  • Columns
    • Backlog
    • In Progress
    • Review
    • On Dev / Test / Prod
    • Done
    • Blocked

What's in a ticket

  • Description - needs detail / link to documentation
  • Assignee
  • Reporter / Reviewer
  • Story Points
    • Fibonacci sequence (1, 2, 3, 5, 8, 13, ...)
  • Priority
  • Definition of done

Further Viewing

https://www.youtube.com/watch?v=1ZXe9iczGok

The Prototype

Three Key Definitions

  • Prototype: An initial version (iteration) of a product used for testing and demonstration purposes
  • Proof of Concept: An actualisation of an idea for a software product
    • Used to engineer further requirements, clarify assumptions
    • Used to convince stakeholders on the viability of an idea
    • Illustrate a proposed product to stakeholders
  • Minimum Viable Product: The most bare-bones functioning version of a product that is still usable

Teamwork Revisited

Proactive vs Reactive

  • Take initiative to solve problems early (Proactive) rather than waiting for bad things to happen (Reactive)
  • A typical group project scenario: skeletons build up in the closet
  • Course policy:
    • If there's a problem, raise it with (1) the person/people involved and (2) your mentor
    • Keep open and communicative about problems
    • Marks will end up fair, as long as you have been communicative throughout the term
    • Escalate concerns to se2021@cse.unsw.edu.au
  • Pendulum: Remember to try and relax

Nick's 4 Pieces of Advice 

1. Leave your ego at the door

2. Provide feedback on people's behaviour, not their character

3. Spend time understanding the other people

4. It's meant to be hard