In this article our resident Builder AU columnist Steve Hayes highlights the need for initial planning on XP projects

Some time ago, I wrote about the general problem of misconceptions about Extreme Programming. Now I'd like to tackle a specific misconception - the idea that XP projects begin without any requirements gathering or planning. A typical quote along these lines, from -XP: Cutting through the Hype" is: -What's more, the feeling in the XP camp is that customers have little idea what they want going into a project. ... As a result, there's simply no point in trying to pin the requirements down before jumping into coding".

There are certainly people who hold this attitude, and who believe that they are doing XP - that's the nature of a misconception! The XP Customer Bill of Rights, which was presented in an earlier column, is very clear on this point:

The customer has the right to plan on a large scale with costs and options.

Jumping into coding without understanding at least something of the requirements would deny the customer this right.

Just like an other software development project, we shouldn't start an XP project until we've performed some return on investment (ROI) analysis. To do this, we need to be able to estimate both the costs and benefits of the project, which requires at least some understanding of the requirements. The benefits estimation is up to the customer, and XP is relatively silent on this - the most common approach to benefits estimation is to do whatever you were doing before you starting using XP.

The cost estimation needs to be done by the programmer team. An XP programming team expects to get requirements as a list of stories, where each story has just enough detail for the programmers to be able to estimate it. This is a subjective measure - depending on the team's experience with the technology and in the problem domain, some stories will require very little detail, and others will require a great deal.


Discuss this in the Builder Forums
Do you have a related question or comment? You can access our forums from here and post your questions, reply to other users, search for answers and more.

The underlying principle here is that although we need enough detail to estimate the overall cost of the project, any extra detail is potentially counterproductive. This isn't a new idea, and it isn't unique to Extreme Programming. In -Rapid Development" (1996), Steve McConnell argues that one important contributor to managing scope is to begin with what he refers to as a 'minimal specification'. McConnell identifies the following problems with traditional specifications:

  • Wasted specification effort - you can spend time specifying in enormous detail the characteristics of the system that the users don't even care about
  • Obsolescence - Changes mid-way through a project can quickly render a requirements document obsolete
  • Lack of efficacy - The net effect of specifying a system in enormous detail is often insufficient to guarantee the success of the system. The system can satisfy the letter of the specification and still not be satisfactory
  • Overly constrained design - Over specifying the software can force design and implementation approaches that waste time.

    The process of producing estimates might require exploring and quantifying the critical success factors, creating vision statements, exploring alternative designs, producing user interface prototypes, storyboarding, or any other technique that can help clarify the project. The XP qualifier would be not to exclude any of these techniques, but only to use them when they help the team quantify either the costs or the benefits, to the level required to establish feasibility. Even this simple description should make it clear that there is plenty of work to do before an XP project team is ready to begin implementation.

    Once we've decided that the project is feasible, we move on to the next step in the XP planning process, which is to break the project up into a series of releases. Releases are often keyed to particular dates (contract dates, trade shows, quarterly releases etc.), and frequently have a theme (-The Accounts Payable release", or -Flexible Payments"). Releases help the customer focus on splitting stories into high value (for early releases) and low value (later releases). They also act as additional constraints on development - without constraints, there's no incentive to make compromises or trade-offs, but if everyone knows the -Flexible Payments" release needs to be completed on July 6, there's a lot more focus and consideration.

    The release plan isn't something set in concrete - it's a plan, not a prediction. It will change as the business gets feedback by using interim deliverables, and as changes in the marketplace are reflected in changed business priorities. It will also change if the programming team realises that some groups of stories have been systematically over or under estimated. It reflects our best understanding of functionality, priorities and dates at a given moment in time.

    Within a given release, work is scheduled in iterations. Releases are usually on the scale of months, while iterations are on the scale of weeks (my personal preference is for iterations of one week). Short iterations often force the customer to break stories down yet again, and in doing so distinguish between high value and low value parts of the same story. Within an iteration, stories can be broken down into technical tasks, which are the responsibility of individual programmers, and can be scheduled within the iteration taking into account technical dependencies, if this is required.

    So a productive XP project has planning on at least three levels - initial planning, release planning and iteration planning - and many XP projects have a fourth level of technical task planning as well. Quite a far cry from the idea of -jumping into coding".


    Steve Hayes is the Software Development Manager at Internet Business Systems (IBS). IBS provides agile methods consulting and development services, and browser hosted solutions to the financial services industry.

  • Related links

    Comments

    1

    satya909 - 28/04/10

    HI could you please find the solution in xp and write for me
    as soon as possible

    ï®The company
    ï®You are a project manager in a large software house of 375 staff in total. The company has been running for 5 years. The company has been CMM assessed at level 3. The company has many external clients for whom it develops a wide range of business applications.
    ï®Most of the companyâs applications are developed in Java. The waterfall lifecycle development model is normally used in developments.
    ï®The company has historically suffered from the type of problems that are common in the software industry. In particular systems have been delivered not always to user requirements and containing faults. The managing director of the company is very keen for improvements to be made in these areas.
    ï®You are in charge of a project team of 8 developers, 2 requirements engineers and 3 testers. Your team is just about to start a new development.
    ï®System to develop
    ï®Your team is about to start to develop a novel vehicle navigation system for physically impaired drivers. The navigation system not only identifies the correct route for the driver in the normal way, but also controls the steering wheel to navigate the car to the destination identified by the driver.
    ï®A basic statement of requirements has been received from the customer and budget and timescales have been formalised into a contract.





    Your task today
    ï®You must write a short report (maximum of 1 page) for the managing director of your company outlining how you propose to ensure that this project improves on previous projects in terms of delivering to user requirements and without faults. Your report must include how you propose to show improvement on these issues to your managing director.
    ï®Assessment
    ï®Your report will be assessed according to the following criteria:
    ï®Your description of relevant technical tools and methods proposed
    ï®Your proposed approach to showing improvements using your approach

    » Report offensive content

    1

    satya909 - 28/04/10

    HI could you please find the solution in xp and write for me as soon as possible ï®The company ï®You are a ... more

    Log in


    Sign up | Forgot your password?

    What's on?

    • Optus Deal

      Broadband + home phone + PlayStation®3 in a single package price!