still thinking of a witty title

To start, this was my first real team project where I felt like all of the team members were highly capable of putting something of value together. It’s been a great experience to learn and collaborate with such a good group.

We started this project basically from scratch, learning just how difficult that actually is. Over time we worked out our goals and expectations along the way. Through some facet of peer pressure and blind faith I got elected to lead the team, though each member has done something to guide all of us in one way or another. 

This leads to the topic of what worked well with our team. First, we all tried to get to know each other a little better. Aside from having the same major and concentration, a friendly connection has absolutely benefited us when it comes to communicating and holding each other accountable. It also fostered an environment of being able to ask questions and for help when it was needed. It quickly became a good time coming to class and being on time just to see each other and show our work in person. Due to instinct or pure luck, the best move we made was breaking our group up into pairs, otherwise known as pair programming. This allowed us to have 2 people focusing on each aspect of our project making progress in all areas simultaneously. 

For myself, one part I would like us to improve is being more on top of explaining the finer details of what each pair is working on. Being the leader I am seeing the big picture of the project but I do feel at times the others get a little lost in their own portions. During the sprint reviews I think we did a good job showing each other what that meant, but we could certainly get better when it comes to the day to day aspect.

All of this culminates into one of the things that really stuck out to me in the second chapter of the book Apprenticeship Patterns referenced in a previous blog. This chapter was about “emptying the cup”. This phrase is an amazing metaphor for not allowing yourself to think you know too much to be able to learn from others. Too often have I myself fallen victim to my own thinking of already understanding all there is to know about a given subject. Sometimes it’s really beneficial to go into something with a fresh and open mind.

For example, while developing the inventory back-end there were at least 5 times where I had to start completely over. While this sounds like it would be extremely frustrating I was noticing that every time this happened, I was learning something new along the way. After having worked with the guest info back-end I thought I was going to breeze through replicating it. It wasn’t until doing it over and over that I realized just how much I was missing under the surface.

Nearing the deadline I was actually becoming a little worried that it wasn’t going to work out in time. We would have to move it into the next sprint. However due to having so much practice and my partners assistance making a mock version of what i was creating. We were able to very quickly and easily put together a working prototype of the true vision we had. This prototype is also proving to be fundamental to how we continue into the next sprint.

In the end my team came together and had 3 portions of this project ready to demo for the customer and our professor. It all worked exactly how we planned and it was so refreshing to witness. We all did a great job and should feel proud for how far we managed to come in just one month working on this and knowing each other.

Here are all 3 portions

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-culling/guestinfobackend/-/tree/main/src?ref_type=heads

  • This is a 2 for one. 
  • The mock database itself was created by me and my pair partner Prince.
  • The script to fetch data from an API we are utilizing was done by our teammate Anairdo

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-culling/addbarcodefrontend

  • This directory is the front end our other teammates have been working on to pair up with our backend. Credit to Adam and Donna

From the blog CS@Worcester – Mike St G – 448 by Michael St. Germain and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

My first sprint was a trial of figuring things out. Had to get accustomed to my team members and the program that was already created before. I was assigned to the reporting system and going in with my teammates and I didn’t know how far along the project had been. We had to first get settled and understand what updates needed to be done to complete our first sprint. Our sprint planning went well we understood the issues left before from a different class could be used for our sprint in this class. We all selected an issue that each one of us would resolve including some minor ones that came later on. I was chosen to Determine the startup procedure for MongoDB and RabbitMQ in the development environment

At first, I was confused with understanding what I had to do but after reading the comments made I began to understand what needed to be done. It was more of a test by creating another docker-compose file to run the Rabbimq without the backend. I created a devDocker-compose to achieve my goal. I then created another index.js file. I did this to run the developer versions or production of the up scripts. I did minor updates during the sprint including updating devcontainer so it would work better on Macs. There were several things we had to update so we split up the work and committed the corresponding ones to the main. I helped my teammates in their projects as well by working in their branches and accepting their merges when needed. As a team, we worked united and we always made sure we were all on the same page. During this sprint, we learned new things that we could incorporate into our team including updating each other on what we are working on today to be on the same page. We never let any team get lost and we were always there to pick each other up. One moment I could recall is that one of our member’s computers was having issues and we all as a unit came to find the issue which we did. Even for minor mistakes like commit messages, we made sure to edit and fix them to pass the pipeline. 

