Working together is the default
When you work on a software project, data science analysis, or machine learning (ML) model you are working with a team of people. You work with people when framing the problem and then you separate into smaller groups or work by yourself for a while. You will check in with your team during code review or for feedback on your pull requests. And you will demo your work to people outside your team several times.
Whatever you work on today you are working together with people. It's the default.
Ever since the first general-purpose computer (the ENIAC), people have created new ways of working together to help them solve problems. Writing software, analyzing data, or building ML models all have ways for people to work together. Here, we describe three popular approaches to working together.
Pairing or Pair Programming is a way of working together that first appeared during the earliest days of software development and describes collaboration between two software developers sitting at one computer. It was formalized as a feature of Extreme Programming, a set of practices to make better software.
The argument in favor of pair programming is the time saved and fewer bugs created when people share their ideas and experience as code is written. The argument against is paying two people for the output of one. This idea of "Lines of Code" as a useful metric is debated - arguments weigh the quality of the lines of code against the idea that more lines of code translates to more work completed.
When Git was introduced as a version control system it changed how software was written. Before Git, version control systems were centralized and used file locking to check out code for editing; people worked together using in-person meetings and memos to collaborate on code.
Git is a distributed version control system. This means copies of code are distributed to each person, allowing them to work independently on their own branch
of the codebase. Each person's changes are tracked as diffs
or differences in files between branches. And when code is ready to be merged into a main branch, a pull request is created.
A pull request is the change that a person wants to make to the main branch. It is presented as a before-and-after picture of the code, so other people can review and provide feedback. The feedback provides an opportunity to improve the code, submit updates, and share context on the work with others.
Artificial Intelligence can respond to a prompt that describes a problem to be solved using code. AI generates code using a probabilistic model that was trained on a large set of code examples in a variety of programming languages. The result is a suggested approach to the problem that can be used to develop an actual solution.
When you use Generative AI, you are working with a model trained on other people's knowledge, expressed in their code and documentation.
Whether you pair program, collaborate on pull requests, or use AI to work together, you are always collaborating with people. Learn how PairSpaces makes working together easier next.