Teamwork

ITEC 3870 Software Development II,
Anca Doloc-Mihu and Cengiz Günay

(License: CC BY-SA 4.0)

Prev - User Stories, Next - Version Control

Agile Principles lead to Teamwork

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 and Agile

Scrum is the most popular agile framework.

Scrum fulfils the vision of the Agile Manifesto by helping individuals and businesses organize their work to

  • maximize collaboration,
  • minimize errors,
  • deliver frequently, and
  • create multiple opportunities to inspect and adapt.

Scrum Team

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

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

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.

Scrum Values

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.

How does the Team do it?

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 instructor is part of the team, who is available during class time and on team channels

Client Meeting

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.

Client Meeting

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

Communication

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

Scrum

Prev - User Stories, Next - Version Control

Home