Our last blog post provided a guide to all the programmer and IT operations specializations relevant to new project development. In this article, we will take a close look at the field of quality assurance, as well as management and design roles needed to complete a successful software product, from test developers, through Scrum masters, to UI designers.
This article is the second (and final) part of our definitive guide to software development roles. To read about the various experts responsible for software programming, designing technical features, and managing the technical side of the development process, check out part one.
Quality assurance is an incredibly important element of the software development process. Firstly, it ensures that the product makes the best possible first impression on users, which can then become a solid basis for customer loyalty. Secondly, QA offers strategies for more efficient software development, directed at both code quality and innovation.
Developing tests - either in the sense of automated tests, or the test cases, plans and documentation that make up the testing process - is usually a collaborative effort between the software developers and the QA experts on a team. As such, a test developer isn’t usually a permanent role, but a responsibility that needs to be fulfilled.
QA engineers are usually responsible for building and maintaining a high-quality documentation for the project, to make sure that testing will cover everything that should be covered, and that it will be conducted at the right time. Additionally, they prepare and implement strategies for testing and quality management.
- Software development process know-how,
- IT operations,
- Incident response,
- Bug reporting and tracking,
- User behaviour know-how,
- Gathering data,
- Automated testing solutions.
A quality assurance specialist is perhaps the most common role related to QA. They identify and track bugs in applications, run tests and prepare test plans. They also review specifications to make sure that the finished product will meet requirements. The most interesting part of their job is probably creating test scenarios based on predicted user behavior, and using automation scripts for testing.
- Technical expertise,
- Manual and automated testing,
- Bug reporting & tracking,
As the name suggests, QA managers take on a more leadership-oriented role, directing the QA process towards a high standard of service. They coordinate QA teams, establish procedures, and manage communication with other team members, communicating progress and needs on the QA side. They make sure documentation is kept correctly, produce reports, and look for ways to make the QA process more efficient. QA managers often take part in product design efforts as consultants, to catch edge cases and non-typical scenarios. The goal is to catch and prevent prevent issues before they can reach the development stage.
- QA heuristics,
- Collaboration with design & development teams.
Project, product and design
While the technical aspects of software development are incredibly important, by themselves they can easily turn into wasted effort. Without the right product strategy and proper UX research, code quality matters very little. That is why roles like the product owner, business analyst and CX designer should not be underestimated.
A project manager (or PM) is the heart of the team - the person at the intersection between business and technical affairs, concerned primarily with timely delivery and a high-quality outcome. They advocate for the team to make sure the project’s needs are met (e.g. when a license or access to particular information becomes necessary), help clients stay up-to-date with the development process, track progress in various project management tools, deal with bottlenecks, help with planning, and make sure team members work well together.
- Time & resource management,
The Scrum master is a role within the framework of Scrum - a very well-defined approach to organizing software development. Scrum masters’ main responsibility is their teams’ effectiveness. They spend much of their time organizing the development process and helping others follow Scrum best practices. Importantly, the Scrum master fills a service leadership role - they are there to support the rest of the team, not to order them around.
The product manager is a person responsible for the vision behind the project under development. Their main focus is not the process of development, but the success of the product once it’s released. As such, they build the product strategy and roadmap, as well as feature definitions, and help define aspects of branding, marketing, the business model, and so on. The product manager is also a major advocate for the product and its needs, coordinating the efforts of engineering, marketing, sales and support teams for the best possible outcome.
- Strategic thinking,
- Feature design,
Another Scrum role, the product owner cooperates closely with the Scrum master. The role is often fulfilled by a product manager within the organization - they simply take on the additional responisbility of a decision-maker collaborating with the development team. Product owners make sure that the work completed by other team members benefits the product as much as possible. They also manage the product backlog, keep everyone focused on the product goal, and maintain transparency of the development process.
Business analysts help businesses improve their internal processes, as well as the quality of their products or services. They help in breaking down complicated requirements into easy-to-understand elements, and work to unravel complicated product visions or requirements (including regulatory ones) into development tasks. Sometimes they have a specific focus, such as improving a process rather than a whole product.
Business analysts often draft some kind of model of the client’s domain. They identify all stakeholders and user groups, charting the interactions and relations between them. Then they supplement the results with planned functionality and existing data. Their main goal is to make complex things easier to understand and validate.
- Analytical thinking,
- Requirements clarification,
- Domain modelling & analysis,
- Assumption testing,
- Business idea validation.
Known also as the delivery manager, this role requires deep technical expertise as well as leadership skills. Delivery specialists are responsible for the effectiveness of processes, including the development process of a new product. They need to be able to prioritize the most important tasks, and work with product managers to create a solid development strategy. They may also create standards for the project, participate in hiring new team members or onboarding clients, and ensure that project deadlines are met.
Product designers have a broad responsibility for the experience delivered to users by the product. They cooperate closely with product managers on setting goals and objectives, but their scope is more limited. Product designers focus on the parts of the project users interact with: the visuals, features, payment options, and so on. Often, they participate in designing the product’s information architecture. Common product designer tasks include creating prototypes, wireframews, mockups, and product roadmaps.
- User research,
- Business analysis,
- Gathering business requirements,
- Interaction design,
- Solution prototyping & wireframing,
- UX/UI design,
- Basic knowledge of marketing and sales processes.
CX stands for customer experience, which is a broad field that includes UX as well as all the ways in which users interact with a product and its brand. CX designers (known also as service designers) need both UX and customer success skills. They need to focus on the customers and their needs, design effective customer interactions, evaluate different solutions based on how they affect the relationship between customers and the product, and use solid, data-driven research as the basis for their decision-making.
- Understanding of user behaviour,
- Big picture design thinking.
A large part of user experience (UX) is research: finding out what devices the target user group has access to, how much time they have for interacting with the product, what their visual preferences are, or what kinds of communication will effectively engage them. UX researchers learn about user preferences by analyzing data and consumer behaviors, sharing their insights with UX designers, product managers and developers, who can turn them into deliverables. They are also responsible for making sure that an app is going to be efficient and accessible - that its users will be able to achieve their goals quickly, without unnecessary restrictions.
- User research design,
- Data analysis,
- Designing research methods and processes,
- Usability testing.
UX designers are somewhat similar to CX designers, only the narrower scope of their efforts allows them to focus on the details. UX designers try to put themselves in the shoes of the users and determine which design choices will serve the user’s goals best. This can mean preparing user journeys, market research, or choosing between various technological solutions based on, for example, the types of devices the product’s target group is the most likely to use. UX designers fulfill a complex and very necessary role - they are the people making sure that your product will solve real roblems users experience, in the most effective way.
- User & customer psychology,
- Visual communication,
- Interaction design & wireframing.
Users interfaces (UIs) are the visual parts of a product that users interact with: graphics, buttons, drop-down menus, etc. To engage customers effectively, the visuals of an app need to be both attractive and designed with users’ convenience in mind. This is the job of UI designers: producing UIs that allow users to interact with the product in a way that allows them to reach their goals in a pleasant, efficient manner.
- Visual design,
- UI conventions and trends,
- Responsive design.
While the roles listed in this article don’t reflect every company’s internal naming convention for various jobs, they should give you enough insight into software development team composition to avoid confusion. Creating software products and services is a complex process that requires many puzzle pieces (designs, code, business goals, etc.) to come together seamlessly. Building the right environment for your project to grow is extremely important to its success.
Not sure what roles should be filled on your product team? Let us help.
At iRonin.IT, we provide full development teams that are ready to start development work immediately.