Everything You Want to Know About Agile
Agile is an ideology, a system of values and flexible methods in general. The rest (XP, Scrum, Kanban) — it’s methodologies. Today's typical Agile process represents the most various mix of the good ideas taken from various sources. In Agile the team is self-organized and self-managed, and success of the project depends on an understanding of people that they are a team.
User stories option it one of the primary artifacts, and the most formalized one(shall be documented):
It is one of the most basic instruments of Agile methodology; they are rather small, convenient for creation, discussion, planning, assessment and the subsequent work. In essence, they represent an algorithm of interaction between a user and a product. In general user, story option consists of 3 points: role (authorized user, manager administrator, etc.), steps (tasks) and ultimate goal.
The possibility of prioritization allows the team to concentrate on the most significant and important stories of users. Assessment of labor input of each history allows to plan terms of its implementation, thereby managing expectations of the customer. It is simpler to estimate small history that leads to more precise estimates, better predictability, and easier planning. But as soon as you reduce your stories, you will face new a problem — huge backlog.
User stories expand, and it becomes harder to manage them. Use of daily meetings, especially in a dispersed team, increases the efficiency of creation process and transparency in problem situations. Ideal Agile differs in frequent communication between developers, testers and the team of a client - representatives of business. All members of the development process have a clear understanding of what needs to be created, and the detailed description of what needs to be checked in case of readiness.
Sprint in the time from the statement of tasks to their performance (today the typical duration of Agile phase was reduced from a month to two weeks).
The important aspect of Agile is that all the team is responsible for quality. The possibility of problem representation of Sprint in the form of "board of tasks" allows to perceive quicker current situation by a visual grouping of tasks depending on their state, showing the number of accomplished and remained work.
Extreme programming, announced by Kent Beck in 1995, as a process, comprises such approaches as unit testing ( tests are written to the main code), refactoring, pair programming (gives a very good exchange of experience), fixed working hours (40-hour to week).
EP is based on:
- Development is conducted by short iterations with dynamic interrelation with the customer.
- Uniform standards of coding. As possession of code is collective, it is impossible to develop software without it.
- Simplicity of decisions. The team takes the first elementary working decision.
- Intensive work in small groups ( no more than 10 people).
- Feedback with the client whose representative is involved in development process.
- Continuous integration.
EP process is informal but demands the high level of self-discipline. If this rule is not carried out, then EP instantly turns into the chaotic and uncontrollable process.It is very suitable for small projects, and very often used by startups.
Kanban is based on the concept just-in-time. It is the flexible methodology oriented on tasks. It is the approach which violates the basic rule of Agile approach— there is a temporary restriction of one development phase. The primary objective of the Kanban is to reduce the number of work in progress. There are no sprints; the team works on a task from the very beginning and to the completion.
Basic Rules of Kanban
- Separation of work into tasks;
- Use of marks about a task status;
- Restriction of the works which are carried out at the same time at each development stage;
- Average duration of the accomplishment of one task and a process of improvement.
- Micro team