This lesson explains the various team members and their role within the way of working.
We have found that in order to work efficiently on a project, creating smaller teams which can be joined together as required is the best approach.
The WoW is based upon a pod and squad structure. Each pod consists of a Web and Testing engineer development pair (senior and junior). One or more pods are part of a squad, along with a Designer and a Squad Lead (Scrum Master).
Typically, a development team includes one pod (web and tools), a designer and the squad lead. However, if greater velocity is required for a project, additional developer pods can be engaged. The designer and squad lead work across all of a squad’s projects.
A web engineer’s primary responsibility is the development of the customer’s application using the Codebots Platform. Web engineers are typically full-stack developers who are comfortable doing both server-side and client-side development.
The web engineer is typically involved from the scope stage onwards. During the scope, the web engineer is available to provide any technical expertise, and is the primary contributor to the Requirements Backlog (with assistance from the tools and design members). They will also work with the tools engineer to produce an entity diagram.
During the development phase, the web engineer is focused on planning the architecture of the product in the Build section of the Platform, and adding customisation using the protected regions in the code. Once the application has been developed, the web engineer may also be in charge of deploying the application.
The tools engineer is typically involved from the scope stage onwards. They are available during the meetings as a technical consult, and to also learn about the solution so they can more thoroughly test it.
However, a testing engineer’s primary responsibility is ensuring the quality of the application during the development phase. They create automated test cases for the user stories and work to ensure the acceptance criteria has been satisfied. After releases, they will run all automated tests, and work with the rest of the team to do any smoke testing which is required.
The testing engineer may also assist the web engineer with development tasks and deploying the application, but their priority is quality assurance.
A squad lead is a special role that is a mix between traditional project manager, a Scrum Master and a Scrum Product Owner. The squad lead is responsible for understanding the capacity of their development team, while also looking out for the customer to ensure that the best product is built. They can also act as a translator between the customer and the team, communicating progress and priorities in the best manner possible. The customers may not possess strong technical knowledge, and it is the role of the lead to communicate with them to provide updates on development in terms that they can understand.
Since the squad lead plays such a critical role in the project, they are involved from the scope stage. During the scoping stage, the squad lead manages the development team, focusing on helping them understand the product and working with them to determine the various milestones in the roadmap.
In the development phase, the squad lead is in charge of organising and running all meetings, and reporting back to the customer on progress, ensuring all parties are kept up to date.
The Designer is another role which changes in responsibility depending on which stage in the Way of Working the project is currently in.
During the brief stage, a designer will team up with an account manager to work with the customer to discover what problem they are trying to solve. Rather than produce design artefacts, the designers are there to facilitate design thinking using the Discovery Kit.
During the scoping stage, the designer is responsible for using the Discovery Kit to discover a deeper knowledge of the problem and desired solution. As part of the process, a prototype (or another form of designs) is produced and presented to the customer. The designer will also produce documentation from the Discovery Kit activities if relevant.
Once the project is in development, the designer will switch their responsibility to front-end development. They focus on styling applications to look and feel like the proposed designs which were created during the scope stage.
The account manager is involved from the very beginning of the project. They are often responsible for the partnership with the customer in the first place, and are in charge of educating the customer about the Way of Working before the project starts. Once it has begun, they are involved in all stages to ensure that the customer’s journey is successful.
The account manager becomes involved from the briefing stage, helping the customer detail the problem and discover the solution. The account manager compiles all brief and scope documents, and informs the customer of the cost of the project.
Once the customer approves and the project is underway, the account manager focuses on measuring customer satisfaction and overseeing invoicing. They are involved in all meetings they are available for, and are there in case communication between the customer and the team becomes difficult.
Customer (or Project Manager)
Within the context of the Way of Working, when we say “customer”, we refer to the person or persons that engage a project team for the intention of developing a piece of software. This entity could be internal or external, but they have a vested interest in the success of the project and a say in its direction.
It is expected that the customer has a basic understanding of the problem and proposed solution, and are capable of explaining it to the rest of the team.
During a brief, they work with the designers and squad lead to dive into their problem, to ensure they are building the correct solution.
In the scope stage, they impart their product knowledge onto the team, working with them to establish requirements and acceptance criteria. They will also work with the designers to facilitate user testing with potential users.
During the development stage, they conduct user acceptance tests (UATs) at the end of each iteration and provide feedback to the team on the progress and request changes.