The pattern I would choose from the Apprenticeship Patterns book would be to expose your ignorance. It’s great to work alone and do your own thing but if you get stuck don’t be scared to get help from teammates instead of figuring it out alone. It’s great to get feedback and ask questions to everyone. This pattern is key for the growth of a developer and being able to be humble when addressing gaps of knowledge. You don’t have to act like you know everything because of pride or embarrassment but be willing to learn and be curious without fear. During this sprint, if I didn’t ask for help in certain scenarios I wouldn’t have known how to continue my project but being able to discuss boosted my work progress. When you are first joining a team you want to be reliable instead of a burden but asking questions as a whole will strengthen your team. During this spring I wouldn’t have hesitated to ask more questions that I had figured out on my own.     

From the blog CS@Worcester – DCO by dcastillo360 and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

Created a separate branch from the frontend to solve the CORS/SSL issue

Created epics for larger tasks and broke them down

Organized tasks into issue boards

Prepared for Sprint 2 by adding new tasks

Documented important information regarding issues and how they were solved

In sprint 1, we were able to mostly complete everything we planned out; needing some revisions in certain areas. As a team, we performed well with eachother and communicated effectively to ensure all tasks were progressing at a timely manner. Additionally, we looked to eachother for help when we were stuck and didn’t know how to progress further, preventing teammates from falling behind in their tasks. What didn’t work well ocurred near the end of the sprint, where a teammate didn’t fully complete their task like they were supposed to, requiring one person to complete their task in sprint 2. This problem could have been solved if the team incorporated weekly code reviews to ensure that all areas of the task is looked over and nothing is forgotten. As the scrum master for the team, I plan to push for this element in future meetings.

Another improvement for the team that will be implemented in sprint 2 is better meeting time management. Since we only meet twice a week as a team, we should take this time to share progress we have made to the whole team. This could be any code written or any interesting articles that are useful to know. The primary goal of the capstone is to simulate a real development environment and solve tasks effectively. Equally important, however, is the opportunity to absorb and learn as much as possible. Something your teammates discover may prove valuable to you in your future career.

To improve as an individual, I want to get involved in other peoples tasks and try to offer my input in any way possible. Instead of being preoccupied by my own assigned tasks, widening my scope of work to my teammates tasks will allow me to grow as a developer and expose me to various tasks.

One pattern from Apprenticeship Patterns, that aligns with this sprint is “Confront Your Ignorance”. The pattern emphasizes the importance of recognizing and addressing gaps in your knowledge. Instead of avoiding unfamiliar topics, you should actively seek out challenges that push you to learn. This involves identifying areas where you lack expertise, setting goals to improve, and dedicating time to research, practice, and experiment. By taking on tasks outside your comfort zone, you develop problem-solving skills, adaptability, and a deeper understanding of new concepts. It pushes you to adopt a continuous growth mindset and helps you become a more effective and well-rounded developer. Going into capstone, I knew that I wanted to push myself to learn as much as possible, which is why for the first sprint I chose a task that I had zero prior knowledge about. In order to work on my issue, I had to research about CORS and SSL certificates, both of which are crucial concepts in web security and backend development. This process involved reading documentation, troubleshooting errors, and experimenting with different configurations to understand how they functioned. Choosing this issue to work on has also exposed me to the use of proxies, that route frontend requests to the backend. Utilizing a proxy will ideally allow the http backend url to connect to the https frontend url. In sprint 2, I plan to experiment more with proxies.

From the blog CS@Worcester – Computer Science Through a Senior by Winston Luu and used with permission of the author. All other rights reserved by the author.

Software Development Capstone Sprint 1 Review

After the completion of our first sprint, I believe our team performed very well. There were no issues left in the sprint backlog at the conclusion of the sprint, and, equally important, our understanding of how the Thea’s Pantry reporting system needs to work has grown significantly.

The divide and conquer approach taken worked well for us. Splitting up the issues gave us more flexibility in how we would approach our particular task. For me personally, I was able to do my research and development at a faster pace as opposed to having multiple people working on the same file. On the other hand, our team meetings were extremely useful for getting feedback and help with development issues. Having more sets of eyes to look at a problem often times got issues resolved quickly. The team dynamic in programming and software development, in my experience, is usually a balance between avoiding a “too many cooks in the kitchen” situation and making sure the team is communicating and engaged with each other. I believe our team balanced this reasonably well.

That said, I believe we should work to improve our inter-team communication. Having a good sense of what other members are working on is important if we’re going to continue to divide issue assignments. This is something I should work on specifically too. I want to avoid the habit of staying head-down in my laptop working, and do a better job of communicating on the status of what I’m doing, especially when working on my own.

