Teamwork is working together. This lecture was developed by Wei Zhang, my graduate student studying interdisciplinary teams.
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
- 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 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.
The stakeholder network for this 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 that of interactions and communication between the stakeholders.
The core development team for this course is 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/communicate effectively with the stakeholder for the project to be successful.
It is well know that stakeholder 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 and programmers have challenges.
- In general, programmers rather work in isolations.
But working in isolations will not 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 the 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 the suggestion:
- Earlier development – begin development sooner
But typically student development delay development.
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 specials required for the project
- “shared common goals” = common purpose = is this the project?
For you the shared goals or common purpose:
- Develop the 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 must know each other, their 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 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 course goals. These can be to get an “A” or to have a “comfortable workload.” Write together a vision statement. Writing together the vision statement help to solidify (make concrete) the teams share goals. Also, team members can reference it later when there are decisions are made.
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:
- Organize and lead team meetings
- During the split the project into tasks
- Monitor the project and keep team members on track
- Monitor team process and improve the process
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 last for the entire project. As the project changes, different team leaders can evolve as appropriate.
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 project.
Communication can occur via emails and in person during meetings. If the meetings cannot be in person consider using google hangout. Although google hangout 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. Have a structure 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 this course structure helps to monitor progress, your team will need to some of its own progress monitor. 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. An Example.
Your team is required to write a team contract. This will felicitate organizing your team and resolving conflict.
In the team contract you will give your team name. You will also list all team members contact information: name, email address and phone numbers.
An important aspect to the contract is delineating expectation for members. These expectations can include:
- Meeting attendance
- Preparing for meetings
- Working meetings or work jams
- Communication within the team
- Organization of meetings
- Making decision
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.
The contract will designate the first team leader. Recall that the first team leader does not have to be the leader for the entire semester.
The contract should also include a “vision statement.” The vision statement will help your team to begin to have a shared goal. Do not make the vision statement too specific.
Finally, all team members sign the contract.