At UruIT, we are constantly finding new, better ways of working. One of our latest changes has been to establish a formal set of principles and policies to embrace when forming new and effective teams, or making changes to the teams that already exist.
In regards to these policies, we aim to:
- Encourage autonomy
- Decentralize decisions
- Promote co-localized teams
- Increase work satisfaction
- Disclose their details
- Prioritize the projects we undertake
- Guarantee sufficient induction processes for everyone
- Maintain a high technical level
- Achieve sustainability
Our principles to create effective teams:
We minimize distributed teams
As we believe the most effective teams are those that are transparent, we seek to reduce distribution in the long run and show our clients the benefits of more fluid communication: increased productivity and higher quality work.
Existing teams approve (or not) of new members
We allow any individual to change teams if they wish. We help them to do so by showcasing all information on the company’s projects at all times, using open and clear channels of communication such as Slack channels. If a team member chooses to switch teams, they’re encouraged to take a proactive role in managing their transition to the new group.
People can manage their own changes
Any individual can change teams if they wish. We help by showing all information on the company’s projects, at all times, using public channels in Slack. This person must help manage his/her own transition, since he/she is who best knows the tasks.
There are no mandatory assignments
As we know that it’s much more difficult for an individual to do their best in a project they do not like, we never “move” people, we prefer to facilitate changes in teams with active participation from the team and person involved.
A team can choose not to keep working with a person
To be genuinely autonomous, effective teams have to be able to self-regulate when needed. Often, context changes, and a team may decide to make changes to its formation. In these cases, we help relocate people and facilitate communication among those involved.
We prioritize projects according to:
As a development services company, we receive an assortment of work proposals. To tackle all projects efficiently, we prioritize them according to the company’s strategic goals. We take into account three critical factors:
Human relationship with the client:
As we focus on long-term working relationships and trust, we assess the quality of our interactions with clients, and how in-line they are with our culture.
What does technology give us:
As a practice, we use the best and most advanced technologies. We opt not to work with tools that are outdated, or that are far from our current, or future areas of expertise.
As a business, we try to maximize benefits in order to invest in becoming increasingly better.
We try to assign projects to teams to avoid dismantling them each time
That’s because we understand that teams, not individuals, are our working units. In UruIT we believe that the synergy of the existing teams produces better results than continuously reshaping them by technical skill or availability in the short term.
Instead of having lone wolves, we prefer people working in teams
We understand that it is always better to have a workmate to share tasks with and work better. For this reason, we encourage our staff to tackle projects together, rather than alone.
We consider the necessary time taken for induction and training
Each team creates the most suitable induction plan for new members as new additions join a team. The Delivery Team helps to create necessary spaces for carrying out this process under minimal pressure.
We take into account the impact of decisions on the company’s indicators
All decisions, one way or another, have an impact on the company’s financial situation; therefore, any adopted policy should be viable, sustainable and suitable to the context.
We support new teams
Above all, we constantly strive for a standard of excellence and high level of quality. In order to achieve this, whenever there is a lack of the necessary experience or skill set within a team, we seek to create spaces so that people who are already experienced in that skill set can support the others, both from a technical and a methodological point of view.
These principles reflect the aspects we consider today for forming effective teams at UruIT. As with everything we do, we expect them to change and adjust to new realities they may face as and when they come. They are a small part of what it means, for us, to be agile.
Believing in agile principles and practices is on UruIT´s DNA for many years now and helping our teams to adopt them is a permanent goal for us. Check out one of our most interesting and fun projects for understanding and applying agile principles in this post.
We allow space for innovation
For teams to improve, they should be continuously trying new solutions to aid them in their tasks. Recently, one of our team members, Waldemar, wrote an exposition on a project he used to include machine learning in the story points estimation process, to see if the AI could predict with better accuracy, the level of complexity for given software development tasks. See the results in the link!