An Introduction to Agile Project Management Frameworks
Agile needs no introduction in IT field. While it is applicable on almost different types of project management in general, it is one of the most popular System Development Life Cycle Methodogy. Agile methodology is an iterative and cumulative method of management. It provides guidelines and principles for teams in an evolving landscape and maintaining a focus on the rapid delivery of business value. Agile provides generic guidelines and principles for project management and execution, and delivery. There are a number of frameworks based on Agile Manifesto based on continuous improvement, flexibility, input of the team, and the delivery of results with high quality. Some of these frameworks include Scrum, Extreme Programming (XP) and Kanban. While adhering to, and remaining within Agile paradigm, each framework helps teams to accomplish their goals in an organized, quantifiable, and predictable manner. A brief introduction to these frameworks is provided below. I will explain each framework in detail in my upcoming articles.
Scrum
Scrum, as one of the most popular agile frameworks. It is used to work on complex projects and is focused on the faster delivery of high-quality software. Using Scrum on a daily basis, enables us to manage every single project and break each complex initiative into feasible small tasks divided between each of the team’s member.
The development process is broken into multiple segments of fixed-length iterations called sprints. Scrum provides a framework to deploy software on a regular cadence. The frequent milestones provide a quantifiable progress assessment, with each cycle that keeps everyone focused on the active sprint. The short-term milestones put an extra emphasis on importance of good estimation and fast feedback from tests.
Following four practices of Scrum are primary pillars of each sprint:
- Sprint planning: A team planning meeting that determines what to complete in the coming sprint.
- Daily stand-up: A daily stand-up or a daily scrum is a 15-minute meeting for the software team to sync.
- Sprint demo: A sharing meeting where the team shows what they've shipped in that sprint.
- Sprint retrospective: At the end of each sprint, a sprint review meeting is held. During this meeting, the Scrum team shows what they accomplished during the sprint. Typically, this takes the form of a demo of the new features.
Scrum Team Formation
A scrum team includes a product owner, scrum master, and the development team. And because scrum teams are cross-functional, "the development team" includes testers, designers, and ops engineers in addition to developers.
Product owner: Product owners are the domain experts for their product. They are focused on understanding business logic and market requirements. The product owners prioritize the work to be done by the engineering team accordingly.
Scrum Master: Scrum masters are organizers for scrum within their team. They coach the team, the product owner, and the business on the scrum process and look for ways to fine-tune their practice of it. An effective scrum master deeply understands the work being done by the team and can help the team optimize their delivery flow. As the facilitator-in-chief, they schedule the needed resources (both human and logistical) for sprint planning, stand-up, sprint review, and the sprint retrospective.
Scrum Team: Scrum teams are the practitioners of development processes. The most effective scrum teams are tight-knit, co-located, and usually 5 to 7 members. Team members have differing skill sets, and cross-train each other so no one person becomes a bottleneck in the delivery of work. All members of the team help one another to ensure a successful sprint completion.
Kanban
The next popular agile framework is Kanban. It helps teams work more efficiently together. Core principal of Kanban is to break workload into daily tasks. This allows you to monitor the workload on daily basis. By dividing a project into small tasks, it gives you a wonderful feeling of putting each task to a section “done”. Moreover, Kanban is perfect in measuring the efficiency of every employee and a team overall. There are four basic principles of Kanban:
Visualize Workflow: In Kanban methodology, the workflow is documented in a way that can easily be visualized. It is important to create visual map of a process as it currently exists, to initiate a Kanban improvement. The visual map highlights the opportunities for improvement. Visualization continues once Kanban is implemented and provides the state of projects, process, and inventory.
Limit Work in Progress: The focus of Kanban is to plan and execute the minute details of work efficiently from beginning to end with as little delays and overheads as possible. This requires limiting the amount of work in the pipeline to what can reasonably be managed at a given time. You can take the example of a grocery shop, where inventory is pulled from store or warehouse to the shelf when customer demand makes space for it, so too, the Kanban approach moves work from one stage to the next only when it is pulled through by “customer” demand. Work is never pushed forward, and the bottlenecks are avoided.
Focus on Flow: Kanban enables you manage flow by highlighting the different stages of the workflow and the status of work in each stage. Depending on how well the workflow is defined and WIP Limits are set, you will observe either a smooth flow within WIP limits or work piling up as something gets held up and starts to hold up capacity. This represent opportunities for additional visualization and process improvement.
Continuous Improvement: The Kanban Method is an evolutionary improvement process. The approach requires constant monitoring and analysis to look for the next best way to improve. It helps you introduce small changes and improve at a pace that your team can handle easily. It encourages the use of the scientific method – you form a hypothesis, you test it and you make changes depending on the outcome of your test.
The project progress is monitored using Kanban board. A Kanban board is a work and workflow visualization tool that enables you to optimize the flow of your work. Kanban board could look anyway, hand-made on walls or even windows, or online like Trello, for example. It is one of the most common tools representing Kanban concepts.
Extreme Programming (XP)
The third but not the least of top agile frameworks, is Extreme Programming (XP). This is my personal favourite agile framework for a Software Development Company. XP is designed from the grounds up to improve software quality and responsiveness to changing customer requirements. Another advantage of XP is in simplifying and speeding up the process of developing new software, so the product would be launched promptly with a solid MVP. The essential part of XP is planning, and it covers four basic phases in XP life cycle: designing, coding, testing and listening.
Some of the highlighted practices in Extreme Programming (XP) are Continuous Integration (CI) and Test-Driven Development (TDD), continuous integration servers (CI), continuous delivery (CD), continuous deployment (CD) and other methods. XP’s objective is that code should be written by pairs of programmers, forcing the main programmer to describe the code to the other programmer and perhaps to stimulate further ideas. Extreme programming stands for simply starting, building something real that works in its limited way, and then fit it into a design structure that is built for further code building. It handles real life issues, and bottlenecks such as business continuity, frequent change and enhancement requests during development process.
Technical Lead (Business data Analytics)
2 个月Informative