Agile project Planning & Scheduling Tips with Extreme Programming (XP) Practices

In classic approaches any development work must wait until all the requirements are documented, agreed, and signed off. The end-users don't get to see the product until it is largely complete But according to the new Agile Methodology, only stable plans are short term plans that are made for a single iteration. Iterative development gives you a firm foundation in each iteration that you can base your later plans around. The Customer can use this product for any purpose, whether evaluation or even release to end users. The product is visible, and given to the customer, at the end of every iteration.

Agile project Planning & Scheduling Tips (Extreme Programming Style)

  • In iterative development approach, development is organized into a series of short, fixed-length (for example, 2 weeks) mini-projects called Iterations. They are short on functionality, but should be faithful to the demands of the final product.
  • When business comes up with a list of desired features for the system then decides which features to implement in what order, as well as when and how often to produce a production release of the system keeping in mind that how much effort each story will take, and how much effort the team can produce in a given time interval.
  • Write requirements as short as possible in smaller units. In Extreme Programming(XP), requirements are called user stories. Each story can be estimated by the programmers as needing no more than a week or so of effort. Story is backed up by acceptance tests that include some of the detail. After user stories are written, the programmers estimate how long each will take to implement. If the programmers cannot come up with an estimate, either the story is too big and must be broken down or the programmers need to do a simple experiment to learn about how to implement the story.
  • The people doing the work must be actively involved in planning & scheduling. They are motivated to get it right, they have skills to understand the dependencies, and they need to accept the schedule.
  • Each task should be estimated as 1, 2, or 3 programming days in duration. Tasks which are longer than 3 days should be broken down farther.
  • Meet every morning or once in a day to communicate problems, solutions, and promote team focus.
  • Set clear objectives for each iteration. Understand that a deliverable is never "finished". It only "meets the objectives of the iteration".
  • Take your iteration deadlines seriously! Track your progress during an iteration. If it looks like you will not finish all of your tasks then call another iteration planning meeting, re-estimate and remove some of the tasks.
  • The outcome of each iteration is a tested, integrated, and executable system. Each iteration includes its own requirements analysis, design, implementation, and testing activities. Continuously engage users for evaluation, feedback, and requirements.