During this sprint, our team focused on dependency management for a NodeJS backend system within the LibreFoodPantry project. My primary responsibility involved updating dependencies, fixing compatibility issues, and ensuring that the backend remained stable after changes. This sprint required both technical work and strong collaboration with teammates.

Evidence of Activity

What Worked Well

One thing that worked well during this sprint was team collaboration. I received a lot of helpful feedback from my teammates, especially during merge request reviews. This helped me improve my code quality and understand best practices for dependency updates. Another positive aspect was breaking down dependency updates into smaller commits, which made debugging and tracking changes easier.

What Didn’t Work Well

Updating dependencies turned out to be more complex than expected. Some updates caused compatibility issues, especially with libraries like express-openapi-validator. Also, switching from Yarn to NPM required careful adjustments, and initially, it introduced some confusion in the build process. These issues slowed down progress.

Improvements as a Team

As a team, we could improve by planning dependency updates more strategically. Instead of updating everything at once, we should group updates and test incrementally. Better documentation of decisions (like switching package managers) would also help everyone stay aligned.

Improvements as an Individual

Individually, I could improve by researching dependencies more before upgrading them. Understanding breaking changes ahead of time would reduce trial-and-error debugging. I also want to get better at reading official documentation and changelogs more efficiently.

Apprenticeship Pattern: “Use the Source”

Summary:
The “Use the Source” pattern encourages developers to rely on original documentation, source code, and primary references instead of guessing or relying only on others.

Why I Selected This Pattern:
I selected this pattern because dependency management heavily depends on understanding library behavior. During this sprint, I often relied on teammates for guidance instead of directly exploring documentation or source code.

Relevance to My Experience:
When updating packages like Express or MongoDB, I encountered issues that could have been solved faster by checking official docs or GitHub repositories. This pattern directly relates to those situations.

How It Would Have Changed My Behavior:
If I had applied this pattern more actively, I would have spent more time reading documentation before making changes. This would have reduced errors and made me more independent. It would also have helped me understand why certain fixes worked instead of just applying them.

Conclusion

Overall, this sprint was a valuable learning experience in dependency management and teamwork. While there were challenges, especially with compatibility issues, I gained practical experience in maintaining a NodeJS backend. Moving forward, I plan to improve both my technical skills and my ability to work more independently while still collaborating effectively with my team.

Posted in

Leave a comment