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
-
ManagerLeader 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
SENG2021: Project Management Part One - Agile Fundamentals (2024)
By npatrikeos
SENG2021: Project Management Part One - Agile Fundamentals (2024)
- 231