Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add section on teamwork #255

Merged
merged 8 commits into from
Jan 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* [Documentation](/best_practices/documentation.md)
* [Standards](/best_practices/standards.md)
* [UX - User Experience](/best_practices/user_experience.md)
* [Teamwork](/best_practices/teamwork.md)
* [Language Guides](/best_practices/language_guides/languages_overview.md)
* [Bash](/best_practices/language_guides/bash.md)
* [Java](/best_practices/language_guides/java.md)
Expand Down
30 changes: 30 additions & 0 deletions best_practices/teamwork.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Teamwork

If done well, working in a team can be more fun, more productive, and more effective.
There are both benefits and downsides of working in teams,
and the key is to work together in such a way that the advantages outweigh the disadvantages.

You can learn more about teamwork in [The Turing Way](https://the-turing-way.netlify.app/collaboration/new-community/new-community-teamwork.html#cl-new-community-teamwork).
Also checkout the [Teamwork for Research Software Development lesson](https://nlesc.github.io/teamwork-for-research-software-development/index.html) that we developed.

## How we do teams at the Netherlands eScience Center
![image](../images/teams-at-nlesc.png)
*Schematic overview of how teams operate at the Netherlands eScience Center*

There is not one fixed way of how teams operate at the center.
Even the definition of what a team is is flexible.
On one side there are formally defined teams in which engineers mostly work within the team and focus on a few projects.
On the other extreme a pair of two engineers that occasianally review each other's code can also already be called a team.
Checkout this [whitepaper](https://collegeville.github.io/CW21/WorkshopResources/WhitePapers/structured-unstructured-teams.pdf)
about the range of teams we have at the center.

Here are a few guidelines on working in teams (the above figure could help visualizing)
* Working in a team is optional.
* Teams are self-organizing, there is no boss outside of the team that tells the team what to do.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Teams are self-organizing, there is no boss outside of the team that tells the team what to do.
* Teams are self-organizing, there is no boss inside or outside of the team that tells the team what to do.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Team have no boss inside the team as well ;-)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nielsdrost thanks for your suggestion. This already has an ongoing discussion here: #255 (comment) I think this sentence covers the consensus from that discussion. I hope you agree?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think Niels' formulation makes sense too in a formal sense, because everyone can just decide to leave a team and hence there is no boss. Maybe mentioning the boss at all complicates things unnecessarily for the Guide? Just "Teams are self-organizing." could also suffice. The complete formal definition could be relegated to some internal document. I'm fine with either choice, just my 2cts.

* Teams should consider diversity in terms of technical skills, seniority and perspectives (for example gender, age, ethnic group).
* Teams are responsible for entire projects from start to finish.
* Teams are responsible for their own planning.
* Most engineers in the team are Lead Engineer on at least one project.
egpbos marked this conversation as resolved.
Show resolved Hide resolved
* Usually the team members commit most of the time to projects within the team.
* Engineers that are not part of the team can act as 'consultant' for the team. A consultant can for example bring in some expertise that the team does not have.
* It is useful to have someone in the team who has the role of team coach.
Binary file added images/teams-at-nlesc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.