Teamwork is working together. This lecture was developed by Wei Zhang, my graduate student studying interdisciplinary teams. I later supplemented the lecture with content from Joana Wolfe’s “Team Writing: a guide to working in groups.”
A team does not function in isolation. The team functions in a context. Society of which are called stakeholders. We can consider stakeholders as members of a broader or expanded team. Even what we consider as the core development team is diverse.
Development Team Composition
User centered design process requires a mix of skills. So, modern software is developed by teams composed of members with diverse skills. These teams can be composed of:
- User Experience (UX) Experts
- Content Creators
- Software Engineers
These team members need to work together effectively for a successful project.
User centered design process typically has important stakeholders that are not part of the core development team, for example:
- Domain Experts
- Project Managers
- Product Owners
Although these stakeholder are not team members, they need to work effectively with core team for the project to be successful.
Even the development teams involved in this course is surrounded by a stakeholder network. The figure below illustrates the stakeholder network for this course when the course was a collaboration between three courses and two instructors. The core development team was composed of students from a Computer Science course and a Humanities course.
The stakeholder networks depicts the interactions between the stakeholders in projects. Nodes (circles) represent the stakeholder and links (arrows) represent the interactions. You can think of the interactions as links of communication between the stakeholders.
The core development team for this course was composed of CS and HU students. The CS students are backend developers and the HU are frontend developers. The core team must interact with:
- Graduate Students = UX experts
- Scientists = client
- Instructor = Project Managers
- Users = although virtual, team must still consider the potential users.
Your team must work and communicate effectively with the other stakeholders for the project to be successful.
It is well know that stakeholders external to the team have difficulties communicating with the development team.
- Clients and software developers speak different languages.
- Programmers rather interact with people who understand coding such as testers.
- Even within the team, designers, content creators and programmers have challenges communicating.
- In general, programmers rather work in isolation. But working in isolation will not always produce effective software for others.
Wei has studied the dynamics inside teams and the conflicts within the team. Team conflicts can be categorized into:
- Interpersonal Conflicts – These are conflicts between individual normally personality conflicts. They tend to be very emotional conflicts.
- Task Conflicts – These are conflicts about the project. They tend to be less emotional.
In pass instances of the course, both CS and HU students complained and suggested:
- Need more communication from others
- Need team leaders
Task conflicts resolution suggestions:
- Need more defined roles and tasks.
- Better understanding of each team member’s contribution.
Note all, both CS and HU students, suggested:
- Earlier development – begin development sooner
But typically student developers delay development. Delaying development adds more pressure on the team, and it frequently results in poor products.
Team Collaboration Methods
There are basically three methods for collaborating:
- Face-to-Face. The team sits around a table discuss and work on the project.
- Divided. The team divides the work into separate tasks and individual team members work on the separate tasks in isolation.
- Layered. Each team member has a specific role. One team member initiates a component of the project and then passes the work to another teammate to continue the work by performing a different role.
We all are familiar with the face-to-face collaboration associated with meetings. Because of the structure of programs and programming languages, computer scientists frequently collaborate by dividing the program into “classes” or “functions” and then team members code in isolation. Perhaps we are not very familiar with layered collaboration. Some examples are writing a document in which the author writes the initial draft and then the editor edits the document. A example in programming is a programmer writing the code and then a quality assurance person testing and debugging the code.
The three collaborations methods have different advantages and disadvantages.
Consider alternating the team’s method of the collaboration while working on the project. Initially you may need face-to-face meetings to organize your team, plan the project and brainstorm ideas for your app design. Later you will want to employ divided collaboration to get specific task done in the project, but do not forget to use layered collaboration for revising and testing the app. You will also need face-to-face meeting to integrate the separate code and content into an app.
Building the Team
Teams are not automatically form effectively. We need to focus on what teams can do to make them more effective.
What is a team? Scientists say that “teams are social entities with high task interdependency and shared common goals.” Note the terms:
- “social entities” = people
- “high task interdependency” -> implies specialties are required for the project
- “shared common goals” = common purpose = is this the project?
Shared Goals and Creating Teams
Successful teams have members with shared goals. Meaning goals that are common with all team members. Identifying shared goals helps to form the team
In this course your team shared goals or common purpose may be:
- Develop a good app
- Complete the course with a satisfactory grade
But teams also work together and share information. They need to coordinate themselves and cooperate as the project changes.
Some techniques for building effective teams:
- Team members learn about each other, each team member strengths and weakness.
- Create share/common goals.
- Build a team structure, so they can coordinate.
- Develop a team process, so they can be effective.
We go into each of the categories in more detail.
Getting to know each other implies learning each other names. More than learning names you should learn and understand what each team member is good at. You should also learn the goals of each team member. You should find a role for yourself and the other team members, so that everyone is effective on the project.
Recognize that you have two goals. Project goals define exactly what you will accomplish during the project. But, you also have personal goals. These can be to get an “A”, to have a “comfortable workload” or to learn a new technology. Writing the team charter can help elicit team and team mates personal goals. Writing together the team charter helps to solidify (make concrete) the teams share goals and personal teammate goals. Also, team members can reference it later when there are decisions are made.
Team Structure: Team Leaders
For a small team, building a team structure generally consist of designating team leaders. (Larger teams can have larger structures.) Team leader’s typical roles:
- Monitor the project and keep team members on track
- Organize team meetings by scheduling the meeting and writing the agenda
- During the meeting, facilitate splitting the project into tasks by writing action items in the team minutes
- During the meeting, document decisions made by the team
- Monitor team process and improve the process
In addition, if needed the team leader may
- Send email reminders of deadlines
- Communicate with the client
- Communicate with the instructor
- Produce or assign additional documents, such as project plans, team charter and progress reports.
Team leaders have different styles, but the best team leaders are not “bossy.” They facilitate the team and work with the team.
Team leaders do not have to lead for the entire project. As the project changes, different team leaders can evolve as the appropriate leader.
Because our teams are working on a complex project, developing a web app, the teams should have two team leader. The team leader called the product owner and the and a team the technical leader. Besides monitoring separate component of the projects, the two team leaders can divide the work among themselves, for example the product owner can be responsible for communicating with the client and the technical leader can be responsible for structuring the code and scheduling tasks.
There are different team processes. I am sure that you have heard of the “Agile” process which is a team process. Generally team process depends on communication within the team and monitoring the progress of the project.
Communication can via emails or in-person during meetings. If the meetings cannot be in-person consider using video conferencing software such as google hangout or zoom. Although video conferencing can work, it is more difficult than in person meetings.
Some aspects of communication that you should use:
Using emails: Make the subject line effective, for example
<project name> – <specific topic>
Be responsive in your reply, less than 24 hours, especially when organizing meetings
During meetings: Begin the meeting stating the goal for the meeting. This helps focus the meeting. Use a structure for your meeting so that everyone can contribute. Examples are “round table” or “voting.”
Roles for meetings/email can include:
- Tasking the project – this is more appropriate initiated in meetings, but details can be by emails.
- Difficulties or seeking help – this can occur in email.
- Consider work jams – more effective in solving problems and coordinating team contributions.
Although the structure of this course helps to monitor progress, your team will need to do some of its own progress monitoring. This is especially true when you start implementing the app. Two major documents for monitoring progress:
- Development timeline – typically made at the beginning of the project.
- Burnt down chart – typically made while working on the project.
In this course the list of project assignments creates a timeline for monitoring progress. An assignment in this course will have use the list of project assignments to create product back log for a burn down chart.
There are three important team documents. The team charter is for initial organization of your team. The other two documents are associated with team meetings. The meeting agenda is written prior to meetings and the meeting minutes are written during the team meeting.
The meeting agenda is just a list of topics to be discussed during the meeting. The agenda helps to keep the discussion on track and assure that a topic is not forgotten during the meeting. The agenda also assures that the meeting is truly necessary. It also helps team members to prepare for the meeting because they can begin researching and thinking about the topics on the agenda.
To allow team members to prepare for the meeting, the agenda should be emailed to the team prior to the meetings. The email should also give the time and location of the meeting.
Example email announcing team meeting and meeting agenda
TO: Team Fox FROM: Jean SUBJECT: Agenda for 1/20/2018, 1 pm in Library Hi Team: We are meeting at 1 pm on Saturday, 1/20/2018, in the Library. Agenda: * Write team charter * Begin designing team website * Prepare for scientist meetings Please let me know if anything else should be added to the agenda. Thank you, Jean
Conducting meetings without an agenda runs the risk of a disorganized and ineffective meetings. Without a clear agenda there are risks:
- Poorly managed time during the meeting
- Team member come to the meetings unprepared
- Unnecessary meetings
Meeting minutes are the results of the meetings. Meeting minutes are not individual note taking during the meeting, rather minutes document decisions made during the meeting.
Meeting minutes contain 5 items:
- Action items. This is a “to do” that delineates the current project tasks and who will preform the tasks.
- Decisions. A list of the important decisions made by the team. If possible give the rationale for the decision. A rationale assures that the decision persists. Without a rationale, later a someone may question the decision.
- Next Steps. A list of questions or tasks that should be discuss in the next meeting.
- Attendance. A list of all that attended the meeting. This gives ownership to the decisions made during the meeting.
- Date and Title. The date is essential to give the team minutes context within the project.
Meeting minutes should be completed during the meeting and posted on the team website by 24 hours.
Example meeting minutes for Team Fox.
Fox Project Meeting Minutes January 20, 2018 Attendance: Alex, Alica, Steve, Jean, (Phil absent because sick) Action Items: Alex: Format Team Charter and upload to team directory Steve: Begin implementation of the website Alica: Email instructor that team charter posted Phil: Schedule room for scientist meeting and email scientist Jean: Prepare meeting notes with scientists Discussions: Team charter: * Team goals is producing app appropriate for elder users because we like the challenge * Team decisions made by vote, so that each team member has a voice * Unacceptable work decided by team leaders because leader understand the project requirements * 3 unacceptable work is grounds for dismissal * Team leaders will remind team members of missed deadlines Team Website: * Simple home page with team name with navbar linking assignments because obvious navigation Prepare meeting with scientists * Determine characteristics of users so that we know of an usability issues * Determine data required by scientists to assure that app satisfy scientist * Determine any special protocol because can help with interaction design Next Steps: * Meeting to discuss results from meeting with scientists * Begin user analysis * Begin task analysis * Refine team website
Meeting minutes is a historical document that gives a timeline of team decisions and the progress of the project. Without a meeting minutes there a danger:
- Waste time. Without minutes, team members forget the decisions that were made and revisit the issues of the decisions.
- Proceed without consensus. The meeting minutes make concrete the team’s decisions. Without documenting decisions, team members may have different interpretation.
- Forget Important Details. The minutes are a reminder of what was discussed.
- Encourage slackers. The minutes publicize the commitments of each team member and pressures every team member to perform.
The team should spend an hour during their first meeting to write a team charter. The team charter is a mechanism for members to get know each other in respect to the project and to organize the team. Writing a team charter provides an opportunity for the team to decide on it goals. Also individual team members can express their personal goals for the project and any constraints that they may have to work on the project. In addition writing the team charter, the team decides how it will organize itself and handle disputes.
A team team charter should consist of:
- Team name
- Contact information
- Proposed team meeting times
- Team goals
- Personal goals
- Individual level of Commitment
- Other information about team members that may affect the project
- Team governance
- Members’ Expectation
- Grounds for dismissal
- Signatures of all team members
The discussion leading to the writing of the team charter is just as important as the charter. The team charter has two major outcomes:
- Opportunity for individual team members to express their goals and any concerns that they might have working on the project
- Deciding how the team will behave and expectations of team members
Team Name and Goals
The team name and goals begin the process of making the team. The team name gives the team an identity. The team goals give unified goal for the team. Examples of team goals:
- Making a creative app
- Making an app that satisfies client’s needs
- Making an usable app
- finishing the app
- Making an app with instructions that a novice can use
- Making an app that insures correctly recorded data
Do not list “getting an A on the project”, rather be more specific and specify what you think is required to get an a A, for example “completing all the assignments on time.” Note that different team members can have different ideas how how to get an A. Talking about specific goals for the project allows these differences to be discovered and discussed.
Personal Goals, Individual Commitment and Other Concerns
Teams are composed of individuals, and individuals have personal goals, differences in the level of commitments and other concerns. The team charter can help elicit the individual goals, commitments and other concerns.
Example of personal goals:
- Improving my programming skills
- Learn how to make a website
- Improve my writing skills
- Contributing to an app that I can talk about during job interviews
- Get through the class with as little work as possible
The last goal probably will not have much support from the rest of the team. But if that is truly your goal it is best that it made clear upfront, so that the team can decide how to manage the situation and that you do not become a negative contributor.
Eliciting individual goals will help later, when the team decides how to distribute tasks.
Team members have other concerns that may effect their work on the project. These can vary from personal commitments that will make them unavailable during some of the development to concerns about skills and knowledge to perform tasks.
- An athlete expecting to be at meets during the year.
- Irregular work schedule that might interfere with the team
- Concerns that about programming skills
- Concerns about writing skills
These concerns should be made clear to the rest of the team so that they can plan ahead and figure out how to deal with them. For example, if you are not available during the later half development, the team can give you more work during the first half of development. If the team know ahead of time that you will not be able to make some meetings that can keep you informed by email.
Team Governance: How to overcome differences
While designing and developing the app, the team will have many decisions to make. Not every decision will have agreement from all team members. There are several ways to overcome disagreement about decisions
- Consensus – Team discusses the issues until everyone agrees
- Voting – The team takes a vote and majority wins the vote
- Third party decides – Present both sides to a third person who decides
There are advantages and disadvantages to each method of deciding
Member Expectations and Grounds for Dismissal
An important aspect to the contract is delineating expectation for members. These expectations can include:
- Meeting attendance
- Preparing for meetings
- Attendance at work jams
- Timely work
To enforce these expectations, your team needs a procedural for dismissal of team members. A member dismissed from the team will not be able to pass the course, so dismissal is very serious and requires a well-defined process.
Finally, all team members sign the contract.
Outline of the team charter can be found in resources/TeamCharter.docx