L18: Collaboration, Managing People Flashcards

1
Q

What is collaborative SWE?

A
  • Any system developed by more than 1 person is collaborative
  • Collaboration could be based on any artefact or process
  • Requires a shared understanding of the system and communication mechanisms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are some challenges of collaborative development?

A
  • Forming teams
  • Distance: space, time, language, culture
  • Sharing knowledge
  • Coordinating activities and managing dependencies
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is distributed collaboration?

A

Projects that are globally distributed. They can leverage location-specific expertise, exploit specific labour markets and possibly reduce costs.

However, there can be obstacles in relocation, time, culture differences.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some tools for collaboration?

A
  • Version control systems (Git)
  • Trackers (keep track of issues, risks)
  • Build tools
  • Communication tools (synchronous and asynchronous) (Discord, slack, teams)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are some factors in people management?

A

Consistency
- Team members should all be treated in a comparable way without favourites or discrimination

Respect
- Different team members have different skills and these differences should be
respected

Inclusion
- Involve all team members and make sure that people’s views are considered

Honesty
- You should always be honest about what is going well and what is going badly in a project

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some personality types in a team?

A

Task-oriented
- The motivation for doing the work is the work itself

Self-oriented
- Motivated by personal success and recognition
- The work is a means to an end which is the achievement of individual goals - e.g. wealth, career progression

Interaction-oriented
- The principal motivation is the presence and actions of co-workers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the importance of teamwork?

A

Most software engineering is a group activity

  • The development schedule for most non-trivial software projects is such that they cannot be completed by one person working alone
  • A good group is cohesive and has a team spirit
  • Members are motivated by the success of the group as well as by their own personal goals
  • Group interaction is a key determinant of group performance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a cohesive group and what are its advantages?

A

In a cohesive group, members consider the group to be more important than any individual in it.

Advantages:
- Group quality standards can be developed by members
- Team members learn from and support each other
- Knowledge is shared
- Refactoring and continual improvement through collective work is encouraged

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How can we increase the effectiveness of a team?

A

People in the group
- You need a mix of people in a project group
- Software development involves diverse activities such as negotiating with clients, programming, testing and documentation

Group organisation
- A group should be organised so that individuals can contribute to the best
of their abilities and tasks can be completed as expected

Technical and managerial communications
- Good communications between group members, and between the software engineering team and other project stakeholders, is essential

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How should a group be composed?

A
  • Group composed of members who share the same motivation can be problematic
  • An effective group has a balance of all types
  • Flexibility in group composition can be limited, managers must do the best they can with available people
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How should a group be organised?

A
  • Small software engineering groups are usually organised informally without a rigid structure
  • For large projects, there may be a hierarchical structure where different groups are responsible for different sub-projects
  • Agile development is always based around an informal group on the principle that formal structure inhibits information exchange
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How should groups communicate?

A
  • Information must be exchanged on the status of work, design decisions and changes to previous decisions
  • Good communications also strengthens group cohesion as it promotes understanding
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some factors affecting group communication?

A

Group size
- The larger the group, the harder it is for people to communicate with other group members

Group structure
- Communication is better in informally structured groups than in hierarchically
structured groups

Group composition
- Communication is better when there are different personality types in a group and when groups are mixed in terms of gender, etc.

Physical work environment
- Good workplace organisation can help encourage communications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly