Features Delivery
Our Development Process to deliver new enhancements and features divides into several phases. Before we continue with Process, we should talk about the core roles involved into the process:
- Product owner: He takes care of the end user’s interests.
- Scrum master: should coordinate the whole process.
- Scrum team: Develops the product. Its main tasks are programming, analysis, testing, etc.
Here’s the main steps of development process that Scrum consists of.
Product Backlog Creation
Product backlog is a list that consists of features coming from our clients and agents that should be implemented during the development process.
The description of every Feature should include the following required fields:
- Importance of a Feature. It’s acceptable to use any number you want.
- Initial estimate describes the overall capacity of work.
- How to demo. Describes the way of how the working product will be demonstrated.
After the product backlog creation is finished we can move to the next step – sprint planning.
Sprint Planning and Sprint Backlog Creation
The heart of process is a Sprint, a time-box of one month or less during which a “Done”, useable, and potentially releasable product Increment is created. A short sprint allows us to release the working version of a product more frequently. Thus, customer’s feedback will be received more often and all the possible bugs and errors will be revealed in time. What’s more important at this phase is the cooperation between stakeholders and team members. The product owner determines the importance of a proper Feature, while the scrum team defines the appropriate labor costs.
After that, the scrum team can select the most important user Features from the product backlog. The Sprint backlog should be created next. It consists of Features that will be completed during the current sprint.
Working on the Sprint
After actual Features for the current phase are chosen, the development process begins.
We have daily meetings to get full and veracious information about the current project status. During these meetings, every single team member should tell about the task that he has finished, which task he will choose next and what problems he faced during his work.
Day by day meetings help increase flexibility of the development process. They also allow understanding what changes should be made.
Testing and Product Demonstration
Since the ideal result of every sprint is a working product, the testing process is very important.
Some the testing activities we done during development:
- Testers prepare test cases for the sprint features elaborating on feature conditions of satisfactions.
- Testers map test cases to features.
- With each new version from developers, testers assess changes and risks and they decide which test cases to execute.
- Testers execute selected test cases and report bugs.
- Reported bugs are mapped to related features.
- Testers verify bug fixes and update bug records.
We do more than one type of testing on our products’ releases, these are following:
- Unit Testing: we have more than 5716 automated test cases.
- DB Unit Testing: we have more than 1156 automated test cases.
- Coded UI Testing: we have more than 3000 automated test cases.
So, we don’t release any version from our products unless the following things are achieved:
- Feature implemented: Each Feature code must be checked-in with the source control.
- Functional Tests are written and executed: Each Feature will have its test cases prepared and executed. Then any Bug appear will be raised and severity will be determined.
- Critical and high testing bugs are resolved: All the bugs that severity was assigned as Critical or High will be resolved to make the Feature done.
- Automated Regression Test is Performed: Automated regression test is must be done on the final release.
- Translation for Version are done: Each string must be translated and checked.
- Release Approved by Management: The management approve the release report.
The result of every sprint is product demonstration. The Scrum team creates a review and demonstrates the results of their work. On this basis, the stakeholders take a decision about further project changes.
Retrospective and Next Sprint Planning
Retrospective’s main aim is to discuss the results and determine the ways how to improve development process on the next step. The team should conclude what went well during the working process and what can be done better during the future iteration. When the ways of improvement are defined, the team can concentrate on the next sprint planning.