Like W.H. Murray said, “teams of ordinary people achieve extraordinary results.” Check out these simple and tested solutions for large team management.
“Teams of ordinary people achieve extraordinary results.”
W.H. Murray, Scottish Himalayan Expedition
Big teams can create amazing projects – but only if managed effectively. As ever, communication is the most important factor in building trust within a team. But, as soon as that starts to break down, then it matters not how much great talent is sitting around the table, because the likelihood is that it will be pulling in different directions and largely going to waste.
This is a shame, needless to say – especially when such situations are so easily avoided. With a large team of great talent, there must be an equally talented manager at the helm. Organisation is the key to success, and bringing to best out of each member requires the manager to assume the role of guide, champion, and key communicator between all – developers and clients alike – in order that the project flourishes to its full potential.
On the surface, the task of organising a team of talented, professional and intelligent workers seems rather straight forward. However, even with the most focused group of individuals in the world, sometimes human nature can get in the way, and the following issues may arise:
Teams may fall out of sync: Everyone needs to work at the same pace. When developers start working faster than the QA team, difficulties can very quickly arise that can often halt proceedings. It’s rather like a restaurant situation – if the cooks and kitchen team start blasting out meals faster than the waiting team can deliver, then there will very quickly become a backlog of customers’ food going cold. Synchronisation is imperative across all teams when there’s a single goal in mind.
Developers can interrupt each other’s tasks: Everyone needs to know what they are doing – especially in large team situations. Sometimes a developer may need help or advice from a colleague. This is fine, of course, but it will be the project manager’s (PM’s) responsibility to ensure that once the problem is solved, that neither members get distracted from their own tasks at hand. It can be far too easy for an interesting or particularly challenging problem that one person faces to quickly become the focus and discussion point of the whole team.
Improper delegation: It is important that project managers have the ability to pick out appropriate leaders of all sub-teams that are working on the various elements of a project. The distribution of responsibility is in fact the only way that success can be ensured when dealing with large teams. One person simply cannot be everywhere at once – and so project managers need to delegate responsibility to team leaders, who will report back to the PM in orderly fashion.
The obstacles outlined above are not unsolvable. As with anything, prevention is better than cure, and so at Netguru we have used our past experiences to devise some strategies that ensure that the organisation is maintained throughout our undertakings, so that there should never be a situation when a challenge is prohibitive to either productivity or to the quality of the final result. Below is a simple walkthrough of the strategies that we employ.
Daily standups: At the beginning of each working day, the PM organises a 15-20 minute meeting whereby any potential problems for the day’s work can be identified, and solutions can be sought before the work begins. These meetings are also used as opportunities to ensure that all members of the team are up to date with the progress of the project, knows exactly what they are doing, what their colleagues are working on, and what will be expected of them all by the end of the day.
Daily summaries: At the end of each working day, it is important that a progress report is produced by each member of the team. This is then summarised by the PM, who will then pass it onto the client. Keeping everyone in the loop in this manner eliminates the chance of problems occurring, or for any member to travel too far down the wrong path at any time.
Sprint planning: This meetup is organized weekly in order to set up project priorities for the team together with the client. After discussing the objectives for a particular week, the team prepares a weekly iteration plan so that all the parties involved are aware of the work schedule.
Sharing project management tools with the client: It is imperative that the client be informed as to the progress that the team is making. After all, it is the client’s project, and this is the only person who really needs to be satisfied with what’s being produced. Therefore, the client needs to know what is being worked on when and by whom, and what’s the flow when giving feedback to a particular team member. It will be the job of the PM to ensure that these pathways are made available.
Technical Leadership: The leaders of all sub-teams will work with the PM to divide the development work into smaller chunks and tasks, and from there share the work amongst the development team in the most appropriate fashion.
Divide team into smaller groups: Large teams will be divided into sub-teams, and, even these can be divided into smaller groups again. In this fashion, when using a management app like JIRA for instance, then each group can be made responsible for one big ‘epic’ (a group of tasks that relate to a single feature). This will ensure that no one member will block any other on the platform, and the client will be able to see that progress is being made.
Creating well-described tickets: A ticket is only as good as its description in JIRA, and therefore it is essential that each member takes just a few minutes to ensure that each one is well-described, so that everyone who views it – including, and perhaps especially the client – can understand what is happening and when.
Creating milestones: Even though we use and advocate the agile approach to development, it is still imperative that sub-teams and the entire team has realistic but significant milestones that they are working towards. A milestone should be met approx. every 2-3 weeks, so it is important that these are identified at the start of each of these periods so that there is a common goal that everyone is working towards. The client also needs to be in support of these milestones, and should informed as to the progress regularly.
Coordinating multiple technologies: combining front-end, back-end, mobile and web technologies in one project requires thorough planning. All the elements of the puzzle must fit perfectly.
Deployment activities: All deployment processes are inevitably different, as each piece of software that is created is unique. However, each deployment activity should be made frequently, and it is best practice to plan each one well in advance as part of a mini-milestone initiative, so that all interested parties are aware of what’s happening.
Feature flags: If the team or sub-team uses feature flags, it is unnecessary to wait for final acceptance from the client. This is because any changes or updates that are made will not be visible to users until the client accepts it – so there’s no need for delaying the update.
Testing: Quality assurance is an irreplaceable part of every IT project. Newly produced code should be thoroughly tested and chiseled to perfection in order to avoid unnecessary backlogs in the future.
No matter the human count in your team, if you ensure reliable communication flows and organization, even the most challenging projects can be delivered successfully. Did these patterns work for you? Or maybe you’ve come up with other solutions? Share your experiences in a comment!
In theory, theory and practice are the same; in practice, they're not - which is why we've got case studies to show that our methods work. Here's a few words about Transterra Media improved buyer experience!