Skip to content

Project management

Walid edited this page Sep 6, 2024 · 2 revisions

In this section, we describe our project management methodology and task distribution to ensure smooth collaboration and effective project execution.

Methodology

We follow the Agile methodology to manage our projects, allowing us to be flexible and iterative in our development process. Our Agile approach includes :

  1. Sprints :

    • We organize work into time-boxed iterations called sprints, usually lasting 2 to 3 days.
    • Given that we had 3 weeks to complete the project, we decided to do 5 to 6 sprints to ensure optimal tracking and detect any deviations (if a task takes significantly longer than expected).
    • At the beginning of each sprint, we plan and prioritize the tasks to be completed.
    • At the end of each sprint, we conduct a review and retrospective to assess progress and improve processes.
  2. Daily Meetings :

    • We hold daily meetings to discuss progress, identify obstacles, and synchronize efforts.
    • The duration of the meetings varied depending on needs and urgency, but they were held daily.
  3. Backlog Management :

    • We maintain a product backlog containing all tasks, features, and bug fixes to be addressed.
    • The backlog is regularly reviewed and prioritized to ensure that the most critical tasks are handled first.
  4. Kanban Board :

    • We use a Kanban board to visualize the flow of tasks and track their progress. The Kanban board includes the following tags :
      • Task Progress : Todo, In Progress, Done.
      • Task Priority : Required, Nice to Have, Optional.
      • Task Categorization : Frontend, Backend, Documentation, Infrastructure.
    • This helps manage ongoing work and ensures a smooth workflow, identifying which Git repository the work should be performed in.
  5. Retrospectives :

    • At the end of each sprint, we hold retrospective meetings to reflect on what worked well and what could be improved.
    • The goal is to continuously improve our processes and team collaboration.

Task Distribution

To ensure effective task management, we distribute tasks based on team members' skills and project needs :

  1. Role-Based Assignment :

    • @BetterBlood : Backend, Google Cloud infrastructure
    • @emilie-h : Backend, Frontend, CI/CD Pipeline
    • @Kalysso : Backend, Frontend, Book database
    • @SlWa99 : Backend, CI/CD Pipeline
  2. Task Prioritization :

    • Tasks are prioritized based on their importance and urgency.
    • The most critical tasks are addressed first, ensuring that key issues are resolved quickly.
  3. Collaboration and Communication :

    • We use tools like Discord and Microsoft Teams for communication and team collaboration.
    • Regular updates and feedback sessions ensure that everyone is aligned and informed of the project’s progress.
  4. Documentation :

    • Complete documentation is maintained for all aspects of the project, with each GitHub repository having its own README in addition to the main README.
  5. Code Review and Feedback :

    • We attempted to establish regular code reviews to ensure quality and consistency. However, time constraints made this challenging, though we continued to review the pull requests submitted by team members.
    • Feedback from these reviews is used to improve and refine our work.

By following this methodology and practices, we aim to manage our project effectively, deliver high-quality results, and maintain a collaborative and productive work environment.

Clone this wiki locally