📜 ⬆️ ⬇️

What if you add some magic to your workflow?

As a preface


image

You sit in front of the monitor, disassemble your morning mail, and suddenly the air around you starts to quiver.

- What's happening?!

Everything darkens sharply, and for several long moments nothing is seen or heard. Only your own heartbeat. The next moment the light returns ...
')
- Where I am? What kind of place is it?

Starting to speak, your attention is attracted by a man in a robe with a hood pulled over his eyes.

- Greetings,% UserName%, you are a mage stronghold! We know that you are able to use the Source of Power. I will tell you about him. The source contains five Forces - Earth, Air, Water, Fire and Spirit. Earth represents sustainability, Air - freedom, Water - change, Fire - power, Spirit - discipline. In most cases, to perform the necessary action is quite enough any one part out of five. So streams of Fire allow you to light a candle and control the burning of the flame. But more complex tasks require weaving streams from a larger number of Forces. For example, someone who would like to influence the weather would need to simultaneously weave streams of Air, Water and Spirit. But in order to start learning, you will have to pass a test ...

What was it?


The fact is that I was tired of preaching in an attempt to introduce engineering agile practices.

image

I don’t know about you, but among the developers I’ve come across with, no more than 10% really knew agile-zen. This is a very sad statistic. And I wondered if something could be done about it?

When mastering complex areas is always the case. At first, everything is very difficult and it continues for some time, then suddenly it becomes easy and familiar. For example, with driving a car such a topic, especially on the mechanics. So, modern engineering practices (auto tests, CI, CD and other DevOps) are mastered in approximately the same way. The problem is that in the eyes of the majority the process of mastering looks something like this:
image

For those who are just starting to learn agile practices, it seems that there is too much effort involved, that it will never end and that it will always be like this. But those who have already mastered these practices, know that at some point there is a switch in the brain and it becomes sharply easier. Practitioners become relatives and after that you can’t imagine how to live without them.

And how to motivate people to reach the end in the difficult path of mastering agile practices?


At the moment of despair and disbelief in my strength, I miraculously got a course on gamification (I have already noticed more than once that when it is needed, something suddenly interesting and useful appears in my life). Gamification is a great tool for learning and motivation. Maybe this is what you need?

As a goal for my gambling system, I defined a decrease in the number of errors in the production by 20% while increasing the speed of making changes by 20%.

According to my logic, step-by-step development of new work skills by the participants of the gamified system (hereinafter referred to as players) will lead to an independent conclusion about the need to apply modern engineering practices. And the best modern practices that have been mastered and applied should lead to the achievement of these goals.

As it probably already became clear, for my system I chose a magical theme.
Magic is subject to special principles - it is a kind of magical physics. Spells are built by interlacing streams of forces of different types in the desired sequence and in the correct pattern. Streams of power can be 5 types - fire, water, earth, air and spirit.

Each Force is related to some useful skill as follows:


To weave a spell, you must first accumulate the necessary strength for the spell. The accumulated strength of the tasks:


Task example:


Technical debt payment is red.

It is necessary to find the smells of the code and get rid of them.
- What? How can the code smell?
- Yes, it definitely cannot smell ... but it doesn’t tinkle easily.

To complete the task you need:

  1. Calculate cyclomatic complexity before making changes to the code;
  2. Perform functional refactoring;
  3. Calculate cyclomatic complexity after making changes to the code. The metric should decrease by at least 5;
  4. Leave a comment in your profile with a link to the task being performed, a description of the work performed (the name of the optimized method and the module in which it is located) and the metric before and after making changes;
  5. Agree with 2 colleagues for cross-review. As a result, each colleague should leave a response to the comment from clause 3 with an assessment of the work performed and the rationale for the assessment. The cross-review period is limited to 3 business days;
  6. get a well-deserved power based on cross-reviewer ratings.

Ideally, the complexity of the methods should not exceed the value of 15-19.

Cross-reviewers in the evaluation must proceed from the following criteria:
EvaluationStrengthComment
one1 waterCyclomatic complexity has decreased, but errors have been made when making changes
22 WatersThe cyclomatic complexity has decreased, no errors were noticed, but the code did not make it clearer
33 WatersThe cyclomatic complexity has decreased, no errors have been noticed, the code has become a little more understandable, but there are significant comments on the refactoring performed (for example, the logical part of the code for selecting the method is incorrect)
four4 waters
1 Fire
The cyclomatic complexity has decreased, no errors have been noticed, the code has become clearer, but there are some remarks (for example, the naming of variables or new methods)
five5 Waters
2 fires
The cyclomatic complexity has decreased, no errors have been noticed, the code has become clearer, there are no comments on the refactoring performed.

In the event that the author of refactoring does not agree with the review, he may turn to the circle of archmage for the purpose of revising the assessment.

You can spend the accumulated Forces on spells. There is a public book of spells, which contain all the currently open weaving (list of spells open, players can offer new spells to the master system). Each weave has a cost, and may also have a number of restrictions, for example, the current player level (novice, adopted or magician), recovery time (how often a spell can be woven), etc. Spell examples:


Also, for outstanding results held magician has the opportunity to enter the highest council to participate in decision-making.

System scaling


The described gamified system can be “screwed” to almost any unit. To do this, you need to complete a few steps:


It is not necessary for each unit to use its own “instance” system, they can coexist as different schools / areas of magic (for example, magicians, priests, shamans, druids, etc.). This opens up a wide scope for further development of the system, for example, collective PvE content.

As a conclusion


For 3 months of operation of the gamified system in the pilot team, I got a stunning result:


I tried to achieve all this in a variety of ways throughout 2016.

As a next step, I'm thinking of using quest chains to adapt new employees. As planned, in the form of a game a new person should quickly understand how the internal processes are organized and join the team.

Here I want to offer in the comments jointly about the use of the described system in other services related to IT - project office, QA, operational services.

It would also be interesting to think together about interesting ideas for weaving (I want to make a spellbook thicker).

And also, I would appreciate any feedback.

Having finished his story, the author makes a loop of Fire, passes through it the intertwined Air with Spirit, then weaves the stream of Water and fixes the pattern tying around the stream of the Earth. The pattern stabilizes and the portal begins to flicker in its place. He takes a step into the portal and disappears ...

Source: https://habr.com/ru/post/327314/


All Articles