Sidenis about working with insurance corporations, agile coaching and prohibited technologies
Sidenis is a relatively small IT company, which at first glance does not differ from hundreds of other outsourcing firms. But we are looking for stories about unique experiences and situations that are far from being encountered everywhere. And here they are, of course, too. Sydenis has been working in the insurance industry for 20 years, working for the largest corporations and trying to create his products.
Following the evaluation of the company, which Sidenis received on My Circle, the employees are especially grateful to the company for its good social package, comfortable working conditions and professional growth.
We talked with Viktor Klimov, Sidenis agile-coach, and tried to find out if it is difficult to connect two hundred people between time zones, how to deal with the list of prohibited technologies from the customer, work on personal projects at work and why ingenious programmers know English.
What is an agile coach and why is it needed?
I work as an agile-coach, and before that I was a programmer. In Sidenis, I am a little over seven years old. I had a long way from junior to senior java-developer. Almost throughout this journey, I was also a scrum master. And I realized that people should do what they do best. Therefore, I switched to agile coaching. I communicate with people better than programming.
- And how long have you understood this?
Already a year. Now there is not only my need for this, but also the need of the company. We grew up, there were more employees, and the time to work with people, argue with them, explain something, tell, show something new — began to leave much more.
Then I made an important decision for me and finished with the development. I had to sacrifice something. I can not say that I do not like the development - I like it. You get pleasure when you do and see the result. But, unfortunately, sooner or later you have to make a choice.
- Agile Coach - sounds exotic. Tell me exactly what are you doing?
Agile-coach is a person who inspires the team to learn something new, helps to apply new practices, helps reduce the company's resistance to these changes, and can explain what it is, what it is for and what it can lead to. Give comparative characteristics. He carries knowledge to the masses.
I conduct trainings for teams - including new people - talking about core values, what agile thinking is and why it works. It is useful to know as well as for beginners, and to speak with already existing teams in order to develop a single style, a single thinking.
- Maybe you will tell a specific story, where teams do something that you think is wrong, and you come and help to fix it?
For example, we have one team, let's say, disappointed in the Scram. They tried to embody a more bookish version, on a whim, and found that the scram is in principle not applicable in their work. They wanted to give up this framework and leaned towards Kanban.
We conducted training with them, they rethought their approach, thought that they had not been like that before. We talked about what Agile is, what its principles are, we discussed Scrum, all its rituals - what it is, what it is for and how to apply it. After that, the guys rethought, thought again and realized that this might work. They gave the framework a second chance. Now they are working successfully.
What products does Sidenis
- When you came, the company was already many years?
She is much older. The company has existed for over 20 years. Throughout this time, she has been providing IT solution development services for the insurance and reinsurance business. Our main customers are large corporations, such as SwissRe or Allianz. They occupy a leading position in the field of reinsurance and insurance.
We have offices in four cities. In St. Petersburg, there are most people. There is an office in Tomsk, Kaliningrad and Zurich. Development centers are concentrated in Zurich in the main business unit, in St. Petersburg, Tomsk and Kaliningrad.
- I understand that the company was created specifically to work with SwissRe?
SwissRe is our largest and oldest partner. But this is only part of the business, we have other customers, and our own products. For example, the online insurance service RiskMarket. The service is integrated with IT systems of insurance companies and allows you to search for insurance with the best conditions for current rates. Sydenis is an IT partner for Ooniq, a blockchain-based social security platform.
There is also an integrated IT platform called Actus. It helps actuators and underwriters to solve their everyday tasks more easily and efficiently. There are several modules, basic mathematical libraries, which contain all the necessary functions for actuaries and underwriters. There is a web application for calculating risks and various graphs.
- Do you have more of your own projects or projects for other companies?
So far we have more custom-made projects, but our goal is to make their ratio 50 to 50. Mostly customers are large insurance and reinsurance companies, and we work with an IT infrastructure that includes hundreds of different applications and systems. Plus, the requirements for insurance companies change every year, you need to add new criteria.
There is a web application where you drive in data and get the result. There are written mathematical operations, matmodels. There is an application that provides interfaces for calculating and saving data on transactions. The project gives the management an understanding of whether the contract price meets expectations or not. All these projects help to make the life of underwriters easier from different sides.
Company structure and work between time zones
- You said you grow. Are there more tasks on the current project or are there new clients?
Yes, we grow. A portfolio of orders from current partners is growing, new customers are emerging, and developing own products also requires more resources. Now we have more than 200 people in our company in all four offices - about 140 in St. Petersburg, about 50 in Tomsk, 15 in Kaliningrad and about 20 people in Zurich. We have an international team. There are people from Russia, Switzerland, Germany, Austria, France, China and other countries.
- What was the logic of such a distribution by city? Far between Tomsk and Petersburg, different time zones. Probably uncomfortable.
Different time zones really impose some inconvenience. But we are used to working in distributed teams. There are technical universities in Tomsk, and there you can find specialists. Plus Tomsk is closer to India, where we also have colleagues. This simplifies the situation.
To design it is inconvenient when there is a four hour difference. But at the same time, the guys in Tomsk come to work before us - if suddenly some application does not work, the server has fallen or something else, they can quickly restart it. So from this, too, can benefit.
- Do your employees work only in offices or are they deleted?
Only in offices. It is possible to work one day a week remotely from home, but mostly - work goes in the office. When we find employees in other cities, we offer them a move to St. Petersburg, Kaliningrad or Tomsk. It happened historically. We never had remote employees.
- How are people distributed by teams?
Some teams include people from all four offices, but this is rare. The teams are quite autonomous, and can independently do any tasks that they receive. This includes testers, designers, devops, business representatives, products, and analysts.
- How is the work going - from accepting an order to delivering the product to the customer?
We work in short sprints - from two to three weeks, depending on the project. Each team has a product-owner, a person who has a vision where to go. Development tasks come from him, because he communicates with the customer and with those who will use this system.
He describes the tasks, provides them to the team, the team asks clarifying questions, the product clarifies the details, and the team takes the task into work. For two or three weeks working on them, and at the end of the iteration shows the result. Someone release in production occurs once a sprint, someone has a two sprint. There are teams that are released less frequently, for example, two or three times a year. But nevertheless, after each iteration, they show the product and users what they can see in the next production release.
All documentation, all communication with the customer is conducted in English, so knowledge of the language is important for us. Communicating developer with the customer, we even welcome. Still, the developers are closest to the code and know best how things work.
- Does it take a lot of time for meetings and negotiations?
Well, developers sometimes complain. Of course, they will answer that much. But each meeting and rally has a goal - so that developers also learn how our project is developing, where it is going, what other people are doing. Everyone should be aware that understanding does not hang on one person.
- Do you think developers really need it - to know how others work?
I think yes. For me personally, it was important. I knew areas that other employees understand, and we could help each other. Tasks go like a stream, it may turn out that at one moment you will need to understand a new area, and you have already heard about it.
Customer specifics and list of prohibited technologies
- Can you tell us about the features and specifics of working with an insurance corporation?
Since this is a big company, they have a fairly tough list of technologies that we can use. Periodically we break through it, but the position needs to be defended. If we manage to prove that this is really necessary and important, then they accept our point of view and make concessions.
But there is a list. On the one hand, this is bad, because it limits people. But on the other hand, it prevents chaos, because maintaining a large number of identical applications and different versions is expensive, difficult and time consuming.
- Tell me about this list?
Java development is predominantly underway, and there are several projects on .NET, but in general, much less. That is, Java 8 and .NET, RabbitMQ for data transmission are exactly allowed. In principle, this covers most of the needs of industrial development, but the world is growing and developing.
For example, we needed the Spring framework for Java, but it was banned. Allowed only Java Enterprise Edition. We managed to prove that it is important and necessary for us, that it speeds up development.
- What is the list of technologies for?
When there is a clear and understandable list, it gives predictability. Otherwise, support will be very expensive. About the working application is judged by how much users like it. But there is minimal technical control on the part of the customer - statistical code analyzers or services that are responsible for the quality of the code and check our repositories (this is basically only on new projects).
But we do not have super strict code regulations. Nothing supernatural, no "be sure to write the bracket on one line and not on the other."
We live with this list. Not to say that we are very happy, but there is nothing bad either. It limits us within reason. There is no such thing that we use only ancient technologies, and no one listens to our advice.
- There are technologies that you would like to apply, but you can not?
We want to write on Go. Requests are coming from all directions, because the language is lightweight, it takes up less memory than Java, it works faster. But there is a process of discussion. Some projects use it in their services.
In rare cases, you can move away from the list, as long as the customer understands why it is needed and what problem we want to solve. We cannot come and say, “today we use such a JS framework, and tomorrow another.” They are born every year, and if you constantly move, customers will not understand what is happening.
Hiring a company without a advertised brand
- Where are you looking for people?
Mainly at HeadHunter, My Circle, on Linkedin, at conferences. In Tomsk this year we conducted a small experiment and launched several academies in Java, testing and front-end development. Trained there people with different experiences. Now comes the second set, and I think we will continue with this. On average, we hire half of the trained, which is a very good result.
Word of mouth is more difficult, until recently we have not actively promoted our HR brand. But at the same time, if people know about us, they willingly go. It was even such that some worked for us, left, worked in other companies, and eventually came back. It says something about something.
- How do you have an interview?
It is carried out in two stages. The first passes on Skype. We try to learn common things: technical literacy, theoretical material, we give not very difficult practical tasks, so that you can estimate the level of a person.
The second interview takes place in the office of the company. There may already be given programming tasks. We look at how a person writes code, how he thinks. It is interesting to see how one comes to the answers, whether he asks for clarifying questions, how he formulates them, and whether his code corrects along the way.
We ask deeper theoretical questions in order to understand the experience with which a person came to us.
- Doesn't it seem like a theory can eliminate a good developer? Yet googled.
The ability to quickly analyze information and get to the answer - this is important. If a person has encountered problems and solved them, then he will be able to reasonably justify why this is decided so and not otherwise. An experienced person always has arguments, not just flair, and it seems to me that this is more valuable. The instinct and influx in the spirit of “I have already done this ten times and have always worked” is, of course, good, but narrow.
I do not say that a person should know everything thoroughly. But if he understands what he is doing, he can come to a better solution than simply copying pieces of code from StackOverflow without knowing the theory.
- Is there a feature because of which you will definitely refuse the candidate?
Lack of english. If a person can not talk, we are forced to refuse. Therefore, at the interview we devote time to the language, please talk to us in English.
- If the developer is brilliant, but does not know English - still you will not take?
Unfortunately yes. In addition, ingenious developers find it difficult to take root in enterprise development. How will he communicate with the customer? How will resolve your questions?
- Through the product.
Always working through the product is not very efficient. And using scram is almost impossible.
But nowadays almost everyone knows English - they read it for sure. Many are trying to talk. Plus, we have our own English and German courses. Instructors can pull up. If a person is a programming genius and he somehow speaks English, he will be helped to develop.
- How much time passes from the candidate to the offer?
In fact, everything passes quickly. After the interview, we take a day or two to think and confer. Then we appoint the second interview, and how soon it will pass, depends on the candidate, whether he has time in the coming days. After the second interview, too, a day or two. So a week passes, a maximum of two, and the candidate already receives an offer or a waiver.
- A person gets into the company. What's next?
We have a welcome training. There everything is told about the company, how we live and work. A person is introduced to the office, people and projects, and then the responsibility for how he joins the team lies with the team.
Initially, the study of the insurance business. This is a rather specific thing. When you see it for the first time, it may not look very clear. Therefore, diving comes first, it is not quite easy, but everyone copes. Plus, when a task arrives, a context is given to it - why it is done so that a person does not mindlessly write code, but understand why to write it.
- What generally attracts people to go to work with you?
I would say cookies ...
- You won't surprise anyone with cookies.
... but we have fruit!
In fact, we realized that cookies are really evil and switched to fruits and vegetables. We have a fairly good social package, there is a LCA, virtual accounts.
Life inside, virtual accounts and time for self-development
- How do you motivate and encourage employees?
We have virtual accounts for each team. A virtual account is issued immediately for a year and is calculated based on the number of people in a team. They manage the account as they want. They can note, for example, their release, sit in a bar, chat in a non-working atmosphere, go on some kind of quest, jump on trampolines.
The same virtual account is for each individual. It can be spent on improving the workplace, fitness, education, conferences, books.
- How do you struggle with burnout?
We have a time tracking system, and we watch how much time people spend on a project, how much they are involved. If there is a lot of processing, then we try to send on vacation, or give additional days of rest. Working in the same rhythm and showing the same productivity is difficult.
Plus, people choose their own tasks from those that are in the sprint. Interesting tasks keep a person in a state of flow. But sometimes there are routine ones - there is no getting away from it.
It is often not very noticeable that a person has burnt out. He still goes to work, but he is not interested in anything. And if it already happened, it means something went wrong. It should be discussed with each separately and decide exactly what to do. I know one person who solved this problem by transferring to another project. He had the motivation to work because of the change of activity, the tasks brought more joy.
It is important that people here can deal not only with work projects. Inside the company there are "Guilds", uniting developers, testers, designers. We allocate up to 200 hours per year for each employee, which they can devote to self-development and creativity. To study new technologies during working hours, to unite with colleagues by interests, to create new products. For example, we have some guys doing machine learning and algorithms.
- Are the tasks themselves interesting?
Of course, it depends on the project, but the interesting can be found everywhere. Let there be no strong technical calls in them - work with a large amount of data or with high-loaded systems. But at the same time, to make the right architecture, well supported and easily changeable - it is also quite difficult. That is, technically there is much to develop.