What is a methodology, actually? It is a collection of principles, methods, ideas and means which helps to create a product in accordance with certain standards. All methodologies serve to ease our life at work and deliver a great quality product or a service, but propose different scenarios and instruments. The number of approaches in the industry is really huge today, so we will take 5 most popular and tell you about their main principles and benefits in this article.
Software development process may be very hectic and sometimes even messy, especially for the newcomers of the industry. But, even experienced teams may face some obstacles. To avoid unnecessary stress and take (almost) everything into account, it is very important to choose the right methodology of mobile app development.
Waterfall is a sequential approach, which is pretty clear from it’s name. Each step of the development process coherently changes one another:
- We plan and create the set of documentation.
- We develop.
- We test and fix.
- We deploy.
This methodology basically describes a classic workflow in any industry but was adopted by the IT industry. All the processes are being strictly controlled by various management tools and extended official documentation. Each fulfilled phase should be accompanied with a written report. Once being completed, a certain phase cannot go behind. This approach demands discipline and makes the team members think out every step carefully, especially at the stage of planning. But, it’s good in the following circumstances:
- All requirements are clear, strictly defined beforehand and are not supposed to be changed.
- There is no lack of experienced developers.
- There are techniques and tools defined for the project.
- The project is large, expensive and complicated.
The model is classy and reliable, but pretty expensive and should and not flexible. Yet, the technologies are being developed so rapidly, that teams and business owners have to follow the changeable market and deliver products faster. For these needs, it’s more desirable to use flexible methodologies.
Another popular and very efficient approach is Scrum, which works according to the agile principles:
- People and interactions are more important than instruments and processes.
- An efficient product is more important than complete documentation.
- Cooperation with clients is more important than detalization of the contract conditions.
- Changes are acceptable, welcome and can be implemented into the development process rapidly.
Nowadays Scrum is the most widely used and has became a kind of quality standard in the IT industry already. It is not an abbreviation, this word derives from rugby and literary means scuffle around the ball.
The main emphasis here is made on the flexibility and quick feedbacks from the product owner and team members. The key feature of Scrum is that it uses the past experience to estimate the new tasks and to forecast the further man-hours. The workflow is divided into so called sprints - iterations of 2-4 weeks. The team chooses the best longevity and follows it within the whole project.
So, how does it work with Scrum? First of all, there are people who have certain roles (responsibilities):
- Product owner represents the client’s interests
- Scrum master coordinates the process and controls Scrum-principles to be followed.
- Scrum team - consists of developers, testers, designers, managers and other people who work at the project.
And all these people perform the following steps:
- Create the product’s backlog, a list of tasks/elements which are called stories.
- Plan the sprint in accordance with a product owner's desire and their estimation points. Stories to do in the sprint must be estimated realistically and delivered strictly within the sprint.
- During the sprint the defined stories are accomplished and tested. Meetings are held daily and a burndown diagram is used to control the process. It helps to trace the pace of work and plan the next sprint according to the labour capacity. For this purpose, such instruments as Jira, Bugzilla and others are used.
- At the end of the sprint, a build of the delivered product is demonstrated to the product owner or users. The team makes a summary about the sprint and completed work, and gets a feedback of what should be changed in the product.
- The last and very important stage is a retrospective. The team analyzes the feedback and problems they have faced during the sprint. Only when solutions are found, the team can plan the next sprint.
This methodology is cheaper than Waterfal thanks to its flexibility and is great for:
- Long project with unclear requirements.
- Often changes are expected during the development process.
One more kind of an agile methodology is Kanban. It is way different from the previous one, but also a very efficient model and has found a lot of followers. A little bit of history on the topic will help to understand how it works. It appeared in Japan, in “Toyota” corporation, in 1959. The factories have an annual sales plan and monthly plans for production are adjusted according to this plan and are made up relatively to the actual demand and sales. For example, there are 2 lines, which produce mating parts, there should be the same amount of pieces. If one line, for example, has produced 20 left mirrors while the other has made only 10, the process should be readjusted. According to the methodology, it’s always clear how much time it takes to produce a necessary detail (cycle time), so in case of some glitch, it’s easy to estimate man-hours per repair action. All these features help to deliver “right in time”, which is the core principle of Kanban. Workers wrote notes to each other on a special board, which sounds like “kamban” in Japanese, but has turned to “kanban” in English.
Nowadays, this board is also used to make the process visual. To continue the analogy, we may describe the process according to Kanban this way:
- The plan of production is the backlog itself. All stories are rated by the priority and being accomplished in the defined order within the cycle time. If some team members are busy with non-urgent tasks, they should readjust.
- If due to some reasons, the team has made “25 left details” and only “5 right details”, the manager should realign priorities and re-estimate time spendings according to the tasks’ cycle time.
The methodology is definitely money-saving and efficient for:
- The software support services, where the speed of reaction and adjustment is more valuable, than the plan fulfillment itself.
- The testing process, which is separated from the development.
- And other non-core production or processes.
Regarding the huge variety of different products and services, it’s sometimes necessary to adopt from several methodologies. And Scrumban is the mixture of two, as you may see in its name. The aim of the methodology is to take the best from both. The features adopted from Scrum are:
- The roles.
- Prioritized backlog.
- Demo-versions availability at the end of each iteration.
- Daily meetings and feedbacks.
From Kanban the following features are taken:
- Cycle time as the main metric to plan and improve the workflow.
- The possibility to add new tasks at any time.
This model is more expensive than the previous two, but it’s a great and reliable instrument to manage long and complicated projects.
Extreme Programming or XP
This methodology is used when there is a need to create a high-quality product. The distinctive features of the XP methodology are:
- The absence of unnecessary features.
- Pair programming.
- Strict following the coding standards.
- Frequent and small product releases.
- Expanded code review.
- Huge attention to the testing process.
- Loyalty to quick changes.
- Transparent communication in the team and with customers.
The list is really impressive and guarantees an outstanding quality of the delivered product. But the product owner should be ready that the cost will hardly be low and the process will not be short. Still, the methodology is effective for a complicated and expensive product where quality is the core value.
The last what we want to notice is that there are no bad methodologies. You should compare them only to analyze their effectiveness according to your goals. Correctly chosen one especially for you, coupled with a great experienced team will definitely lead you to success.