If you’re a product owner and want to create a team that will develop your product, imagine the following situation. You’re a sport team coach and your task is to draft a team of players that will guarantee a victory in the championship. Who you need is a star that will lead your whole team and a ball handler guy who will turn your idea for the game into a game plan. You will also need a glue guy who will pass the ball smoothly and dominating centers who will score points. A dirty job guy may also come in handy to check whether you are turning your strategy into life. “OK, but what does sport have in common with software development”? you may ask. Not much. But it was a fun way to start this blogpost. ;)
Software development can be considered a team “sport”. You won’t be able to develop your product all by yourself. You need a number of people behind you who will be responsible for different areas of your development process. Take a look who a perfect development team would consist of and what skills they would need.
The perfect team for your development game:
It’s probably you, the founder, CEO or CTO of the company but sometimes a product manager or the product owner may perform this function.
Deliverables: a well written document with a product idea, initial designs or mockups, and user stories.
Excellent communication skills,
Ability to create business models,
Perfect understanding of the product idea, its strategic goals and the way it will be monetised in the future,
Outstanding grasp of the problems the product solves,
Strong decision-making skills,
Ability to create an app wireframe;
A person who is able to turn the founder’s idea into prototypes and designs.
Deliverables: a product prototype (including high-fidelity mockups, market research, user stories and more)
Ability to solve users’ problems
Ability to design user-friendly interfaces,
Good understanding of user experience,
Eye for details, good taste,
Ability to ask questions to users and business owners and turn the acquired knowledge into new features of the interface,
Ability to come up with user stories,
Ability to conduct A/B tests of proposed solutions,
Knowledge of web analytics necessary to optimize the product,
Ability to tinker with frontend code and mockups;
A person who makes sure that the project proceeds smoothly and keeps every team member in the communication loop. The project’s informal leader.
Deliverables: division of tasks, schedule monitoring, priorities definition.
Outstanding organisational skills,
Ability to effectively communicate via online channels such as e-mail and Slack,
Knowledge of business and technology jargon,
Knowledge of project management tools such as Jira or Pivotal Tracker,
Ability to monitor the budget and keep it under control,
Ability to set the scope and choose a team for the project,
Charisma and ability to persuade and motivate;
Knowledge of data management tools;
Team of people responsible for turning images into a working software.
Deliverables: high-quality and well-documented code.
Ability to effectively communicate with both the project manager and the client,
Good understanding of the business goals of the project,
Ability to spot technical risks within the scope of the project,
Ability to suggest compromises to work around technological limitations,
Ability to look for already existing solutions and use them to reduce costs and speed up the project,
Knowledge of open source projects and various development platforms
Lots of experience is not always needed. What you need instead is also the perspective of less experienced programmers who can have a lot of abilities unrelated to programming itself, e.g. strong communication skills or the understanding of client’s business.
Quality Assurance Specialist
A person whose work may seem invisible, but if a QA does not pull his/her weight, the effect becomes striking for everyone, because of the number of bugs soars. QAs know the project better than anyone involved in the development process. They check every single feature multiple times and create documentation on how to test them after next iterations.
Deliverables: accepted or rejected tickets with detailed explanations.
Ability to describe bugs and show the how they occurred,
Ability to automate recurring actions,
Ability to spot bugs undetected by automatic tests,
Precision and eagle eye,
Knowledge of tools which facilitate the testing process,
Ability to write own automation tests,
Analytical thinking and ability to break bugs down into easily analyzable parts,
Courage to speak their mind – a QA is person who is always willing to prove you that you’re wrong.
During different stages of the development process, you will need different abilities of the people involved. For example, after some time, the presence of a product designer may become less useful than more effort from a front-end developer. In order to feel secure about your product’s development, you need to have the option to switch roles in the process.
You also need to take into account the fact that people will take days off, they will fall ill and some of them will even leave the company altogether during the development process. None of those events should affect the development process. Having some additional people on the players’ bench will guarantee the consistency and continuity of work.
Process is the key
Last but not least, don’t forget about the processes and the game strategy. In football, there is a saying that the fans are the 12th man on the pitch. In the development process, your 12th man is the variety of processes that will organize the work of your team. You need to have your processes worked out and written down BEFORE you get to work. Determine the duration of iterations, velocity of releases and communication rules. You can download our Project Management ebook, where we collected our know-how and experience gained over 8 years of working on processes with clients ranging from startups to big corporations. It will help you manage your projects more effectively, master the best communication tactics and successfully motivate your employees.