(License: CC BY-SA 4.0)
The agile process molds to the needs of the people and team
4. Work Together. Business people and developers must work together daily throughout the project (one team).
5. Empower & Trust. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. Face to Face Conversations. The most efficient and effective method of conveying information to and within a development team is face–to–face conversation.
11. Self-organizing Teams. The best architectures, requirements, and designs emerge from self–organizing teams.
12. Reflect & Adjust. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Scrum is the most popular agile framework.
Scrum fulfils the vision of the Agile Manifesto by helping individuals and businesses organize their work to
People are the focus of Scrum.
Scrum Teams include people with diverse skillsets; each team has all of the capabilities necessary to deliver a piece of functionality from idea to delivery.The CLIENT is part of the TEAM
The TEAM is in control of the work performed
Scrum Team includes three roles: Scrum Master, Product Owner, and Development Team.
The Scrum Master helps the Scrum Team perform at their highest level. They also protect the team from both internal and external distractions. Scrum Masters hold the Scrum Team accountable to their working agreements, Scrum values, and to the Scrum framework itself.
The Product Owner defines the what–as in what the product will look like and what features it should contain. Product Owner helps build and clarify the product backlog and ensures that everyone knows the priorities.
The Development Team decides how to accomplish the work set forth by the Product Owner. Development Teams are structured and empowered to organize and manage their own work.
Our Scrum Team includes three roles:
Scrum Master/ Project Manager In our classroom setting, the Scrum Master role is assigned to the Project Manager (PM).
Product Owner/ Client In our classroom setting, the Product Owner role is assigned to the Client. Note that in our class setting, Product Owner does not necessarily means that the person owns the product. Students must look at the project history and check with the instructor to find out the real owner of the project. Usually, there are several parts included.
Development Team In our classroom setting, each person in the team has the role of code developer. In addition, each team member has one or two more roles of the following: lead programmer, UI design, data modeler, client liason, documentation lead, test lead, project manager.
Commitment: Scrum teams work together as a unit, members trust each other to follow through on what they say they are going to do.
Courage: Scrum teams must feel safe enough to say no, to ask for help, and to try new things.
Focus: It means that whatever Scrum teams start they finish.
Openness: Scrum teams consistently seek out new ideas and opportunities to learn.
Respect: Scrum team members respect each other’s ideas, give each other permission to have a bad day once in a while, and recognize each other’s accomplishments. They show respect to one another, to the product owner, to stakeholders, and to the ScrumMaster.
All team members collaborate and work together to achieve maximum results possible.
Permanent Communication is the key factor for a scrum team.
Who is communicating?
team communicates with the client at least 1-2 times every sprint. This usually happens during the client meeting.
team has daily scrum meetings to communicate face-to-face with each other
team has tools available to communicate fast and easy with each other when needed - we have Discord
also, in our class setting, the instrucotr is part of the team, who is available during class time and on team channels
The CLIENT is part of the TEAM.
Agile principle #1 is Satisfy the Customer
Our [TEAM] highest priority is to satisfy the customer through early and continuous delivery of valuable software.
TEAM communicates with the CLIENT mostly via Client Meeting(s).
Client Meeting is a business meeting during which the TEAM presents a version of the product to the client for feedback and input.
happens at least once per sprint
is initiated by the team via the “client liaison” at a time that is convenient for both the client and the team
varies from very formal to casual depending on the client, and from 30 minutes to more than an hour long
in our class setting, although not required, it is best if the entire team participate to the client meeting
during the meeting the team must take notes for later
team MUST be on time to the client meeting
team must be prepared for the client meeting. How?
In our class settings, communication happens via several venues set up by the instructor:
Piazza/ Reddit - for postings of assignments, announcements, clarifications, etc
Discord - for fast Q&As between all team members, and available ouside the class time
Scrums - during class time, once a week for 15 minutes
Client meeting - this must be set up by each team outside the class time, and at a time convenient for team and the client. Instructor might or might not participate at this meeting.
Code communication - via meaningful comments on code and commits on the project’s repo on Github