- Through code refactoring, managing technical debt, and introducing automated testing, we successfully improved the application's quality, stability, and maintainability.
- Our team maintained multiple editors for programming education and executed a complex integration with a block-based programming language editor with future implementations in mind.
- The core section of the application experienced a significant performance boost, leading to a 150% faster loading time for pages with editors.
- Since December 2021
- Web Development
- Quality Assurance
- 2 Developers (Senior/Mid)
- 1 Tester
- 1 Technical Project Manager
- United States
About the project
How the client selected Vazco as their delivery partner
What client challenges did the team have to overcome?
Implementing a complex integration with ScratchWe accomplished a successful execution of complex integration with Scratch. While the editor (a learning tool for young kids) may be considered less advanced, this strategically important implementation proved challenging and demanded the expertise of a senior developer. Additionally, we played a crucial role in maintaining external tools tailored for programming education.For example, optimizing the programming language editors resulted in rendering and execution times being significantly reduced, with improvements ranging from 5 to 110 times faster, depending on complexity. This enhancement efficiently handles large outputs and prevents crashes, providing a seamless user experience.
Code refactoringDuring our maintenance work, we discovered several structural flaws and excessive complexity in the codebase. Therefore, our objective shifted towards improving project maintainability and streamlining the implementation of complex functionalities. We presented the client with a well-defined refactoring program, outlining specific steps and prioritizing tasks as urgent, major, and minor. The client recognized the value of our solution, and we diligently got down to business.
Managing technical debtIn every project, there is a presence of technical debt that needs to be managed effectively to prevent hindrances. When accumulated, it can create a complex web of challenges. Because of this, new programmers face difficulties in implementing changes. It slows down the implementation of new functionalities – thus impeding growth. We assisted the client in comprehending the implications of technical debt. By systematically reducing technical debt, we improved code transparency, facilitating smoother development and maintenance processes. As a result, the client experienced accelerated project progress, enabling them to seize growth opportunities more efficiently.
Handling obstacles standing in the way of successOur refactoring program and automated and manual tests significantly improved project stability. Fixes that were once frequent and complex became smaller in scale, less common, and easier to handle. Our emphasis on establishing proper processes and methodologies brought clarity and understanding to the client. With ambitious growth plans for Fiero Code, the app is now well-prepared to sail to open waters.
Application redesignOver time, the project has undergone significant visual enhancements due to a comprehensive redesign based on the mockups provided by the client and – when necessary – our decision-making. The app has changed significantly compared to the previous year, providing an even more visually appealing and user-friendly interface. Introducing many new functionalities has also transformed the application's core. From a user perspective, the rework includes several key enhancements, which we will discuss shortly.The admin's perspective benefited from bug resolutions, contributing to smoother operations. The changes further advance the excellent user experience Fiero Code is dedicated to delivering.
GamificationFrom a user perspective, the rework includes key enhancements such as a revamped onboarding process, a unique avatar-building system, and gamified rewards. Users unlock robot parts by completing workouts or missions, which allows them to customize avatars. Gamification and personalization have received positive feedback. This approach motivates users to pursue even more learning opportunities and enhances their experiences with Fiero Code’s platform, which we expect to improve engagement and retention further.
How did we navigate the client for success?
Preparing the project for the growth phase requires, shall we say, “grassroot work”. We helped steer the client’s project towards a more successful path by emphasizing the importance of establishing a structured process and methodology. Without addressing the existing state of the application, instead of solely focusing on fixes and developing new functionalities, the client could experience further complexities and significant time delays down the road. Our proactivity prevented this unfavorable outcome, ultimately providing much more than maintenance.
The Team’s Perspective
Key values delivered
- We provided maintenance, mainly focusing on bug fixes and heavy-load development tasks.
- Code quality and maintainability could have been perfected to avoid technical debt accumulation and simplify code for an increased Developer Experience.
- The application could have been more pleasant to work with due to complexities and a high entry-level for newcomers.
- Frequent bugs and crashes.
- Although enjoyable from the end user's perspective, the application has suffered severe challenges previously unrecognized by the client.
- By fostering trust and mutual understanding, we expanded our presence within the project resulting in more complex groundwork, including advisory with the growth roadmap.
- We successfully managed technical debt and proposed code refactoring, resulting in better maintainability and faster development of new features.
- We improved Developer Experience and code quality, making the app easier to develop, resulting in significant future time-savings.
- The bugs or crashes are less frequent, less complex, and take less time to fix, partially thanks to the introduction of automated testing.
- Our work resulted in a much better technical base for project development, thoroughly preparing it for the future growth phase.