Have you ever wondered what methodology successful IT companies follow in software development? We’ve investigated and tried many of them, and chosen the one which we think best helps us structure, plan and control the whole process of developing software.
Our software development methodologyis based on Agile/Scrum as we consider it the best way to order and manage a large number of tasks according to their priority, streamline the process of communication between our software developers’ team and customer and, as a result, meet our customer’s expectations by delivering high quality software and software development services and solutions.
The Scrum methodology emphasizes communication and collaboration, and the flexibility of the team to adapt to emerging business realities which we received positive evidence of while accomplishing a number of software development projects for our customers worldwide. Scrum helps us successfully structure and execute practically every software development outsourcing project. Here we present our methodology in work on the example of one of our most successful and long-term projects «The World’s Largest Online Experts’ Consulting Services Website».
Our methodology of software development includes the following stages:
Scrum, as the most effective interactive agile framework for managing software projects and software application development, is built on the principles of time-management and involvement of all participants with their certain roles.
We highly recommend this approach to our customers as it provides numerous benefits, like:
- Quick response to changes, while minimizing risk
- Increase return on investment and throughput of business value
- Possibility of continuous improvement and predicting the result of work iteration
- Visibility of progress, functionality, team, problems
Our Scrum methodology usage:
- A product backlogis a prioritized list of high-level requirements created by a product owner/customer for the Scrum Team (which includes Product Owner, Scrum Master and Development Team). The Scrum Master is responsible for the Scrum process, making sure it is used correctly and maximizing its benefits.
- A sprint/iteration is a period of time, usually 2 weeks, sometimes 1 week or 3-4 weeks which is less common during which the development process occurs.
- Sizing is an initial stage at which the development team commits to produce a certain amount of functionality in terms of tasks or User Stories. One week sprint includes Daily Standup, Daily Planning, Weekly Demo, Weekly Sizing, Weekly Grooming, Weekly Retrospective, Scrum of Scrums (SoS) — for more than one team.
- Sprint Planning is for the team to take some User Stories (features with a specific suggested structure that are added to the backlog) from the top of the backlog and discuss the ways of their implementation. User Stories (together with Child Stories — subtasks) are usually estimated by means of Planning Poker (or Scrum Poker: when during the Sprint Planning Meeting, the team sits down to estimate its effort for the stories in the backlog. The Product owner needs these estimates, so that he or she is empowered to effectively prioritize items in the Sprint Backlog and, as a result, forecast releases based on the team’s velocity). Based on the estimate, the team takes up only the amount of work feasible for a single sprint. The estimates can be measured in various units upon the team agreement: points which are equivalent to effective working days, or code standard unit, or other.
- The team meets each day to report about the previous day progress, communicate and plan the work for today (Daily Stand-up Meeting). Usually it’s a very short talk — up to 15 min.
- The team also has several up to 1 hour long meetings during the week for Grooming – the process of estimating the existing backlog using effort/points/units, refining the acceptance criteria for individual stories, and breaking larger stories into smaller stories.
- At the end of the sprint, the work is deployed to a test server where it undergoes Testing. Automation tests are run if applicable. Manual testing is always performed. To discuss all the points for testing a meeting with QA is arranged. Further on, the work is deployed to production (or external test server, or pre-production) where customer is able to evaluate it.
- Demo is used to show the customer if there are any blockers/stoppers for the work, etc. To communicate with the customer on daily basis the team uses numerous ways: telephone, Skype, face to face, email, tracking tools. Special attention is paid to detailed monitoring of the work progress and formal feedback. This helps us keep our customers up to date, meet their quality standard requirements and avoid exceeding the limits of budgets and delaying the deadlines.
- Sprint Retrospective Meeting — isa sprint review where the goals and results are evaluated at the sprint end. The missing targets are moved to the backlog, where they are got prioritized together with the new functionality during the next sprint planning.
- At the beginning of a new sprint, the Sprint Planning takes place and another cycle of development starts.
We also use Scrum for our Quality Assurance and Testing process.
Call, Skype or just use the Contact Us Form to get in touch with us today!