Many of the IT project managers, who have been practicing the traditional project management in their projects like waterfall, iterative etc., have started advocating “Agile” project management methodology. Yet, the concept of “Agile” in Agile Project Management context is understood by a very few. Executed well, it can bring in favourable results. On the flipside, execution without proper understanding can bring in adverse results as well.
So, to start with, I would harp on the basic elements like “Project”, “Project Management” and “Agile Project Management”.
A project is a set of organized activities carried out within a definite time period to create a product or service that serves the defined set of objectives or goals of an organization or individual.
Understanding Project Management
According to Wikipedia, “Project Management is the process and activity of planning, organizing, motivating, and controlling resources, procedures and protocols to achieve specific goals in scientific or daily problems”.
Project management has to balance scope, quality, time and budget to achieve the defined objective.
Understanding Traditional Project Management as a Reference Point
This is a plan-driven approach where the project manager tries to identify and define all the work involved in the project, up to the task level at the beginning of the project and then manage the executed work against the planned activities. The traditional project management broadly involves the following:
- Defining the tasks (Activity) resulting in Work Breakdown Structure (Artefact)
- Assigning the tasks (Activity)
- Directing activities (Activity)
To follow the traditional project management approach, it is required that the problem domain is well understood, the requirements and the approach is well defined and then it’s about adding the resources and doing the work. This is entirely “predictive” in nature and will have major impact for any change in future. This methodology has been found to be highly successful in industries like Construction Engineering, Automobile Engineering that are highly matured as they have been around for quite some time.
How Software Development is different
As compared to the traditional industries like Construction, Automobile etc. Software development, is quite naïve, and still maturing. As a result, using traditional project management in software development will have mixed results depending on the amount of sufficient information at the start of the project to create a meaningful WBS. Software development is happening in an environment that is fastly changing and needs to be “Adaptive” to ensure that they can change with events.
What sets Agile Project Management apart from Traditional Project Management?
The major difference between an agile project manager and the traditional project manager is about the approach taken on the project activities. An agile project manager is more of a shepherd guiding and encouraging the project team to adapt to changes whereas a traditional project manager is more “directive” in their approach. An agile project manager will play a combination of roles of a traditional project manager, a coach, a friend and a mentor to his/her team. An agile project manager’s activities would involve mostly the following:
- Discuss and understand the priority of work from all stake holders
- Work with stake holders to get their agreement on task prioritisation
- Gather required information of the tasks to be executed
- Add/refine the estimates
- Remove any impediments
- Build, motivate and sustain a consistent team culture
- Ensure that the team sticks to defined process
- Ensure and sustain high progress rate
- Manage customer relationships
- Manage and control feature creep
- Perform retrospection and document the lessons learnt
- Make appropriate decisions
- Coordinate between management and team
- Assign tasks uniformly across team
Agile project management involves iterative short cycles of Plan-Do-Check-Act in that order, and it has no end!