Another Sprint, Another Retrospective

Good day to you again, my fellow readers! Well, the time has marched on and I have once again found myself at the end of another sprint and you know what that means; time for another sprint retrospective.

This sprint has been a bit slower than the previous sprint was. With the trials and tribulations of relearning or learning angular (in the case of some of our group members) behind us, many members of the group were able to excel and start knocking items off the backlog. With each item off the backlog, my teammates were even able to add on extra features and improvements. Content for the left navigational bar was established and each was given an appropriate button. We then added submenu buttons, for items that belong under a certain category and not on their own. A home button was added to take the user back to the main screen, return from the left navigational bar and close it. Many aesthetic changes were made as well. Buttons were moved, spaced out more, colors were changed to make it more aesthetically appealing and less harsh on the eyes, the font size was increased for better readability, and the text that confirmed a button press was moved to be centered on the page. The latter was simply for testing purposes so that button presses could be confirmed that a button press would actually register and change to the appropriate page.

On the last day of the sprint, our manager/professor informed us that another team working on the search bar function for the AMPATH application wanted to push their work to the Github repository and we needed to push our work as well because we had made a base application in addition to making the left navigational bar.  As one could expect, there was a problem. The issue was that our group had made a repository and were not working off of the branch we had created. Now, this may not seem like a problem however, the repository we made was not on Github, but in Gitlab! Remembering the Git lessons I had just had earlier in the day, I suggested simply setting a remote upstream to the branch in the main Github repository from our Gitlab repository. We could then simply push from out Gitlab repository to the Github repository and all would be well. With approval from the professor, I made sure to pull all changes from my team members, set the remote and attempted the push. Error. Of course, things can’t be easy. The error was a permissions error that would not allow the push if I remember correctly. After conferring with the professor again, he determined that the best course forward would be to simply copy over the needed files and make changes where needed to other files and push those changes to the branch. Then request a merge with the master branch to make the changes available to the teams that needed them. This was not terribly fun as while some files could be copy-pasted in, there were many files that I had to manually edit and add in lines that we had added. Before attempting a push, I made sure that the application actually ran, which it did after installing npm. After pulling all changes and completing the manual edits, I attempted to push the changes. Error.  I was missing files from the master branch. I pulled from master and tried again; same error. I wasn’t sure what was going on as I had just pulled and there were no updates. I pulled again to receive a no changes message. This had stumped me. This left me with only one option, sleep on it. After waking up, I came back to the issue and had a random thought to pull from the branch, and it worked. When I went and attempted the push, I had one more error, but that was because I forgot to check the master for updates. One final pull from master and I had done it. I was able to successfully push to the branch. To end this saga, I made a pull request to merge our branch into the master branch. That saga was great practice with Git and solving its many errors.

That’s it, readers. Another sprint comes to a close. We have only about one or two more sprints left so the time we have left is quickly coming to a close.  Until next time readers!

From the blog CS@Worcester – Computer Science Discovery at WSU by mesitecsblog and used with permission of the author. All other rights reserved by the author.

Sprint 5 Retrospective

Sprint five lasted from April 8th to April 22nd. This sprint, we were focused on completing any big steps left that the project required in preparation for the upcoming sprint, where we will focus on our presentation. For the next sprint, we also have allocated enough time to polish minor details if necessary or finish any uncompleted project features.

My role this sprint was to implement a button that offered more buttons when pressed. This is useful in cases where we have multiple links or related content that can be categorized under a common theme.

To start, I created a new routing module and component for the new button. Yesenia helped me a lot with this task, since she set up the components for the existing buttons. She provided me with the correct commands, ng generate module file-name –routing and ng generate component file-name/sub-file-name. We worked together by bouncing ideas off as we pieced together the HTML and related programming for the new button. By the end of class, we successfully created a new button named dropdown that would rout to a new page, indicating the linked connection was successful.

This was not the full intention however, instead of bringing the user to a new page, the button should display three more options, each of which could have the capabilities to send the user to a new page. I created the three links, but I couldn’t figure out how to hide/show them upon triggering the dropdown button. I deduced that I would mostly have to play with the component.html file, I used the following link as a model of what I wanted to do.

https://material.angular.io/components/sidenav/overview

