top

Search

Project Management Tutorial

In recent years, Agile Methods of development and project management has gained immense popularity and adoption in software development projects. Agile philosophy slowly is also spreading into non-software projects, albeit more popular and effective in software.In this tutorial first we will try to understand the challenges in traditional methods of software developments and how agile addresses those challenges. Second, we will also try to understand how project management differs in traditional waterfall method versus agile method of development.Challenges in Traditional Methods of ManagementCompanies are investing billions of dollars today in developing new software applications and products for their businesses. It is important to develop these software applications in a timely and cost effective manner with the right features which finally work for the business.Software development may sound very easy and simple and no rocket science to the technical communities, but the hard fact is immense amount of money is wasted in developing software products which do not remain relevant by the time they are ready for use. The market conditions would have changed, the user preferences would have changed and the final product in many cases become redundant. Waterfall model has been the traditional method of developing software products. There are some classical challenges in the traditional project management of software development namely:The user communities find it difficult to define the requirements clearlyThey tend to change their minds and bring in new requirements in the course of developmentThe development team finds it very hard to accommodate new changes, especially if they come late in the development life cycleIn absence of the ability to accommodate new emerging changes makes the final software not so useful or even sometime redundantLeading to non-achievement of required ROI on investment and often leading huge wastage Above issues are very common if the team follows the classic Waterfall Model for development.Agile Methods – Core Philosophy and PrinciplesThis is where a group of experienced software developers came up with a new philosophy and development methodology which can address the above challenges effectively. The objective was to provide Agility and Flexibility in the software development methods which ultimately will result in development of well-designed, working and useful software.The Agile Manifesto as published by these groups of software developers can be read at http://agilemanifesto.org/Let us try to understand the basic philosophy behind the manifesto which was published by them which looks as below:We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more.They proposed to define a new development methodology which essentially will follow the above manifesto. They further defined 12 principles to be followed which will lead to the manifestation of the Agile Philosophy.Principles behind the Agile ManifestoOur highest priority is to satisfy the customer through early and continuous delivery of valuable software.Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.Business people and developers must work together daily throughout the project.Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done.The most efficient and effective method of conveying information to and within a development   team is face-to-face conversation.Working software is the primary measure of progress.Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.Continuous attention to technical excellence and good design enhances agility.Simplicity--the art of maximizing the amount of work not done--is essential.The best architectures, requirements, and designs emerge from self-organizing teams.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.Various Agile Methods Agile Methods have become widely adopted and practiced. Keeping the above Agile Manifesto and Principles in mind, different instances of Agile Development Methods have evolved.Some of the most popular agile methods include:ScrumExtreme Programming (XP)Featured Driven Development (FDD)CrystalDynamic System Development Method (DSDM)Lean and Kanban Software DevelopmentProject Management in Agile DevelopmentAgile Project Management reduces complexity by breaking down the many-months-long cycle of building requirements for the whole project, building the entire product and then testing to find hundreds of product flaws. Instead small, usable segments of the software product are specified, developed and tested in manageable, two- to four-week cycles.In traditional waterfall project management, the Project Manager is burdened with balancing project scope, cost, quality, personnel, reporting, risk, and adapting as requirements change. Agile project management divides these overwhelming responsibilities among three agile roles:The Product Owner handles setting project goals, handling the trade-offs of schedule versus scope, adapting to changing project requirements and setting priorities for product features.The Scrum Master guides the team to prioritize their tasks and removes impediments to handling their tasks. Agile project management with scrum is an entirely new world!The Team Members directly handle most of the task assignment, daily detail management, progress reporting and quality control for the product.Rather than planning long phases as in traditional project management, if agile is used, the entire development is planned and managed in short cycles, typically known as sprints of 2-6 weeks, each sprint delivering a fully working feature, thereby providing value to the customer early on.Traditional project management is fully plan driven, whereas agile project management is feature and value driven, keeping the customer value as priority.
logo

Project Management Tutorial

Agile Project Management

In recent years, Agile Methods of development and project management has gained immense popularity and adoption in software development projects. Agile philosophy slowly is also spreading into non-software projects, albeit more popular and effective in software.

