Monthly Archives: March 2022

Individual Apprenticeship Patterns: Expose your Ignorance

Reading the chapter “Expose your Ignorance”, there were mainly four words that stood out to me: Ignorance, Pretending and Learning ability. This chapter is telling us how important it is in the professional field to embrace our ignorance which is our vulnerability and transform it into our strength by embracing the learning process.

I have been going to school since I was two years old. Even though school is meant to be a place where we all must learn and support each other, exposing our ignorance is not quite something that makes us comfortable. We feel behind everyone and sometimes, asking questions can give a sense of “nonbelonging “or “not having the appropriate level yet” for the class and it is frustrating. This frustration gets worse in the professional world where we are expected to know a lot of things and sometimes, don’t. We are driven to believe that the knowledge of everything is what allows us to keep a job or impress the employers or recruiters.

The other word that stood out to me is “Pretending”. This is actually very interesting because pretending is a temporary mask that sooner or later ends up falling and revealing your true face. However, I wonder if “pretending” can be used by someone to gain time for example, to boost someone’s confidence level and allow the person to learn/ improve while not necessarily exposing his/her ignorance and be uncomfortable.

The third thing that stood out to me was “Learning ability”. I believe that we are never done learning no matter what stage we are in life. Leaning is what keep us going and growing, learning demonstrates a sense of modesty. We put aside what we know, and we learn something new to add to what we knew already. The world is everlastingly growing. New technologies, new improvements, developments happen every day and that should always motivate us to seek more, to want to feed our intellect more on any subject.

In conclusion, I definitely gained confidence about trusting the learning process and not being afraid to expose my ignorance. I personally never worked in my field yet and I anticipate it to be a challenge to get hired in a tech company and meet all the specifications as a freshly graduate. I am planning to be honest with myself and with my team, managers, and clients. That way I am confident to deliver quality and not under deliver because I didn’t have the courage to be myself and allow myself to grow in the process.

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

Sprint Retrospective 1

The AWS deployment project was very surprising to me as it was not among my first choices. But with time, I am very confident with the evolution of the project and what the final product will look like. The god thing about our project is that we are all learning what to do. There is no sense of feeling behind or being ahead of others in the team as we are all new to most areas of the project. I believe this has allowed our team to be very open minded to any idea and to accept each other’s participation without any previous knowledge of what could be wrong or right. I appreciate the team workflow in the project and the trust we had in one another to get things done. The professor has been a great source of reassurance when we had couple of blockages (especially with the AWS) website. I believe that the accesses we have been given so far will be enough to get us started however, having worked with AWS website before, knowing how complex it can be, we might always need something more. Overall, we are a great team, out scrum master did a great job keeping the team together and maintaining respect and work ethics.

Improvements as a team

I have always been skeptical when it comes to working as a team. The reservations and worries about whether the work will get done, whether everyone will be involved, and the quality of the work reflected on our grades has been inevitable for me in the past. However, in this class, I feel very confident in the way we work as team and the way the professor assists us regularly to make sure we are involved and progressing. During our first sprint, we needed to make a lot of research to familiarize ourselves with the project. We didn’t find the need to meet outside of our stand-up meetings. That resulted in us not really communicating on the discord server, or any other platform outside of the classroom. In the future, as we will get more in depth in our project, I expect to improve this area and communicate more outside class for better planning and understanding among the team.

Improvements as an individual

As an Individual, I believe I did a good job on providing ideas, communicating with the entire team. I believe I specifically played the role of the reflector. The scrum master did a great job, but I was always willing to keep everyone on track when it was necessary. One area I could work on in the future is help improving the efficiency of our stand-up meetings. I noticed that my team is a quiet team which is not necessarily a bad thing. However, more common, and altogether conversations and unified ideas can be a good thing for the development of our team. Another thing I am planning on focusing more on the future is provide more in-depth reports on GitLab of the research we make. Our project is definitely a very interesting one and it would be great to share as many details as possible. The third area of improvement is to merge with the Identity and Access Management System(IAM) team regarding our project. We know for sure that keycloak will be a crucial part in our project. Meeting regularly with the IAM team to work together will make it easier for the two teams to move faster and not slow down each other on other things we could separately work on.

Evidence of GitLab activities

I did add the files in the General repository

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/1

I did make research on Keycloak and worked a little bit with the IAM team. Keycloak is an open-source software product to allow single sign-on with Identity and Access Management aimed at modern applications and services. It helps securing applications. It is a reliable tool to help manage users identity and accesses.

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/10

I did the Research on the best practices regarding the AWS EKS. Some of the best and important practices are the security, reliability, cluster autoscaling and running containers.

https://gitlab.com/LibreFoodPantry/common-services/aws-deployment/general/-/issues/8

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

The white belt

Today, I decided to read about “The White Belt” in chapter 2 of the Apprenticeship Pattern book. Basically, this chapter talks about how learning a language and becoming good at it can make us feel confident about what we do; until we have to learn another language that comes to challenge us and question our knowledge. Speaking of the white belt, it basically is trying to make us understand that even if the black belt leads and knows the way, the white belt will have no choice but to follow and learn the way.