In that link, scrolling down to the section titled “Drawer with explicit backdrop setting” I was able to look at the existing HTML and trim it down to fit the needs of the project. Mat-form-field and mat-option was specifically what I needed and what I used. With few modifications, and again some bouncing ideas from yesenia, I currently have the feature up and running. Some small things that I would like to get done if possible would be changing the color of the dropdown text to match the other buttons, as right now it is very distinguished looking. Also the manner in which the new options appear is not what I originally thought of, instead of creating a pop out list, I was thinking the buttons would appear on the sidebar beneath the dropdown button and would shift all other buttons below it down. The link below shows what I was originally thinking, but I couldn’t make that work as easily.

https://www.w3schools.com/howto/howto_js_dropdown_sidenav.asp

The reason why I decided to use the other link directly over this one is because I didn’t understand how the provided javascript worked enough to implement it in our project. I’m sure if I dedicated to it, I would be able to get the feature exactly how I want it, but this is not necessary and Ill only change the existing feature if we have extra time.

The focus for our next sprint will be coming up with our presentation and trying to merge our project with some of the other groups projects. We want to be able to combine our side bar with the team working on the search bar without stepping on toes. Tim is currently working on that, I may need to copy and paste some of my work in order to make sure its implemented in the current master branch.

From the blog CS@Worcester – CS Mikes Way by CSmikesway and used with permission of the author. All other rights reserved by the author.

Sprint-5 Retrospective Bog

It’s time for Sprint-5 Retrospective Blog Post. As you are probably aware by now, during this semester I will be working on a AMPATH project with a team I was assigned on by my Software Development Capstone professor. As part of our assignment we are assigned to complete a Sprint Retrospective blog post at the end of each sprint. As of Today, April 23rd, 2019, we have completed Sprint-5. During this fifth sprint we were able to get some task done and some task started during this past fifth sprint cycle.  For sprint-5 our task involved the following:

  1. Collapse nav-bar when clicking on button to go to the new page -> ME
  2. Add button in nav-bar to redirect back to the home screen -> ME
  3. Adding sub-menus to the existing buttons – Mike
  4. Move buttons farther down the nav-bar – kat
  5. Change colors of app – kat
  6. Left navigation bar – scaling -> Tim
  7. Start the final presentation – Quoc

During this sprint my team and I all focus on our individual task we assigned to each other. For this sprint one of my task was to figure out how to collapse the nav-bar when clicking on the button to go to the new page. My other task is to add a button that redirects you back to the home screen on clicked. Each of my team mates had task which I have listed them. In this retrospective blog I would only discuss my task and what I have done so far.

From the task I was assigned (more like picked) I had to make the nav-bar collapse once any of the button was clicked on to navigate to the next page. This took me a little while to figure out but one I did. I realize how simple this step truly was. The way I did this was by adding “(click)=”drawer.close()”” for each button after “mat-button”. The way this work is that when you click on the button it leads you to the page expected and closes the nav-bar. For my next task I have to add a button that will redirect me to the home screen once the button is clicked on. This task I have not completed I have started it but I have not finish this task yet. For the next and final sprint I hope to have this task completed. 

I can say that during sprint-5, I’ve learned a little more about Angular Material, and how to get the nav-bar close on click. For this sprint I am still doing some reading and tutorial on Angular Material because I found its tool pretty interesting and worth learning the different cool things that can be done. In light of everything I learnt there is nothing very special that went on that requires details explanations or strategies that would be required for handling things differently next time. That being said this project is still proving to be fun and interesting. So far this project is going without a hitch, and it’s not making anything more complicated than it has to be.

Thank you for your time. This has been YessyMer in the World Of Computer Science, until next time.

From the blog cs@Worcester – YessyMer In the world of Computer Science by yesmercedes and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective – Round Five

A reflection on what I learned from this week’s sprint is
that establishing a working line of communication between multiple groups
working on a singular product plays a large role on the work flow. The “Theas-Pantry”
repository is currently utilized between two different sections of the same
class. As each section is either in a separate time slot or day of the week,
there is no physical communication between both groups.

In order to solve this communication problem, it is
presented to us to use a communication program called Slack. Within this program,
there is an established group that allows communication between the following
groups: all class sections, professors, and owners of the food pantry. However,
a second line of communication can also be established on the repository in the
form of discussions found on independent issues posted within the repository.

