From f3eb2fd6ca80f7929b2f8ec7fe0dac54c6b49c9d Mon Sep 17 00:00:00 2001 From: alyson647 Date: Mon, 20 Nov 2023 10:26:04 -0500 Subject: [PATCH 01/23] created md file --- Topics/Software_Engineering/Scrum.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Topics/Software_Engineering/Scrum.md diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md new file mode 100644 index 000000000..4161a73ed --- /dev/null +++ b/Topics/Software_Engineering/Scrum.md @@ -0,0 +1 @@ +## Scrum Framework \ No newline at end of file From 4a74561b95da15797924a20e69c757783decdca5 Mon Sep 17 00:00:00 2001 From: bw55555 Date: Mon, 20 Nov 2023 19:49:50 -0500 Subject: [PATCH 02/23] Create Cypress.md --- Topics/Tech_Stacks/Cypress.md | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Topics/Tech_Stacks/Cypress.md diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md new file mode 100644 index 000000000..bf91b68e5 --- /dev/null +++ b/Topics/Tech_Stacks/Cypress.md @@ -0,0 +1,65 @@ +## E2E Testing with Cypress + +# Cypress Introduction + +Cypress is mainly used for testing web applications, especially those built in javascript. It provides an interface to programatically test your application, and visually what went wrong (or right) in tests. + +# Why do end to end testing? + +[https://circleci.com/blog/what-is-end-to-end-testing/](https://circleci.com/blog/what-is-end-to-end-testing/) + +The above link has a good explanation on what end to end testing is and why it should be used. + +Cypress very closely mimics a real user, think of it as a robot accessing your website from a browser like a human would, but you can program the robot to interact with your website however you like and programmatically check the output on the screen. + +# Installation and setup: + +Cypress can be automatically installed with npm: `npm install cypress` + +See [https://docs.cypress.io/guides/getting-started/installing-cypress](https://docs.cypress.io/guides/getting-started/installing-cypress) for more details. + +To run cypress, we can use the command `npx cypress open` and follow the instructions provided on the UI. + +See [https://docs.cypress.io/guides/getting-started/opening-the-app](https://docs.cypress.io/guides/getting-started/opening-the-app) for more details. + +# The basics + +Cypress has an extremely detailed guide for getting started, explains how to create and run tests, and there is also a lot of information linked as well. + +[https://docs.cypress.io/guides/end-to-end-testing/writing-your-first-end-to-end-test](https://docs.cypress.io/guides/end-to-end-testing/writing-your-first-end-to-end-test) + +[https://docs.cypress.io/guides/core-concepts/introduction-to-cypress](https://docs.cypress.io/guides/core-concepts/introduction-to-cypress) + +I highly recommend reading through the above two links, and the entirety of the core concepts section in the documentation. It gives a thorough introduction on how cypress works and how to use it to test your application. + +# Best Practices + +Cypress provides their own list of best practices here: [https://docs.cypress.io/guides/references/best-practices](https://docs.cypress.io/guides/references/best-practices) + +One common use case for cypress (and UI testing in general) is to test responsiveness, does the UI look like it should in different viewports? + +While it is possible to duplicate tests, this may cause you to need to repeat large parts of the code to select elements and fill out forms, which has nothing to do with + +It is much easier to use the beforeEach() hook and a cypress context() to bundle viewpoints together. As an example: + +```javascript +viewports = [{“name”: “small”, “dim”: [300, 800]}, + {“name”: “large”, “dim": [300, 800]] + +viewports.forEach(viewport => { + cy.context(“Viewport” + viewport.name, () => { + cy.beforeEach(() => { + cy.viewport(viewport.dim[0], viewport.dim[1]) + }) + //tests go here + }) +} +``` +In tests, you can include snippets of code like +``` +if (viewport.name == ‘small’) { + cy.get("@somedivmobileonly").should('exist') +} else if (viewport.name == 'large') { + cy.get("@somedivmobileonly").should('not.exist') +} +``` From 1c6f92ccc267d0c57297f73d07e1e12ea0916df6 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Mon, 20 Nov 2023 21:39:56 -0500 Subject: [PATCH 03/23] added basic structure for file --- Topics/Software_Engineering/Scrum.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 4161a73ed..18ff1cbbf 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1 +1,17 @@ -## Scrum Framework \ No newline at end of file +## Scrum Framework + +### What is scrum? + +### Scrum principles + +### What are sprints? + +### Members of a scrum team + +### Scrum artifacts + +### Scrum events/ceremonies + +### Why is scrum important? + +### Resources / further reading \ No newline at end of file From 683d758549ff231767dcf75cf2df85ba61708584 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Mon, 20 Nov 2023 21:59:33 -0500 Subject: [PATCH 04/23] wrote rough draft for some sections --- Topics/Software_Engineering/Scrum.md | 32 ++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 18ff1cbbf..dd6bc70cf 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,15 +1,43 @@ ## Scrum Framework ### What is scrum? - -### Scrum principles +Scrum is an agile project management framework that helps teams organize and manage their work. It can be thought of a a way to implement agile principles. While most often used in software development teams, these principles can be applied to others teams in HR, accounting and finance, government projects, etc. The term for this framework was coined from the 1986 Harvard Business Review article where the authors compared high-performing teams to the scrum formation used by rugby teams. Overall, scrum is for using a self-organizing team to deliver something valueable to customers in a specified time frame called a sprint. Scrum uses artifacts, ceremonies/events, and roles associated with each sprint to get the work done. + +### Scrum values +- Commitment + - Team members should make sure to commit to the right amount of work they can complete, and not overcommit + - They should be committed to their time-based tasks +- Courage + - Team members should have the courage to question processes and ask open, challenging questions to anything that hinders the ability to move forward, with open discussion +- Focus + - The team must be focused on their selected tasks in order to complete the speccified work within a sprint +- Openness + - There should be regular meetings, such as daily standups, to openly talk about progress and blockers + - The team should be open to new ideas +- Respect + - Everyone should recognize team member's contributions and accomplishments + - Respect for one another is important to ensure mutual collaboration and cooperation ### What are sprints? +A sprint is a short time period where the scrum team works to get a specified amount of work finished. Sprints usually correspond to some set of features a team wants to add, completing specific product additions. The goal of a sprint varies from team to team, some teams having a finished product that can be deployed to customers, or the goal can be to complete a subset/section of a bigger product. The usual timeline for a sprint is two weeks but differs between teams. + ### Members of a scrum team +A scrum team consists of three specific roles: +- Product owner: + - The product owner is the expert on understanding the business, customer and marketing requirements + - They focus on ensuring the development team delivers the most value to the business and understand the changing needs of user and customers the best +- Scrum master: + - Scrum masters coach team and organize/schedule resources for scrum meetings + - Their goals is to optimize the flow for the scrum team to ensure maximal productivity and minimal road blocks +- Development team: + - The development team are the ones who work on creating the product/working on items in the sprint, according to the specifications from the product owner + - The development team consists of developers, UX specialists, Ops engineers, testers, and designers + - The members of the development team have different skill sets and will cross-train teach other to prevent any members becoming a bottle-neck ### Scrum artifacts + ### Scrum events/ceremonies ### Why is scrum important? From 61197991cb07397c4df9f82f85d0e16d91d5c84c Mon Sep 17 00:00:00 2001 From: alyson647 Date: Mon, 20 Nov 2023 22:17:35 -0500 Subject: [PATCH 05/23] completed rough drafts of artifcacts and events --- Topics/Software_Engineering/Scrum.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index dd6bc70cf..078a24c1e 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -36,9 +36,34 @@ A scrum team consists of three specific roles: - The members of the development team have different skill sets and will cross-train teach other to prevent any members becoming a bottle-neck ### Scrum artifacts +Scrum artifacts are information that a scrum team uses and refers to that details the product being developed, the specific tasks involved in a sprint cycle, and the end goal. There are three artifacts: +- Product backlog: + - The product backlog is the primary list of work that needs to get done and is maintained by the product owner or product manager + - It functions as a big to do list that is adaptable to adjustments and changes over time +- Sprint backlog: + - The sprint backlog is the list of user stories or bug fixes that need to get done by this current sprint cycle + - The sprint backlog is planned thoroughly before each sprint and is chosen from the product backlog +- Increment (sprint goal): + - The increment, or otherwise known as the sprint goal, is the end-product from a sprint + - The definition of the sprint goal changes from team to team, as for some it means a product or features usable to customers by the end of the sprint, and for other teams, the end product is the completed part of a bigger project ### Scrum events/ceremonies +The scrum framework incorporates regular meetings, and events that teams perform regularly. In scrum, there are five regularly held events: +- Organization of backlog: + - The responsibility of the product owner, they will make sure to continually update and maintain the product backlog, using user feedback and feedback from the devleopment team +- Sprint planning: + - The user stories and/or bug fixes to be completed during the current sprint are planned during this meeting that includes the development team and is led by the scrum master + - In this meeting a goal is decided upon and items from the product backlog are added in accordance to this goal +- Sprint: + - This is a time period where the scrum team works together to complete items in the scope of the sprint, usually being two weeks +- Daily standup: + - The standup is a regularly scheduled meeting in which members of the scrum team will update members on their progress and bring up and blockers they are facing with their work +- Sprint review: + - This occurs at the end of the sprint, where the team meets to have an information session to demo the end-product and showcases the completed backlog items +- Sprint retrospective: + - Also occurs at the end of the sprint, the retro is where the team meets to discuss the aspects of the sprint that worked and did not work + - This builds in feedback and continual improvement of processes in the scrum framework ### Why is scrum important? From f47878c797d90b221138744a8707a717e119195c Mon Sep 17 00:00:00 2001 From: alyson647 Date: Mon, 20 Nov 2023 23:01:27 -0500 Subject: [PATCH 06/23] more rough draft and added links to resources --- Topics/Software_Engineering/Scrum.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 078a24c1e..46c0f921b 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -66,5 +66,10 @@ The scrum framework incorporates regular meetings, and events that teams perform - This builds in feedback and continual improvement of processes in the scrum framework ### Why is scrum important? +The scrum framework is used so often since it provides an efficient and adaptable way to organize and manage teams and products. This being a team centric framework where teams are self managed and organized, it provides members to be more creative and innovative, having the flexibility to organize work based on their personalities and work styles. Scrum provides concrete roles, events, artifacts, principles and values to follow. These aspects of scrum can be incorporated into 301 project teams to stay focused and get the project done in the short amount of time we're given. -### Resources / further reading \ No newline at end of file +### Resources and further reading +- [Atlassin - scrum](https://www.atlassian.com/agile/scrum) +- [Amazon - scrum](https://aws.amazon.com/what-is/scrum/) +- [Techtarget - scrum](https://www.techtarget.com/searchsoftwarequality/definition/Scrum) +- [Scrum artifacts](https://www.atlassian.com/agile/scrum/artifacts#:~:text=All%20articles,%2C%20sprint%20backlog%2C%20and%20increments.) From 4b90e22a772cb9ea64ce31649d53323a765ca381 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Wed, 22 Nov 2023 15:11:24 -0500 Subject: [PATCH 07/23] edit wording and condensed parts --- Topics/Software_Engineering/Scrum.md | 56 +++++++++++++--------------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 46c0f921b..cf2f6766d 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,72 +1,66 @@ ## Scrum Framework ### What is scrum? -Scrum is an agile project management framework that helps teams organize and manage their work. It can be thought of a a way to implement agile principles. While most often used in software development teams, these principles can be applied to others teams in HR, accounting and finance, government projects, etc. The term for this framework was coined from the 1986 Harvard Business Review article where the authors compared high-performing teams to the scrum formation used by rugby teams. Overall, scrum is for using a self-organizing team to deliver something valueable to customers in a specified time frame called a sprint. Scrum uses artifacts, ceremonies/events, and roles associated with each sprint to get the work done. +Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, the framework can be applied to different sectors in HR, accounting and finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high performing teams to the scrum formation used in rugby. Scrum specifiees artifacts, ceremonies/events, and roles associated with each sprint in order to get work done. ### Scrum values - Commitment - - Team members should make sure to commit to the right amount of work they can complete, and not overcommit - - They should be committed to their time-based tasks + - Team members should make sure to not overcommit to the amonut of work they can complete, and should be committed to their time-based tasks - Courage - - Team members should have the courage to question processes and ask open, challenging questions to anything that hinders the ability to move forward, with open discussion + - Team members should have the courage to question processes and ask open, challenging questions to anything that hinders the ability to move forward, and they should be met with open discussion - Focus - The team must be focused on their selected tasks in order to complete the speccified work within a sprint - Openness - There should be regular meetings, such as daily standups, to openly talk about progress and blockers - The team should be open to new ideas - Respect - - Everyone should recognize team member's contributions and accomplishments + - Everyone should recognize a team member's contributions and accomplishments - Respect for one another is important to ensure mutual collaboration and cooperation ### What are sprints? -A sprint is a short time period where the scrum team works to get a specified amount of work finished. Sprints usually correspond to some set of features a team wants to add, completing specific product additions. The goal of a sprint varies from team to team, some teams having a finished product that can be deployed to customers, or the goal can be to complete a subset/section of a bigger product. The usual timeline for a sprint is two weeks but differs between teams. - +A sprint is a short time period where the scrum team works to get a specified amount of work finished. Sprints usually correspond to some set of features a team wants to add. The goal of a sprint varies from team to team, some goals being a finished product that can be deployed to customers, other goals being to complete a subsection of a bigger product. The usual timeline for a sprint is two weeks, but differs between teams. ### Members of a scrum team A scrum team consists of three specific roles: - Product owner: - - The product owner is the expert on understanding the business, customer and marketing requirements - - They focus on ensuring the development team delivers the most value to the business and understand the changing needs of user and customers the best + - The product owner is the expert on understanding the business, customer, and marketing needs + - They focus on ensuring the development team delivers the most value to the business - Scrum master: - - Scrum masters coach team and organize/schedule resources for scrum meetings - - Their goals is to optimize the flow for the scrum team to ensure maximal productivity and minimal road blocks + - The scrum master coaches the team and organizes/schedules resources for scrum meetings + - Their goal is to optimize the flow for the scrum team, to ensure maximal productivity and minimal road blocks - Development team: - - The development team are the ones who work on creating the product/working on items in the sprint, according to the specifications from the product owner - - The development team consists of developers, UX specialists, Ops engineers, testers, and designers - - The members of the development team have different skill sets and will cross-train teach other to prevent any members becoming a bottle-neck + - The development team are the ones who work on creating the product/working on items in the sprint, according to the sepcifications from the product owner + - The team consists of developers, UX specialists, Ops engineers, testers, and designers + - With these differing skill sets, the team can cross-train each other to prevent any bottle necks ### Scrum artifacts -Scrum artifacts are information that a scrum team uses and refers to that details the product being developed, the specific tasks involved in a sprint cycle, and the end goal. There are three artifacts: +Scrum artifacts refer to the information a scrum team uses that detail information of the product being developed, the tasks involved in a sprint cycle, and the end goal. There are three artifacts: - Product backlog: - - The product backlog is the primary list of work that needs to get done and is maintained by the product owner or product manager - - It functions as a big to do list that is adaptable to adjustments and changes over time + - The product backlog is the primary list of work that needs to get done and is maintained and updated by the product owner or product manager - Sprint backlog: - - The sprint backlog is the list of user stories or bug fixes that need to get done by this current sprint cycle - - The sprint backlog is planned thoroughly before each sprint and is chosen from the product backlog + - The sprint backlog is the list of users stories or bug fixes that ened to get done by the end of the current sprint cycle, and is chosen from the product backlog - Increment (sprint goal): - - The increment, or otherwise known as the sprint goal, is the end-product from a sprint - - The definition of the sprint goal changes from team to team, as for some it means a product or features usable to customers by the end of the sprint, and for other teams, the end product is the completed part of a bigger project - + - The increment is the end-product from a sprint + - This can mean a finished product, features usable to customers by the end of the sprint, or a completed section of a bigger project ### Scrum events/ceremonies The scrum framework incorporates regular meetings, and events that teams perform regularly. In scrum, there are five regularly held events: -- Organization of backlog: - - The responsibility of the product owner, they will make sure to continually update and maintain the product backlog, using user feedback and feedback from the devleopment team +- Backlog organization: + - This is the responsbility of the product owner, who makes sure to continually udpate and maintain the product backlog, according to feedback from users and the development team - Sprint planning: - - The user stories and/or bug fixes to be completed during the current sprint are planned during this meeting that includes the development team and is led by the scrum master - - In this meeting a goal is decided upon and items from the product backlog are added in accordance to this goal + - This meeting is led by the scrum master and includes the development team, where the items to be completed during the sprint are planned and added from the product backlog in accordance to the sprint goal - Sprint: - - This is a time period where the scrum team works together to complete items in the scope of the sprint, usually being two weeks + - This is the time period where the scrum team works to complete items in the scope of the sprint - Daily standup: - - The standup is a regularly scheduled meeting in which members of the scrum team will update members on their progress and bring up and blockers they are facing with their work + - The standup is a regularly scheduled meeting in which members of the team will update members on their progress and mention blockers they are facing with their work - Sprint review: - - This occurs at the end of the sprint, where the team meets to have an information session to demo the end-product and showcases the completed backlog items + - This occurs at the end of the sprint, where the team meets to demo the end-product and showcase the completed sprint backlog items - Sprint retrospective: - - Also occurs at the end of the sprint, the retro is where the team meets to discuss the aspects of the sprint that worked and did not work + - Also occuring at the end of the sprint, the retro is where the team discuss the aspects of the sprint that worked, and parts that could use improvement - This builds in feedback and continual improvement of processes in the scrum framework ### Why is scrum important? -The scrum framework is used so often since it provides an efficient and adaptable way to organize and manage teams and products. This being a team centric framework where teams are self managed and organized, it provides members to be more creative and innovative, having the flexibility to organize work based on their personalities and work styles. Scrum provides concrete roles, events, artifacts, principles and values to follow. These aspects of scrum can be incorporated into 301 project teams to stay focused and get the project done in the short amount of time we're given. +The scrum framework is used so often since it provides an efficient and adaptable way to organize and manage teams and products. This being a team centric framework, where the teams are self managed, it provides members the opportunity to be more creative and innovative, with flexibility to organize work based on their personalities and work styles. The framework provides concrete roles, events, artifacts, and values to follow. These asepcts of scrum are incorporated to professional workplace settings, and can be used in the 301 project as well to get the project done in the short amount of time given! ### Resources and further reading - [Atlassin - scrum](https://www.atlassian.com/agile/scrum) From 13c1f94fdbfe9a2a58df5e60aed0fdb596ab5f03 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Wed, 22 Nov 2023 15:45:30 -0500 Subject: [PATCH 08/23] changed wording and fixed typos --- Topics/Software_Engineering/Scrum.md | 62 ++++++++++++++-------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index cf2f6766d..de8ca6735 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,68 +1,68 @@ ## Scrum Framework ### What is scrum? -Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, the framework can be applied to different sectors in HR, accounting and finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high performing teams to the scrum formation used in rugby. Scrum specifiees artifacts, ceremonies/events, and roles associated with each sprint in order to get work done. +Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, this framework applies to different sectors in HR, accounting, finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high-performing teams to the scrum formation used in rugby. Scrum specifies artifacts, ceremonies/events, and roles associated with each sprint to get work done. ### Scrum values - Commitment - - Team members should make sure to not overcommit to the amonut of work they can complete, and should be committed to their time-based tasks + - Team members should make sure not to overcommit to the amount of work they can complete and should be committed to their time-based tasks. - Courage - - Team members should have the courage to question processes and ask open, challenging questions to anything that hinders the ability to move forward, and they should be met with open discussion + - Team members should have the courage to question processes and ask open, challenging questions about anything that hinders the ability to progress. - Focus - - The team must be focused on their selected tasks in order to complete the speccified work within a sprint + - The team should be focused on their selected tasks to complete the specified work within a sprint. - Openness - - There should be regular meetings, such as daily standups, to openly talk about progress and blockers - - The team should be open to new ideas + - There should be regular meetings, such as daily standups, to openly talk about progress and blockers. + - The team should be open to new ideas. - Respect - - Everyone should recognize a team member's contributions and accomplishments - - Respect for one another is important to ensure mutual collaboration and cooperation + - Everyone should recognize a team member's contributions and accomplishments. + - Respect for one another is essential to ensure mutual collaboration and cooperation. ### What are sprints? -A sprint is a short time period where the scrum team works to get a specified amount of work finished. Sprints usually correspond to some set of features a team wants to add. The goal of a sprint varies from team to team, some goals being a finished product that can be deployed to customers, other goals being to complete a subsection of a bigger product. The usual timeline for a sprint is two weeks, but differs between teams. +A sprint is a short duration where the scrum team works to complete a specified amount of work. Sprints usually correspond to some set of features a team wants to add. The goal of a sprint varies from team to team, some goals being a finished product accessible to customers and others being to complete a subsection of a larger product. The usual timeline for a sprint is two weeks, but the timeline varies between teams. ### Members of a scrum team A scrum team consists of three specific roles: - Product owner: - - The product owner is the expert on understanding the business, customer, and marketing needs - - They focus on ensuring the development team delivers the most value to the business + - The product owner is the expert in understanding the business, customer, and marketing needs. + - They focus on ensuring the development team delivers the most value to the business. - Scrum master: - - The scrum master coaches the team and organizes/schedules resources for scrum meetings - - Their goal is to optimize the flow for the scrum team, to ensure maximal productivity and minimal road blocks + - The scrum master coaches the team and organizes/schedules resources for scrum meetings. + - Their goal is to optimize the flow for the scrum team to ensure maximal productivity and minimal blockers. - Development team: - - The development team are the ones who work on creating the product/working on items in the sprint, according to the sepcifications from the product owner - - The team consists of developers, UX specialists, Ops engineers, testers, and designers - - With these differing skill sets, the team can cross-train each other to prevent any bottle necks + - The development team is the ones who work on creating the product/working on items in the sprint, according to the specifications from the product owner. + The team includes developers, UX specialists, Ops engineers, testers, and designers. + With these differing skill sets, the team can cross-train each other to prevent bottlenecks. ### Scrum artifacts -Scrum artifacts refer to the information a scrum team uses that detail information of the product being developed, the tasks involved in a sprint cycle, and the end goal. There are three artifacts: +Scrum artifacts refer to the information a scrum team uses that details information about the product in development, the tasks involved in a sprint cycle, and the end goal. - Product backlog: - - The product backlog is the primary list of work that needs to get done and is maintained and updated by the product owner or product manager + - The product backlog is the primary list of work that needs to be done and is maintained and updated by the product owner or manager. - Sprint backlog: - - The sprint backlog is the list of users stories or bug fixes that ened to get done by the end of the current sprint cycle, and is chosen from the product backlog + - The sprint backlog is the list of user stories or bug fixes that should be done by the end of the current sprint cycle and chosen from the product backlog. - Increment (sprint goal): - - The increment is the end-product from a sprint - - This can mean a finished product, features usable to customers by the end of the sprint, or a completed section of a bigger project + - The increment is the end product of a sprint. + - The increment can mean a finished product, features usable to customers by the end of the sprint, or a completed section of a larger project. ### Scrum events/ceremonies -The scrum framework incorporates regular meetings, and events that teams perform regularly. In scrum, there are five regularly held events: +The scrum framework incorporates regular meetings and events that teams perform regularly. In scrum, there are five regularly held events: - Backlog organization: - - This is the responsbility of the product owner, who makes sure to continually udpate and maintain the product backlog, according to feedback from users and the development team + - This is the responsibility of the product owner, who makes sure to continually update and maintain the product backlog, according to feedback from users and the development team. - Sprint planning: - - This meeting is led by the scrum master and includes the development team, where the items to be completed during the sprint are planned and added from the product backlog in accordance to the sprint goal + - This meeting is led by the scrum master and includes the development team, where the items to be completed during the sprint are added from the product backlog per the sprint goal. - Sprint: - - This is the time period where the scrum team works to complete items in the scope of the sprint + - This is the time period where the scrum team works to complete items in the scope of the sprint. - Daily standup: - - The standup is a regularly scheduled meeting in which members of the team will update members on their progress and mention blockers they are facing with their work + - The standup is a regularly scheduled meeting in which members of the team will update members on their progress and mention blockers they are facing with their work. - Sprint review: - - This occurs at the end of the sprint, where the team meets to demo the end-product and showcase the completed sprint backlog items + - This occurs at the end of the sprint, where the team meets to demo the end product and showcase the completed sprint backlog items. - Sprint retrospective: - - Also occuring at the end of the sprint, the retro is where the team discuss the aspects of the sprint that worked, and parts that could use improvement - - This builds in feedback and continual improvement of processes in the scrum framework + - Also occurring at the end of the sprint, the retro is where the team discusses the aspects of the sprint that worked and parts that could use improvement. + - This builds in feedback and continual improvement of processes in the scrum framework. ### Why is scrum important? -The scrum framework is used so often since it provides an efficient and adaptable way to organize and manage teams and products. This being a team centric framework, where the teams are self managed, it provides members the opportunity to be more creative and innovative, with flexibility to organize work based on their personalities and work styles. The framework provides concrete roles, events, artifacts, and values to follow. These asepcts of scrum are incorporated to professional workplace settings, and can be used in the 301 project as well to get the project done in the short amount of time given! +Teams use the scrum framework since it provides an efficient and adaptable way to organize and manage teams and products. It is team-centric and self-managed and encourages creativity with the flexibility to assign work based on work styles. The framework has concrete roles, events, artifacts, and values. These aspects of scrum are incorporated into professional workplaces and can be used in the 301 to finish the project in the short amount of time given. -### Resources and further reading +### Resources - [Atlassin - scrum](https://www.atlassian.com/agile/scrum) - [Amazon - scrum](https://aws.amazon.com/what-is/scrum/) - [Techtarget - scrum](https://www.techtarget.com/searchsoftwarequality/definition/Scrum) From fd9c22258961825fd1c460bce7f597af321a9462 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Wed, 22 Nov 2023 15:47:44 -0500 Subject: [PATCH 09/23] removed resource i didn't use --- Topics/Software_Engineering/Scrum.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index de8ca6735..077503b10 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -66,4 +66,3 @@ Teams use the scrum framework since it provides an efficient and adaptable way t - [Atlassin - scrum](https://www.atlassian.com/agile/scrum) - [Amazon - scrum](https://aws.amazon.com/what-is/scrum/) - [Techtarget - scrum](https://www.techtarget.com/searchsoftwarequality/definition/Scrum) -- [Scrum artifacts](https://www.atlassian.com/agile/scrum/artifacts#:~:text=All%20articles,%2C%20sprint%20backlog%2C%20and%20increments.) From b28f091d3de259f71ed4140005877b37aba0c3e4 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Wed, 22 Nov 2023 15:50:10 -0500 Subject: [PATCH 10/23] updated resource names --- Topics/Software_Engineering/Scrum.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 077503b10..f5dc5b289 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -64,5 +64,5 @@ Teams use the scrum framework since it provides an efficient and adaptable way t ### Resources - [Atlassin - scrum](https://www.atlassian.com/agile/scrum) -- [Amazon - scrum](https://aws.amazon.com/what-is/scrum/) +- [AWS - scrum](https://aws.amazon.com/what-is/scrum/) - [Techtarget - scrum](https://www.techtarget.com/searchsoftwarequality/definition/Scrum) From d3a7c34569ebe1a73ff554b7ead8a1d72a65ee6b Mon Sep 17 00:00:00 2001 From: alyson647 Date: Wed, 22 Nov 2023 15:52:34 -0500 Subject: [PATCH 11/23] added link to new md file --- Topics/Software_Engineering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Topics/Software_Engineering.md b/Topics/Software_Engineering.md index 85f0aaed1..23699bc3d 100644 --- a/Topics/Software_Engineering.md +++ b/Topics/Software_Engineering.md @@ -4,7 +4,7 @@ Potential topics-- 1. Methodologies & Frameworks 1. Agile - 1. Scrum + 1. [Scrum](./Software_Engineering/Scrum.md) 1. [User Stories](./Software_Engineering/User_Stories.md) 2. Kanban 3. XP From 990f85e0629ffca20f68eb0a5d14a3ce34594e22 Mon Sep 17 00:00:00 2001 From: bw55555 Date: Thu, 23 Nov 2023 15:17:35 +0000 Subject: [PATCH 12/23] Added brief explanation of e2e tests. --- Topics/Tech_Stacks/Cypress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index bf91b68e5..9b17638ad 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -8,7 +8,7 @@ Cypress is mainly used for testing web applications, especially those built in j [https://circleci.com/blog/what-is-end-to-end-testing/](https://circleci.com/blog/what-is-end-to-end-testing/) -The above link has a good explanation on what end to end testing is and why it should be used. +The above link has a good explanation on what end to end testing is and why it should be used. While other types of tests like unit tests or functional tests make sure a single component/module works as expected, an end to end test starts from the perspective of the end user and tries to mimic what an end user would do when accessing your application. Cypress very closely mimics a real user, think of it as a robot accessing your website from a browser like a human would, but you can program the robot to interact with your website however you like and programmatically check the output on the screen. From 8b825f9feecc2e46a3d1893430c7401b8e7e34b3 Mon Sep 17 00:00:00 2001 From: bw55555 Date: Thu, 23 Nov 2023 15:47:50 +0000 Subject: [PATCH 13/23] Added comparison with other testing frameworks --- Topics/Tech_Stacks/Cypress.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index 9b17638ad..6298ad733 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -12,9 +12,19 @@ The above link has a good explanation on what end to end testing is and why it s Cypress very closely mimics a real user, think of it as a robot accessing your website from a browser like a human would, but you can program the robot to interact with your website however you like and programmatically check the output on the screen. +# Why Cypress? + +There exist many different testing frameworks online, such as [Selenium](https://www.selenium.dev/), [Jest](https://jestjs.io/), [Mocha](https://mochajs.org/), and more. + +Cypress is most useful for UI, integration and end-to-end testing, so it can be used in tandem with unit testing frameworks like Jest. + +Cypress is built on top of mocha, and uses its framework for tests as well. The main difference is that cypress focuses more on improving client-side and UI tests. + +Selenium is often compared to Cypress, due to it being one of the most popular UI testing frameworks before Cypress was created. One of the biggest differences is that Cypress automatically retries commands while waiting for DOM elements to load properly, helping to prevent [flaky tests](https://www.jetbrains.com/teamcity/ci-cd-guide/concepts/flaky-tests/) and eliminating the need to write wait or sleep helpers that were needed in Selenium. Cypress is also faster and easier to get setup and start creating tests than Selenium. However, Selenium is more flexible, allowing for testing in multiple browsers at a time, and also for writing tests in languages other than javascript. + # Installation and setup: -Cypress can be automatically installed with npm: `npm install cypress` +Cypress can be automatically installed with [npm](https://www.npmjs.com/): `npm install cypress` See [https://docs.cypress.io/guides/getting-started/installing-cypress](https://docs.cypress.io/guides/getting-started/installing-cypress) for more details. @@ -63,3 +73,4 @@ if (viewport.name == ‘small’) { cy.get("@somedivmobileonly").should('not.exist') } ``` + From 11176dd2044081ee2e8093d6a5fd82059025213a Mon Sep 17 00:00:00 2001 From: bw55555 Date: Thu, 23 Nov 2023 16:13:57 +0000 Subject: [PATCH 14/23] Added more information to the use case. --- Topics/Tech_Stacks/Cypress.md | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index 6298ad733..7f284b06e 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -42,9 +42,11 @@ Cypress has an extremely detailed guide for getting started, explains how to cre I highly recommend reading through the above two links, and the entirety of the core concepts section in the documentation. It gives a thorough introduction on how cypress works and how to use it to test your application. -# Best Practices +The first link provides a detailed guide on how cypress commands work and how to read the testing UI. + +The second link provides a guide to most of the commonly used functions in cypress, like how to query for elements, check if they have or not have a specific property, actions such as clicking on buttons or filling out forms, and more. -Cypress provides their own list of best practices here: [https://docs.cypress.io/guides/references/best-practices](https://docs.cypress.io/guides/references/best-practices) +# Best Practices One common use case for cypress (and UI testing in general) is to test responsiveness, does the UI look like it should in different viewports? @@ -66,7 +68,7 @@ viewports.forEach(viewport => { } ``` In tests, you can include snippets of code like -``` +```javascript if (viewport.name == ‘small’) { cy.get("@somedivmobileonly").should('exist') } else if (viewport.name == 'large') { @@ -74,3 +76,26 @@ if (viewport.name == ‘small’) { } ``` +Another common test for responsiveness is checking the alignment of items, for example testing that one element should be above another in a small viewport and beside another in a larger viewport. + +In this case, you should use a closure (described in the [variables and aliases](https://docs.cypress.io/guides/core-concepts/variables-and-aliases) section) to store the first element's position: + +```javascript +cy.get('elem1').then($elem => { + cy.get('elem2').then($elem2 => { + let p1 = $elem.position() + let p2 = $elem2.position() + if (viewport.name == 'small') { + expect(p1.top).to.be.greaterThan(p2.top) + expect(p1.left).to.be.equal(p2.left) + } else { + expect(p1.top).to.be.equal(p1.top) + expect(p1.left).to.be.greaterThan(p1.left) + } + }) +}) +``` + +Note the use of `expect` instead of `should`, since we are not chaining off of a cypress command we use an assertion instead. See [here](https://docs.cypress.io/guides/references/assertions) for other assertions. + +For more, Cypress provides their own list of best practices here: [https://docs.cypress.io/guides/references/best-practices](https://docs.cypress.io/guides/references/best-practices). I highly recommend reading their guide, if I had known about this before, I would have saved a lot of effort learning the hard way what not to do. \ No newline at end of file From 3c901ec714042bcc4e4390aaf445af7fcf09fa7a Mon Sep 17 00:00:00 2001 From: bw55555 Date: Fri, 24 Nov 2023 21:34:25 -0500 Subject: [PATCH 15/23] Update Tech_Stacks.md --- Topics/Tech_Stacks.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Topics/Tech_Stacks.md b/Topics/Tech_Stacks.md index 29159444a..b52785347 100644 --- a/Topics/Tech_Stacks.md +++ b/Topics/Tech_Stacks.md @@ -17,3 +17,4 @@ ### [Learning Nodemailer](./Tech_Stacks/Nodemailer.md) ### [React Components Guide](./Tech_Stacks/React_Components.md) ### [Temporal For Workflow Orchestration](./Tech_Stacks/Temporal.md) +### [Learning Cypress](./Tech_Stacks/Cypress.md) From 9952ed9f570113a24a7a26c80ecdad12ae97ef3e Mon Sep 17 00:00:00 2001 From: bw55555 Date: Fri, 24 Nov 2023 21:35:35 -0500 Subject: [PATCH 16/23] Add a bit of clarification --- Topics/Tech_Stacks/Cypress.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index 7f284b06e..c72fd9a33 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -2,7 +2,7 @@ # Cypress Introduction -Cypress is mainly used for testing web applications, especially those built in javascript. It provides an interface to programatically test your application, and visually what went wrong (or right) in tests. +Cypress is mainly used for testing web applications, especially those built in javascript. It provides an interface to programatically test your application, and visually what went wrong (or right) in tests. This page will primarily focus on E2E (end-to-end) testing with cypress rather than component testing. # Why do end to end testing? @@ -98,4 +98,4 @@ cy.get('elem1').then($elem => { Note the use of `expect` instead of `should`, since we are not chaining off of a cypress command we use an assertion instead. See [here](https://docs.cypress.io/guides/references/assertions) for other assertions. -For more, Cypress provides their own list of best practices here: [https://docs.cypress.io/guides/references/best-practices](https://docs.cypress.io/guides/references/best-practices). I highly recommend reading their guide, if I had known about this before, I would have saved a lot of effort learning the hard way what not to do. \ No newline at end of file +For more, Cypress provides their own list of best practices here: [https://docs.cypress.io/guides/references/best-practices](https://docs.cypress.io/guides/references/best-practices). I highly recommend reading their guide, if I had known about this before, I would have saved a lot of effort learning the hard way what not to do. From 9d8b763831e04701cad50f67cc587ee4476b73bb Mon Sep 17 00:00:00 2001 From: bw55555 Date: Fri, 24 Nov 2023 21:39:31 -0500 Subject: [PATCH 17/23] Add table of contents --- Topics/Tech_Stacks/Cypress.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index c72fd9a33..1dad9a35e 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -1,5 +1,12 @@ ## E2E Testing with Cypress +- [Cypress Introduction](#cypress-introduction) +- [Why do end to end testing?](#why-do-end-to-end-testing-) +- [Why Cypress?](#why-cypress-) +- [Installation and setup:](#installation-and-setup-) +- [The basics](#the-basics) +- [Best Practices](#best-practices) + # Cypress Introduction Cypress is mainly used for testing web applications, especially those built in javascript. It provides an interface to programatically test your application, and visually what went wrong (or right) in tests. This page will primarily focus on E2E (end-to-end) testing with cypress rather than component testing. From 271775f193538f36a8ed8da4ecb5d808c4c624fb Mon Sep 17 00:00:00 2001 From: bw55555 Date: Fri, 24 Nov 2023 23:24:01 -0500 Subject: [PATCH 18/23] reformat headers --- Topics/Tech_Stacks/Cypress.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Topics/Tech_Stacks/Cypress.md b/Topics/Tech_Stacks/Cypress.md index 1dad9a35e..a620b9b1b 100644 --- a/Topics/Tech_Stacks/Cypress.md +++ b/Topics/Tech_Stacks/Cypress.md @@ -1,4 +1,4 @@ -## E2E Testing with Cypress +# E2E Testing with Cypress - [Cypress Introduction](#cypress-introduction) - [Why do end to end testing?](#why-do-end-to-end-testing-) @@ -7,11 +7,11 @@ - [The basics](#the-basics) - [Best Practices](#best-practices) -# Cypress Introduction +## Cypress Introduction Cypress is mainly used for testing web applications, especially those built in javascript. It provides an interface to programatically test your application, and visually what went wrong (or right) in tests. This page will primarily focus on E2E (end-to-end) testing with cypress rather than component testing. -# Why do end to end testing? +## Why do end to end testing? [https://circleci.com/blog/what-is-end-to-end-testing/](https://circleci.com/blog/what-is-end-to-end-testing/) @@ -19,7 +19,7 @@ The above link has a good explanation on what end to end testing is and why it s Cypress very closely mimics a real user, think of it as a robot accessing your website from a browser like a human would, but you can program the robot to interact with your website however you like and programmatically check the output on the screen. -# Why Cypress? +## Why Cypress? There exist many different testing frameworks online, such as [Selenium](https://www.selenium.dev/), [Jest](https://jestjs.io/), [Mocha](https://mochajs.org/), and more. @@ -29,7 +29,7 @@ Cypress is built on top of mocha, and uses its framework for tests as well. The Selenium is often compared to Cypress, due to it being one of the most popular UI testing frameworks before Cypress was created. One of the biggest differences is that Cypress automatically retries commands while waiting for DOM elements to load properly, helping to prevent [flaky tests](https://www.jetbrains.com/teamcity/ci-cd-guide/concepts/flaky-tests/) and eliminating the need to write wait or sleep helpers that were needed in Selenium. Cypress is also faster and easier to get setup and start creating tests than Selenium. However, Selenium is more flexible, allowing for testing in multiple browsers at a time, and also for writing tests in languages other than javascript. -# Installation and setup: +## Installation and setup: Cypress can be automatically installed with [npm](https://www.npmjs.com/): `npm install cypress` @@ -39,7 +39,7 @@ To run cypress, we can use the command `npx cypress open` and follow the instruc See [https://docs.cypress.io/guides/getting-started/opening-the-app](https://docs.cypress.io/guides/getting-started/opening-the-app) for more details. -# The basics +## The basics Cypress has an extremely detailed guide for getting started, explains how to create and run tests, and there is also a lot of information linked as well. @@ -53,7 +53,7 @@ The first link provides a detailed guide on how cypress commands work and how to The second link provides a guide to most of the commonly used functions in cypress, like how to query for elements, check if they have or not have a specific property, actions such as clicking on buttons or filling out forms, and more. -# Best Practices +## Best Practices One common use case for cypress (and UI testing in general) is to test responsiveness, does the UI look like it should in different viewports? From 57d2c294da4696e94f4b75c25f2289666027e030 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Fri, 24 Nov 2023 23:51:39 -0500 Subject: [PATCH 19/23] rearranged sections --- Topics/Software_Engineering/Scrum.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index f5dc5b289..25ddb3f59 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -17,9 +17,6 @@ Scrum is an agile project management framework that helps teams organize and man - Everyone should recognize a team member's contributions and accomplishments. - Respect for one another is essential to ensure mutual collaboration and cooperation. -### What are sprints? -A sprint is a short duration where the scrum team works to complete a specified amount of work. Sprints usually correspond to some set of features a team wants to add. The goal of a sprint varies from team to team, some goals being a finished product accessible to customers and others being to complete a subsection of a larger product. The usual timeline for a sprint is two weeks, but the timeline varies between teams. - ### Members of a scrum team A scrum team consists of three specific roles: - Product owner: @@ -30,8 +27,11 @@ A scrum team consists of three specific roles: - Their goal is to optimize the flow for the scrum team to ensure maximal productivity and minimal blockers. - Development team: - The development team is the ones who work on creating the product/working on items in the sprint, according to the specifications from the product owner. - The team includes developers, UX specialists, Ops engineers, testers, and designers. - With these differing skill sets, the team can cross-train each other to prevent bottlenecks. + - The team includes developers, UX specialists, Ops engineers, testers, and designers. + - With these differing skill sets, the team can cross-train each other to prevent bottlenecks. + +### What are sprints? +A sprint is a short duration where the scrum team works to complete a specified amount of work. Sprints usually correspond to some set of features a team wants to add. The goal of a sprint varies from team to team, some goals being a finished product accessible to customers and others being to complete a subsection of a larger product. The usual timeline for a sprint is two weeks, but the timeline varies between teams. ### Scrum artifacts Scrum artifacts refer to the information a scrum team uses that details information about the product in development, the tasks involved in a sprint cycle, and the end goal. From c7f061524ff0d0981e30d05e875d000a290a610e Mon Sep 17 00:00:00 2001 From: alyson647 Date: Fri, 24 Nov 2023 23:53:31 -0500 Subject: [PATCH 20/23] added table of contents --- Topics/Software_Engineering/Scrum.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 25ddb3f59..c69d4de07 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,5 +1,8 @@ ## Scrum Framework +### Table of Contents + + ### What is scrum? Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, this framework applies to different sectors in HR, accounting, finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high-performing teams to the scrum formation used in rugby. Scrum specifies artifacts, ceremonies/events, and roles associated with each sprint to get work done. From a1b29a6d640b1975d389a271e40ba041ebac8cd3 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Sat, 25 Nov 2023 00:00:31 -0500 Subject: [PATCH 21/23] changed wording and added table of contents --- Topics/Software_Engineering/Scrum.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index c69d4de07..aed170c93 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,7 +1,15 @@ ## Scrum Framework ### Table of Contents - +#### [What is scrum?](#what-is-scrum) +#### [Scrum values](#scrum-values) +#### [Members of a scrum team](#members-of-a-scrum-team) +#### [What are sprints?](#what-are-sprints) +#### [Scrum-artifacts](#scrum-artifacts) +#### [Scrum events/ceremonies](#scrum-events/ceremonies) +#### [Why is scrum important?](#why-is-scrum-important) +#### [Resources](#resources) +Why is scrum important? ### What is scrum? Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, this framework applies to different sectors in HR, accounting, finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high-performing teams to the scrum formation used in rugby. Scrum specifies artifacts, ceremonies/events, and roles associated with each sprint to get work done. @@ -63,7 +71,7 @@ The scrum framework incorporates regular meetings and events that teams perform - This builds in feedback and continual improvement of processes in the scrum framework. ### Why is scrum important? -Teams use the scrum framework since it provides an efficient and adaptable way to organize and manage teams and products. It is team-centric and self-managed and encourages creativity with the flexibility to assign work based on work styles. The framework has concrete roles, events, artifacts, and values. These aspects of scrum are incorporated into professional workplaces and can be used in the 301 to finish the project in the short amount of time given. +Teams use the scrum framework since it provides an efficient and adaptable way to organize and manage teams and products. It is team-centric and self-managed and encourages creativity with the flexibility to assign work based on work styles. The framework has concrete roles, events, artifacts, and values. These aspects of scrum are incorporated into professional workplaces and can be used in CSC301 to finish the project in the short amount of time given. ### Resources - [Atlassin - scrum](https://www.atlassian.com/agile/scrum) From 36ad3b6d5c29f7400b4d958ebed35188ce4bed35 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Sat, 25 Nov 2023 00:05:16 -0500 Subject: [PATCH 22/23] adjusted table of contents --- Topics/Software_Engineering/Scrum.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index aed170c93..399407522 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -1,15 +1,14 @@ ## Scrum Framework ### Table of Contents -#### [What is scrum?](#what-is-scrum) -#### [Scrum values](#scrum-values) -#### [Members of a scrum team](#members-of-a-scrum-team) -#### [What are sprints?](#what-are-sprints) -#### [Scrum-artifacts](#scrum-artifacts) -#### [Scrum events/ceremonies](#scrum-events/ceremonies) -#### [Why is scrum important?](#why-is-scrum-important) -#### [Resources](#resources) -Why is scrum important? +- [What is scrum?](#what-is-scrum) +- [Scrum values](#scrum-values) +- [Members of a scrum team](#members-of-a-scrum-team) +- [What are sprints?](#what-are-sprints) +- [Scrum-artifacts](#scrum-artifacts) +- [Scrum ceremonies](#scrum-ceremonies) +- [Why is scrum important?](#why-is-scrum-important) +- [Resources](#resources) ### What is scrum? Scrum is an agile project management framework that helps teams organize and manage their work. While most often used in software development teams, this framework applies to different sectors in HR, accounting, finance, etc. The term for this framework was coined from the 1986 Harvard Business Review article in which the authors compared high-performing teams to the scrum formation used in rugby. Scrum specifies artifacts, ceremonies/events, and roles associated with each sprint to get work done. @@ -54,7 +53,7 @@ Scrum artifacts refer to the information a scrum team uses that details informat - The increment is the end product of a sprint. - The increment can mean a finished product, features usable to customers by the end of the sprint, or a completed section of a larger project. -### Scrum events/ceremonies +### Scrum ceremonies The scrum framework incorporates regular meetings and events that teams perform regularly. In scrum, there are five regularly held events: - Backlog organization: - This is the responsibility of the product owner, who makes sure to continually update and maintain the product backlog, according to feedback from users and the development team. From fad3fc0702df427d82e8eff1ab5d463aa4048921 Mon Sep 17 00:00:00 2001 From: alyson647 Date: Sat, 25 Nov 2023 00:05:53 -0500 Subject: [PATCH 23/23] removed typo --- Topics/Software_Engineering/Scrum.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Topics/Software_Engineering/Scrum.md b/Topics/Software_Engineering/Scrum.md index 399407522..088a487e6 100644 --- a/Topics/Software_Engineering/Scrum.md +++ b/Topics/Software_Engineering/Scrum.md @@ -5,7 +5,7 @@ - [Scrum values](#scrum-values) - [Members of a scrum team](#members-of-a-scrum-team) - [What are sprints?](#what-are-sprints) -- [Scrum-artifacts](#scrum-artifacts) +- [Scrum artifacts](#scrum-artifacts) - [Scrum ceremonies](#scrum-ceremonies) - [Why is scrum important?](#why-is-scrum-important) - [Resources](#resources)