Recently I have had the opportunity to take part in the development of a new piece of software. That software is known as LibreFoodPantry, an open-source tool that is being developed to streamline the day-to-day operation of and record keeping involved in running a food pantry. This is the first real piece of software I have ever worked on with a team and the first real application of the Scrum framework I have taken part in. Being in this unique situation I am inclined to talk about the experiences and difficulties I faced during my first Sprint both to those who may have not used Scrum before and to those who are just looking for something to read.
From the beginning I and a group of my peers were tasked with creating a secure login service for LibreFoodPantry that would allow users to sign up and sign into the food pantry’s website. This sign on system also had the goal of allowing administrators to log into and manage the website and its users. The main goals then were to create a sign in that both users and administrators could use and having the website display different options based on the role of the user signing on. While nervous at first I found it fairly easy to get behind this idea, especially considering the goal would be to utilize ‘Keycloak’ an open source login service that will take care of most security aspects leaving us with the task of understanding how to utilize it, and configuring it to run with the website.
By virtue of this being a Scrum based workflow, we were left to plan out a backlog of jobs to finish in this sprint as well as hosting regular meetings to ensure we progressed accordingly to the jobs assigned for this sprint. We also needed a Scrum Master to ensure that everyone was able to progress as needed and suggest solutions to any roadblocks that may appear during the development process. For this first sprint I was lucky to be chosen for this position and with that we got to work.
Splitting those large goals into smaller tasks to put into the product and sprint backlogs generally proved to be easy enough. We then got to work and were each assigned separate tasks to complete. I myself was given the task of creating documentation for each of the repositories while may have created a simple frontend to test Keycloak on. Much of this first sprint came down to research on how to integrate Keycloak with our website and how to allow users to sign up, login, and disallow any use of the site without a login.
The team worked well together and we made it a point to, at least twice a week, have a meeting to discuss our progress and if anything was holding back our progress on a certain job. From a teamwork perspective communication was solid and any resources found were shared via a group chat should another team member find them useful.
It became clear as we went on however that we had underestimated the amount of work some jobs might take. Along with this, it dawned towards the end that we do not need to all commit to different jobs, but we can create small groups within our team to quickly take care of larger jobs. All of this really became clear as we neared the end of the sprint and realized that there were still some remaining jobs. I myself found that I was stuck on a single job most of the sprint trying to get Keycloak to work in some capacity and did not get to do any job past that. Along with this I found myself being too immersed in my own work and communicating less than would be ideal especially considering I was suck and could use the help.
While none of us lacked enthusiasm it was clear that we lacked experience working with Scrum and the Sprint cycle. This however is nothing that cannot be improved upon with due diligence and time. Scrum in of itself is a self-organizing workflow that sets aside specific times for review and adjustment. Going into the next sprint I can say with certainty that we will perform better and build upon the experiences of our first sprint.
From the blog CS@Worcester – George Chyoghly CS-343 by gchyoghly and used with permission of the author. All other rights reserved by the author.