Agile Software Development at HeadEnergy

A methodology for flexibility and rapid software development.

Here at Head Energy, we operate using the Agile software development process. Agile development is a different way of managing software development projects. 10 Key Principles of Agile Software Development, and how it fundamentally differs from a more traditional waterfall approach to software development, are as follows:

  1. Active user involvement is imperative
    [x]
    Some details
  2. The team must be empowered to make decisions
    [x]

    An Agile Development project team must include all the necessary team members to make decisions, and make them on a timely basis.

    The project team must be empowered to make decisions in order to ensure that it is their responsibility to deliver the product and that they have complete ownership. Any interference with the project team is disruptive and reduces their motivation to deliver.

    The team must establish and clarify the requirements together, prioritise them together, agree to the tasks required to deliver them together, and estimate the effort involved together.

    It may seem expedient to skip this level of team involvement at the beginning. It's tempting to get a subset of the team to do this (maybe just the product owner and analyst), because it’s much more efficient. Somehow we’ve all been trained over the years that we must be 100% efficient (or more!) and having the whole team involved in these kick-off steps seems a very expensive way to do things.

    However this is a key principle for me. It ensures the buy-in and commitment from the entire project team from the outset; something that later pays dividends. When challenges arise throughout the project, the team feels a real sense of ownership. And then it's doesn't seem so expensive.

  3. Requirements evolve but the timescale is fixed
    [x]
  4. Capture requirements at a high level; lightweight & visual
    [x]
  5. Develop small, incremental releases and iterate
    [x]
  6. Focus on frequent delivery of products
    [x]
  7. Complete each feature before moving on to the next
    [x]
  8. Apply the 80/20 rule
    [x]
  9. Testing is integrated throughout the project lifecycle – test early and often
    [x]
  10. A collaborative & cooperative approach between all stakeholders is essential
    [x]