The theorized result of the primary communication program,
Slack, is that all related groups will be periodically or frequently
communicate with each other. If this is the behavior that exhibits through the
limited development time, which is the length of a single semester then there should
be significant productivity between both groups.

However, this was not the behavior that was observed during
the development time. The slack group made available to the students is under-utilized
in two ways. This first way is surprising, which is between the members of the
same group. I suspect that this is the result of being students and having
other priorities where the project is second to completing course work for
other classes. In the second way, which is not surprising, is communication
across multiple groups.

The core lesson of communication comes from the in-existence of communication between multiple groups. One major example of an issues that arose from this lack of communication is within the process of establishing and managing the project within GitHub. There were task duplications, wrongful closure of tasks, mismanagement of branches and many more. It was only until the middle of April where a successful link of communication was established to rectify the situation. If both teams took the communication aspect of group work seriously, the problems found should have been minimal or solved relatively quickly.

Although many of the issues have been solved as of today,
only one on-going mystery remains. There is a possibility that both groups do
not have a clear idea of what the other group is doing. We hope to sort this
out, as both groups seem to deem the other as the one at fault for any issues
that arise. This is the not ideal work environment in any situation and is
likely a product of poor communication.

During this sprint, I focused my efforts on solving the communications problem as described earlier in the blog. This includes updating descriptions of GitHub issues that lacked a meaningful description, removing duplicate or irrelevant issues created, or removing older Git branches. Other things that I worked on would be creation of newer tasks as indicated by our recent meeting with a representative from the University’s food pantry. Finally, the last significant thing I worked on would be finalizing the initial creation of the back-end, where it currently only serves a purpose at redirecting data from the intake form app to a server. I can only hope the last sprint finishes strong so that a working product can be presented.

From the blog CS@Worcester – Progression through Computer Science and Beyond… by Johnny To and used with permission of the author. All other rights reserved by the author.

The IncreEdibles Sprint 5 Retrospective

This is sprint retrospective blog post number 5 for the IncreEdibles team. After we moved to Github as our main issues board, we list all the features/tasks in one place. In out front-end we have the website interface. This is what our customer sees on their computer, after customers come to the food pantry office, they will give OneCard ID number to the front desk. We are trying to implement the scan swipe into out program. It will automatically fill in to the ID box. There are three sections for our customers, first section is sign up “Intake form” for the first timer. They need to fill out the form with information such as zip code, household’s situation, number of people in household, etc.. We can to make this easy and clear as much as possible. We created each features of this form on Github, then each of us will pick one to work on. To work on these issues, we create its own branch with the name relate to these issues. By this way we can work and review each other work without create conflict to the master branch. I picked issue number 39 “Intake Form: Ages of Household Members”, this feature take input on what are the age range of people in household. There are 4 age groups: from 0-4, 5-17, 18-64, 65 and up. I created these group to variable name ageGroup1, ageGroup2 …user will can options of drop-down menu from 1 to 10. We will have record of how many people in the household and their age range.

The second section is the form for return customer, they will input ID number as usual. The front desk operator will input how much food they take. We will keep record the time and date, and how much food they take. By this way we can keep track on how much food we have left in the food bank. The third section is the weight form, this is for Theas Food Pantry operator, they can input how much food in come in. They can track how much food is come in and come out, and what is left in the food bank. We also need backend which are the database and webhost for our website. We go though these progress to create food monthly report to the Worcester County Food Bank. It is convenient our operator to print out report.

This is the most productive sprint we have yet. I feel really good about this sprint. Although I feel like we could get this going earlier. But design and planning is big part of software developer. Hopefully we will have decent program when the end of semester.

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

Sprint Retrospective 5

During this sprint we organized our project boards more and actually made some progress to enhancing our form. I personally worked on an issue that added some styling, a little bit of reordering, and added a new field to the form. There was some functionality that needed to be added for this field to work properly so I had to do a little bit of review to remember how to perform certain functions in Angular. This sprint was again, more productive than the previous and I’m content with what was accomplished during this time. I think there could have been more work completed but this was a problem with communication between groups more than an individual issue between group members.

