NOVEMBER 18, 2019
7 min read
The digitalization of businesses is moving fast. Companies are creating more and more applications for their end-users and internal needs. AI-powered chatbots are ready to replace real humans. Gartner states that worldwide IT spending in 2019 will total $3.74 trillion.
On top of that, according to the latest trends in product development, companies have started to outsource more than just the development process. They are ready to hire the integral engineering team with product owners, product managers, and business analysts who can take on full responsibility for the product development process from idea to implementation. The company needs only the global visioner who can steer the team in the right direction for product development. The rest is on the shoulders of the outsourcing team. Such an approach has been onwards and upwards for the last year. Startups and large companies benefit from dedicated software product development teams and you shouldn’t miss out on the opportunity.
The product management team is not an institutionalized definition. Each company puts its vision and colors into it. I want to give you our concept of the product development that Dashdevs outsourcing company has established over the last couple of years.
What is a software product team?
A software product is a merchandise consisting of a computer program that is offered to interested users. The process of product creation does not look so different from the physical product. To create one, you need somebody with a vision, knack for design, ability to describe how the product works, and skills to control the process of its implementation. In general, a digital product is a complex system that is made up of many collaborating parts that are united into digital ecosystems.
A software product team is a group of people who take an idea, bring it to life, and release it to the market. A software development process involves a number of sequential stages of development, such as concept creation, design, requirement specification, architecture development, codding, testing, and post-release support. All the steps are of critical importance. In each of these stages, the team needs to understand the business requirements, functional architecture, data flows, security, and legal requirements.
In our product development system, Product managers must oversee the product from different perspectives, such as marketing, pricing, promotion strategy, and target audience preferences. Life cycles are also becoming more complex, with rising expectations regarding new features, constant improvements, and post-purchase upgrades. The value of the surrounding digital ecosystem is growing: a modern product is just one of the elements in the ecosystem of related services and businesses. From this point of view, the responsibilities of Product managers include overseeing the application programming interface (API) as part of the product, identifying and owning key partnerships, managing the software developer ecosystem, and more.
Product team structure
While software products are becoming more straightforward for customers, with modular features rather than a single monolithic release, they are becoming increasingly complicated for the product development teams.
Dashdevs’ product team usually consists of a technical product manager, business analyst, designer, architect, and delivery manager. Such a lineup can cover all the aspects of the tactical and strategic sides of the software development process.
If we put it into a table, it will look like this:
As you can see, there is a clear division between zones of responsibility for different roles. For the sake of clarity, I would like to outline the responsibilities of each participant in the product team:
- Technical Product Managers - the main person within the product team who drives the vision to the rest of the team. The responsibilities for this position stand between tech and business. They manage the development roadmap that supports the product vision and strategy, navigate complex priority trade-offs (including collaboration with stakeholders), and are accountable for the digital product’s security, compliance, and operational risk policies, and make sure that they are met accordingly. They translate the vision into actionable user stories and specification requirements, all while prioritizing and refining the backlog. The technical product managers must focus on product management, not development. However, the position requires technical knowledge on how mobile and web applications are developed, and what possibilities and restrictions exist within the systems. Let me illustrate an example: If you want to implement a chatbot in a mobile application, then your product manager needs to know what the business needs and core features are, how to carry out the bot’s functionality, what services can be used, how to secure the data transition, and what the primary edge cases are. The technical product manager is a product evangelist and a master of the digital ecosystem.
- Business Analyst is responsible for products and services, data analysis, and technological solutions that correspond to the business needs and goals. Traditionally, a Business Analyst’s role expands beyond the technology layer and moves to the business component. A Business Analyst transforms business requirements into functional (what the project should do) and non-functional (how the project should work) specifications. This information assists in considering the abilities of the completed service or product. As the categories mature, greater importance is stressed on the non-functional requirements. The main reason is that once the product attains its place in the real environment, you can start developing aspects that are sure to increase its value. One of the crucial duties of a Business Analyst is market research that helps to define a marketing strategy.
- Designer is a person who makes a detailed plan of the form or structure of the application, emphasizing on relevant features such as appearance, convenience, and efficient functioning - user experience (UX). The UI is a mechanism by which the user can observe, communicate, interact, and control software operations. Typical user interface (UI) elements involve sounds, notification lights, windows or forms, dialog boxes, and report formats. The usability of the software product encapsulates the maneuvering between features of control processes, data entry, data manipulation, and brand implications. Designers work with the vision and the requirements provided by technical product managers and business analysts. They create wireframes, prototypes, high and low fidelity designs, and style guides.
- IT Solution Architect knows how the software product must work from the inside. Developing a product architecture establishes a structural foundation for the digital ecosystem. Every element of the architecture serves a purpose and establishes a reason for its existence. Otherwise, it should not be included in the solution. The objective of each element of the structural configuration or architecture must be traceable to an element of the functional feature. The IT Solution architect creates the design of the system, including the on-premise and cloud solutions.
- Delivery Manager is a person who controls the execution process and makes releases happen with adequate quality. To perform the actions in the right way, delivery managers need to control the estimation, plan, and coordinate the development process as well as inter-team communication. Another core responsibility for them is risk management and risk mitigation on the development process. Additionally, they work with product managers to improve business/service processes, identify redundancies, and promote collaboration across the organization.
Product development process
A lot of different methodologies exist in software product development, such as Scrum, Kanban, Lean, LeSS, Nexus, Waterfall, and others. With complex, long-lived projects such as those created for enterprise-level organizations, Scrum mutates into SAFe. Such modifications have given rise to hybrid software development methodologies, like Scrumban for example. Meanwhile, Dashdevs is on the market for over nine years already and we’ve also tried and tested the most popular project techniques. Today we love applying the scientific approach to the development of cross-company processes. We define a hypothesis, create a solution, implement it, and analyze the results. In other words, we use the Deming Cycle, which you may also know as PDCA cycle(plan–do–check–act or plan–do–check–adjust). Such iterative changes help us remain highly effective and up to date.
In general, this product management system manifested because of our attitude toward developing great applications. We want the best results for our clients’ products because their success is directly correlated to ours.
Let’s put some examples of the interaction of the various roles into a diagram.
As you can see in the example, business requirements are transformed into technical specifications which are used for the architecture and UI design. This transition helps to plan and develop high quality IT software.
The benefits of Dashdevs’ product development system
As we continue to work on this approach, we’ve noticed a number of benefits. First of all, they influence the quality of software products. We can see the changes in the attitude of the team and how that correlates directly with the quality of the application they develop. Among other advantages are:
- Avoid a zombie effect. An augmented team has a connection with the business. They have a person who can answer their questions about business needs and the reasons for the decisions made.
- Product is always top-of-mind. We have adopted a product-oriented organizational structure that facilitates the rise of several practices. Technical product managers are the heart of the product in the outsourced team. They are critical in agile-at-scale environments. They can encourage the transfer of knowledge among team members, promote coordination between teams and functions, and become the catalyst for continuous performance improvement.
- Agile software development process. All the products are built differently. We don’t stick to a fixed framework for software development. Our expertise and experience in app development give us a variety of possibilities to offer.
- A culture of continuous learning. Teams gain experience from different products and markets. They are continually sharing their knowledge, which improves the process of collaboration.
- Businesses can concentrate on marketing and sales processes. There is no need for additional control of the development teams. The product managers are the layers of your products, and they get help from the delivery manager who stays with the development team to control the execution process and mitigate risks.