Agile and Effective Teams
Overview
There are many different ways to go about organizing large teams and projects. A popular current approach is called Agile and today we’ll be learning about how to follow this methodology, the history behind it, and getting setup for the term.
Basic Learning Objectives
Before class, you should be able to:
- Identify the characteristics of effective teams
- Understand the basic components, mindset, and structure of the Agile development process
Advanced Learning Objectives
After class, you should be able to:
- Explain how Agile fits into the history of development processes
- Setup your machine for development of database-backed websites in this class
Readings
To achieve the basic learning objectives, you should read the following:
- Google’s writeup on Project Aristotle, a long-term study Google conducted on the characteristics of effective teams.
- An Introduction to: Agile Software Development
- (Optional-ish) Python Tutorial (if it’s been a while since you used Python)
- (Optional) Kanban vs. scrum
Checks
Write down answers to the following questions and bring them to class:
- What is Agile?
- What are the 4 tenets of the Agile Manifesto?
- What is the difference between a scrum and a sprint?
- True or false: The backlog is a static (unchanging) part of an Agile project
- What are the three components of a user story? What is the purpose of a user story?
- What are one or two of the values and/or principles of Agile that you have a strong reaction (positive or negative) to? What is your reaction and why do you think you have it?
- In your experiences working with teams/pairs, what were some specific characteristics of the most effective pair/team collaboration experiences?
- What were some specific characteristics of the least effective pair/team collaboration experiences?
- How do your experiences match with the characteristics of effective teams from the articles? How do they differ?