Sprint 2 Retrospect Blog 2

If I were to put our journey so far in simpler terms, that gamers like myself would have an easier time understanding, I would say that this whole project has felt like an MMORPG game. During the first sprint, we all had nearly no idea what we were doing, trying to do easy tasks just so we could get a few levels and understand the mechanics behind the game so we could maybe get a glimpse of the bigger picture. After that was said and done, coming into the second sprint of this project, we all felt more comfortable with the project and its continuity. By now, we all have a clear image of our roles and what we bring to the table. We no longer run around aimlessly trying to defeat a minor boss, but now each of us has developed specific skills that make “fighting challenges” feel like a walk in the park, and everything goes smoothly like clockwork.

The one apprenticeship pattern that I would choose for this sprint would be “Concrete Skills – Making your abilities tangible and demonstrable”. We are entering into a more advanced phase in our journey as CS students, with most of us graduating in a month, so now is the time to let go of the abstract knowledge and hone tangible and demonstrable skills. This pattern really pushes you to refine your skills with specific and marketable abilities. The division into subgroups pushed us to learn more about particular skills. Working on the backend and connecting it to the frontend pushed me to learn or better yet, refine some skills that I thought I had a pretty good understanding of until I had to put them in practice. My teammates had already done a great job setting up the front end and adhering to visual identity guidelines, which meant I had to do as good of a job as they did, making everything functional and smooth.

After creating a functional backend last sprint, now I had to connect it to the frontend and make it actually “do something”.
I started by copying the front-end files my teammates had worked on so far to our main branch and started editing their scanner and database files. A simple JS script to fetch the information from the FDC database and add it to our own backend was all that it took to give life to our project. It took me a while to figure out the correct pathing for each API call, but once that was set up, everything was a breeze. My teammates had also created a “Database” page in which we would store our scanned products. I populated the page with items stored in our backend from the previous scanner page. After that, adding two buttons that were connected to simple API calls made the page more interactive. Now we can easily store, edit, and delete products, which is way more than what was asked of us initially.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-culling/inventorybackend/-/commit/b57e1ea44a8113bac4075769da0b25336c975c8f – my latest commit with all the functionalities.

I guess if I had prior knowledge of the above-mentioned pattern, I would have had an easier time working on the project, as I would have “honed” my knowledge of backend-to-frontend connections beforehand, which would make my work even more efficient.

My teammates continue to be a great force in this project, and we are able to communicate clearly between us and solve issues in a short and manageable time without putting a lot of strain on ourselves. In fact, our communication might even backfire in a sense because we solve the issues so efficiently that we don’t even put them up on the issue board, a simple “hey, we have to fix this” is all that it takes to “clear” an issue, so we might want to work on that a little bit for the upcoming sprint.

Going back to my analogy, I guess that by now we have reached “level 40” with the cap being at 60. I hope that as we reach the “end-game,” we continue to have the great teamwork that we have had so far and that has helped us so much. We all have our roles and work cut out by now, so tackling this last sprint should be easy, with the end result being a successful project that we will leave behind but take with us valuable, tangible skills to help us take on future projects and challenges.

From the blog CS@Worcester – Anairdo's WSU Computer Science Blog by anairdoduri and used with permission of the author. All other rights reserved by the author.

Sprint 2 Retrospective Blog

During Sprint 2, my main task was to update our REST API by replacing the use of WSUIDs with UUIDs. Our sprint planning phase for this sprint was good, we broke down the tasks into what everyone would be doing for the sprint. Our communication was effective, especially during our team meetings in class. To implement the switch from WSUID to UUID, I updated the open API specification to reflect the new identifier structure. One of the key wins in this sprint was the successful refactor of the API to use UUIDs instead of WSUIDs for identifying guests. This transition improved the design by making guest identifiers more secure and consistent. I gained a deeper understanding of Open API specifications and how to maintain consistency across the schema definitions and endpoint parameters. Using UUIDs helped eliminate potential conflicts or collisions that may have occurred with custom WSUIDs. Collaboration also worked well with my team. Once I communicated the change to my teammates, everyone was supportive in reviewing related files and helping test the changes locally. This made integration and deployment less stressful.

At first, I underestimated how widespread the WSUID field was across the codebase. I initially thought I could change a few lines in the schema, but it quickly became clear that the change had to be made in multiple endpoints, error responses, and even test data. I had to backtrack several times to hunt down instances of WSUID that I missed earlier, which slowed down progress and created some confusion. Additionally, I didn’t write enough tests initially. As a result, one of the updates to the /guests/{uuid} path temporarily broke until I realized the mock data still used WSUID formatting. In the future, I need to write and run tests as I go rather than treating it as a final step. As a team, I think overall we have worked well and collaborate well with each other. Personally, I need to improve at assessing the scope of tasks more accurately. I underestimated the time and complexity involved in replacing WSUID to UUID. I want to become more consistent about writing tests early in the process.

“Be the Worst” from Apprenticeship Patterns (Chapter 2) encourages developers to seek out teams where they are the least experienced. The idea is that being surrounded by more skilled developers pushes you to grow faster through mentorship, observation, and collaboration. During this sprint, I didn’t have as good experience working with API design and backend architecture. At first, I felt a bit behind, especially when I didn’t account for all the areas affected by the WSUID-to-UUID switch. This pattern reminded me that growth often comes from being challenged by your environment and teammates. Had I internalized this pattern from the start, I would have asked more questions earlier instead of assuming I had to figure everything out solo. I would have scheduled a quick check-in to confirm I was on the right path before updating the spec. By embracing being “the worst,” I could’ve saved time and avoided some of the errors that slowed me down mid-sprint. This sprint taught me that meaningful growth comes from deep work, reflection, and surrounding myself with teammates who challenge and support me. I look forward to carrying these lessons and complete sprint 3 successfully.

References.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/guestinfosystem/guestinfobackend/-/issues/142

From the blog CS@Worcester – Lynn'sBlogs by lynnnsubuga and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.

CS-443: Blog 4

 CS@Worcester CS-443

For this post, I reviewed “Why is quality assurance a key to software development success?” by Emily Dobutović

  The article explains how quality assurance (QA) is a fundamental aspect of software development, ensuring that products meet both business and technical requirements while maintaining high standards of reliability. It emphasizes that QA is not just about detecting bugs but involves a structured process spanning multiple phases, including requirement analysis, test planning, development, execution, and maintenance. QA engineers play a crucial role in improving quality control and testing, helping companies reduce post-launch defects and enhance user satisfaction. The article also highlights the importance of automated testing, which accelerates delivery and minimizes manual errors, making software development more efficient.

Additionally, the article explores various testing methodologies and tools that contribute to successful QA implementation. It discusses how integrating QA early in the development cycle prevents costly errors and ensures a smoother user experience. The structured approach to QA, including defining test strategies, environments, and automation techniques, helps organizations maintain software integrity and reliability. By prioritizing QA, businesses can achieve higher customer retention and reduce long-term maintenance costs. 

I think this was a pretty interesting article. I found that it was well put together, and that it goes in detail about quality assurance. What made sense to me is how quality assurance is essential for maintaining high standards in software development, manufacturing, and various industries. It could help with Defect Prevention, Risk Management, Process Improvement, and Compliance & Standards.

From the blog George C Blog by George Chude and used with permission of the author. All other rights reserved by the author.