Team Structure and Purpose
For a more organized and professional software production organization,
I have drafted a team structure which I think will be good.
Currently
we don't anything close to the number of people we need to man all
these teams, so that means in the beginning, there will be a lot of One
person teams. This is fine for now. These individuals will learn what
needs to be done and be ready to lead others as they fill up the ranks.
The actual teams will be managed through Forums and our project
management software. Team members can join as many teams as they want
but are required to contribute to the specific goals set by team
leaders.
Business TeamsSales Team
The Sales Team's job is to penetrate large sites that could use our software for their benefit. We cant run really large sites, but there are definately sites that we can collaborate with build the brand for our software.
In the future the Sales team needs to target commercial sites that will actually
pay for implementation of rainbow.
Marketing Team
The Marketing teams job is to spread the word of the software. This may mean we have people speaking at user groups to explain what the software does to writing articles on sites like SitePoint, ASP.NET, and MSDN.
We also need to get proper link exchanges and partnerships with major Rainbow sites. As you can see the Marketing team also needs to be party public relations and make sure people have a good impression about our organization.
Distribution Team
The Distribution team job is to distribute software using every possible channel.
This means online software distribution, CDs or USB jump drives at user groups. Wherever the software is presented, access to it needs to it needs to be a nobrainer.
Distribution and Marketing are linked at the hips, but distribution is different from Marketing. Marketing spreads the word of the software while Distribution spreads the software.
Support Teams Documentation Team
The Documentation team is EXTREMELY crucial to our cause. The documentation team needs to understand the needs of customers. ( Designers, Developers, Site Owners, Administrators)
Issue/Bug Team
Issue and Bug resolution is also a nobrainer. This team needs to collect critical bugs/issues reported by customers and developers and prioritize them for our team to process.
Community Team
The Community team is incharge of our mailing lsits, forums, blogs, and any community related sites. It's job is to ensure the extended community runs smoothly and is informed about our progress so that customers feel confident about our process and our software.
Infrastructure TeamsDatabase Team
The Database team needs to consist of some solid DBAs and Database developers that can support an enterprise infrastructure for our team. These databases aren't limited to just our software, but for software like Forums, Blogs, Wikis, Issue Tracking, and project management Software.
Source Control Team
The Source Control team is responsible for all our software's source and configuration. This includes sandboxes and our environments. The Production teams will work closely with the Source Control teams to produce and release our product.
Web Server Team
The web server teams need to support all our sites at the system level and make sure that our web and application servers are tuned for optimal delivery of content and software.
Security Team
The security team needs to protect our infrastructures from evil hackers and malicious teenagers looking to disrupt our progress. They should be acquainted with threat modeling for web, database, and source control systems.
Sites Teams Site Deployment Teams
Staging
All content for websites needs to be in a staging environment before being published to production. Our current workflow in the software isn't really up to par to my standards so a new system needs to be made for this to work like professional sites.
Live
All Live content needs to be on a separate site from the staging site. These sites should be optimized and secured for public consumption.
Site Content Teams
Responsible for Site design, content creation, updates and maintenance. The Site content teams are closely linked to ALL of the teams as they are responsible for the face of the organization and publishing the content that needs to go out to customers.
Rainbow Home Site Team
Rainbow Customer Center Site Team
Rainbow Support Site Team
Production TeamsDesign Team
The Design team's job is design the best possible user and software interfaces for the next iteration of the software. I emphasize "next iteration" as I don't want our team to be in a constant design mode where we perfect something that's not yet created.
Developement Team
The development team's job is to understand the requirements and designs created by the Business and Design teams and start implementing them.
Architecture Team
The Architecture team's job is to understand the full state of the software and related databases and ensure consistency everywhere. Although closely related to design, Architects need to look at code and seek ways to improve and refactor the implementation by developers. At times they need to lead the developers and show them the way to make the software to be more solid and scalable.
Integration Team
The Integration Team's job is to take all of the pieces of code across all development areas and produce a piece of software that can be installed and tested.
Testing Team
The testing team's job is to take the product that is created and test it from all feasible angles to ensure quality, reliability, and scalability.
Release Team
The Release team's job is to create the deliverables for Distribution. This means making easy to use installers, upgraders, and migration tools.
As I end all my posts about needing people. Join our Team, we need you.