Литмир - Электронная Библиотека
ЛитМир: бестселлеры месяца

software development methodologies should be evaluated using project management triangle;

Agile methodology gained great popularity and changed software development forever by now;

Waterfall or Cascade methodology is still in demand, so developers should be ready to exist within this approach.

CHAPTER 3. IMPLEMENTING AGILE APPROACH IDEAS INTO PRACTICE. LET'S BREAK DOWN THE INSTRUMENTS AND TECHNIQUES

Let’s look at frameworks that are used to implement Agile Approach ideas into real practice, but first let’s explain what a framework is.

Framework is a ready-made set of tools that helps the developer to create a product quickly: a website, an application, an online store, a CMS system.

Imagine that you decided to assemble a toy car: it should drive and look almost like a real one. Obviously, there are several ways to solve this problem:

the car can be assembled independently, from scratch: create all the parts manually or with machining equipment, do electronics and electrics, paint everything. So you can control the whole process, but it will take a lot of time;

a similar car can be assembled from ready-made kits: body parts, engine, electronics will become modules that are important to choose and connect correctly. If desired, you can improve any module, but generally this is not necessary, everything will work right out of the box.

The framework is the same ready-made set, only for the developer. It saves the time and effort of a specialist who would have spent on creating basic things and correcting simple mistakes.

Agile Transformation in IT-organizations - _12.jpg

The most common Agile framework is Scrum.

Agile Transformation in IT-organizations - _13.jpg

Scrum is a set of rules allowing the team to establish a flexible workflow. Development is carried out in iterations, the goals of each iteration and the tasks of each team member are clearly outlined. Due to Scrum, companies can apply the principles and values of Agile and work on projects of any complexity. Agile and Scrum concepts are regularly confused, considering that Agile and Scrum are the same.

The difference lies in the scale of two approaches: Agile is a special way of thinking, a mindset. Scrum is an instruction for use. A clear plan describing each step of Agile implementing in product development. This is a methodology with specific stages, in which roles and events are clearly defined.

Agile Transformation in IT-organizations - _14.jpg

Scrum is based on empiricism and lean thinking.

EMPIRICISM asserts that the source of knowledge is experience, and decision-making is based on observations. Lean thinking reduces losses and focuses the main.

Scrum uses an iterative-incremental approach to optimize predictability and risk

management. It involves groups of people who collectively possess all the skills and experience to do the job, to share knowledge and acquire the necessary skills as needed.

Scrum combines four formal events for inspection and adaptation into a container event – Sprint. These events work well because they implement the empirical pillars of Scrum: transparency, inspection and adaptation.

TRANSPARENCY: the emerging process and work should be visible both to those who do the work and to those who get results. Important decisions in Scrum are based on an assessment of the state of three formal artifacts16. Artifacts with low transparency can lead to solutions that reduce value and increase risk. Transparency makes inspection possible. Inspection without transparency is misleading and is a waste.

INSPECTION: to identify potentially undesirable deviations and problems, it is necessary to regularly and thoroughly inspect Scrum artifacts and progress towards achieving agreed goals. To help with the inspection, Scrum provides a cadence17 in the form of five events.

Inspection makes adaptation possible. Inspection without adaptation is considered meaningless. Scrum events are designed to provoke change.

ADAPTATION: if any aspects of the process go beyond acceptable limits, or if the final product is unacceptable, the process used or materials produced must be adjusted. The adjustment should be made as soon as possible to minimize further deviation. Adaptation becomes more difficult when people involved do not have authority or are not self-governing.

A Scrum Team18 is expected to adapt the moment it learns something new during an inspection.

SCRUM VALUES

The successful use of Scrum depends on how much people share its five values: commitment, focus, openness, respect and courage.

A Scrum Team is committed to their goals and supporting each other. Their most important focus in working at Sprint is the maximum possible progress in achieving goals. The Scrum Team and stakeholders are open to discussing work and challenges. Scrum Team members respect each other as professionals and independent people, and in the same way they are respected by the people they work with. Scrum Team members have the courage to do the right thing and work on solving complex problems. These values set the direction for the work, actions and behavior of the Scrum Team. The decisions taken, the steps taken, and the way Scrum is used should reinforce these values, not weaken or undermine them. Scrum Team members comprehend and discover these values while working with Scrum events and artifacts. When these values are brought to life by Scrum Team members and the people they work with, the empirical pillars of Scrum – transparency, inspection and adaptation – come to life, building trust.

Agile Transformation in IT-organizations - _15.jpg

SCRUM ROLES19: TEAM (DEVELOPERS)

The main unit of Scrum is a small team of people, a Scrum Team. A Scrum Team consists of one Scrum Master20, one Product Owner21 and Developers. There are no subcommands or hierarchy inside the Scrum Team. This is a close association of professionals focused on one goal at any time given – Product Goal.

Scrum Teams are cross-functional22, meaning their members have all the skills needed to create value in each Sprint. They are also self-governing, that is, they decide who does what, when and how. A Scrum Team is small enough to stay agile, and large enough to do significant work during a Sprint – usually consists of no more than 10 people. Overall, we found that small teams communicate better and are more productive. If Scrum Teams become too large, participants should consider reorganizing into several cohesive Scrum Teams, each focused the same product. Therefore, they must have the same Product Goal, the same Product Backlog23, the same Product Owner.

A Scrum Team performs all product activities: cooperation with stakeholders, verification, maintenance, operation, experiments, research, development and all that may be required. They are structured and empowered by the organization to manage their own work. Working in Sprints at a steady pace improves the focus and consistency of the Scrum Team.

вернуться

16

This is the information with which the Scrum team and stakeholders describe in detail the product being developed, as well as the actions to create it and the activities within the project.

вернуться

17

An Agile cadence is a reliable series of events and activities that occur on a regular, predictable schedule.

вернуться

18

This is a small group of people, within which there is no hierarchy, mini-teams or leader and all participants work on the same goal.

вернуться

19

A Scrum team participants’ roles.

вернуться

20

A Scrum role which does not imply anything other than the correct Scrum process conduction. Thus, the Scrum master is the server-leader of the team.

A Scrum role, a person responsible for the product creation and

management. (S)he monitors its development process, records the necessary

metrics and is responsible for the result.

вернуться

21

A Scrum role, a person responsible for the product creation and management. (S)he monitors its development process, records the necessary metrics and is responsible for the result.

вернуться

22

A team that has all the skills necessary to do the job and is independent on those who are not part of the team. Cross-functional Teams are more flexible, creative and productive than teams where people are specialized in one competence to do their job.

вернуться

23

An ordered set of elements, a queue of tasks, a list of all the functions that you want to get from the product. This list contains brief descriptions of all the product features desired.

5
{"b":"861575","o":1}
ЛитМир: бестселлеры месяца