The solution gives a clear explanation of what is the white belt and how it is important to unlearn what we have learned in the past and start fresh. By learning a first language, we can practice and get familiar with it. It might make us feel like we know everything until we have to learn a second language that comes to question our knowledge and understanding of the first. It does not mean that we do not know the first language that we learned, but we have to combine and sink both languages and approach it with a mind of a beginner. One thing that I learned from computer science, is that we learn every time. We will never acquire the complete knowledge of coding, programming because there will always be improvements to make, new challenges to overcome and surpass.

Jerry Weinberg said: “In order to climb, you must leave the sure footing, letting go of what you already do well and possibly slipping downwards into a ravine. If you never let go of what you already do well, you may continue to make steady progress, but you’ll never get off the plateau.” What I love about this quote is that we need to understand that in programming, getting off our comfort zone (e.g. meaning letting go of that language that we perfectly know and mastered) and possibly slipping downwards into a ravine (meaning taking the risk to try a new language and not be afraid of the challenges, difficulties it may bring) should not scare programmers. It changed my way of thinking and what I learned is that to be a good programmer, we should be ready to face any challenges. A programmer cannot stay and remain in his comfort zone because he is scared of the challenges and difficulties another language might bring. Then, he will never learn and improve his skills, he will continue to make steady progress without going any further.

From the blog CS@Worcester – Gracia's Blog (Computer Science Major) by gkitenge and used with permission of the author. All other rights reserved by the author.

Sprint 1 – Retrospective.

What worked well

As a team: 

We did a good job reviewing each other’s work. Merge requests were approved pretty quickly and we did a good job jumping in to help as soon as there was an issue.

Most of us did not remember scrum techniques and rules at first. However, we managed to catch up and follow the “rules”. We kept up with standup meetings and updating the scrum board. I also appreciated how every team member effectively reported on their work regardless of its state (in-progress, done, needs review, not-progressing,…)

Personally:

I think I did a good job being the scrum master. I had to brush up on scrum concepts a little bit but after that it went smoothly. I led all the standup meetings and took important notes for the group whenever we discussed our tasks.

As far as the project went, I worked on moving the api to its own repository. It was pretty straightforward. I created the folders and sub-folders and filled them up. I referred to the API repo we used last semester for the Microservices examples. I then added two JSON packages, some documentation and a development container.

What didn’t work well

As a team:

The biggest struggle we had was figuring out meaningful issues for our epics. We started off with not enough issues but then ended up adjusting the weights to reach the appropriate weights. At the end of the sprint, we realized that we actually underestimated the weights for a couple issues because we did a lot of “figuring out”, researching and that took some time that was not reflect in the board of issues.

Personally:

I feel like I could have done a better job looking at issues other than mines. I was so focused on doing the API that I didn’t have the time to look inside backend and the 3 front ends to sort of have an idea of what the others were doing. Consequently, at certain stand-up meetings, I would hear team members talk about specific blocks in the issues, but would have no idea what they were referring to. Another issue I had was with the GitLab pipeline failing in the API inventory. 

Changes to be made

As a team:

As a team, we need to do a better job creating issues. We also need to add more communication, discussion, and recording of decisions taking place under the GitLab issues and epics. We are looking forward to this sprint because we will most likely all work on the backend for a while so there will hopefully be a lot more to communicate on GitLab

Personally:

I will make an effort to look over the issues that are not assigned to me. I will also be a little more prompt to approve merge requests. I barely approved any last sprint and I want to make sure I review some of my teammates’ work because it will help me be in touch with how the project is going.  

Links to some issues:

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/backend/-/issues/1

Create structure of API Directory

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/backend/-/issues/12

Split openapi.yaml into paths folder

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/backend/-/issues/14

Create schema folder and add content from openapi.yaml

https://gitlab.com/LibreFoodPantry/client-solutions/theas-pantry/inventorysystem/community/-/issues/64

Add hrefs to API directory

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

Sprint Retro 1

With the end of our groups first Sprint, overall, I would say we did well as a team. This being the first time any of us were in a group, scrum team, working with Kanban boards, etc. With my group I gave them some reading material on roles/responsibilities of a scrum teams and scrum master. I figured with extra material; we will be able to create a solid plan for this Sprint. For this Sprint, I think we were a little everywhere in the beginning but were able to finally divide the tickets in the backlog with each member taking on 5 per sprint. We were able to get many of the tickets done and then go over what we had done or any impediments that we me have.

I was responsible for the following task:

Create “General” repository: The General repository needed the .gitattributes, CODE_OF_CONDUCT.md, DCO.txt, LICENSE.md, LICENSE_FOR_CONTENT.md, and README.md filles needed to be added. I went ahead and transfer all files over to the Guest Information Systems.

