- We define the technical specifications. lead developer discuss with a client how the software should work.
- After the specifications are set, the lead developer will describe the specifications in a form of tickets in Jira.
- A client confirms, that tickets cover the specifications, that were built together with the lead developer.
- Lead developer together with software developer(s) estimate the development time, and priority of the tickets and fill in this data in Jira. If ticket is too big – it is getting split into smaller ones. Ideally the ticket should contain less than one working day of the development time.
Once the tasks in jira are defined and estimated – the software developers can start implementing them, following the process:
- The ticket is chosen based on ticket priority.
- For each picked ticket the new branch in Git will be created. This helps to develop, test and release software in parallel. Each branch can be deployed to and tested on development server individually.
- After the code is done by software developer – the ticket is assigned to the Lead developer (or other software developer in case ticket is trivial) for code review.
- In case of failing code review – the ticket is returned to the software engineer with remarks
- In case of successful code review – the ticket is assigned to QA
When is assigned to QA tester, next actions are performed:
- The behaviour of the applications is tested against the ticket description and testing instructions. QA tester will try to find bugs,reproduce standard and non-standard behaviours of a customer, testing in different browsers and with different data, etc.
- In case of failing to reproduce the desired behaviour, QA tester rejects the ticket with descriptive remarks.
- In case of success – ticket is assigned to release engineer (in majority of cases – lead developer)
After the ticket passed code review and nine circles of hell during the testing – it is time to release it.
Release engineer can both release the ticket immediately or wait in case of blockers.
The release is performed with Jenkins CI automation tool within few clicks. This eliminates human errors and allow not to spend a lot of time on it.