L18: Collaboration, Managing People Flashcards
What is collaborative SWE?
- 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
What are some challenges of collaborative development?
- Forming teams
- Distance: space, time, language, culture
- Sharing knowledge
- Coordinating activities and managing dependencies
What is distributed collaboration?
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.
What are some tools for collaboration?
- Version control systems (Git)
- Trackers (keep track of issues, risks)
- Build tools
- Communication tools (synchronous and asynchronous) (Discord, slack, teams)
What are some factors in people management?
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
What are some personality types in a team?
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
What is the importance of teamwork?
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
What is a cohesive group and what are its advantages?
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 can we increase the effectiveness of a team?
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 should a group be composed?
- 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 should a group be organised?
- 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 should groups communicate?
- 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
What are some factors affecting group communication?
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