Skip to content

2. Business Team Structure

Abbey Jackson edited this page Jul 11, 2017 · 6 revisions

For information about team structure for projects and a description of each role involved with a project please visit the Project Team Structure wiki page.

Business Team Hierarchy

  • President
  • Director of Product
    • Client Discovery Phase
    • Product Supervision Team
      • Project Facilitators
    • Product Design Team
  • Director of Strategy and Funding
  • Director of Business Development
    • Client Acquisition Team
    • Marketing Team
      • General Marketing and Branding Team
      • Social Media Team
      • Digital Marketing Team
      • Product Marketing Team
    • Business Ninjas Team
  • Director of Operations
    • Volunteer Coordination Team
  • Director of Project Development
    • Dev Hatchery
    • Project Development Supervisor Team
    • Platform Development Teams
  • Director of Technology

President

The President is responsible for implementing the strategic plans and policies of CodeDoesGood. This includes general supervision of the ongoing tasks of the other directors.

Director of Product

The Director of Product is responsible for supervising the general flow of projects from idea until they are ready for development.

Client Discovery Phase

When a client comes to CodeDoesGood with an idea we will often have to go through a discovery phase with them as they will not usually have their idea completely mapped out. A Project Facilitator is assigned to work with the client and they will produce a product specification document for the client's project.

Product Supervision Team

With community generated projects a product supervisor is responsible for approving or denying a project based on whether or not it matches CodeDoesGood qualifications, assigning a Project Facilitator to any approved project, approving the project specification document submitted by the Project Facilitator, and ultimately staffing the project. The Product Supervisor maintains ownership of the project until it is handed to developers.

With client or [suggested](2.-Qualifying-Projects#suggested-projects_ projects the Product Supervisor will not approve or deny the project, this will be the responsibility of the Client Acquisition Team who brought the client or suggested project into CodeDoesGood. With these projects the Product Supervisor will assign a Project Facilitator to go through the Client Discovery Phase with the client and create the specification document. Suggested projects are handled the same way as client projects with a volunteer working with the person that made the suggestion through a discovery phase.

Project Facilitators

Before a project makes it to design a project specification document must be written and it is written by the Project Facilitator. The Project Facilitators do not have a team. They are individual volunteers working either alone or in groups to ideate and flesh out project ideas.

Product Design Team

Design will occur after the product specification document is complete. When the design is complete development is ready to start. The development teams should be able to use the design along with the project specification document to complete the project without any additional questions of those involved earlier in the process.

Project Teams

More information about Project Team Structure can be found here.

Director of Strategy and Funding

Currently there are no teams nested under this director but there may be in the future as CodeDoesGood leaves start up behind and starts really growing.

Director of Business Development

The Director of Business Development is actually two positions in one (Director of Sales and Director of Marketing) and it may be split into those two positions in the future. The Director of Business Development supervises and determines process related to Client Acquisition, and Marketing. After a client has been acquired the client contact is handled by the Director of Product and the Director of Business Development is usually not involved past that point.

Client Acquisition Team

The Client Acquisition Team is responsible to bringing clients into CodeDoesGood. They must ensure the client meets all qualifications. Once a client and the client's project needs are vetted to meet all qualifications the client enter the Client Discovery Phase with the Director of Product. The client's contact from the Client Acquisition team remains the client's contact for any concerns going forward. The client will work directly with the project team assigned to their project rather than having a middle man relay questions and solutions however the client's contact from the Client Acquisition Team will be the one responsible for any business level dealings with the client such as amendments to their contract or any disputes or concerns the client or project team may have with each other.

Marketing Team

Marketing encompasses both marketing for CodeDoesGood as an entity as well as product marketing. Marketing will primarily be done through digital methods such as social media and Google Adwords. Marketing may also encompass interviews with media and other media placements. The marketing team is responsible for creating marketing plans in line with CodeDoesGood's values and expected direction as well as executing those plans.

Business Ninjas Team

The Business Ninjas are a fun group of volunteers doing random business-side tasks. Developers may choose to join this team temporarily to help with a single specific task while they are waiting for a development slot to open up or a volunteer may be assigned to this team fully. Business Ninjas may do research, may create videos, may edit documents, or could be doing any number of things.

Director of Operations

Any business side task not being taken care of by the Director of Business Development or the Director of Strategy and Funding will be handled by the Director of Operations. The Director of Operations is responsible for maintaining the day to day flow of CodeDoesGood including responsibility for ensuring the integrity of the business project board on github and the business wiki.

Volunteer Coordination Team

Recruitment of new volunteers as well as removal of volunteers who violate policies and procedures. Additionally the Volunteer Coordination Team oversees training and onboarding volunteers. They work with other directors and team leads to recruit specific volunteers and to give volunteers assignments. They must ensure volunteer information is up to date in Mercury, our volunteer software.

Director of Project Development

Responsibility for the actual development of projects rests with the Director of Project Development. This includes anything needed for projects prior to projects actually being active.

Dev Hatchery

All mentors and all hatchlings are part of the Dev Hatchery. The Dev Hatchery maintains it's own wiki with articles which are helpful to development in general including learning to be a developer. The Dev Hatchery members will also be asked to perform random tasks, much like the Business Ninjas, except on the development side of CodeDoesGood. For example setting up and integrating Slack or Github Integrations, or maintaining and changing template projects.

Project Development Supervision Team

The responsibility for the projects themselves being developed rests with the Lead Mentors on each platform however a Project Development Supervisor will have a high level overview of the projects that are currently in action and will keep an eye on them to ensure a high level of project integrity is maintained. This means ensuring tests are being written, project code maintains conformance to the style guide, and pull requests are being properly reviewed as well as watching for projects that completely stall and require staffing changes. The Project Development Supervisor will refer staffing needs to the Product Supervisor.

Platform Development Teams

Once a project has an approved project specification document and design is complete it is handed off to the development teams. There is one lead mentor on each platform and they are tasked with getting the project running. Check out the Project Team Structure wiki page to learn how these teams are structured.

Director of Technology

Server maintenance and database integrity falls to the Director of Technology. They are also the person to turn to if there are any questions about which technology we will use. In case of confusion, disputes, or people simply not being able to decide they will have the final word.