Skip to content

1. Organizational Structure

Abbey Jackson edited this page Jun 12, 2017 · 16 revisions

Organizational Chart

Please see the Business Team Structure page to learn about our various volunteer roles and their duties.

Please see the Project Team Structure page to learn how projects are structured and the role of each person on a project.

The Role of a Team Lead

While the role of a Director (someone who is on the Board of Directors and is responsible for a full department) may be easily understood, the role of a Team Lead may not be as obvious. At CodeDoesGood your team lead is not the same as a team lead you may have at your place of employment because we promote collective decision making, autonomy, and try whenever we can to have opportunities to empower our volunteers to self-manage. Every person on a team has the same level of control. Decisions should be made together as a team. No one person is in charge. The Team Lead will however have additional responsibilities:

  • The Team Lead is a member of the core business team. They are CodeDoesGood’s liaison with the team they are on. Requests of the team will be channeled through the Team Lead. For this reason they need to be available on Slack most days of the week and respond within a day whenever possible to messages from the business team.
  • The Team Lead must ensure work gets done. This does not mean they do the work themselves. What it means is they need to oversee the team’s tasks. If a teammate is not able to perform their tasks that week or is otherwise MIA the Team Lead either needs to jump in and get the tasks done themselves or they need to bring on another volunteer to help temporarily.
  • The Team Lead is not a manager. If there is an issue with a teammate they should bring that issue to their director for resolution. If a teammate is not performing their tasks the Team Lead can work with the teammate just as all teammates should work together. We expect teams to be friends, not foes. But if a teammate has gone MIA or is consistently not doing their work a Team Lead should reach out to their director and they will contact the teammate to see what’s going on.
  • The Team Lead does have one management style duty: The Team Lead is responsible for their team's project board. For a business team these are located on the main CodeDoesGood GitHub account. For development teams the project board will be attached to the repository they are working on. The Team Lead should check their team’s tickets weekly. If a teammate has an open ticket but is not updating it, it is the Team Lead’s responsibility to get that ticket updated. If there continues to be issues with the teammate not updating the ticket remember that one of our very few rules is to update tickets. In this situation the issue should be referred to the Team Lead's director to be dealt with.

The main take away here is that the Team Lead needs to be the most autonomous person on the team. They need to be comfortable taking action when they see that action needs to be taken and they need to be the kind of person that is capable of watching for when action is needed in the first place.

Distribution of Responsibility

Because we are a volunteer run organization one of our guiding principles is to make efficient use of volunteer time. This can only be done if people take responsibility for specific roles so that we can trust there are no gaps in the process.

At CodeDoesGood people are responsible for their own work but they are also responsible for watching the next person down the line after they hand their work off. This is easiest to explain by walking you through our project process.

  • You are the Product Supervisor who is responsible for overseeing creation of the project specification document, staffing a project, and then passing the project to design. After you have passed the project to design your actual work is complete. You are now responsible for watching that the design phase happens. You are responsible to watch the design phase until the design phase completes.
  • You are a designer who is responsible for getting a design made and approved. After your design is approved your actual work is complete. You are now responsible for watching that development begins. You do not have to watch the entire process but you do need to watch until the developers are adding code to the project.
  • You are a developer on a project, of any level (Lead, Hatchling, Assistant Mentor, or Developer). Your actual work is done when the project is either complete or you leave the project early. However you are also responsible for watching the other platforms on your project to make sure they happen.
  • You are a lead mentor on a project. You of course are responsible for the project completing however once that actual work is done you are responsible for watching that the next person in the process takes over (in most cases this will be marketing for a CDG project or the client acquisitions person for the second project)

The key to remember is whenever your actual work is done, you are responsible for ensuring the next person the work is handed to, the next step, is done.

If you find that the work is not done please contact the director responsible for that department.

Projects

Each person on the team has approximately the same level of authority with Lead Mentors having slightly higher access permissions to sensitive data and more responsibility for ensuring project integrity. Each person on the team has administrative access to project related accounts and everyone is expected to make decisions together with their teammates. Each teammate's opinion and experience matter and are valued by the team. Please read our article on Distributed Authority to learn more of what this means.

Each project is composed of platform teams (that is iOS, Android, Web/Backend as required). Each platform team will be made up of one or more experienced developers (Mentors) and one or more inexperienced developers (Hatchlings). One Mentor will be the project lead (Lead Mentor). All platforms together make up the project as a whole and they will fall under the jurisdiction of one staff member or senior volunteer (Project Organizer). Lead Mentors will be responsible for their project however if there are duties related to the project as a whole and not specific to the platform, or if there are media requests, complications with the client or serious disputes these should be referred to the Project Organizer.

The Lead Mentor's primary duty will be to keep the team in good working order. They are there when a new Hatchling is stressed out and needs guidance, they are there when disputes are occurring, they are there to help guide discussions when the team is lost. While each developer on the project has the right to speak to the client, other projects, the founders, or even third party services, the Lead Mentor will also be the main point of contact when one is needed.

Volunteering

We have a lot of positions available for self-motivated autonomous people who know how to do what needs to be done without having their hands held. Anyone who is interested in helping in any way please get in touch.