The first week of this sprint was honestly, a complete disaster. We were happy as a group at the end of our sprint planning and some group members were already starting to work on what they thought were “their” tasks. The problem was, we never assigned the tasks to individuals on Github and then the other group thought they were working on the same material and claimed it, also without directly assigning someone to the work. Miscommunications like these seem to be a recurring problem with this project and I honestly think it is partially due to the inability of the two groups to meet face-to-face to directly resolve this issue. I think this is an issue that would be immediately resolved if all groups working on this project next year were in the same section of the capstone. This would allow for direct, brief, meetings between the two groups to discuss any possible issues in overlap of work, claiming of work, and even just generally sharing what each other group is thinking of for a vision of an up-and-coming feature or functionality. While we’ve done our best to document our thought process to the extent of sharing the flow of the entire intake form, it still seems like both groups are not entirely on the same page.

There are fields that the other group seems to have talked to the customer about and that they apparently want, but when we spoke with the customer, they explicitly told us not to worry about the fields in question. These issues can be found on our Github as optional fields, and the address field.

From a stance of what was accomplished and what went well, we’ve added some new functionality and seemed to have discovered a way for the form to flow and generate fields as needed to maximize efficiency. While most of this functionality is not yet implemented, I made the first step in adding this functionality by adding the “household size” field. This involved adding a new field to the constructor for the customer object, adding some ng-if functionality in the HTML and even adding a little bit of styling to the submitted output. While not all of this was explicitly mentioned in the issue as needed for completion of the task, I felt that adding the styling was something that we were going to need to do eventually and just added it. This was documented in both my commit message and in the pull request made for merging this completed issue.
Github issue (household size): https://github.com/cs-worcester-cs-448-sp-2019/Theas-Pantry/commit/927b98896f32fed1325e57712467a420ab6c93ec

From the blog CS@Worcester – The Road to Software Engineering by Stephen Burke and used with permission of the author. All other rights reserved by the author.

Sprint Reflection 5

Our fifth and final sprint, we focused a lot on opening and rectifying communication with the other food pantry group and clarifying some of the issues that were posted on GitHub. We have not been keeping up with our issues, which has been a real weakness between the two groups. Both groups were relatively unaware of what the other was doing, and there was a lot of redundant work being done between the two of us. Nathan also organized another meeting with Serena so we could discuss our work and some of the changes the food pantry might like to see.

The difficulty we were having with issues were numerous. The first was that we were not claiming the issues we were working on. Both groups were therefore unaware of the progress of the other group and what was available to be worked on. There was redundant work being done and a lot of general confusion. After a discussion, we agreed to be more proactive about claiming or issues, and also did more cleaning up on some of the tasks and stories we had on the repository and discussed what is important, what is redundant, what can go, etc. We cleared up our tasks and stories, assigned ourselves to what we were working on, and moved on to our next tasks.

We also had the pleasure of a meeting with Serena, who was able to look at our progress on the intake form and give us some feedback and new information. We were able to discover a few more questions/fields to plan to add to the form, and got some helpful and illuminating information about the weight system in the food pantry, and what could be done by us to make weighing everything easier for them. We deliberating what information was important to be captured by the form, for the purposes of the Worcester Food Bank and the campus’s needs. We discussed the privacy of the data we are storing as well, and how much information we should be asking for as well as what information should be optional versus the data that was essential.

It is incredibly challenging to work with people whom you do not meet with nor can you deeply discuss the changes and work you are doing on the project. We have spent a lot of time trying to streamline communication between the two groups, make sure we all have access to the same resources, and being able to work effectively on a project at the same time. Although we have come a long way, there is still room to improve, as I feel rather uninformed about the efforts of the other group, and would like to know more.

This sprint was pretty tame, and I definitely learned a lot of different ideas and strategies related to organizational operations and effective ways to communicate and share your work with your cohorts/peers. Hopefully the lessons learned here will help me avoid fumbling in my career as I have in this project.

 

From the blog CS@Worcester – Let's Get TechNICKal by technickal4 and used with permission of the author. All other rights reserved by the author.

Sprint Retrospective #5

During Sprint #5 my team continued development of the Tabs branch in the AMPATH project. During our last sprint, I pushed a simple tabs component to Github. This sprint, we refactored the code to add a forms component for each tab. Overall, this was a very productive sprint.

The tabs component that I had originally pushed to Github included a list of patients, with a tab for each patient containing general information. However, the tab system that we need to create will be for forms, with various input fields for each tab. To do this, we used the Angular Material Design form fields. The following link was extremely helpful in learning how to implement the form fields: https://material.angular.io/components/form-field/overview

