Question: Based on my understanding, Product owner, Scrum Master and Development team are the major roles in a Scrum team. I have to setup a .Net Scrum team with 5-8 members. I don't have enough knowledge about Scrum. Can any one please give a solution for this problems?

* What are the key roles that should be in a Scrum team?
* Who conducts the code reviews in a Scrum team?
* Do Scrum Teams have a role called team lead, and tech lead?

Answer: 
To quote [the Scrum Guide](http://www.scrum.org/Scrum-Guides), "Scrum recognizes no titles for Development Team members other than Developer, regardless of the work being performed by the person; there are no exceptions to this rule;" In that regard, it would be counter-productive to restrict developers into specific duties. The idea is that the development team will self-organize to accomplish tasks and overcome obstacles as needs arise (and as resources become available).

As for code reviews, there are many methods for conducting code reviews (see chapter 3 of [Best Kept Secrets of Peer Code Reviews](https://static1.smartbear.co/smartbear/media/pdfs/best-kept-secrets-of-peer-code-review_redirected.pdf)). It is up to you and your team to conduct and evaluate the code review method(s) that best complement your team's culture (although a separate quality assurance branch may collect and analyze metrics that can assist in evaluating the effectiveness of a code review method). If you have developers who are better with client code, it may be a benefit for them to review client code for better defect detection. It may also be a benefit for developers not familiar with the client code to review it so that they become more familiar with the client-side in case they need to step-in and do client programming in the future. A benefit of agile and scrum is that the development team can self-organize to test various code review methods for effectiveness. Regardless, the development team should be responsible for reviewing the code created by the development team. There can also be an external quality assurance team that further reviews the code, but that is not at all necessary for a basic implementation of code reviews or scrum.
> 
> What are the key roles that should be in a Scrum team?
> ------------------------------------------------------
> 
> 
> 

Product Owners, Developers and Quality Assurance people are key to the success of .NET stack based projects. Note that, I have not mentioned Scrum Master role. I will explain it later.

If the team is developing a Web API, ASP.NET MVC website, Desktop or .NET Xamarin Mobile application, Product Owners, Developers and Quality Assurances staff is all you need. However, if you are developing Cloud based .NET solution then you will need DevOps engineer role as well who will manage Cloud. If you are using CICD, then DevOps engineer is even more necessary to setup CICD pipelines.

Developers could have a person with Architect role (at least 7 years of .NET experience). Architect will be a person who will help Product Owners to design the feature right, help them in Story Points and support developers in design decisions.

Similarly, Quality Assurances could have staff skilled for Automated Testing like xUnit, Selenium and JUnit.

Scrum Master role is really not useful unless the person is an accomplished Software Product Manager. Instead of hiring a Scrum Master hire an Agile Coach who supports team. If all Scrum Master is doing to gather people at specific time on Zoom, Skype or a place in an office then he/she should better be replaced by Google Calendar alerts. Software teams hurt the most if top man is not an accomplished software professional. Someone has to manage JIRA or similar ticketing system. Scrum Master could be used as a follow up role on tickets, road-map, releases, milestones, and deliverable.

> 
> Who conducts the code reviews in a Scrum team?
> ----------------------------------------------
> 
> 
> 

Architect or usually 2 other team members review code.

> 
> Do Scrum Teams have a role called team lead, and tech lead?
> -----------------------------------------------------------
> 
> 
> 

Developers should be a combination of Interns, Junior Developers, Senior Developers, Technical Leads and Architects.

Usually there are small teams of 1 Intern, 1 Junior Developer, 2 Senior Developers and 1 Tech Lead. If you have 2 such teams, then 1 Architect to mediate discussion between these two teams.

Each team should have 1 Product Owner. If there are more than 1 Product Owner then one will be Lead Product Owner. Product Owner is the single most critical role. He creates stories and prioritize backlog. If Developers are not getting stories, they will not be able to develop and QA will not be able to test them properly. It is better to have 2 Product Interns with each of Product Owners to facilitate accurate story writing.

If work is intense, then each 5 developer team should have 1 QA person and 1 Site Reliability Engineer or DevOps engineer.