Why share?

Overview

Teaching: 0 min
Exercises: 30 min
Duration: 0 min

Enumerating the benefits 5 min

In small groups, try to think of reasons people share code and software. Using the collaborative notes document, jot down any ideas you come up with, so that we have an overall list at the end.

Ideas

Some reasons that are commonly cited are:

  • Shared software can be built on by others
  • Shared code can be checked by others
  • Shared software can be maintained by others
  • Extensions to some software have to be shared due to copyleft licensing
  • It’s possible to audit and verify shared software
  • Sharing software helps you hold yourself to higher coding standards

Considering the concerns 5 min

In the same groups, try to think of reasons people might hesitate to share code or software. Again, use the collaborative notes document to jot down any ideas you come up with.

Ideas

Some reasons that are commonly cited are:

  • If I share my code, people will find mistakes in it, and that would be embarrassing
  • My software is badly built, or my code is messy, and it’s embarrassing
  • It takes time to learn how to share and do the sharing – time I don’t have
  • I don’t want to maintain my code or software, and I’d feel obliged to if I shared it
  • My software won’t be as impressive if people can see how it works
  • People could use adapt my software for purposes I don’t agree with
  • I worked hard on this code and I don’t want other people to benefit from my work

Your experiences 10 min

Now we have listed some benefits and concerns of sharing, go around your small group and have each group member identify two items that they have experience with. You can choose a benefit and a concern, or two benefits or even two concerns. For each one, share your experience of it with your colleagues. If you have time, add a brief note about your experience to the collaborative notes document, but the focus should be on sharing with your colleagues and listening to what they have to say.

Addressing concerns 10 min

We have a list of concerns that people in your workshops might have. It’s helpful to be able to provide some perspective on those concerns – we want to acknowledge that sharing can be frightening or difficult, but highlight that it is worth doing anyway!

Again, in your group, choose two of the concerns. If they are concerns you have or have had yourself, that’s ideal, but they could also be ones that you just find interesting. Go around the group, discussing each person’s concerns. Try to think of reasons why the concern should not hold you back from sharing your code and software. If you can’t think of anything, try asking the larger group or one of the workshop instructors or helpers.

Remember, it’s not wrong to have concerns! We believe that sharing data and code is important and that the benefits outweigh the concerns, and we’d like to help you understand why and give you any encouragement you need.

Key Points

  • People share code and software for many reasons

  • Shared software can be extended

  • Shared software can be evaluated

  • Bugs can be found and fixed