Methodologies for software development

In today's world, IT companies that don't want to change are dying. Due to constant innovation, once a group of developers gathered and came up with rules that should simplify the development of software products and improve the overall manageability of the company.

 

This is how the Agile Manifesto was born. The essence of which is to make the processes more transparent and allow each employee to implement, the technology is applicable in any field of activity, but we will touch only the IT direction.

Agile is a set of rules that a company or group of people must follow to increase productivity. Here are some of them:

1) People and interactions are more important than processes and tools - this rule says that we have to let people cooperate with each other so that they can do the best things, but not drive people within the standards and rules,

2) Working product is more important than the exhaustive documentation - under it it is understood that the main role is taken away realization and that the main thing, to make something, than to describe processes in vain on a paper,

3) Cooperation with the customer is more important than agreement on the terms of the contract - this step is aimed at establishing contact between the two parties by the contractor and the customer,

4) Preparedness for change is more important than following the original plan - this is the main rule in planning. You will be constantly distracted and there will be more important tasks that are not taken into account in the plan, you need to quickly rebuild and solve new problems, then your product will always be relevant and you will not move away from the goal (Auer, 2004)

Introduction of the given methodology in current processes will be very difficult as people have got used to work in an old mode and by the nature do not accept changes. Therefore, for the successful implementation of Agile three implementations of the methodology were created: Kanban, Scrum, Extreme Programming (XP).

The next successful methodology is Extreme Programming (XP). It was created especially for developers and is fully applied. The basis of the methodology is planning, the Customer and Executors hold a session during which they discuss the functionality of the software product and the developers decide who will perform what task. When the parties agree on the next session, when they can discuss the results achieved and assign the following tasks (Как объяснить бабушке, что такое Agile за 15 минут с картинками, 2016).

Next, the developers within the team assign iterations, a kind of demo days, when they agree on the terms of work on the task and show the current results. Between iterations there may be meetings where important questions on implementation, exchange of opinions and advice are discussed, such meetings are usually held standing up, because they are supposed to last no more than 15 minutes and should answer "hot" questions, and the fact that it is held standing up does not allow people to "sour" and makes people to solve the problem promptly. Another rule is simplicity, the main thing in the methodology is to write a simple and clear code than to write a complicated one because you need to constantly show the results and it is easier to improve the simple code than to replace a complicated one.

And in conclusion, the best method that is most productive is Scrum. The principle of setting and performing tasks is similar to the Kanban method, when using a board and stickers. To begin with, we will give definitions, which are necessary for understanding the methodology functioning:

1) Product - what we want to develop,

2) MVP - minimum viable product, demo version of the product,

3) Product Owner - responsible for development,

4) Stakeholder - a specialist who controls the result of the work, is not part of the development team,

5) Backlog - a list of tasks to be solved,

6) Backlog-grouping - meeting between Product Owner and Stakeholder on further development of the development.

In order to avoid mistakes in the methodology, we do not recommend to cancel the morning sessions, because they are set tasks for the day and it is easier to control the results of the previous day. Also, do not cancel the discussions on improving the product at the beginning of the week, as it will reduce the creative mood of the team and in the future may deprive the product of useful functionality.

Such flexibility of the methodology made it popular among all spheres of activity. In order to start using Scrum in a working business, it is necessary to overcome the hard initial rejection among people, because to work on this methodology, it is necessary to completely change the approach to work and problem solving (Kanban Development, 2009).

To sum up, in order to create successful software products quickly, with minimal time spent, with less downtime for employees, you need to use Agile approach. Beginners will find it useful to start with Kanban and then decide which of the methodology options to use: XP or Scrum.