Create “Documentation” repository: The Documentation repository needed the .gitattributes, CODE_OF_CONDUCT.md, DCO.txt, LICENSE.md, LICENSE_FOR_CONTENT.md, and README.md filles needed to be added. I went ahead and transfer all files over to the Guest Information Systems.

check the database format to create our schema: Upon reviewing this task both my teammate Joe and I found that this task was completed before we realized that it wasn’t necessary. The correct tables that we needed are now documented in the documentation repository.

Contact the IAM team to determine security key format: This task was a joint task between myself and Jefferson. We contacted the IAM team, and we are currently waiting on the security key. We will keep open communication with IAM to further pursue future task. We met with Dr. Burdge and determined the two (2) tables and eight (8) API calls we will need for building the API yaml bundle. Currently, that is the only impediment that we are facing.

Study Nest api calls to define our own: RestAPI contained the tables that FoodKeeper needs to implement. After further investigation and the completion of the previous task of contacting IAM team, we were able to determine the correct tables needed. We also developed a plantuml file showing the 8 tables, and created a yaml bundle for the product table, but are now deprecated.

During this Sprint, we really were trying to get to know one another to get a feel of each other’s work ethic. However, we still were not able to showcase each other’s skills or strengths. A good majority of the tickets we had were coping and pasting things over or information gathering. Now, these tickets were and are essential for our next Sprint where we will be able to do actual coding. I think there we will be able to see our strengths and weakness as an individual and as a group to then grow from there.

I think going forward to the next Sprint, we will need more leadership and what we need to get done and keeping a timeframe on that. This past Sprint just felt unorganized, not everyone was being heard and just not as conducive as it should have been. Also, I think clarity from all members of the group is also helpful. Having some members not knowing what is going on can lead to the team not completing their task.

As for personal improvement, I think for me I need to give more input on what we should do as a team. I also think I will take on harder task to help the team move along, with assistance from other members as well. I think working more in a team dynamic to help each other out and complete task in a more sufficient and timely manner. 

From the blog CS@Worcester – The Dive by gonzalezwsu22 and used with permission of the author. All other rights reserved by the author.

Sprint 1 RetroSpective

Working in a SCRUM team has proven to be a task to say the least. For our first sprint, I was our team’s assigned SCRUM master. Our project? To create a mobile application that runs on android and apple devices to help aspiring U.S. citizens prepare for their citizenship exam. Our project was the only one out of the 8 that had no prior work done before it was assigned to us… aka we were starting from scratch.

The Bad

Before this semester, I wasn’t a stranger to working in a team to complete a project. Despite this fact, working in a SCRUM team felt a bit different. Collectively, we were working together as a team but at the same time we were working independently. At points during this sprint, there were times where we didn’t have great communication. A lot of the same questions kept reemerging after they had already been answered. I feel like we were slower to realize how important effective communication and active listening is. While we did conduct our daily standups, I feel like we only did them for ritual’s sake. Also, I felt the sense of everyone wanting to take the project in different directions because it reflected in how we had our conversations.

The Good

Although I had feelings of stagnation within our team, I do not fault anyone in the group because developing an application while beginning to learn many new things about getting it started is a lot, especially since it’s everyone’s first time. This feeling of stagnation is everything but. Our team’s progress had never stopped moving forward, even if it was moving slowly and that is an amazing display of my teammates willingness to finding solutions in new and unfamiliar territory. During our retrospective meeting we all came to realize that we got all the essential tasks for Sprint 1 project setup completed. I am also hopeful because I feel like my teammates are going to be great to work with once we all learn how to work with one another.

Improvements?

I think as a team we need to put more value into the daily standup meetings. Although they’re short in comparison to the work we’re doing during the rest of our meetings, they are super important in terms of our success. Making sure that everyone is active in the meeting whether speaking or listening is something we can improve upon. Another improvement we can make is being comfortable with having our ideas challenged. Instead of just blindly agreeing with an idea one of us has, we should be able to hold respectable debates on why something may not be great for our project and be alright with the outcomes of the debate.

How Did I Contribute?

Much of the early part of the sprint was dedicated to figuring out which framework we would use to create our application. We broke into three teams of two. Eric and I were assigned to investigate what the Flutter framework would bring in its arsenal to help us complete our project. A few of the things I spent my time researching include:

  • Learning about what type of application Flutter is.

https://gitlab.com/worcester/cs/naturalization-interview-confidence-environment/demo-react/-/issues/6

  • Creating a sample “Hello World” -like application in Flutter.

https://gitlab.com/worcester/cs/naturalization-interview-confidence-environment/General/-/issues/2

  • Making the decision to install Flutter locally on our system or use docker containers.

https://gitlab.com/worcester/cs/naturalization-interview-confidence-environment/General/-/issues/2

Once we decided that Flutter was not going to be the route we were going to take, I used the rest of my time during the sprint to work on the writing portion of our application.

https://gitlab.com/worcester/cs/naturalization-interview-confidence-environment/demo-react/-/issues/18

From the blog CS@Worcester – You have reached the upper bound by cloudtech360 and used with permission of the author. All other rights reserved by the author.