The stSoftware application lifecycle consists of weekly incremental releases with stake holder planning and demonstrations. The release cycle is two weeks from the planning phase to feature release, features are broken down into small enough tasks to be able to fit into the two week release cycle. This project management methodology is known as Agile/Scrum
The Agile Manifesto is based on twelve principles:
There are three main activities in the planning phase:
Gap Analysis & System Design:
A sprint (or iteration) is the basic unit of development in the agile development life cycle. The sprint is a "time boxed" effort; that is, it is restricted to a specific duration.The duration is fixed in advance for each sprint and is typically one week.
Each sprint is started by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and ended by a sprint review, where the progress is reviewed and lessons for the next sprint are identified.
Each development sprint is one week in length, a set of coherent tasks are taken from the "product roadmap" based on the priority given by the business user. The set of tasks "sprint backlog" including any dependencies are chosen to be a estimated week of total developer team effort.
The developer team meeting for 15 minutes to review yesterday's progress and plan today's tasks.
When a feature set is completed and the automated tests ( ~6,000) for the whole system are clean the system build is released to the “preview” environment. A manual "smoke" test is done on the "preview" environment once released.
Release to User Acceptance Testing (UAT)
At the Sprint Review Meeting:
At the Sprint Retrospective:
Release to Production:
The "UAT" release is matured for a one week period. Business users are able to test the upcoming release in the UAT environment, if no regression issues are found then the UAT release is promoted into the "production" environment. Feature sets are disabled or reverted before promotion if required. The promoted “UAT” releases propagated throughout the production server cluster progressively using a rolling restart of each web server so that there is no visible outage of the system.