My main focus for development was writing the code to create a properly-titled .csv report file to be sent and downloaded onto the user machine when the API call is executed. Here are links and descriptions on specific things I accomplished this past sprint:

  1. getReport API Endpoint – Developed and tested RestAPI endpoint to retrieve report file.
  2. buildReport Function – JavaScript function to build the report itself from RabbitMQ data. Currently, this generates a blank .csv file with the proper title with relevant dates of the report.
  3. JSDoc API Documentation – Began setup and use of JSDoc, a markup language for JavaScript to generate developer documentation.
  4. JSDoc Deployment Shell Script – Shell script to aid in building documentation files.

From the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave H. Hoover and Adewale Oshineye, the section regarding protecting one’s passion for software craftsmanship stuck out to me. Getting tired or frustrated when writing code is more or less inevitable; being able to separate those feelings from the field as a whole is key. The book mentions the idea of “Drawing Your Own Map”, a strategy for mitigating burnout. The core idea is setting limits for yourself can be as important as setting your goals. One can define the boundaries in which they allow themselves to work within, as even with short-term consequences (the book mentions missed raises and unhappy coworkers as examples), walking The Long Road rewards pace and longevity, not speed. I firmly agree with the statement made by the authors; quality craftsmanship does not come from short, intense periods of work followed by burnout, but by maintaining a steady pace forward across a decades-long career.

From the blog Griffin Butler Computer Science Blog by Griffin Butler and used with permission of the author. All other rights reserved by the author.

First Sprint Retrospective

Last week, my team completed our first Sprint of the semester and presented our work to our professor and the client. Overall, as a team, we did a great job for having not done or been a part of a Sprint before. Each one of us was assigned an issue at the start of the Sprint to work on over the period. One of these issues was evaluating the frontends, so I reviewed each of them and found that two of them, AddInventory and CheckInventory, did not run properly. It was determined that it was a server/deployment issue, so I contacted a member of that team through private messages. The team was aware of the issue and were working on it, so I suggested to my team that we focus on the backend for this Sprint. However, we decided that it would be better if we try to fix it ourselves instead of waiting. So I was given the CheckInventory frontend. In class, another member was able to get the AddInventory frontend to run, so I asked for their help outside of class, where we determined that the frontend was unfinished. So my task for the next couple of weeks was to fix that, and I did so by comparing it to the AddInventory and CheckoutGuest frontends. I then “borrowed” files that were missing from my frontend, and edited and fixed ones that did exist. This consisted of organizing some files into new folders, copying over frontend-prod-build and frontend-dev-up commands, index.html file, and much more. After I got it to run, I edited it so that it would match the AddInventory frontend. After all of that, I committed, pushed and made a merge request. The pipelined failed with that, due to a yarn lock issue, so I fixed that, linted, and then committed and pushed again. 

What worked really well was communication between the team. I felt that whenever someone had an issue or needed something done, someone answered within the day, which is really good. I think the team chemistry was also really good too, it did not feel too serious but also not too laid back. We also helped each other whenever we could, which is good. On the personal side, what worked well for me was just working in general. Like this whole thing is something that I have not experienced before, so just being part of a team to get work done for someone else kind of gave me fuel to work and make this a good thing. However, something that did not work well for me was the expectation to get enough done. For each week we plan for something to get done, but every time for me, I felt like I did too little or not enough. Maybe it is something in my head, or I am setting the bar too high, but that ghost pressure was not nice. 

There is not a lot that I would say we can improve on as a team, mainly because our communication is good, the atmosphere is great, we help each other and we get things done. What we could do, just as a minor thing, is clarify what we are working on. Although I do not think this is an issue, it has been expressed by members of the team, so this can be a good way of getting some bearings. As an individual, what I can improve on is just getting more done. Although I did finish my part of the Sprint by the end of it, it did not feel enough to me, so going forward I want to do more. To go with that, I would like to be more open about what I did do, some of my teammates were not aware of what I did in some of the past weeks, so I would like to improve on.

The Apprenticeship pattern I have chosen that resonates with me this Sprint is “Confront your Ignorance,”  which is basically not knowing the information needed for the work at hand. I chose this one because it describes what happened to me during this Sprint. I realized very quickly that I did not understand many things in the frontend and the Inventory system overall, which was scary and discouraged me. If I had read about this pattern before the Sprint, I do not think much would have changed. I still would need to do a lot of research regardless.

