Since our establishment in 2014, our Engineering team has grown 10x, written more than 1 million lines of code, built more than 100 digital commerce applications, and contributed to growing monthly revenues. Meanwhile, we have constantly strived to make our teams autonomous and processes efficient while maintaining our delivery timelines and quality standards.
Initially, our teams were divided into separate research and development, bug fixing, and new feature enhancement groups. However, this structure had some limitations, such as increased difficulty in managing bug fixes, longer resolution times due to a lack of end-to-end involvement, and limited knowledge-sharing opportunities. To address these challenges, we have adopted a more comprehensive approach, where each team works on a diverse range of tasks, promoting efficient knowledge sharing and broadening their technical expertise.
How have we structured our teams to function efficiently?
We have three development teams, namely Guardians, Shapeshifters, and Alpha. Each of our teams has a mix of developers, testers, and designers. Each team is a mix of experienced and mid to entry-level engineers. This framework has helped us create the perfect dynamics in the team where each team can handle the end-to-end development and delivery process.
Our objective is to form cross-functional, self-sufficient small teams that can work independently towards their objectives. Each team member has a well-defined role and responsibility, fostering a sense of ownership. The team leader’s role is to communicate the problem and its underlying purpose, then facilitate a collective brainstorming session to generate a solution. Our approach to managing our teams is built on trust in our people and their abilities and a focus on motivating them to deliver their best work.
Agile majorly focuses on three factors customer satisfaction, quick feedback loop, and continuous improvement.
How do we strive to be better every day?
Agile isn’t just a methodology that many of us believe in, but it is a mindset that helps you become more efficient and productive and helps people bring forth their best work. It involves making small and continuous changes every day, and the Agile tools and platforms are an aid to do it. At Tecstub, agility is a core value. Our focus is always on continuous improvement. During the retrospective meeting, the entire team collaborates and answers the following questions:
- What worked well for us?
- What did not work well for us?
- What actions can we take to improve our process in the future?
Getting answers to these questions and transparent communication helps create an environment where everyone has an equal say and can put forward their thoughts. Since the goal of Agile is continuous improvement, retrospective meeting with continuous progress tracking has always helped us improve our processes and delivery times, where everybody is equally involved at every stage of development. We believe that for a team and an organization to thrive, the goal shouldn’t be “To not make mistakes” instead, it should be to fail fast and learn from them.
How do we tackle complex business problems?
We have always taken up new challenges, and our development team has always worked its best to devise smarter and more effective solutions. For example, when we have a complex challenge and our development team isn’t sure of the right action plan to make it work, we run a Spike . A Spike story in agile is an R&D process where the team takes time to analyze and understand the problem and tries to break it down into smaller stories. But to avoid unwanted delays, we set definite timelines for the Spike story to complete.
The goal is not to come up with the answer right away, but to figure out how much time it will take to finish a story. After that, the information and research are shared with the people in charge and their teams. This becomes part of our regular routine and helps us save time and make our stories more accurate.
The Sprint review processes to foster better communication and collaboration within teams
We have different teams working on different modules for the same project, but during the development phase, all teams work separately. However, each team is working towards achieving a common bigger goal, and every team must understand the system as a whole and what the other team is doing. Therefore, our sprint review meetings are organized every alternate Wednesday when all teams come together and discuss the functionalities that they have implemented. The main goal of this meeting is to create transparency and foster better communication and collaboration within the teams.
How do we maintain constant collaboration and communication with our clients?
We have a 15-day sprint release cycle, and the product owner closely works with the client to discuss and understand his requirements. Once he gets an idea of what needs to be done, he conveys the same to the development team and creates a backlog during the refinement meetings. Each development team member contributes equally to the brainstorming session to devise the right and most effective solution.
It gives the product owner a clear picture of how long it will take and helps determine priority tasks accordingly. Then, if the development team isn’t sure of any details or faces any roadblocks, he iterates the same to the clients. Since we develop and release the product frequently with the constant communication, everyone involved in the process knows the progress. As a result, it gets easier to pin down bugs or issues earlier in the development phase.
Being Agile has a huge advantage – it lets us help our team do their best work. People like to feel valued and heard, and not be restricted to just following orders. Agile allows our team members to take charge. Having an autonomous team leads to greater job satisfaction, creativity, and overall well-being.
We believe in reaching the destination together, irrespective of the path. It has helped us establish a transparent environment where each individual is involved in the complete development cycle, unlike the traditional siloed software development approach.