The Maturity Model

In order to achieve our ideal, it is essential to cover all parts of the process of building, deploying, testing, and releasing software.

  • Build management and continuous integration are concerned with creating and maintaining an automated
    process that builds your application and runs tests on every change and then provides feedback to the
    whole team on the process.
  • Environments consist of the entire stack your application requires to work:
    hardware, infrastructure, networking, application stacks, external services, and their configuration.
  • Release management is defined by Forrester as “the definition, support, and enforcement of processes for
    preparing software for deployment to production.” We have added considerations around compliance to this
    area, since conformance to regulatory environments is often one of the strongest constraints on release
    management.
  • Testing, whether through automated tests or manual processes such as exploratory testing and user
    acceptance testing is designed to ensure that software contains as few defects as possible as well as
    conforms to non-functional requirements. We have focused on the areas of testing that are most relevant to
    building and releasing software.
  • Finally, data management (usually, but not always, in the context of relational databases) forms an essential
    part of the deployment and release process, since it is a frequent source of problems when releasing or
    upgrading software.

To ensure each part of the process is given due attention, we have divided the model into five sections.
Agile maturity model from Thoughtworks

相关文章: