Skip to content

Reflection

Eddy Yang edited this page Dec 5, 2023 · 1 revision

Adapting Our Approach: From Pair Programming to Flexibility

  • We started with Pair Programming, trying it out between Ryan and Jason. But soon, we realized that we preferred working with a bit more freedom. Breaking tasks into smaller, individual parts made everyone's responsibilities clearer and work more manageable.

The Power of Unit Testing

  • We really saw the benefit of unit testing, especially in the early stages. It was Ryan who took the lead on this, focusing on the algorithms. His unit tests uncovered syntax errors, logical oversights, and unforeseen problems in the design early on, saving us from bigger headaches down the road.

Learning From Our Features: The Good and the Not-Implemented

  • Most of our features came to life just as we planned, but some, like 'Save Preferences', turned out to be more complex than we initially thought. We decided to drop it, learning that what looks simple on the surface can be quite intricate underneath. After gaining a deeper understanding of the system of software development, we believe we could estimate the time and effort required more accurately.

Sprint 4: Keeping It Light and Effective

  • In Sprint 4, we took a lighter approach, setting fewer tasks and concentrating on bugs and final touches. This really helped us. It gave us space to fine-tune things without feeling rushed, ensuring a smooth wrap-up for the final release.

Best Practices and Keeping Communication Clear

  • We skipped formal code reviews, trusting each other's expertise since we were mostly handling different parts of the project. But we didn't skimp on documentation and comments. This was crucial for understanding the code better and made discussing APIs and logic a lot easier.
  • We made sure to accompany our code with thorough some documentation and comments. This was incredibly helpful for using APIs and understanding the logic behind the code, making future corrections and discussions much smoother.
  • In one of our sprint meetings, we compiled comprehensive API documentation. This was a game-changer for front-end and back-end coordination, allowing us to work efficiently even before the APIs were fully implemented. Knowing what code to expect and what functions to implement made the whole process smoother and more intuitive.

Reflections: What Worked and What We Learned

  • Looking back, flexibility in how we worked, the early use of unit testing, and being realistic about resources stand out as our biggest takeaways.
  • We learned a lot about adapting to each other's styles, the importance of not overloading sprints, and really thinking through the complexities of new features.

Future areas for improvement

  • Add an administrative mode: Professors can add and delete courses and sections directly from the app so that our target users can be extended to both instructors and students. Our app will be more interactive and comprehensive in the aspects of not only course scheduling but also course management. This modification can also helps commercialise our app.