Every now and then, somebody has asked me “what should my team look like”? Is there a formula for how you can structure a technical team to be ready for a Sitecore implementation project and then the maintenance afterwards?
I’m sorry to say: there is no such formula. Every single project is different, and how you put your team together is completely dependent on what the requirements are.
I know, this is the cop-out of every senior person you’ve ever spoken to, but hopefully I can offer my thoughts on some of the things it depends on.
The standard ‘Scrum’ team
By default, if you don’t know anything about what scenario you are walking into, you can probably work from a typical ‘Scrum’ template and adjust as needed. I think many implementation projects can structure with a medium-sized group that looks like this:
- Product Owner/Business Analyst: This person focuses on the business requirements and will ensure that the team knows the “What” and the “Why”. They can also engage and coordinate stakeholders to get buy-in and socialize progress.
- Project Manager/Scrum Master/Lead: This individual ensures the team is running, removes obstacles, forecasts, manages, etc. I find this role’s involvement is HIGHLY fluid from project to project and in some extreme cases you may actually need multiple people handling some of this, especially if a lot of external groups are involved.
- Technical lead/Solution Architect: I would expect this role to be somebody senior from the technical group who can own the overall vision of what is being done for the whole solution and is often involved with other leaders, stakeholders, etc. They support and lead the technical team, but often need to be involved with the business to be ‘the face’ of the technical team.
- Creative/UX: These folks are usually involved more heavily up front and at regular ‘checkpoints’. Depending on requirements, a project may need agency-like folks for design of the look and feel, as well as the user experience. If you already have very strict brand guidelines set to go, as well as overall design guidance, you might lean more to the User Experience than the Creative side. For smaller projects, it would be great to have somebody who is good at UX and also defining business requirements so you can collapse those roles, but you need somebody special who can do both of those well.
- Quality Assurance: Somebody needs to be in charge of ensuring quality. This is often done in a ratio of somewhere between 25-50% of the development team size, depending on the quality requirements of an organization or project. For example, if you had 4 developers churning out new features and changes, having one or two people focused on validating the functionality can work.
A NOTE ON CROSS-FUNCTIONAL TEAMS: If you have developers who can also spend time on quality assurance through test automation in some way, you can collapse this a little bit. It can be hard to find good testing professionals, so you might have to sacrifice this a little and hope you have some folks on the dev team who can get you part of the way there. If you have extreme compliance or security requirements, I don’t recommend this at all!
- Development: Assuming you have one QA professional, I would suggest you can probably guess at about 4 devs with a mix of skills to handle what is needed for the project (DevOps, front-end, back-end, system integration, automation, infrastructure). If the team grows beyond this overall size, I think you might need to consider having multiple teams that are handling different elements of the project.
The crew can then iterate for however long is needed to achieve the requirements, assuming the timeline and budget is flexible. If more work needs to be done than can be handled by this size of group on the timeline, you likely need to go to a Team of Teams approach and have multiple groups delivering your solution, with an overseeing team that aligns the various groups.
All of this staffing/team structure changes based on requirements, timelines, priorities, and available skills. (i.e. some tech leads can also do some project management, but only if demands on their tech lead or PM duties don’t prevent it). I’ve been on small groups where I needed to play all the roles and some where we collapsed two or three roles together and shared the load. You work with what you have!
At some point, your team will go into an ‘operations/maintenance’ mode where the big push is over. That team usually looks very different. The team might be crewed with more junior team members who have all the basic skills required, or it may shrink to a much smaller team of more senior folks who are cross-functional and can cover for multiple of the previous roles. Essentially, I suggest you staff this based on the skills required by the organization to maintain ongoing requests for enhancements, meeting SLAs, etc.
It depends. But what does it depend on?
So I said there was no formula, then I gave a template… so which is it? Well, the template is helpful when trying to do some basic estimates, but doesn’t really match the reality that every project has different needs. You’ll notice I haven’t even talked about Sitecore products yet… we are at such an abstract level that we don’t even know yet what type of problem we are trying to solve!
Here are some questions I would usually try to answer for a project (I am probably missing many):
- Is this a major rebranding that requires brand people?
- Is this a ‘refresh’ that requires creative design folks following existing overall brand guidelines?
- Does the organization already understand what personas and user problems they are trying to solve? Is research required here?
- What are the marketing/SEO/business requirements for success? Does the team have people who understand how to design/build for those requirements?
- Is this migrating from another system? If so, does the current source of data need a content ROT (Redundant, Out-of-Date, Trivial) analysis prior to a migration?
- Is this an upgrade from an older version? If so, how long ago and what is the complexity of the upgrade?
- Is this a brand new project?
- How many stakeholders are involved that need to be coordinated and will have voices into the process?
- Lots of backend integrations? Lots of front-end integrations? Headless? MVC?
- What are the requirements for automation of deployments and testing?
- How much work needs to be done, as estimated by the technical lead?
- How many external parties need to be coordinated?
- What is the flexibility on budget?
- What are the timelines? And what dates are not moveable?
- What is the quality level that is deemed ‘acceptable’? Are any of these required: unit testing, integration testing, test automation, stress testing, endurance testing, user acceptance testing, regression testing, penetration testing, accessibility testing, etc.
- What is the complexity of the work being requested? Is this something the team has done before?
- Does the team already have experience with the development and infrastructure technology or do they need training and time to make mistakes?
- Are multiple products involved (even multiple from Sitecore)? Does the team have expertise in any of them?
- Are you working with an external implementation partner or doing it all yourself or trying to create a hybrid team?
- Who is going to support operations after launch? What does an operations requirement look like in your situation?
- Will there be both operations and implementation happening at the same time (continuous delivery)?
- What is the process at the company for making changes to the production end-user application?
- Are there specific accessibility requirements that need to be met?
- What other compliance regulations are at play that impact the work? Is there anybody that knows about these?
And probably a lot more variables! If I’ve missed some, let me know and I’ll add to the list!
For the budget-conscious
Right now, a lot of corporations are looking at budgets and wondering where they can cut or where they can maximize return on investment. If the risk on delivery is low, and you have some (or a lot) of budget restrictions on what you can hire, you probably can go with getting one or two senior people with a variety of skills and have them learn the rest along the way. Give them the time to make mistakes and learn new things. This is not optimal for what you can deliver, but sometimes keeping the costs down is the priority.
Ask an expert
If you want to get it done right, and staffed with the right experts, ask an expert. Typically, a technical team that knows the technology involved should gather all these details as part of a ‘discovery’ and then can provide an estimate/blueprint of what a team makeup would look like. Without knowing these specifics, you will have no idea what skills you need and you cannot assume every individual can fulfill every role.
If you are wondering who you need to hire to make your team a success, I strongly recommend you find an expert (not me!) to provide a consulting engagement to help you understand the specific needs and what type of team and skills you need to hire for.