DEV Community

Cover image for Iterative Software Development for ProgKids Video Conferencing
ProgKids
ProgKids

Posted on

Iterative Software Development for ProgKids Video Conferencing

With the widespread adoption of online education among developers of remote educational platforms, there is a growing need to enhance existing software versions to improve the quality of remote lessons and better control learning progress and efficiency.

These needs prompted ProgKids LLC to refine the ProgKidsMeet video conferencing module and to scale the ProgKids children's educational platform to the Russian and Asia-Pacific markets.

As part of a grant, and according to specified technical parameters, the video conferencing module was improved. Additionally, a lesson analysis system based on machine learning methods was developed, which utilizes video and audio recognition technologies for analysis.

The audio recognition technology allows the system to detect the emotions of both the student and the teacher and to use the transcribed text for further analysis. This way, the system can provide feedback to the teacher on how the student perceived the lesson and identify areas needing improvement.

The video recognition technology is used to analyze recorded lessons to determine the student's participation activity and engagement during the lesson.

Thus, the relevance of this system lies in its ability to help teachers improve their teaching methods, enhance the quality of online education, and optimize the learning process.

The Agile software development methodology was chosen for this project, which involves using iterative and incremental approaches in product creation.

Within Agile development, the project is divided into smaller iterations, each including planning, development, testing, and product improvement. This approach enables the team to receive feedback faster and make adjustments, leading to higher quality and better customer satisfaction.

For managing the workflow, the Scrum methodology was chosenโ€”one of the most popular Agile methodologies. In Scrum, the development team works in short periods, typically between 2 to 4 weeks, called sprints. During each sprint, the team develops new functionality and looks for ways to improve the product. At the end of each sprint, the team conducts a review and retrospective to assess the completed work and determine what can be improved in the next sprint.

The development team used the Scrum approach and worked in one-week sprints. During weekly work calls, the team planned tasks for the next sprint by defining development requirements and setting priorities. The team used a task list, called a backlog, which contained descriptions of all tasks necessary to achieve the project goals.

Throughout the sprint, the team developed new functionality defined in the weekly work calls and tested it to ensure it met the requirements. The team adhered to Scrum principles to ensure quality and timely completion of work, as well as continuous communication and interaction among team members.

At the end of each sprint, the team conducted a review to evaluate the work done, presenting the new functionality to all project participants, and a retrospective to identify what was done well and what could be improved. These events helped the team enhance product quality, increase work efficiency, and improve interaction among team members. This approach allowed the team to work more productively, accelerate the development process, achieve quick results, and ensure higher product quality and greater customer satisfaction. In the Scrum methodology, the task board is one of the key tools for project management. It is a physical or virtual board displaying all tasks needed to achieve project goals. The task board is used to visualize the status of tasks and control their execution.

In the project, the board was divided into four columns: "Submitted, Ready For Dev," "In Progress," "In Testing," and "Wait For Release." Each task was represented by a card indicating its title, description, and status. Cards were moved across columns according to their current state.

The development team used the task board to plan and manage their work. During weekly work calls, the team planned tasks for the next sprint and added them to the task board in the "Submitted, Ready For Dev" column. Throughout the sprint, the team moved task cards to the "In Progress," "In Testing," and "Wait For Release" columns, reflecting the current state of work. The task board made it easy for the team to track progress and manage priorities. Additionally, it fostered communication and collaboration within the team, as every team member could see which tasks were being worked on and what issues arose during the process.

YouTrack Platform

The development team uses the task board to plan and manage their work. During weekly work calls, the team plans tasks for the next sprint and adds them to the task board in the "Submitted, Ready For Dev" column. Throughout the sprint, the team moves task cards to the "In Progress," "In Testing," and "Wait For Release" columns, reflecting the current state of work. The task board allows the team to easily track progress and manage priorities. Additionally, it fosters communication and collaboration within the team, as every team member can see which tasks are being worked on and what issues arise during the process.

The YouTrack platform was chosen as the task board for several reasons:

  1. High Functionality.
    YouTrack offers a wide range of features for task and project management, including bug tracking, reporting, and analytics. This is useful for a team working under the Scrum methodology and using task management principles, such as the backlog, sprint task list, etc.

  2. Ease of Use.
    YouTrack has a simple and intuitive interface that can be easily customized to the team's needs. This helps accelerate the work process and reduce the likelihood of errors.

  3. Integration.
    YouTrack can be easily integrated with other tools used by the development team, such as version control systems (e.g., Git), continuous integration services (e.g., Jenkins), and other project management tools. This simplifies project management and ensures more effective interaction among team members.

  4. Scalability.
    YouTrack is suitable not only for small projects but also for large ones, as it supports multi-user access and can handle large volumes of data. This facilitates the management of large projects and ensures coordinated effort among participants.

Thus, the choice of YouTrack was based on its wide range of functionalities, ease of use, integration capabilities with other tools, and scalability, which facilitated project management within the Scrum methodology and increased the team's productivity.

Top comments (0)