
Agile Development and Quality Practices for Effective Project Management
Discover how Agile practices transform project management roles, emphasizing self-organizing teams, cross-functional collaboration, and integrated testing for enhanced quality management within Agile environments.
Uploaded on | 0 Views
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
What Happened to the Project Manager? The project manager often becomes the Scrum Master This is not always the case and there are many different transformation permutations. For example, a project manager who has been serving as a domain or subject matter expert might be better positioned as the Product Owner. Or a project manager heading up a team of 50+ people may remain in that role and focus on overall project tasks such as procurement and contract negotiation, while the Scrum teams on the project (remember, a Scrum team is 7 +/- 2 people, so a 50-person project will be made up of 6-10 Scrum teams) each have their own Scrum Master. In this scenario the project manager assists the Scrum Masters in coordinating, strategizing, and removing roadblocks.
5. Agile Development, Quality, and Testing Practices Agile Project Managers can help (or may need to help) and provide leadership if they have the cross-functional knowledge that is required Agile teams, by definition, should be able to self-organize The teams should be cross-functional, having all the skills necessary to work with the Product Owner Team members should have the discipline required to effectively collaborate and coordinate as a team, and to self- manage their Sprints The team should commit to assess their work at the end of each Sprint (team retrospectives) and adjust as needed
The test: An Agile Environment Instead of a loosely knit team from a variety of functional areas, an Agile team is expected to be dedicated and tightly integrated The agile methodology (SCRUM) is a well integrated methodology with all the functions... With the team responsible for the Collaboration with the Product Owner and the responsibility for the Design, Development and Testing The team must have the capability to provide cross- functional collaboration Clearly, if the team is not able to carry out these responsibilities, a project manager would be needed
Agile Software Development Practices some of the most important agile software development practices Code Refactoring Continuous Integration Pair programming Test driven development Extreme Programming (XP)
Agile Quality Management Practices Typical Traditional Plan- Driven Waterfall Quality Mgt. Process Testing is typically done sequentially with development and is done by a separate organization There is a more reactive approach to finding and correcting defects Responsibility for the quality of the software is perceived as on the QA organization Because testing is deferred until the end of the project and code has stabilized, there may not be a need for a complicated regression testing approach Typical Agile Quality Management Process Integration of Testing with Development Testing is done more concurrently with development and is well- integrated into the development team. There is a more proactive approach to preventing defects The overall team has responsibility for the quality of the software Because testing is done concurrently with development and the code is constantly changing, it is more essential to do regression testing as the project progresses Testing Approach Responsibility for Quality Regression Testing
Agile Quality Management Practices Typical Traditional Plan- Driven Waterfall Quality Mgt. Process Testing is typically done sequentially with development and is done by a separate organization There is a more reactive approach to finding and correcting defects Responsibility for the quality of the software is perceived as on the QA organization Because testing is deferred until the end of the project and code has stabilized, there may not be a need for a complicated regression testing approach Typical Agile Quality Management Process Integration of Testing with Development Testing is done more concurrently with development and is well- integrated into the development team. There is a more proactive approach to preventing defects The overall team has responsibility for the quality of the software Because testing is done concurrently with development and the code is constantly changing, it is more essential to do regression testing as the project progresses Testing Approach Responsibility for Quality Regression Testing
Agile Quality Management Practices Typical Traditional Plan- Driven Waterfall Quality Mgt. Process Testing is typically done sequentially with development and is done by a separate organization There is a more reactive approach to finding and correcting defects Responsibility for the quality of the software is perceived as on the QA organization Because testing is deferred until the end of the project and code has stabilized, there may not be a need for a complicated regression testing approach Typical Agile Quality Management Process Integration of Testing with Development Testing is done more concurrently with development and is well- integrated into the development team. There is a more proactive approach to preventing defects The overall team has responsibility for the quality of the software Because testing is done concurrently with development and the code is constantly changing, it is more essential to do regression testing as the project progresses Testing Approach Responsibility for Quality Regression Testing
Agile Quality Management Practices Typical Traditional Plan- Driven Waterfall Quality Mgt. Process Testing is typically done sequentially with development and is done by a separate organization There is a more reactive approach to finding and correcting defects Responsibility for the quality of the software is perceived as on the QA organization Because testing is deferred until the end of the project and code has stabilized, there may not be a need for a complicated regression testing approach Typical Agile Quality Management Process Integration of Testing with Development Testing is done more concurrently with development and is well- integrated into the development team. There is a more proactive approach to preventing defects The overall team has responsibility for the quality of the software Because testing is done concurrently with development and the code is constantly changing, it is more essential to do regression testing as the project progresses Testing Approach Responsibility for Quality Regression Testing
Definition of Done Must be unambiguous and well understood by everyone on the team Done means: Design and coding are complete Unit testing is is complete Integration testing is complete (front end & backend) All required user acceptance criteria are met Increment of work in the Sprint is accepted by Product Owner at the end of the last Sprint
The role of QA testing in an agile project everyone on the team should be capable of doing anything required (design, development, testing) all developers should be totally responsible for the quality of the work that they produce rather than relying on someone else on the team to test it and provide feedback It depends in practice, this might not be possible yes, there is always value in having either a team member or an independent tester being involved.
QA and the SCRUM team A good team should be cross-functional and have the emotional intelligence of effectively collaborate having people on the team representing different perspectives should strengthen the team It is expected that a qualified Scrum team has the discipline necessary to provide the QA role.
The Important points are The team owns responsibility for quality it is not someone else s responsibility! QA should be an integral part of the team not a separate organization external to the team QA testing is an important skill, and it is often worthwhile to have people on the team who are specialized and skilled in QA testing However, it is expected that a SCRUM team has the skills and capabilities to ensure Front-end and Back- end is fully tested at the end of each sprint
AGILE TESTING PRACTICES Concurrent testing Agile (e.g. SCRUM) testing is integrated with development in each sprint in a very collaborative process where the team assumes responsibility in order to certify that the work is done. Agile approaches that do include the capabilities to do the thorough testing would rely on a QA team to do their work The author suggests that as soon as parts of the development are sufficiently complete these parts be turned over to the testers
AGILE TESTING PRACTICES Acceptance Test Driven development done at the level of unit testing to validate the implementation of the code Acceptance Test Driven development is done at a higher level of functional testing and tests features and user stories the tests must be provided for each story to ensure that what needs to be done to satisfy the user need associated with each story
The author A big advantage of acceptance test-driven development is that it can eliminate the requirement for writing detailed functional specifications it simplifies the requirements definition process, and it keeps everyone on the team focused on functionality that is needed to satisfy the business need.
Repeatable tests and automated regression testing in an agile project new functionality is continuously added (at the end of each Sprint) essential for tests to be repeatable to ensure that new functionality has not broken something that was already tested and completed Regression testing accumulating tests with each additional to the build to ensure the build is not broken retesting the build
Value-driven and risk-based testing Another consideration in planning the testing strategy is to recognize that it is impossible to test 100 % of everything some method should be developed to determine what testing should be done and what testing can be minimized or eliminated. in agile projects there is a lot more direct communication with the users to determine what is important and what is not and the user is directly engaged in testing the functionality of the software as it is being developed ???