From the blog CS@Worcester – Cao's Thoughts by antcao and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-weight-based/inventorybackend/-/merge_requests/60

This is my merge request for my finished task of implementing nodemon into InventoryBackend in order for developers to utilize hot-reloading and for the correct port to be added for the database.

For Sprint 1, what worked well for me as an individual was my experience with nodemon itself, and being able to incorporate that experience to get a head start on the issue. Although it took me longer than expected to complete the implementation, having some background knowledge allowed me to be more confident in the changes I was making. The familiarity of the subject gave me some peace-of-mind.  

As a team, what worked well for us was our communication skills and being supportive and helpful of each other during class time. We kept ourselves organized with our issues and our Issue Board, which allowed for a clearer understanding of the tasks at hand. Our in-class environment as a team was very open and transparent with our problems and what we’re working on. Our communication from within Discord improved over the course of the Sprint, and we were able to keep each other up to date whenever we ran into a problem, made a merge request, or needed a question answered. 

On an individual level, what didn’t work well was my silence at the beginning of the Sprint. I struggled with incorporating and fixing nodemon, but I wasn’t asking for help early enough. Once I did ask for help, I was able to make great progress thanks to the assistance of my teammates and Professor Wurst. As one of my teammates had noted, if I had asked for help sooner, I might have been able to finish my issue faster. 

On a team level, we did lack in communication here and there, such as a lack of response on Discord, or others not being included or involved as much as they could have been. The Issue Board was too vague from the beginning, which made it hard to choose our issues and perhaps led us to bite off more than we could chew.

To improve as a team, we should be narrowing down our Issues and specify them more clearly, so that our Issue Board and plan for the next Sprint is more refined and achievable. I think we should also start to do stand-ups at the beginning of each meeting to inform the team of what we’ve been working on and the status of our progress. Also, although this applies to mostly me, I think asking for help whenever we’re stuck would be a great improvement. 

To improve as an individual, I, as previously mentioned, should speak up when I am struggling to try and get assistance from my teammates. It’s always good to have alternate perspectives and fresh viewpoints, so someone else may see a problem or solution that I wasn’t seeing. I could do a better job at keeping up with my teammates’ work, as I sometimes don’t confidently, fully know what they’re currently working on. 

Although there are a few Apprenticeship Patterns that would apply to me, I’ve chosen to discuss “Retreat into Competence”. This pattern describes a situation where you are beginning to realize how much you don’t understand about the work you’re doing, what you’re expected to do, or even the work going on around you. It eventually becomes too overwhelming, and to fix it, you revisit your “comfort zone”; you involve yourself in your area of expertise to gain confidence back and to take a quick break. 

I selected this pattern because I often feel weighed-down by an overwhelming sense of ignorance from all of the languages, frameworks, and other factors of programming that I do not understand. It makes me lose confidence in my ability to code, as it emphasizes my weaknesses. In terms of this Sprint, although I chose an issue that I had a little bit of experience with, the roadblocks I hit made me realize how much I didn’t fully understand about nodemon and especially docker-compose files, connecting to databases, images, and the like. Finding my ignorance in these areas reduced my confidence in my ability to program and get this issue solved. 

If I had read the pattern before or during the Sprint, I would have stepped back, worked on something utilizing my strengths, and gained my confidence back. It’s good to remind yourself of what you’re capable of.

From the blog CS@Worcester – Josh's Coding Journey by joshuafife and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

Gitlab activity:
https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-weight-based/addinventoryfrontend/-/merge_requests/37

This was my first task I worked on during sprint 1. I updated AddInventoryPage.vue to match the design elements of Main.vue from CheckOutGuestFrontend to foster consistency in design layout.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-weight-based/addinventoryfrontend/-/merge_requests/38

This merge request involved the refactoring of a few files so AddInventoryFrontend was able to load on port 5173 in the browser and connect to InventoryBackend, I submitted this merge request as an update on my work before the sprint 1 review, as complete implementation wasn’t done yet, the adjusted total weight of the inventory wasn’t working in this request.

These next two merge requests fix the issue of the previous one (adjusted total weight of the inventory is now being returned):
https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-weight-based/inventorybackend/-/merge_requests/59
https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem-weight-based/addinventoryfrontend/-/merge_requests/39
There was an issue in InventoryBackend’s updateInventory.js file where the value was being returned incorrectly, so this was fixed and allowed the adjusted total weight of the inventory to be displayed in backend calls and in AddInventoryFrontend.

