Enhancing In-Sprint Automation: Solving Build Dependencies with a Standardizing the Contract & Element IDs
In the ever-evolving landscape of agile software development, achieving in-sprint automation remains a significant challenge for many teams. At Halodoc, we tackled this challenge by addressing one of the core bottlenecks: build dependencies. By introducing a Standardizing the Contract & Element IDs, we streamlined our automation processes and delivered value faster. Here’s how we did it.
Why Enhancing In-Sprint Automation is Crucial
In-sprint automation is essential for ensuring faster feedback loops and maintaining high software quality within agile teams. However, one major challenge teams face is managing build dependencies, which often slow down test automation. By introducing a Standardizing the Contract & Element IDs, teams can streamline automation, eliminate flaky tests, and reduce maintenance overhead. This approach fosters better collaboration between developers and testers, ensuring that test scripts remain stable and aligned with evolving application changes. Ultimately, solving build dependency issues improves automation efficiency, accelerates release cycles, and enhances overall software reliability.
Key Actions Taken:
- Establishing a Clear Contract: Defined a structured contract between SDEs and SDETs, ensuring that automation work could progress simultaneously with development without interdependencies.
- Standardization of Component IDs: Introduced a process for using standardized IDs across all applications, ensuring consistency and reducing errors in automation.
- Figma Integration: Collaborated with the design team to integrate the standardized IDs directly into Figma, allowing both SDEs and SDETs to easily reference and implement components.
Standard Format for Element IDs
Halodoc follows below standard format approach for element id:

screen_name: Based on which screen it is, to be defined by Design Team.
component_name: Based on which component/view it is, to be defined by Design Team.
component_type: Based on component name for mapping of Components and Component Types
Below are examples:
login_screen_otp_button
login_screen_wa_button
Challenges in In-Sprint Automation
Despite implementing standardized contracts and element IDs, we encountered new challenges during in-sprint automation:
Initial Adoption and Alignment:
- Ensuring all teams (SDEs, SDETs, and designers) adhered to the new standardized approach required additional training and alignment.
- Establishing a clear process for defining and verifying standardized IDs early in the development cycle was necessary to prevent inconsistencies.
Dependency on Early Implementation:
- While standardized IDs eliminated waiting for builds, SDETs still needed early access to component definitions in Figma to plan automation effectively.
- Any delays in ID assignments during the design phase impacted automation readiness.
Handling Dynamic Components:
- Standardized IDs improved stability, but dynamic components like ListView/RecyclerView still required additional strategies for unique identification.
- Some edge cases required custom indexing mechanisms, increasing complexity.
Versioning and Backward Compatibility:
- Updates to standardized IDs needed a versioning approach to prevent breaking existing automation scripts.
- Maintaining compatibility between old and new ID structures required clear documentation and communication among teams.
Continuous Collaboration and Iteration:
- While Figma integration improved collaboration, ongoing iterations and evolving designs still introduced occasional mismatches between expected and actual implementations.
- SDETs needed to stay closely involved in UI/UX discussions to ensure consistency.
Benefits of the Approach
Reduced Maintenance
- Standardized component IDs minimize errors and streamline tracking of UI changes.
- Automation scripts remain functional longer, reducing frequent updates and maintenance.
Improved Stability of Test Scripts
- Standardized component IDs enhance reliability, ensuring test scripts work consistently across different modules.
- Consistent naming eliminates confusion, reduces errors, and improves test maintainability and reuse.
Parallel Automation Development
- Standardized IDs allow SDETs to create automation scripts independently, reducing reliance on SDEs.
- Parallel development of automation and features enables earlier testing, faster issue identification, and improved sprint efficiency.
Enhanced Collaboration
- A structured contract between SDEs and SDETs clarifies roles, reducing delays and improving teamwork.
- Standardized IDs in design tools (e.g., Figma) enhance communication, ensuring better synchronization across teams.
Scalability
- Standardized component IDs create a scalable framework, allowing seamless integration of new modules with minimal changes.
- Consistent IDs ensure automation scripts remain applicable across versions, simplifying onboarding and maintaining best practices.
Faster Time-to-Market
- Parallel development and automation reduce waiting times, accelerating feature releases.
- Early access to standardized IDs enables faster script development, testing, and issue resolution within the sprint cycle.
Improved Test Coverage
- Early access to component IDs enables SDETs to develop comprehensive test scenarios sooner.
- Automation enhances coverage of edge cases, complex workflows, and critical functionality, improving software robustness.
Consistency Across Teams
- Standardized IDs ensure uniform component references across design, development, and testing, eliminating confusion.
- Consistent identification simplifies automation, promotes best practices, and ensures smooth project execution as new features are added.
Lower Debugging Efforts
- Clear and consistent IDs simplify issue identification and troubleshooting during test execution.
- Standardized identifiers reduce ambiguity, speeding up debugging and allowing teams to focus on critical tasks.
Key Insights and Takeaways
- Early Adoption: Introduce contracts and standards at the start of projects.
- Cross-Team Collaboration: Close coordination between SDEs, SDETs, and designers is critical.
- Continuous Refinement: Regularly update and improve standards to match evolving needs.
Conclusion
By addressing build dependencies through the implementation of standardized contracts and element IDs, we successfully enhanced our in-sprint automation capabilities at Halodoc. This approach has empowered our SDETs to perform automation tasks independently of SDEs, reducing bottlenecks and improving overall efficiency. The standardization of component IDs has streamlined processes across applications and modules, ensuring consistency and reducing errors. Additionally, integrating these IDs directly into Figma has strengthened collaboration between teams, enabling seamless implementation and faster delivery.
This solution has not only improved our automation process but has also fostered a more cohesive and agile workflow between development and testing teams. As a result, we’ve achieved faster releases, higher-quality outputs, and a more efficient sprint cycle. Our ability to overcome the challenges of build dependencies has set a new standard for in-sprint automation, positioning us for greater success in future projects.
References
- Leveraging Agile web automation for driving faster GTM with good quality
- How to achieve a smooth test automation process with in-sprint automation?
- How to Succeed at In-Sprint Test Automation?
Join Us
Scalability, reliability and maintainability are the three pillars that govern what we build at Halodoc Tech. We are actively looking for engineers at all levels, and if solving complex problems with challenging requirements is your forte, please reach out to us with your resume at careers.india@halodoc.com.
About Halodoc
Halodoc is the number 1 all around Healthcare application in Indonesia. Our mission is to simplify and bring quality healthcare across Indonesia, from Sabang to Merauke. We connect 20,000+ doctors with patients in need through our Tele-consultation service. We partner with 3500+ pharmacies in 100+ cities to bring medicine to your doorstep. We've also partnered with Indonesia's largest lab provider to provide lab home services, and to top it off we have recently launched a premium appointment service that partners with 500+ hospitals that allow patients to book a doctor appointment inside our application. We are extremely fortunate to be trusted by our investors, such as the Bill & Melinda Gates Foundation, Singtel, UOB Ventures, Allianz, GoJek, Astra, Temasek, and many more. We recently closed our Series D round and In total have raised around USD$100+ million for our mission. Our team works tirelessly to make sure that we create the best healthcare solution personalised for all of our patient's needs, and are continuously on a path to simplify healthcare for Indonesia.