In this tutorial first we will try to understand the challenges in traditional methods of software developments and how agile addresses those challenges. Second, we will also try to understand how project management differs in traditional waterfall method versus agile method of development.

Challenges in Traditional Methods of Management

Companies are investing billions of dollars today in developing new software applications and products for their businesses. It is important to develop these software applications in a timely and cost effective manner with the right features which finally work for the business.

Software development may sound very easy and simple and no rocket science to the technical communities, but the hard fact is immense amount of money is wasted in developing software products which do not remain relevant by the time they are ready for use. The market conditions would have changed, the user preferences would have changed and the final product in many cases become redundant. 

Waterfall model has been the traditional method of developing software products. There are some classical challenges in the traditional project management of software development namely:

  1. The user communities find it difficult to define the requirements clearly
  2. They tend to change their minds and bring in new requirements in the course of development
  3. The development team finds it very hard to accommodate new changes, especially if they come late in the development life cycle
  4. In absence of the ability to accommodate new emerging changes makes the final software not so useful or even sometime redundant
  5. Leading to non-achievement of required ROI on investment and often leading huge wastage 
  6. Above issues are very common if the team follows the classic Waterfall Model for development.

Agile Methods – Core Philosophy and Principles

This is where a group of experienced software developers came up with a new philosophy and development methodology which can address the above challenges effectively. The objective was to provide Agility and Flexibility in the software development methods which ultimately will result in development of well-designed, working and useful software.

The Agile Manifesto as published by these groups of software developers can be read at http://agilemanifesto.org/

Let us try to understand the basic philosophy behind the manifesto which was published by them which looks as below:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan
  5. That is, while there is value in the items on the right, we value the items on the left more.

They proposed to define a new development methodology which essentially will follow the above manifesto. They further defined 12 principles to be followed which will lead to the manifestation of the Agile Philosophy.

Principles behind the Agile Manifesto

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers 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. The most efficient and effective method of conveying information to and within a development   team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development.  The sponsors, developers, and users 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 behaviour accordingly.

Various Agile Methods 

Agile Methods have become widely adopted and practiced. Keeping the above Agile Manifesto and Principles in mind, different instances of Agile Development Methods have evolved.

Some of the most popular agile methods include:

  1. Scrum
  2. Extreme Programming (XP)
  3. Featured Driven Development (FDD)
  4. Crystal
  5. Dynamic System Development Method (DSDM)
  6. Lean and Kanban Software Development

Project Management in Agile Development

Agile Project Management reduces complexity by breaking down the many-months-long cycle of building requirements for the whole project, building the entire product and then testing to find hundreds of product flaws. Instead small, usable segments of the software product are specified, developed and tested in manageable, two- to four-week cycles.

In traditional waterfall project management, the Project Manager is burdened with balancing project scope, cost, quality, personnel, reporting, risk, and adapting as requirements change. Agile project management divides these overwhelming responsibilities among three agile roles:

  1. The Product Owner handles setting project goals, handling the trade-offs of schedule versus scope, adapting to changing project requirements and setting priorities for product features.
  2. The Scrum Master guides the team to prioritize their tasks and removes impediments to handling their tasks. Agile project management with scrum is an entirely new world!
  3. The Team Members directly handle most of the task assignment, daily detail management, progress reporting and quality control for the product.

Rather than planning long phases as in traditional project management, if agile is used, the entire development is planned and managed in short cycles, typically known as sprints of 2-6 weeks, each sprint delivering a fully working feature, thereby providing value to the customer early on.

Traditional project management is fully plan driven, whereas agile project management is feature and value driven, keeping the customer value as priority.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comments

Haya

A valuable piece of knowledge. Thank you!

Eniola Samson

This blog is appreciated, thanks.

Lydia

I like the article. Thank you very much.

Emmy

Thank you for the information.

Luke

The content of the motivation theories are well explained and its has been of great help to me . Thank you for making it that easy for easy understanding.

Suggested Tutorials

PRINCE2 Tutorial [Video]

PRINCE2 Tutorial [Video]

USEFUL LINKS