What worked really well in this sprint was the communication between all of the teammates. I acted as scrum master and there was no push back for getting work done. Everyone was able to work on their tasks independently and utilize teammates for help during class sessions. Discord was a big help in terms of ensuring we were keeping track of each other’s progress outside of class and was a good place to pose questions or ask for help. What didn’t work that well was the way in which we established goals for the sprint. This is our first one so it was to be expected, but going forward with sprints 2 and 3 we are aiming to establish more focused issues to work on. The goals of sprint 1 were too broad and made it feel as though not much progress was made even though we worked diligently.

Overall, as time goes on we continue to work better as a team. As a result, I don’t have many suggestions for improvement. However, establishing more focused goals as previously mentioned would improve our workflow, maintaining positive and consistent communication is obviously valued, and increasing how often we show each other what we’re working on are all things that can be considered. The biggest fault of our team is that sometimes teammates won’t really know what others are working on, even though they are contributing to the project. It’s important going forward to help visualize how everyone is contributing by ensuring there are consistent check-ins. Personally, since I’m still acting as scrum master, I should try to promote these check-ins myself instead of relying on teammates to initiate this. Having conversations going forward about who should be the scrum master, for how long, etc., is also something that I could mention. 

From Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye, the most prevalent pattern for this sprint may be “Expose Your Ignorance,” just today we were shown the value of this pattern. One of our team members was able to solve two separate issues that were preventing merge requests from being made. The basic idea of exposing your ignorance is that you’re showing those around you that you don’t necessarily know everything, you’re open to receiving help, and you want to learn throughout this process. Instead of feeling the need to appear competent, you are fostering a learning environment for everybody. I selected this pattern to mention because if we as a team were consistently exposing our ignorance, we could have potentially accomplished a lot more. Yes, individual work is important, but the hours spent on your own trying to fix an issue to no avail is not always worth appearing competent to your peers. If this pattern was read during the sprint, more questions could have been asked and answered, and more contributions to the project could have been made. 

From the blog CS@Worcester – Shawn In Tech by Shawn Budzinski and used with permission of the author. All other rights reserved by the author.

Introduction to Apprenticeship Patterns

            After reading the first chapter of Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman, my initial reaction was that the motivations and goals for this book were very admirable. The authors do not claim to have a correct path to becoming a successful developer.  Instead, they introduce an approachable and adaptable set of patterns that help you on your path through the stages of apprentice, journeyman, and master. They are establishing a mindset, a foundation for how you can become a better software developer. What made me admire the goals of the book were the implications of others using these patterns. If the community of developers adopts a craftsman mindset, it will improve the accessibility for new developers. More people would be open to learning from each other, sharing techniques, and uplifting the next generation of software developers.

            Since I have only read the first chapter and the introductions to others, my knowledge of the patterns is limited. From what I have read, the lessons you can learn from this book seem philosophical, which is a shift from how I would typically think about success in the software development field. I liked the book’s emphasis on self-reflection and seeing where you currently stand as a developer so you can see your path forward. The book discusses getting rid of pride or contentment in your current abilities so you do not restrict yourself from improving or learning from others. I can see myself and others falling into mediocrity with an incorrect mindset. It reminds me of advice I have heard that aligns with the metaphor of the big fish in a little pond. If you find yourself the biggest fish in the pond, you probably should not be there. Being content with your position will stifle your growth, so the idea is to constantly find yourself a bigger pond.

            The chapter that seems most relevant to me would be Perpetual Learning. The breadth and depth of my knowledge are at an early stage, so I am constantly learning new things to bolster my understanding and improve my skills. I am excited to learn and understand these patterns and hope that more developers will adopt them in the future.

Link to the book: https://learning.oreilly.com/library/view/apprenticeship-patterns/9780596806842/#toc-start

From the blog CS@Worcester – KindlCoding by jkindl and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

What worked well this sprint was our division of roles and tasks as well as the planning for tasks and the sprint as a whole. Each member had a specific section of our project that we worked on, some even taking part  in more or most of the project, as well as connecting the pieces of the project. I think we spent a lot of time planning and working out what we need to do, the path we want to take, and the many decisions along the way. This hopefully led to less confusion while working through the sprint. 

What didn’t work so well this sprint was the communication. Communication during certain moments in the sprint was lackluster and thus other members didn’t know what certain members were up to or working on. This also led to those other members having to pick up work had the certain member not done their work within a specific time.

