Exercise - Work Teams#

1) Finding information#

Take a look at the GitHub repository for this book. Where is the information for licensing and contributing?

2) Add a Code of Conduct to your project#

Add a CONDUCT.md file to your Zipf’s Law project repository. Use the Contributor Covenant Code of Conduct template and modify the places that need updating (e.g., who to contact). Be sure to edit the contact information in both before committing the files.

3) Add a license to your project#

Add either an MIT or a GPL LICENSE.md file to your Zipf’s Law project repository. Modify the contents to include your full name and year.

4) Adding contribution guidelines#

  1. Add a section to the README.md file in the Zipf’s Law project to tell people where to find out more about contributing.

  2. Add a CONTRIBUTING.md file in the Zipf’s Law project to describe how other people can contribute to it.

Be sure to add it to the root directory of your Git repository, so that when someone opens a pull request or creates an issue on GitHub, they will be presented with a link to the CONTRIBUTING file (see the GitHub contributors guide for details).

5) File an issue#

Create a feature request issue in your Zipf’s Law project repository to ask that unit tests be written for countwords.py (we will do this in Chapter Testing).

6) Label issues#

  1. Create the labels current and discussion to help organize and prioritize your issues.

  2. Delete at least one of the labels that GitHub automatically created for you.

  3. Apply at least one label to each issue in your repository.

7) Balancing individual and team needs#

A new member of your team has a medically diagnosed attention disorder. In order to help themselves focus, they need to talk to themselves while coding. Several other members of your team have come to you privately to say that they find this distracting. What steps would you take?

8) Crediting invisible contributions#

Your team has a rule: if someone’s name appears in the Git history for a project, they are listed as a co-author on papers for that project. A new member of your team has complained that this is unfair: people who haven’t contributed for over two years are still being included as authors, while they aren’t included because the many hours they have spent doing code reviews don’t show up in the Git history. How would you address this issue?

9) Who are you?#

Which (if any) of the following profiles describes you best? How would you help each of these people if they were on your team?

  • Anna thinks she knows more about every subject than everyone else on the team put together. No matter what you say, she’ll correct you; no matter what you know, she knows better. If you keep track in team meetings of how often people interrupt one another, her score is usually higher than everyone else’s put together.

  • Bao is a contrarian: no matter what anyone says, he’ll take the opposite side. This is healthy in small doses, but when Bao does it, there’s always another objection lurking behind the first half dozen.

  • Frank believes that knowledge is power. He enjoys knowing things that other people don’t—or to be more accurate, he enjoys it when people know he knows things they don’t. Frank can actually make things work, but when asked how he did it, he’ll grin and say, “Oh, I’m sure you can figure it out.”

  • Hediyeh is quiet. Very quiet. She never speaks up in meetings, even when she knows that what other people are saying is wrong. She might contribute to the mailing list, but she’s very sensitive to criticism, and will always back down rather than defending her point of view.

  • Kenny is a hitchhiker. He has discovered that most people would rather shoulder some extra work than snitch, and he takes advantage of it at every turn. The frustrating thing is that he’s so damn plausible when someone finally does confront him. “There have been mistakes on all sides,” he says, or, “Well, I think you’re nit-picking.”

  • Melissa would easily have made the varsity procrastination team if she’d bothered to show up to tryouts. She means well—she really does feel bad about letting people down—but somehow her tasks are never finished until the last possible moment. Of course, that means that everyone who is depending on her can’t do their work until after the last possible moment.

  • Petra’s favorite phrase is “why don’t we.” Why don’t we write a GUI to help people edit the program’s configuration files? Hey, why don’t we invent our own little language for designing GUIs?

  • Raj is rude. “It’s just the way I talk,” he says. “If you can’t hack it, maybe you should find another team.” His favorite phrase is, “That’s stupid,” and he uses obscenity in every second sentence.