Retrospective - WordWiseProject/WordWise GitHub Wiki

Week1

What worked well for us?

  1. Good division of work for each member.

What did not work well for us?

  1. On-time manner of finishing tasks.
  2. Lack of understanding of project files.
  3. Misunderstanding communication.

What actions can we take to improve our process going forward?

  1. More communication.
  2. Explain all project components to other members who do not understand.

Week2

What worked well for us?

  1. Improving Login Flow went smoothly.
  2. Connecting API went smoothly.

What did not work well for us?

  1. From the bad initial development plan, we did not specify which are core features, and additional features.
  2. We spent the whole day fixing bugs in the model, which were caused by using CharField as the primary key.
  3. Bad optimized calling API for creating random flashcards for each type of flashcard (fixed).
  4. Can't implement use of the next button to go to the next flash card.
  5. From 1 and 2 some work has to be pushed to the next iteration.
  6. Implement caching called word from WORD API has to wait until later when implementing searching for word with WORD API.

What actions can we take to improve our process going forward?

  1. We divide one two-week iteration into two one-week iterations.
  2. Writing development plan clearly which features will be implemented.
  3. Stop writing vague names like core features, and additional features.

Week3

What worked well for us?

  1. We managed to get flashcards working.
  2. Fill-in-the-blank mode is completed.
  3. Implementing htmx in fill-in-the-blank mode.

What did not work well for us?

  1. Implementing flashcards takes too much time, which was caused by using javascript.
  2. Some task has to be pushed next iteration.
  3. One char typo makes a function unused able.
  4. Function does not return a list with a correct number of elements.

What actions can we take to improve our process going forward?

  1. Seek help for TA when we encounter something that is expected to be quick, but ends up being time-consuming.
  2. Refactor bloated code that is hard to test.
  3. Write a test immediately after defining a function or method.

Week4

What worked well for us?

  1. Implemented all planned features.
  2. Implementing test mode, and word deck went smoothly.
  3. Working, and communicating with the team is a lot better than past iterations.
  4. The Interim Demo went smoothly, we showed every feature we planned to show.
  5. Implementing HTMX for a new mode, and using it for adding words to the word deck.

What did not work well for us?

  1. Even though we finished making the domain model in the first iteration we were careless and did not put it in the wiki.
  2. Newly added codes are quite messy due to getting features done as fast as possible before the interim demo. They have to be refactored later on.
  3. Implementing the word deck took more time than we thought because we did not add detailed sub-features to it. We only considered what it was supposed to do but did not write it down.
  4. We encountered an error when trying to get an existing word due to two identical words existing at the same time which was not supposed to happen. This happened because we had not configured the model field to be unique.

What actions can we take to improve our process going forward?

  1. When finish writing the document we need to publish it immediately.
  2. Break down big features into sub-features, and document them under the big features.
  3. When finishing writing a model, we will conduct a code review to ensure that the requirements for each field are correct and configured as they are supposed to be.

Week5

What worked well for us?

  1. The application is deployed.

What did not work well for us?

  1. We found out that anyone can delete the word deck.
  2. The new feature we are implementing, adding a definition to favorite, is not compatible with the current code. We will have to rewrite how the flashcard page works.

What actions can we take to improve our process going forward?

  1. Avoid using language that Django does not natively support.

Week6

What worked well for us?

  1. Implementing favorite list went smoothly
  2. Implementing memorize status went smoothly
  3. Implementing user-profile went smoothly
  4. Fixed almost all of reported bugs.
  5. Separate each view into its module.
  6. Fixed overflow of text in test mode due to definition is too long.

What did not work well for us?

  1. Code bases are quite bloated now, and somewhat hard to read.
  2. Shipped unfinished features.

What actions can we take to improve our process going forward?

  1. Start refactoring.
  2. Take all unfinished features out before shipping.