Agile Project Management PDF
Document Details
Uploaded by Deleted User
Dr. Faisal Mahmood
Tags
Summary
This document is an overview of agile project management, contrasting it with the waterfall method. It covers the methodology's core values, principles, and various components, including user stories, sprints, and different team roles, such as Scrum Master, product owner, and team members.
Full Transcript
Agile Project Management Dr. Faisal Mahmood Reference study materials Lectures Slides/ Notes Research Articles Books Agile Project Management. A practical guide to using Agile, Scrum and Kanban by Rob Cole and Edward Scotcher Agile Project...
Agile Project Management Dr. Faisal Mahmood Reference study materials Lectures Slides/ Notes Research Articles Books Agile Project Management. A practical guide to using Agile, Scrum and Kanban by Rob Cole and Edward Scotcher Agile Project Management by Marck C Layton & Steven J Ostermiller What is Agile project management? Agile project management is an incremental and non-linear approach to project management. It focuses on breaking down large projects into more manageable tasks, which are completed in short iterations throughout the project life cycle. Teams that adopt the Agile methodology are able to complete work faster, adapt to changing project requirements, and optimize their workflow. Agile allows teams to be better equipped to quickly change direction and focus. Software companies and marketing agencies are especially aware of the tendency to demand changes from project stakeholders that happen from week to week. The Agile methodology allows teams to re-evaluate the work they are doing and adjust in given increments to make sure that as the work and customer landscape changes, the focus also changes for the team. What is Agile Software Development? The Agile software development is an application development approach that is based on the values and principles proclaimed by the Agile Manifesto. In Agile software development, the product is not delivered at once. Rather, a product goes through a number of iterations before the final one. How does Agile project management work? Agile project management does not require the oversight of a project manager, as traditional ‘waterfall’ project management does. Instead, teams share a project manager’s responsibilities to communicate and collaborate better among themselves. Results are analysed more frequently, not just at the end, and teams adapt to changing feedback and desired results, causing a process of continual development. Waterfall Method The Waterfall Method is a linear and sequential approach to project management and software development. It is structured in distinct phases, each of which must be completed before the next one begins. The phases typically include: 1. Requirement Gathering: Understanding and documenting the full scope and requirements of the project. 2. System Design: Creating detailed system designs and architecture based on the requirements. 3. Implementation: Developing and coding the project based on the design. Waterfall Method 4. Integration and Testing: Integrating various components and thoroughly testing the system to find and fix bugs. 5. Deployment: Delivering the finished product to the client or market. 6. Maintenance: Providing ongoing support, maintenance, and updates as needed after deployment Each phase in the Waterfall method flows into the next, like water cascading down a waterfall, hence the name. It is most suitable for projects where requirements are well understood and unlikely to change, as it doesn't provide much flexibility for iteration or changes once a phase is completed Agile pros and cons. Benefits of Agile project management. There are various advantages of an Agile project methodology, which include: Freedom for employees to work on models that leverage their strengths. More efficient use of resources and rapid deployment. Greater flexibility and adaptability to changing needs. Quicker detection of and remedies to problems. Improved collaboration with co-workers and users, leading to better functionality in products that better meet user needs. Clearly defined goals and processes do not need to be firmed up (Solid) before work can start. Disadvantages of Agile project management. A few drawbacks to consider before you implement an Agile project methodology are that it: Is easy to slide off-road without predetermined paths of action. Provides less predictable outcomes. Works less well for businesses that require plenty of time to analyze problems or undertake market research. Can fall flat without good collaborative skills and good personal relations. Criticisms of Agile Methodologies: Not documentation based (does not create hearty software design) Lack of structure Not suitable for junior developers Meeting intensive Requires a high level of cultural change to adopt Adds ambiguity to the contract negotiation process, because it is difficult to develop realistic work effort estimates Can be inefficient, if improperly managed Can increase the risk of scope creep Uses iterations (“time boxes”) to develop a workable product that satisfies the customer and other key stakeholders. Stakeholders and customers review progress and re-evaluate priorities to ensure alignment with customer needs and company goals. Adjustments are made and a different iterative cycle begins that subsumes the work of the previous iterations and adds new capabilities to the evolving product. Agile core values and guiding principles (Agile Manifesto ) Agile Manifesto outlines 4 core values and 12 guiding principles for any team adopting an Agile methodology. Customer Individuals and collaboration interactions over over contract processes and tools 4 core values negotiation 1 2 3 4 Working product Responding to over change over comprehensive following a plan documentation 1. Individuals and interactions over processes and tools. The human element will always serve as an important role in any kind of project management. Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process. Relying too heavily on processes and tools results in an inability to adapt to changing circumstances. 2. Working software over comprehensive documentation. As important as documentation is, working software is more important. This value is all about giving the developers exactly what they need to get the job done, without overloading them. 3. Customer collaboration over contract negotiation. Your customers are one of your most powerful assets. Agile focuses on seeking a collaborative solution to issues that might arise during product development, rather than to stick to a rigid contract. Whether internal or external customers, involving them throughout the process can help to ensure that the end product meets their needs more effectively. 4. Responding to change over following a plan. This value is one of the biggest departures from traditional project management. Historically, change was seen as an expense, and one to be avoided. Agile allows for continuous change throughout the life of any given project. Each sprint provides an opportunity for review and course correction. 12 Principles of Agile The 12 principles of Agile always guides teams in decisions and product development. 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software (or whatever else you deliver). 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. 3. Deliver projects frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale. 4. Coordinating team members must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done. 6. Face-to-face conversation is the most efficient and effective method of conveying information to and within different teams 12 Principles of Agile 7. The final product is the primary measure of progress. 8. Agile processes promote sustainable development. All stakeholders should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity — the art of maximizing the amount of work not done — is essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Key components of Agile project Management User stories A user story is a high-level definition of a work request. It contains just enough information so the team can produce a reasonable estimate of the effort required to accomplish the request. This short, simple description is written from the user’s perspective and focuses on outlining what your client wants (their goals) and why. Sprints Sprints are a short iteration, usually taking between one to three weeks to complete, where teams work on tasks determined in the sprint planning meeting. As you move forward, the idea is to continuously repeat these sprints until your product is feature ready. Once the sprint is over, you review the product see what is and isn’t working, make adjustments, and begin another sprint to improve the product or service Stand-up meetings Daily stand-up meetings (under 10 minutes), also known as ‘daily Scrum meetings,’ are a great way to ensure everyone is on track and informed. These daily interactions are known as ‘stand up’ because the participants are required to stay standing, helping to keep the meetings short and to the point. Agile board. An Agile board helps your team track the progress of your project. This can be a whiteboard with sticky notes, a simple Kanban board, or a function within your project management software. Backlog. As project requests are added through your intake system, they become outstanding stories in the backlog. During Agile planning sessions, your team will estimate story points to each task. During sprint planning, stories in the backlog are moved into the sprint to be completed during the iteration. Managing your backlog is a vital role for Scrum managers in an Agile Agile team roles. Different Agile methodologies may require specific team roles to adhere to the framework, or may not require any specified roles. Though individual Agile implementation may not require all of these roles, here are a few common roles Scrum Master. The Scrum Master ensures that each sprint stays on track and helps to remove or resolve any issues or challenges that may come up. They are the team’s advocate. Facilitates agile meetings Product owner. The role of the product owner is to define the goals of each sprint, manage and prioritize the team backlog, and be the voice of the customer or internal stakeholder. Communicates what is important … and what is not Team members. The people on this team are the ones who execute the work in each sprint. These teams, usually of three to seven people, can be composed of different specialties and strengths. Or they can be teams of people with the same job roles Agile team roles. Stakeholders. This is an informational role only. The stakeholders should be kept up to date on the product and sprint goals, have the opportunity to review and approve work during a sprint, and provide feedback during the sprint retrospective. Each Agile methodology has its own unique list of team members and roles. ---------------------------------- Cross-functional Agile Teams Cross-functional: Cross-functional Agile team members have skills outside their traditional areas. They might know some basic graphic design principles and data analysis or even some HTML/CSS. Scheduling in Agile Projects Detailed plans are only made for tasks that are soon to begin. Staff schedule their tasks with oversight only. Staff choose their tasks rather than being assigned tasks. Schedule short iterations. Schedule with requirements as the focus. Schedule tasks involving external groups (want to demo your system to some stakeholders). Include training. Take your environment into consideration. Kanban Scrum Lean Kanban allows every It is based on an Lean concept individual in the team iterative and optimizes production to make decisions incremental process and assembly lines by related to the project. to offer value to the reducing waste. customers. XP Methods of Extreme Programming Agile collects the business requirements from user stories. Development