When people talk about a development team, they think about “a team of developers” but I like to think about the team a lot more holistically. To me, the best development team refers to all employees understanding their roles and working hard towards overall company success.
Let’s talk about job titles and responsibilities.
Software developer. This one is easy. You’re involved with feature development or maintenance. Nothing gets done without people to actually write the code. It’s important to have a cohesive team with a good dynamic meaning people are bouncing ideas off one another, feeling loose and motivated to get the work done. A development team hopefully has more than one developer because it’s easy to let bad habits take hold when there’s no one else to help you break them.
Developer team lead. This role serves to take the heat off of the remaining developers. Ideally it is a rotating role amongst the senior developers so as to keep egos at bay. The team lead can sometimes be needed to serve as a technical resource in non-technical meetings. He is also used to evaluate actual growth of each developer as he knows the fine details of how everyone on the team is doing.
Software architect. Usually seen as a software developer role, this role is involved with setting up the project and having a general knowledge of what’s out there and what works best for the given problem at hand. It’s important for the architect to consider how software will scale over time and ensure good coding practices are followed by all members of the team.
Project manager. This is probably the least well understood role of all. The hardest aspect for the project manager to understand is that he is there to ensure one thing mainly: that the project finishes on time and on budget. This is a hefty responsibility because it involves communicating progress. It involves measuring team performance and tracking it across projects. It involves facilitating a process and participating in the prioritisation of tasks. The biggest mistake a project manager can make is to forget their role and think it’s their job to oversee, assign tasks or put pressure on developers. This implies mistrust in the team and creates a negative culture.
Development manager. This role has another name “the developer’s best friend”. He makes sure that developers have everything they need to be happy in their roles. This means that developers can understand their career paths and are happy in the progress they’re making. If someone is doing well, it should be acknowledged and if someone isn’t doing well, they can be encouraged. This is an important role in development since more and more developers are demanding more attention in their individual careers. The development manager also ensures that technologically, the company has the skills it needs to deliver and if not to train existing or hire new staff to be able to get the job done.
Key stakeholders. When someone is personally vested in a software product it is a great thing. It counts, however, where that energy is being applied. A key stakeholder on a project presents invaluable insight and helps in defining requirements and validating that the end product is delivering what is needed. The key stakeholders will do what they do, but if you are a key stakeholder, then there are some things you can do to help the team. This mostly means saying what you want to do, but not how you want to do it. Regular meetings should be happening to keep key stakeholders in the loop.
Product manager. This role advocates on behalf of the product itself. This is best described in terms of how the softwares features compare to the competition and how easily these are communicated to potential customers. The product manager maintains a roadmap of features to keep the product competitive. If the key stakeholders want some new feature but it makes the product more complicated then the product manager can discuss how to better fulfil the requirement. He works with the project manager to understand when new things can be expected so that he can align other aspects of the business to them.
Chief technology officer. The CTO is responsible for the technological complexity of all the projects and software deployments for the entire company. He will need to make sure that the scope of the software products doesn’t devolve to the point where it costs too much to maintain or that costly decisions are being made by other members of the company. For example, if everything is being deployed in one particular technology stack, but someone wants to introduce another then it may not be a good idea because it’ll end up costing time and money, thus affecting the profitability of the corporation.
Chief executive officer. The CEO is also a valuable member of the development team because he serves as an important buoy to keep morale high. If the company is doing well, then the development team is doing well. This role is all about communication and regular status updates to give developers (and probably everyone else too) insight into how their contributions are making the company more profitable.
These roles can be seen best as pieces of a puzzle. Each member contributes something to the overall picture, none being more important than the other. What each member does comes down to their interest and skill and position in creating success within the corporation.
Each member should have trust in every other member. With great people, great things can be accomplished and if a company can put together a strong team then it will be successful.
Leave a comment