Development Process
The software lifecycle management takes place in Atlassian's Jira and Confluence software.
Ideas are proposed and specified by subject matter experts. Formulated as user stories with
acceptance criteria, they are given to the designer, who creates sketches and click dummies.
Those are internally tested and sometimes even discussed with friendly customers. When an
easy to use solution is created, a refinement with designer and development team takes place,
who usually lower complexity and minimize implementation effort with expertise and common
understanding. The whole process is in the responsibility of the product owner, who maintains
the user stories and stores it in a prioritized backlog to be on spot to execute the company's
strategy.
After requirements are clearly defined, developers break down the given features into smaller
chunks. The development process usually starts with a design draft, describing how new
features are going to be implemented and are shared within the team. The team also discusses
when and which changes should be developed first so no one is blocked in the team. After
changes are introduced and pushed to the repository, a pull request is created to accept
changes to the repository trunk. When this happens the CI pipeline is triggered and runs unit
and integration tests. A PR without peer reviews and passed checks cannot be merged to the
trunk.
As soon as a change is applied to the trunk branch the pipeline is triggered again and
automatically builds and deploys the services to our development environment. When the team
is ready to make a release, they only need to make a release tag to make an automated
deployment to the staging environment which solely exists to make sure of the quality of the
software and prevent deployment of bugs to the production environment. This is where a final
e2e test is run which will identify any regressions.
The next step, if everything runs smoothly, is to deploy to production. To deploy to production a
member of the team with required access only needs to run a predefined workflow within Github
actions with a simple click.