This lesson is in the early stages of development (Alpha version)

Lesson Title

Introduction

Overview

Teaching: 2 min
Exercises: 0 min
Questions
  • What makes for an effective development community that is also enjoyable to work in?

Objectives
  • Understand how this module fits in with other, more technically oriented modules in contributing to building an effective collaborative community.

Some points here about the other modules

Blah blah blah

Key Points

  • Building an effective collaborative community involves Social, Socio-technical and Technical aspects.

  • Other modules cover some of the technical aspects, such as Project Management, collaborative use of Git and GitHub, Code Reviews and Pair Programming.


Benefits

Overview

Teaching: 3 min
Exercises: 0 min
Questions
  • Why work collaboratively?

Objectives
  • Understand the benefits of building a collaborative community

Most real-world projects involve teams

- Too big to do alone ### Produce working code more quickly ### Better designs
- Consider more options ### Can be more enjoyable

Key Points

  • Most projects involve working together.

  • Most people produce better code and enjoy work more when they work with others.


Challenges

Overview

Teaching: 3 min
Exercises: 0 min
Questions
  • What are some challenges of working collaboratively?

Objectives
  • Understand challenges of working collaboratively

Logistics

Decision-making

Communication and coordination

Egos (personal factors)

Strive to become an egoless programmer

Key Points

  • Logistics, decision-making and communication all can negatively impact your ability to work effectively

  • Egos can be a significant problem. Strive to be an egoless programmer.


Social Aspects

Overview

Teaching: 3 min
Exercises: 0 min
Questions
  • What are important social aspects of building a collaborative community?

Objectives
  • Be aware of social aspects of building a community

  • Be able to apply these aspects to building your own collaborative community

Inclusivity

Codes of conduct and their enforcement

Attitude: “Our” vs. “My” software

Engaging with new contributors

Group practices

Key Points

  • Social aspects of collaboration such as inclusivity, conduct and attitudes contribute significantly to how effective and enjoyable work will be.


Socio Technical Aspects

Overview

Teaching: 3 min
Exercises: 0 min
Questions
  • What are important socio-technical aspects of building a collaborative community?

Objectives
  • Be aware of socio-technical aspects of community building

  • Be able to apply these aspects when building your own community

Remote Collaborations

- Meeting scheduling
- Need for more explicit communication
- Feeling “part of the team”
    - Getting to know each other ### Modes of communication
- Common terminology
- Helping people at remote sites ### Understanding team expertise
- Science
- Data
- Visualization
- Computer system and language

Key Points