Adding the form fields required making some changes to our main html file. Originally, it used *ngFor to go through the hard-coded list of patients and generate a tab for each one. Since we are getting rid of the patients, we no longer have something to loop through to generate the tabs. To solve this we will have to implement an add/delete tab button. This will be our main focus for the next sprint. As of right now, we just have hard-coded tabs with the form fields within. The form fields are all the same basic types, as we don’t know which ones AMPATH will actually need. The three types of form fields that we have are input, which allows you to enter a line of text; textarea, which allows you to enter an expanding block of text; and option, which lets you pick an option from a drop down menu.

We did not run into too many challenges implementing the form fields. The main challenge was figuring out how to reorganize the html as the entire patient portion is now obsolete. Other than that, the only errors we ran into were pretty basic, such as missing a required import. I have enjoyed working with Angular Material Design as it works very well and looks good without having to make many adjustments. I’m glad we chose to work with it for this project because our other options seem like they would have been much more complicated.

After this sprint we are much closer to having the completed component that we are shooting for. We now have a working tab system with form fields located inside of them. We still have some work to do to get it finished, as we need buttons to add and delete tabs. However, I’m confident that we will be able to get that working during our last sprint. I feel that everybody on my team has a good understanding of the code that we have and we are all on the same page in terms of what we want to accomplish. I think that we are making very good progress and I am learning a lot about Angular and html. Overall, this was productive and satisfying sprint. We are making a lot of progress and have a clear and reasonable goal for our final sprint.

From the blog CS@Worcester – Computer Science Blog by rydercsblog and used with permission of the author. All other rights reserved by the author.

Sprint – 5

This was one of our most successful sprints yet. We are definitely on the right track to completing this first component and moving forward with our next. Towards the beginning of this sprint some of the issues we encountered were similar to the previous sprint. We had to remove/re-install our angular material dev-kit multiple times to get it working. I recall Matt and I having to delete and reinstall a few times for whatever reason to get it working and to be more organized. To be more organized we created an initial branch called “Questionnaire-Form” but then we ended up trashing that branch to create another called “Q-Form” which became our main branch that we worked on.

The component that we were supposed to build is a simple form. We worked our code around an angular material component taken right off of the angular documentations. Again there was a styling issue with our component. The HTML was working correctly but it was not looking the way it was supposed to. I tried using a different angular built-in material and imported all of the necessities. It worked perfectly. We then figured out that it was an import statement that we were missing somewhere. This fixed the issue and we were able to create the component correctly. We hope to finish this component by the end of next sprint as well as a few more components.

Onto the last sprint!

From the blog CS@Worcester – Life in the Field of Computer Science by iharrynguyen and used with permission of the author. All other rights reserved by the author.

Sustainable Motivation

For this week’s blog, I chose the Sustainable Motivation pattern from the Apprenticeship Patterns book. The Sustainable Motivation pattern is about keeping your motivation while working in the industry. While working in the industry, things can get tedious, real projects are more rigorous and can be exhausting and often frustrating. As an apprentice, you will encounter these problems while developing your technical skills. You will often find yourself working in the messy specified projects for customers with the always changing demands.

Of course, there are times when you love your job, and your ability to write code seems too good but they will not be your ordinary days. Most of the time there are going to be nasty problems, bugs, and to add to that, your manager wants it soon. That is why you gotta stay calm and focus on the long road. You will most likely stay in the craft because of money and would try to endure the long road. While sticking with it, you then find your love for programming returns. It is going to be a cycle of love and hate relationship. Many programmers get trapped by their motivation. Learning something new gets harder and you see no point in doing so when you are already getting paid for the things you already know.

I totally agree with this pattern. There are going to be an up and down moment while working, I’ve already experienced this problem with my current internship. As an intern, they do not really expect you to do a lot. They do not expect you to actually contribute much to anything they do but expect you do to what is minimally expected of you, and most of it is learning. In my internship, I usually finish the task that was given to me earlier than expected. I would always try my best to finish it without wasting time, and always check with my supervisor if it is what they wanted, but sometimes they are also busy or are not around so I am stuck there with nothing to do. What I do in such situation is go to another department or another employee, then I would always ask if there is anything I could help them with and try to learn new things.

From the blog cs-wsu – Computer Science by csrenz and used with permission of the author. All other rights reserved by the author.