This year Zabbix as a company marks the 15th anniversary. Tens of people worked hard to make Zabbix one of the world’s most demanded and recognizable monitoring tool. There are people, whose work was and stays crucial for the product to be valuable – the developers. We decided to speak to the two Zabbix old-timers who are working in Zabbix from the very beginning till now and ask questions about how Zabbix has been developed throughout the years as well to uncover the Zabbix developers’ every day.
Meet our heroes:
Andris, Senior C Developer, works in Zabbix since 2012.
Vladimir (aka Dimir), Senior C Developer, works in Zabbix since 2011.
How does the development process happen? Please tell us about the process – how the idea grows into the released feature?
Andris:
The idea must land into Jira as a feature request, bug report, or internal development request. Then comments start to flow in. Any idea competes with other ideas for developers’ time. The community can vote to raise the importance of the feature. Management decides which ideas should be implemented first. Then Acceptance Criteria is written, followed by Specification. Zabbix does not divide into analysts and coders. Typically, the Specification and implementation are done by the same developer. Then Code Review follows – other developer examines every line and tests the new feature, trying to find weaknesses. When all issues are fixed the reviewer approves it for “Merge” and it goes into the release candidate. The last step – documenting the new feature – is the easiest one.
When the issue is confirmed it is assigned to the Development Team. The last thing it needs to be processed is confirmation from Development Lead.
Development Team consists of few smaller teams, called “Team A”, “Team B” and so on. These teams have leads. These leads then decide which team takes the issue. For example, “Team A” takes the issue, the lead assigns it to one of the developers and sets the timelines for the task. Fixing any issue involves “QA Team”. When it comes to testing the fix, “QA Team” lead assigns that to one of his/her team members and sets the timelines. During the work on the issue, it may change status from “Fixed” to “Back to development” few times until QA is happy with the fix.
How does a typical Zabbix developer working day look?
Andris:
In the morning – daily stand-up meeting, what was done yesterday, what will be worked on today. Then – specification writing, feature development, bug investigation and fixing, reviewing, and testing of colleagues’ work. Occasionally – Design Days.
Vladimir:
Come to work, continue with the task, when out of task – ask team lead for a task.
Was it predictable at the very beginning that Zabbix will grow and become such a demanded monitoring tool? Could you personally imagine at the beginning of your career at Zabbix that in a few years Zabbix will become one of the most demanded monitoring tools in the world?
Andris:
No, I could not predict it. There are other open-source monitoring tools as well as closed ones. Why Zabbix? Maybe because it is still 100% open-source, flexible, good enough for many users, proved in large installations and backed by a company with some resources.
Vladimir:
I would say it wasn’t. But the great team made think that it might become true. Somehow, in Zabbix, there still was always “the great team”. 🙂
What are your predictions for the upcoming 15 years?
Andris:
Demand for monitoring solutions will only increase. As well as user expectations. We are in a good position but we should work a lot to maintain it.
Vladimir:
I cannot say. The world out there is changing rapidly and if we won’t be dynamic enough, we might lose it. On the other hand, what always was the strong part of Zabbix – stability, robustness, we shouldn’t lose that also.
What was the first game-changing feature/functionality you worked on?
Andris:
Encryption between Zabbix server, proxy, and agents, 2015.
Vladimir:
I think it was something related to a parsing configuration file which leads to creating functionality to work with string arrays. It was fun. 🙂
Which was the most meaningful/important community demanded feature?
Vladimir:
If you mean finished IMO it’s the ability to “check now” an item. If unfinished, it’s proxy-based dependencies.
What did you know about Zabbix before starting to work here?
Andris:
I knew Alexei 🙂 We worked several years in a bank where monitoring was done using in-house developed scripts. Alexei started to develop a unified solution that later turned into Zabbix.
Which is the best part of being a Zabbix developer? What you enjoy the best when working/ what satisfies you?
Andris:
It is knowing that Zabbix is widely used, every line of code I write will be running in thousands of servers in the world, even in huge installations that I’m supposed not to know about. That is both honor and responsibility.
Vladimir:
Communication. I enjoy discussing things with colleagues because everybody seems to be concentrated on making the product better.
How it was 15 years ago and how it is now? What has changed during these years?
Andris:
I joined 8 years ago. Then it was less formal, more relaxed. Today Zabbix is a more business-oriented, stronger company. It is amazing that talented people have chosen to work in Zabbix, how strong and diverse skills they bring from previous work.
Vladimir:
First of all – the number of people. When I joined, we had like one salesperson that was doing sales, office assistance, marketing, training, and whatnot and 5-7 developers half of which were doing both frontend and backend, depending on the needs. In addition, Alexei Vladishev was actively programming Zabbix. It was much easier to keep the whole team informed on what is going on. Since then the amount of work has grown so much, we need dedicated people in each area. And this shows how popular has Zabbix become.
Speaking about the community – how does your work effects community comments, suggestions?
Andris:
Community comments are most often positive, encouraging. Negative comments are mostly about why it took so long to get done.
Vladimir:
A lot. I try to stay in touch with the community using every channel: IRC, forum, Telegram, Reddit, StackOverflow, and other ways where I know smaller groups of people. We help each other. I try to help with different issues users have with Zabbix, but when I need help or advise – people are happy to share the ideas. In the end, we should have better-designed features, which results in better products. I think communication with the community is the key feature there. We, as Zabbix staff, would never have the experience of using Zabbix our community has.
Do you consider advice from the community? When, how has that helped? What would you like to improve – your vision for Zabbix for the next 5,10,15 years? How it will develop?
Andris:
The role of the community in development has decreased over the years. Development is rather closed to get faster solutions instead of wide discussions. Over the years Zabbix has grown from a small successful application into a large successful one but it was not designed with large-scale methodology. There are things that will require substantial revision for further growth.
Vladimir:
I am not a decision-maker but I try to deliver at least the most important ideas to our staff. As Jimi Hendrix said, the knowledge speaks but wisdom listens. I strongly believe that the more we listen the better we get in designing a new feature. All in all, it’s the detail that matters.