SENG2021

1.3 - Teamwork 🏈

Project Management

In this lecture

 

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

 

 

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 problem in software engineering
  • We care more about quality than quantity in this course

The Waterfall Approach

  • 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"

  • 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

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

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

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

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?

Prototyping

  • An Agile approach involving building a Proof of Concept
  • Illustrates the proposed product to stakeholders
  • "Minimum Viable Product"  

Further Viewing

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

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

Constraints

  • What are the potential limitations / factors that prevent us from achieving the goal? 
  • What are things that will slow throughput?
  • In real life?
    • Time, budget, resources, expert knowledge...
  • In this course?
    • Time, knowledge, communication overhead

Theory of Constraints

  • Every process has a constraint, and the process can only be improved when the constraint is improved
  • "As fast as the slowest person"
  • https://www.leanproduction.com/theory-of-constraints/
  • The Goal

Theory of Constraints

  • Identify - what is the constraint?
  • Exploit - make quick improvements through existing resources
  • Subordinate - ensure all other links in the chain support the constraint
  • Elevate - further actions

Teamwork

  • Teamwork is hard
  • Professional maturity
    • Raising concerns
    • Making an active effort to resolve issues
  • Email se2021@cse.unsw.edu.au to escalate concerns
  • Reflect in your blog posts / resumes

SENG2021 1.3 - Teamwork - Project Management

By npatrikeos

SENG2021 1.3 - Teamwork - Project Management

  • 1,753