Agility on product

To formally define Agile through product development, Google describe as: ‘relating to a method of product management, used especially for software development, that is characterized by the division of tasks into short phases of work and frequent reassessment and adaptation of plans.’

Structure of development team would help the product development to know the size of phases and adaptation. It would be a key area on agility development and this structure would be depend on few points:

1- Product Maturity / Market - Sometimes the product being developed is a variant, then even with complex architecture a simple team structure might suffice. However the size of the team is based on size of product and modules inside it.

2- Complexity of the product architecture - Complexcity of the product architucture has a direct link to the team structure. The more complex the product in terms of its architecture the more complicated the team structure would be. The architecture does not just mean the physical nature, but also the logic behind the services, the modes of interaction and information transfer between different sub systems. The complexity in terms of reliability requires you to have teams and departments within depth specialty skills, This means using multifunctional team means that a team comprises of a varity of required skills individually. These teams may be ancillary and may be active in very specific time period of product development cycle.

3- Maturity of the Organization - Generally the structure of a mature organization (which has seen multiple product development cycles) closely mimics product architecture and mostly exploring the duality between organization and product architectures (similar with a test on mirroring hypothesis). Therefore it is likely that the team has experts in each of the subsystem and the various modes of interaction. Plus, there should be a central integration team that ensure that all modules and interaction being developed are as per specification, and deviations are managed and communicated to the right individuals. The important of this middleware team it is not only on application architecture but also in solution architecture, specially on distributed systems that called a DevOps culture. However, for an extremely novel or a startup or maybe disruptive product this duality wont hold good as the elements of product itself are evolving and different members might actually work on more than one area of product. This duality or better to use reusability cross products would help to bring the cost down and allow for better resource management over time.

Agile software development methology help on team structure and suitable product architucture.

As much as the teams are close to eachother and have better and comfortable comminucation the agility is observing better. As much as the product architecture and integration is more simple and clear, the product would develop faster.

Software development management is about revolutionizing the way business is conducted and proofing your organization for continuously changing internal factors, new technologies, external competitors and industry trends. An agile approach is to rolling out new initiatives across the business direction, and ensure all teams involved can quickly adapt and deliver values often.

As the architecture of the product would be a microservice architecture and services rely on each others, each segment of the team structure also would rely on accountability cross skillset resources. The proven microservice design and architecture nowadays help product and development team to understand eachother better. However, make sure your microservices working in the same room, and then scale up based on traffic on that particular services (backend, fronend, devops, etc.).


ABOUT ATABAK

Atabak is a Software and Data Engineering Consultant


FOLLOW ATABAK

© Copyright 2017-2023