To improve as a team, I think we should communicate more. Specifically, what we’re working on, what we can and can’t do, if we need help, and to complete tasks that require more than one member. As we move towards a complete product, I think the work may become more complicated and the communication will be necessary to connect and join respective pieces of the project.

To improve as an individual, I need to communicate more and stay on top of my work. Putting in more effort to communicate with my teammates and completing my tasks should be my number one priority. Personal issues, lack of effort, or lack of understanding led to me not being able to complete my tasks. Not only is that quite the issue, but I didn’t communicate any of that to my team at all, and thus they have no idea what I’m up to and have to pick up the work that I didn’t do. 

The apprenticeship pattern I felt was most relevant to my experiences was “Expose Your Ignorance” from Chapter 2. This pattern states that there are people depending on you to know what you are doing and need confidence that you can deliver. The solution to this pattern says to “Show the people who are depending on you that the learning process is part of delivering software [… and that the …] most obvious way to expose your ignorance is to ask questions.” I felt that this pattern partly describes what I experienced during this sprint. There are people relying on me to do my part but I don’t have the confidence in my ability and am unfamiliar with a lot of the processes that we will work through. My teammates, on the other hand, are very familiar with the processes or are very willing to learn. 

Although I did expose my ignorance and ask questions of some of my teammates who were much more experienced than I am, I could have done so much earlier. Not only that, but I still feel hesitant to ask questions because there are plenty of things I should already know but don’t. Reading this pattern may have encouraged me to ask questions more often and much earlier in the sprint, increasing communication from myself and between teammates, and would hopefully lead to me knowing what I need to know to tackle my tasks.

From the blog CS@Worcester – Kyler's Blog by kylerlai and used with permission of the author. All other rights reserved by the author.

Sprint 1 Retrospective

The first sprint was a productive as well as eye-opening experience. This is the first sprint and set of work that we completed as a team during this capstone. The first sprint was able to teach us how to effectively and efficiently spread out the work, ask questions between each other for collaboration as well as knowing when to go to outside sources such as other teams or the professor. In our first sprint, the work revolved mainly around creating a new field for the guest object that would be able to store the value of the date of first entry. This one task was able to be split up into different working portions. These included adding this field to the API, the back end and the front end. Besides the main task we also completed the tasks of mounting a volume to the docker container allowing data to persist even after rebuilding as well as working on a CORS issue prohibiting the back end from communicating with the front end.

This is where things started with working well. Sean was working on the back end while Hiercine was working on the API, since they shared the same subsystem they were able to collaborate to solve the problem together. This was also scene with Lynn working on the front end and Winston fixing the CORS issue they both had experience with the front end so they were also able to collaborate. This is one of our biggest strength is our team working abilities and being able to collaborate to make the work flow more effectively and efficiently. Next, are the things that didn’t work well. I believe that everything we did was to the best of our abilities. The only things that could be commented on as not working well is our lack of knowledge in certain areas. For example, not knowing exactly how certain systems worked within the code since it was our first experience with it. In addition, when it came to linting issues, one linter was for commit messages which we recently learned how to make proper messages so we had to learn how to make them after causing the linter to fail.

I believe as a team we are in a very good spot that cam only go up. I think as a team we can work at continuing to learn more about the systems and tools being used. In addition, I believe when it comes to merge requests we can be more efficient in making sure all work gets merged in a timely manner and we all collaboratively spread out the merging work. As a individual, I believe I can improve on learning more about the code so I understand more what is happening so I can make better solutions for the issues at hand. I also believe I can work more at improving how I collaborate within the team.

The pattern I selected was “Rubbing Elbows”, I chose this because I felt it related very well to how we worked as a team. Even though we all had our own assigned issues, we were able to find commonalities between them allowing us to work together to increase efficiency and find solutions that we would not be able to find on our own. The “Rubbing Elbows” pattern is knowing when to seek collaboration and being able to learn from those you are working with. I don’t think reading this prior to the sprint would change anything since we already were collaborating.

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/guestinfosystem/guestinfobackend/-/issues/139
https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/guestinfosystem/guestinfofrontend/-/issues/107

https://gitlab.com/groups/LibreFoodPantry/client-solutions/theas-pantry/guestinfosystem/-/epics/56

From the blog CS@Worcester – Giovanni Casiano – Software Development by Giovanni Casiano and used with permission of the author. All other rights reserved by the author.