敏捷项目管理流程
Agile project management processes
本文的目的是强调敏捷项目管理方法的重要性,并确定在实施敏捷方法在组织或项目的主要挑战。在这个文件中,我们也比较敏捷项目管理方法与传统瀑布法,我们也将讨论两者的优点和缺点。
Contents
Purpose
Introduction
Agile Project Management Method
Agile Project Management Process
Advantages & Disadvantages of Agile Method
Advantages and Disadvantages of Waterfall Method
Comparison between Agile and Waterfall method
Challenges in Migrating from Traditional to Agile
Agile project management method works well with:
Reference
Purpose 目的
This purpose behind this paper is to highlight the importance of agile project management method and to identify the key challenges in implementing agile approach in an organization or project. In this document we also compare agile project management methodology with traditional waterfall method and also we will discuss the advantages and disadvantages of both.
Introduction 简介
今天的项目管理环境既动态又复杂。在项目执行过程中,组织或项目团队必须面对不断变化的需求和不断增长的需求,以及预算紧张和快速周转的需求。因此,优化项目管理的各个方面是非常必要的,因为每个人都在考虑项目的性能和结果作为他们的首要任务。
Today’s project management environment is both dynamic and complex. During the project execution an organization or project team has to face changing requirements and increasing demands as well as tight budgets and fast turnaround demands. Therefore it is very essential to optimize all aspects of project management because everyone is considering performance and outcomes as their top priority in a project.
Traditional project management method is task driven and it assumes that all the circumstances affecting the project are predictable. Traditional project delivery can be described as a “waterfall” approach, which presumes that the requirements, expectations, duration, activities and outcomes of projects can be predicted accurately and planned in a sequence before any actual development activity takes place. In projects where it is very hard to define the scope of project at the planning stage or if we can expect more changes during the execution stage of project, a change driven or agile approach works very well for this situation. Agile project management works well in a more fluid, more adaptive environment.#p#分页标题#e#
Agile project management is a highly iterative and incremental process where there is a constant communication between the customer (end user) and the project team (International, 2010).
Agile Project Management Method 敏捷项目管理方法
In an Agile project overall project planning is done at high level and the task to be done soon only is planned in detail. In an agile project the whole project is divided into several iterations or sprints. Each of these iterations or sprints are work periods of duration two to four weeks. Before starting of each iteration there is an initial planning meeting or it may be a brief daily planning meeting and at the end of each iteration there is a lessons learned meeting to identify what went well and wrong. These lessons learned can be used in future iterations to avoid the occurrence of same mistakes. The project team agrees to deliver something of value at the end of each iteration. The fixed time and amount of committed resources for each iteration dictate how big that deliverable will be, and the team agrees with the customer regarding the acceptance criteria of particular deliverable. Within an iteration, change is rarely permitted, but it is expected from one iteration to the next (Kloppenborg, 2014).
Agile project delivery is a way of managing projects to deliver customer value via adaptive planning, rapid feedback, continuous improvement and intense human interaction and collaboration (International, 2010). In agile project management method more focus is given for delivering “customer value”. Agile project management is conducted through the collaboration of a small, co-located team that usually consists of the customer/end user, a project manager, team members and specialists. Specialists could developers or designers, engineers, subject matter experts or the sole person with specific knowledge or expertise who understands how all the project pieces fit together (International, 2010).
Fig: Agile development process (Bar, 2013)
Agile Project Management Process 敏捷项目管理过程
In agile project management we use scrum method for developing software and products. Scrum actually follows an iterative and incremental practices in developing a software or product. In traditional project management method we will collect all requirements at the front end and the based on that we will plan the whole project. In this process we are not collecting the whole requirements at the starting, instead of that we are adding more requirements during the execution stage of the project.
Scrum Roles
Scrum uses three roles: Product owner, Scrum Master & Project team#p#分页标题#e#
Product Owner: The product owner is same as the sponsor or the customer who is going to use the new product or the person who is going to finance the project.
Scrum Master: The scrum master role is same as the role of a Project manager. His main role is to facilitate the whole development process.
Project Team: Usually team members will be from the same organization with experience in using and developing this types of software. The team itself should be cross-functional, involving individuals from a multitude of disciplines: QA, Programmers, UI Designers, etc.
Fig: Scrum process in agile project management
In scrum process we will collect the requirements from the end users or super users and we call them as user stories or backlogs. Based on this stories we will come up with sprint backlogs and we can call this sprint as different phases and each of these sprint are of particular duration, it may be from weeks to months. But before starting the project we will declare to the customer that we will only have these many sprints and after finishing the complete sprints the project is over. So the customer should provide his requirements within these prescribed number of sprints and if we are not following that method the sprints will continue as a never ending process.
Once the product backlog is collected the product owner will prioritize the backlogs. The scrum master will assign the backlogs to team members and the team members will further breakdown the backlogs and distribute it within the sprints of particular duration. At the end of each sprint or iteration we will have a finished product and if the customer has to make any changes to that product he add that as new requirements in next sprint. So when the whole sprints are completed a fully developed software or product is produced.
Daily Scrum Meeting: Daily we will have a scrum meeting of 15 minutes duration and the participants in the meeting are scrum master and team members. This meeting is not a time for big discussion, the team members will stand and talk each other about what we did yesterday and what we are going to do today and also about any obstacles they faced during the development process.
The progress of the project is calculated from the Burn down Charts and this will also give the velocity of the project and based on that we can calculate the completion dates of the project.
Advantages & Disadvantages of Agile Method 敏捷方法的优缺点
Advantages
In this method we can start the project without knowing the full details of final product.
#p#分页标题#e#
It allows us to adapt the project as we go along based on what we learn as we start developing and delivering
We deal with changes in a way that minimizes costs and time delays
Often we can deliver part of a project live sooner than we could have delivered the whole project using a waterfall methodology
Disadvantages
It can be difficult for the budget holder to sign the project off if you can’t tell them exactly what they’re going to get, how long it will take, or how much it will cost
It can be difficult for the team to start building something when they aren’t clear on what it’s supposed to be exactly when it’s finished
It can be less cost effective to deliver projects in this way as you can end up having to retest things you’ve already tested and signed off
(Project Manager, 2013)
Advantages and Disadvantages of Waterfall Method 瀑布法的优缺点
Advantages
Waterfall method more importance is given to record keeping and this help us to make improvements for the existing product in future.
In this method client has a clear expectation about deliverables, cost and time line for the project.
Disadvantages
After finishing one stage in project the developer cannot go back to previous stages to make any changes.
If we want to make any changes the project has to start again from the beginning and this method depends more on initial requirements.
The whole product or final deliverables are tested at the end and if anything goes wrong the whole project is impacted.
This method is less considered about clients evolving needs, if the client has to add something to the existing plan it will affect the cost, schedule of whole project.
Comparison between Agile and Waterfall method
Comparison
Traditional Waterfall method
Agile Method
Fundamental Assumption
Systems are fully predictable, specifiable and can be built through meticulous and extensive planning
High quality adaptive product can be built by small teams using the principles of continuous design improvement and testing based on rapid feedback and change
Control
Process Centric
People Centric
Management Style
Command and Control
Leadership and Collaboration
Knowledge Management
Explicit
#p#分页标题#e#
Tacit
Role Assignment
Individual-Favor’s Specialization
Self-organizing teams- Encourage role interchangeability
Communication
Formal
Informal
Customers role
Important
Critical
Project Cycle
Guided by task or activities
Guided by product features
Desired Organizational form/ structure
Mechanistic (bureaucratic with high formalization)
Organic (Participative and flexible encouraging co-operative social action)
Technology
No restriction
Favors object oriented technology
Challenges in Migrating from Traditional to Agile 从传统到敏捷迁移的挑战
Depending on the various factors like the business (i.e., products and services delivered), and the organizational structures and culture, some firms will make the journey from traditional methods to agile methods in an enthusiastic and seamless fashion, others will display considerable resistance to the agile ideas, and others are simply a poor fit for these approaches. Within a company, the challenges in migrating from a traditional environment to an agile environment involve resistance and objections that may occur at three levels:
Management Level
Predictability — Traditional managers always like to work within a project where everything is well planned and predictable. This helps them to track the project progress and make changes accordingly. But in agile approach the process is less planned and we are unaware about the outcomes at each stages and also we only have less control over budget and schedule. This makes project managers resistant to agile method.
Extensive Time Commitment —agile project management method is more collaborative and so the project manager has to spend more time with team members and sponsors to evaluate the whole project and control the project. Here they cannot depend on status reports for knowing the status of project.
Resources Management — Instead of being task managers, they must be ready to trust their project teams to be self-directed, and to tolerate a bit more resource risk as they discover which team members are prepared to take the leap to agile approaches.
Risk Management — Managers must prepare to accept the reality of project uncertainty, risk and cost.
Metrics and Measurements — Managers have to accept that the traditional ideas of success and failure will be transformed in an agile environment. Success will not be measured by compliance to plan or strict change control. Instead it will be measured by the outputs delivered by the project teams. In case of earned value management, credit will be given for the products, features and functions delivered and not by the tasks completed by the project teams (International, 2010).#p#分页标题#e#
Team level
Agile teams are expected to be small, self-governing and self-regulated, there is a high expectation in regard to the personal attributes of team members. Here there is no reference or plan for team members to work on, but they had to do their best to develop the product. So each team members has to think and work hard for completing the product.
The stakeholder/ Customer level
In agile process stakeholders are always worried about the scope because they don’t have an idea about what the final product will be. Moreover they don’t have a clear budget, schedule and a plan for estimating and evaluating progress of project. This uncertainty regarding project will prevent stakeholders from doing investments in this types of project.
Agile project management method works well with:
Agile approaches are best suited for innovative, exploratory/experimental, “never-been-done” projects such as new software systems with requirements emerging as development proceeds or new product development efforts for a quick-moving marketplace like consumer electronics. Agile approaches are probably not the best fit for repetitive, well-documented, low-variability, low-uncertainty, and production-style projects.
For example if we use traditional waterfall method for software development, we will collect the whole user requirements and based on that we will make a project plan. The project team will work based on the project plan and the final product is produced at the final stage. The customer will use the final product and evaluate the product based on the requirements list. If the final product doesn’t meet the requirements the project is failure and the whole effort, money, time is waste.
If we use agile project management method for the same project, we have several phases or iterations or sprints in our project. Based on the requirements from the user we will plan the first sprint and a finished product is delivered to customer at the end of each sprint. The customer can work on the product and if needs more changes he can inform that to the scrum master and he will add this requirements to next sprint. This process continues and after finishing the whole sprints the fully finished product meeting the customer requirements is produced. Instead of seeing the final product at the end this will help the user to play around the various features of product during the development stage and he can also suggest requirements based on the experience of using the product.