How we develop features at TuringTech
We take you through the journey, and hopefully put into perspective everything that is required when developing a feature.
At Turing Technologies we encourage and motivate our team members including engineers, designers and software testers to be involved in end-to-end ownership of a feature.
Our team members have the opportunity to work on several projects with end-to-end ownership this means that we encourage our engineers, testers and product managers to interact with our product designers and external stakeholders. This has resulted in faster development times, because in many cases things/components/elements that look "pretty" to a product designer would become a headache for a frontend engineer to develop.
In this post, we hope to take you through the journey, and hopefully put into perspective everything that is required when given end-to-end ownership of a feature release.
As tech-sector workers, we build software to solve a problem, hence a solid understanding is the start of the journey.
This first part of the journey aligns with one of our key values Embrace Change, this means to not get demotivated by an unfamiliar situation or challenge.
We take our time thinking about the user flow, the architecture, and the use cases before going into the code-mode.
We use Miro and Loom extensively to document the data flows and the use cases, and even database models. (Heck one of our hiring requirements is if the person can explain their work in a loom video).
Most people are visual learners and one tool that aids understanding of the high-level view of the system is a Database Modeling tool. We have used various tools over the years including Miro, Adobe XD, LucidChart and even Figma. This allows the team to visualize the data flows and changes that are necessary for the feature to come to fruition.
The following shows the final diagram for the feature with the data model.
The time spent documenting makes the implementation of the system very straightforward, so we push our lead engineers to review and give recommendations on specifications created by our product managers.
This touches on another of our values of Keep it Simple.
While developing the feature, our team held two weekly syncs with all the stakeholders. One with external stakeholders in the US, and the other within our local stakeholders (Designers, Developers, Product Managers and Software Testers).
One with the external stakeholders to resolve any general questions about the project and discuss blockers, if any another, a technical sync between engineers and designers for in-depth technical discussions.
It’s very important to utilize these meetings and be aware of any major blockers. We always find that people are more understanding when you are clear with them and raise issues earlier in the project. Every project has obstacles along the way, what’s important is how you manage expectations and are clear with your progress.
During the implementation of the feature, there are many people that are part of the effort that must be kept in close contact.
As the release date approaches, we allocate a specific day to test the feature end-to-end. Engineers, product managers and other stakeholders test through various use cases in the staging or pre-production environments and collect any bugs or improvements that can be added.
It helps the team align on their expectations vs. reality and ensure that we built what we were supposed to be building.
In conclusion, there are several takeaways from this experience:
Want to know which tech stack we use to implement state-of-the-art features at TuringTech? Checkout our expertise.