Skip to content
This repository was archived by the owner on Mar 28, 2024. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions Reflections/julioReflection.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,45 @@

1. What was most helpful about thinking about design methods of your project?

Thinking about design methods prior to any coding or design of the project itself proved to be a huge help for my team. Doing this at the beginning of the project life cycle made the rest of the work much easier since we had a basis for what the rest of the project will entail. From prior experience I know how difficult it is to implement a project without prior planning. Thinking about design methods such as UML diagrams and use cases helped us undersand our project more. This porevented us from having to come up with features or other designs on the fly. Overall, thinking about design methods removed a lot of the initial stress in the design of our project.
Thinking about design methods prior to any coding or design of the project itself proved to be a huge help for my team. Doing this at the beginning of the project life cycle made the rest of the work much easier since we had a basis for what the rest of the project will entail. From prior experience I know how difficult it is to implement a project without prior planning. Thinking about design methods such as UML diagrams and use cases helped us understand our project more. This prevented us from having to come up with features or other designs on the fly. Overall, thinking about design methods removed a lot of the initial stress in the design of our project.

2. What was most difficult? What would you do differently?

The most difficult aspect of thinking about design methods was that I personally find it hard to completely design a project without having some example to go off of. What I mean by this is that I have never created a Discord bot before, and it was hard to design something I have no experience with. This is partially due to the fact that I am not fully aware of what a Discord bot can and can't do, so I was unsure about some of the functionality our project could have. To avoid this issue perhaps we could have done more research on bots and their capabilities to better understand what ours can do. Also, better planning out the organization of our code would have been helpful since we did not take that into account and it proved to be a hurdle we would have to overcome.
The most difficult aspect of thinking about design methods was that I personally find it hard to completely design a project without having some examples to go off of. What I mean by this is that I have never created a Discord bot before, and it was hard to design something I have no experience with. This is partially due to the fact that I am not fully aware of what a Discord bot can and can't do, so I was unsure about some of the functionality our project could have. To avoid this issue perhaps we could have done more research on bots and their capabilities to better understand what ours can do. Also, better planning out the organization of our code would have been helpful since we did not take that into account and it proved to be a hurdle we would have to overcome.

3. What design methods might you want to try again in the future on another project?

In the future I would like to try and create more use cases. It helped me the most in better understanding what functionality needed to be implemented in the project. Also, knowing how the user will interact with the project is useful to be able to create a well-designed project.I would also like to use flow maps more in the future since in this project it heklped me understand how to code some of the funcitonality such as looping through each question which would obviously be done using some type of loop.
In the future I would like to try and create more use cases. It helped me the most in better understanding what functionality needed to be implemented in the project. Also, knowing how the user will interact with the project is useful to be able to create a well-designed project.I would also like to use flow maps more in the future since in this project it helped me understand how to code some of the functionality such as looping through each question which would obviously be done using some type of loop.

## Implementation

1. What was most helpful about implementing, testing, and integration in your bot project?

Implementing the project was quite difficult in the beginning due to the learning curve we had to endure. The beginning stages of our project was mainly researching how bots work and how we could cerate them. Communication ended up being the most helpful in regards to implementation since we would all help each other understand things when some wer confused which alowed the research to go more smoothly. We accomplished this by using Discord voice channels and constantly being online to answer questions.
Implementing the project was quite difficult in the beginning due to the learning curve we had to endure. The beginning stages of our project was mainly researching how bots work and how we could create them. Communication ended up being the most helpful in regards to implementation since we would all help each other understand things when some were confused which allowed the research to go more smoothly. We accomplished this by using Discord voice channels and constantly being online to answer questions.

Testing was one of the if not the most heplful practice used while creating the bot for our project. Every time a change was made to the code whether by me or my teammates, my first reaction was always to test it. I have run countless tests throught the lifecycle of this project and it helped immensely. Not only did it help me while I was coding, but it was very helpful to the group since we were able to track any errors after some code was pushed to GitHub. As part of our use for GitHub, my group used pull requests as a way for each team member to test each others code. Being able to test the code prior to merging it with the main branch prevented any big issues in our project since we wouldn't allow errors to get merged with the main channel.
Testing was one of the if not the most helpful practice used while creating the bot for our project. Every time a change was made to the code whether by me or my teammates, my first reaction was always to test it. I have run countless tests throughout the lifecycle of this project and it helped immensely. Not only did it help me while I was coding, but it was very helpful to the group since we were able to track any errors after some code was pushed to GitHub. As part of our use for GitHub, my group used pull requests as a way for each team member to test each others code. Being able to test the code prior to merging it with the main branch prevented any big issues in our project since we wouldn't allow errors to get merged with the main channel.

Thanks to the implementation and testing, the integration was quite easy in comparison. We were able to use a main channel in discord that leveraged Heroku in order to have an always running/updated bot that would represent the main channel code. This allowed for group testing which helped the group finalize the overall code since prior to this each member was only testing on their own channel.

