Team #4
- Weston Brach
- Jasmine Duran
- Tyler Hopkins
- Taylor Larrechea
Mondays @ 7pm (1900) MST over Discord chat CSPB 3308 TEAM 4 Collaboration.
To take raw ingredients as input and provide recipes that will use those desired ingredients. Utilizing an API to gather these recipes will allow us to create algorithms to help select desired recipes and present them to the user.
To help find recipes that use specific ingredients. This would be useful if you want to use particular ingredients that are on sale, about to expire, or that you already have at home. Doing this it will help prevent waste and inspire variety in meals.
Risks to project completion from a personnel stand point are:
- Lack of experience in languages that are used in framework.
- Lack of experience with using framework to build project.
- Lack of experience with implementing backend services.
- Lack of experience with utilizing APIs in a project.
Along with the personnel risks that are stated above, there are some risks involved with achieving the key functionality of the project. These risks are mainly:
- Finding an API that can be used for our desired goal (what recipes exist that have specific ingredients given).
- Successfully implementing the API in the program.
- Successfully reducing the cardinality of the domain in which we are searching in regards to possible recipes.
- Overall algorithm development.
- Front end development of program (making the application aesthetically pleasing).
In regards to the aforementioned risks in this project, the primary mitigation strategy for addressing the risks pertaining to inexperience revolve around allocating roles within the team so that each team member is not trying to implement something they don't have experience with. For example, if there is a team member who does have experience with backend services, they will be the team lead when it comes to implementing backend services. This same idea can be applied to the other areas when it comes to lack of experience.
If no one on the team has experience in say, implementing APIs, then it will be a team effort in learning how to implement an API. The second category of risks are primarily going to be mitigated by a team effort. This is directly referring to something like 'Overall algorithm development'. Team members who have more experience in algorithm development may have to look over other algorithms that have been developed by those with less experience.
The primary goal to mitigating these risks is to allocate roles to those who have the most experience in said roles, and collaborating as a group when it comes to solving problems / implementing features / fixing bugs where no one is a specific leader in said category.
We are going to choose a Kanban development method. This agile approach will work for us due to the continuous iteration on adding features and refining the product for each milestone incrementally. We believe it will be the best way we can tackle such a project where we will have to learn a lot about how to build it, add features to an already working product, and add tests along the way. The Kanban method works particularly well with our product since we have very busy schedules and will need to be able to view each others completed, currently in progress, and future tasks. This will alow us to more fluidly load balance if needed and ensure that tasks that need to work in conjunction are going to be focused on around the same time.
Link to Trello: https://trello.com/b/UmIWjXL6/software-development-methods-and-tools-project-team-4
We will track our project through Trello, which is effectively a tool based on Kanban principles. We plan to have a product backlog/ list of ideas and tasks that need to be worked on, each on a separate note card. This will help us visualize/ read our tasks and to optimize the flow of work.
We will also have personal note cards to list our tasks and our progress on those tasks. We will likely keep a general brainstorming/ ideas note card as well.
We plan to check and update Trello frequently to stay informed about the details of our team member's progress and to ascertain where we will need to focus more as a team and as individuals.