There are 3 roles in scrum team Product Owner, Development Team and Scrum Master. As we know that scrum team is self-organizing and cross-functional team and empowered to take decision how to develop software. Below is detailed about each role and where engineering practices fits in. Scrum team should be flexible, creative and productive. Adopting right engineering practices makes team more flexible and productive.
Only one product owner within a scrum team who manages product backlog, describe acceptance criteria, accept or reject work, prioritizing backlog item and ultimate responsible for maximizing the value of the product and the work of development team.
Some tools and technologies needed for product owner to deliver above tasks effectively. A tool to manage product backlog and preferred tool can be JIRA or TFS but someone can even work with Excel sheet. Next important tool is implementation of BDD either through Cucumber, SpeckFlow, NBehave, Fitnesse, BEHAT, or JBehave. BDD tool is very useful in automating acceptance criteria and validating same.
Development team is cross functional team of developers, business analyst, testers, DBA or simply say a group of people responsible to deliver a potentially shippable release at the end of every sprint.
Most important for development team to have tooling for configuration, auto build and deployment of build but at the same time coding through TDD is very much needed to have less defect and better organized code. Using TFS or Jenkins with SVN can solve configuration and continuous delivery issues and NUnit, JUnit, TestNG or Test Center can help is producing better code and lesser defect.
A servant-leader for the scrum team. Primarily responsible to remove impediments to the development team’s progress. Secondary responsibility to coach scrum team member to become self-governing and cross-functional, also work with product owner for effective product backlog management. Basically overall goal for scrum master is to ensuring scrum is understood and enacted throughout.
Scrum Master need a tool for tracking impediments, reporting progress and working with team and product owner. Ideally any agile project management tool like JIRA and TFS should be good enough for SM but SM must learn other tools depending on comfort level either in product owner’s tools like Cucumber, SpeckFlow or Behat or may be development team’s tools like CI and TDD.