2. What was most difficult? What would you do differently?

The most difficult aspect of implementing the code was figuring out how to collect messages from Discord and create a response to these messages. As mentioned earlier, this was solved after a lot of research and testing. There is no easy way to prevent this other than having prior knowledge of bots and their functionality. Perhaps we could have done mroe research earlier in the semester so we would not have to rush the research with time in the back of our minds.
The most difficult aspect of implementing the code was figuring out how to collect messages from Discord and create a response to these messages. As mentioned earlier, this was solved after a lot of research and testing. There is no easy way to prevent this other than having prior knowledge of bots and their functionality. Perhaps we could have done more research earlier in the semester so we would not have to rush the research with time in the back of our minds.

Also, I would loved to have implemented ObjectOriented Porgramming to this projectsince it would have made the code organization much better and would have made the project more scalable. As it currently stands this is probably the weakest point of our project.
Also, I would have loved to implement Object Oriented Programming to this project since it would have made the code organization much better and would have made the project more scalable. As it currently stands this is probably the weakest point of our project.

3. What implementation, testing, and integration methods might you want to try again in the future on another project?

I would definitely love to use Discord more on other projects in the future. It allowed for easy testing, and communication throughout the team. Other than this I would like to include automated testing in the form of conitnuous integration in the future. This would make testing even easier which I beliee is the most important of the three mentioned in the question.
I would definitely love to use Discord more on other projects in the future. It allowed for easy testing, and communication throughout the team. Other than this I would like to include automated testing in the form of continuous integration in the future. This would make testing even easier which I believe is the most important of the three mentioned in the question.

## Process

1. What was most helpful about implementing kanban and code review in your project?

Implementing kanban was extermely helfpful in knowing the progress the group has made along with knowing what still needed to be done. I was able to easily track the work that each of my teammates did and it allowed us to divide the work evenly amongst each person. Code review helped in ensuring that merging some code did not break the main code. Also, it helped with making the code consistent between each member which helped the project organization overall.
Implementing kanban was extremely helpful in knowing the progress the group has made along with knowing what still needed to be done. I was able to easily track the work that each of my teammates did and it allowed us to divide the work evenly amongst each person. Code review helped in ensuring that merging some code did not break the main code. Also, it helped with making the code consistent between each member which helped the project organization overall.

2. What was most difficult? What would you do differently?

Understanding another teammates code and trying to improve it/fix bugs was the most difficult. This was due to the fact that I find it much easier to review my own code since I understand the thought process behind it and what each line does. This is harder to do for code not written by myself since we obviously don't share the same brain. There were times whhere I tried to improve code but I couldn't see any way of doing so. One thing I would do differently is provide more comments when I create a pull request on Github or request comments from other team members. This would help everyone understand each other's code much easier.
Understanding another teammates code and trying to improve it/fix bugs was the most difficult. This was due to the fact that I find it much easier to review my own code since I understand the thought process behind it and what each line does. This is harder to do for code not written by myself since we obviously don't share the same brain. There were times where I tried to improve code but I couldn't see any way of doing so. One thing I would do differently is provide more comments when I create a pull request on Github or request comments from other team members. This would help everyone understand each other's code much easier.

3. What software processes or practices might you want to try again in the future on another project?

Expand All @@ -53,4 +53,4 @@ I would definitely use pull requests, kanban boards, and other Git features in o

As a result of this project I have been exposed to a wide variety of design methods, implementation practices, and software processes. Design methods such as creating use cases helped me understand the user and what functionality we would want to provide them. Implementation practices along with testing and integration made it so that we wrote effective code. Lastly, software processes such as code review and kanban boards helped the team monitor each other's progress.

Combining aspects of each of these practices makes the lifecycle of the project go much smoother. The design methods provide the basis of the project in understanding what the main goals are and what we look to provide to the user. It is obviously much harder to implement a project if you do not know what it will provide. Using this along with some implementation practices such as Object Oriented programming would allow for a nice template to go off of. I noticed in other projects I am in that OOP makes it much easier to separate parts of the code in objects which allows the team to divide and conquer. Also, testing must be mentioned as one of the most important aspects of a project. I truly believe that no project can be done without some sort of testing. Code review is also essential since it prevents many future issues and makes the project much more cinsistent overall.
Combining aspects of each of these practices makes the lifecycle of the project go much smoother. The design methods provide the basis of the project in understanding what the main goals are and what we look to provide to the user. It is obviously much harder to implement a project if you do not know what it will provide. Using this along with some implementation practices such as Object Oriented programming would allow for a nice template to go off of. I noticed in other projects I am in that OOP makes it much easier to separate parts of the code in objects which allows the team to divide and conquer. Also, testing must be mentioned as one of the most important aspects of a project. I truly believe that no project can be done without some sort of testing. Code review is also essential since it prevents many future issues and makes the project much more consistent overall.