Working in a team

Because of the rapid pace of technology development and market requirements, most web and application development is done by integrated teams. No one person can do it all themselves. It takes a team of specialists working individually and cross discipline to be successful.

Some of the roles that are needed are:

  • Project lead – responsible for planning how the individuals in the team can work together to complete the project. This is usually done in cooperation with the whole team to come to consensus on next steps and how to keep the project moving.
  • Design lead – responsible for the technical design and requirements for each major piece of the solution. This person is responsible for making sure that the contribution of all the team members will fit together and produce a good product.
  • Database designer – much of the interface between the different parts of the solution are stored in a database. This person designs the specific tables, columns, and indexes needed to ensure proper communication and integrity.
  • Lead coder – this coder is the lead and will establish and enforce coding standards and facilitate code reviews.
  • Coder – an individual contributor that writes one or more specific code components. They may be front end, back end, or full stack coders depending on the languages they are proficient in. They will also design and write functional tests that ensure proper operation. These tests are often referred to as unit tests because they test the function of a specific code module.
  • Tester – a person responsible for designing an implementing test suites that ensure that the individual code components operate together. This person will often work with the individual coders to ensure their unit tests are properly written.
  • Documenter – works with the individual team members to understand how their contributions work and writes functional internal documentation and/or end user documentation. The documentation may be in the form of a user manual but will also likely have on screen components such as roll-over tool tips or info links like ⓘ.
  • Source controller – ensures that all of the artifacts of the team members are properly kept in a repository and that all changes to those artifacts are also captured in the repository.

Software engineering team processes

Team tools

The team processes are often facilitated by specialized software. Here is a list of some of those.

Build your brand

The best way to build your skills as a team player and move up to more responsible positions is to find a role that you can already fill and join a team. With a little effort you will be able to learn more about the other team members and their roles as well as learn more about the larger project. As you develop your skills you can build a reputation of trust. Open source software projects are a great opportunity because they depend on volunteer contributions. But, it should be noted that all work done for open software projects is not done for free. The companies or organizations that rely on open source software often have specific needs that are not necessarily shared by the community at large. These organizations will often pay their employees, or outside developers, to work on their special needs. A close friend of mine does exactly this at SAS where I retired from.

Many open source projects are dependent on other open source projects. Working on one can give you valuable skills and understanding that can be a gateway to other projects.

Finally, you can build relationships with other developers and learn of other opportunities.