Interview by Thomas Peham
May 13, 2015
Photos by YouTrack
Maxim shares his story of starting out in software engineering
In our latest interview, Maxim Mazin, Team Lead at YouTrack shares the story on how and why he started to work on a bug tracking system.
Share this interview:
Hi Maxim, What do you do at YouTrack?
Currently, I lead the development of YouTrack and Hub products at JetBrains.
I joined the YouTrack team in 2006, right from the very beginning. There were just three of us back then. JetBrains hired us specifically for this project to create YouTrack. Just before that, JetBrains created Meta Programming System (MPS), a tool for creating DSLs and a development workbench. We were tasked with writing the first commercial product based on MPS. Today, after working with MPS for nine years, we’re moving away from it as it’s just too academical even for us. Still, it’s a nice tool, open source and completely free.
You mentioned you started in 2006 with just the three guys of you. What was your personal motivation to start at JetBrains?
I was doing my PhD in Saint Petersburg, at the Information Technology Mechanics and Optics Institute. At the same time I was working for eVelopers, a software development outsourcing company, where I managed a team of ten guys doing some really boring things.
Programming started to get more exciting once we got involved with a side project that had to do with a plugin for Eclipse. It occurred to me that creating tools for developers full-time would be even cooler. Me and my colleague at eVelopers, Vadim Gurov, approached JetBrains and got hired. They added another guy already working there, and the three of us got busy creating YouTrack.
Is there any moment in your childhood which you would recall as a big influence for you starting out in software engineering?
When I was fifteen or sixteen, I was pretty sure that I should study biology. I thought (and I still do) that biology is like the physics of the 21st century. It’s the top dog among sciences. I was going to work in genetics.
I decided though that it would be nice to take some programming courses to prepare for my future research work. In the process, I realized that I really enjoyed coding and crafting. It was just too much fun! So I decided that I would be a software engineer, since it’s much more fun than studying things that you can hardly influence. For example, plants grow for years and you can’t really change them on the spot, you know?
Do you think it is necessary to go to university if you want to start out as a software engineer nowadays?
In Russia, yes, definitely. If you don’t go to a university in Russia, it doesn’t look like you set any goals for yourself. I guess in Europe there is no such obligation. Still, we have lots of people in Saint Petersburg who get disappointed by their universities and leave early to start a career in IT and software development.
I think that university is the place to get basic computer science education. A lot of people that do web development come from different non-software engineering industries, and sometimes without special training they miss some of the basics.
Can you share some insights on the typical day in your life?
I guess my typical day is pretty boring.
I wake up, have a shower and bicycle to our office in Munich. What I do at YouTrack is less about developing and coding but more about managing developers and doing a lot of organizational stuff.
Can you share some tools you are using on a daily basis for your work?
Most tools we use are actually created by JetBrains, as the company is known for dog-fooding its own products. We use JetBrains TeamCity as our Continuous Integration system. It’s a very mature product and a commercial leader in its field. For bug tracking, we obviously use YouTrack. For code review, we use JetBrains Upsource. Actually it’s more than code review because at the backend it has IntelliJ IDEA for deep code analysis.
Can you share some challenges in moving YouTrack from a product built by 3 people, to a comprehensive bug tracking tools maintained by a huge staff today?
In the beginning, with just three people, it was easy. But even as the team grew, communication has stayed straightforward. JetBrains as a company has a very simple hierarchy.
We’ve introduced some scrum techniques just to manage the development process and to prove our Agile implementations in YouTrack. Though recently we may have outgrown scrum.
How many people are you managing with scrum at the moment?
Well, there are around twenty people on our team and in recent months we’ve felt scrum was no longer adequate for our process. It’s a real challenge managing 10 or 20 people working on the same code with scrum. There are so many different roles and tasks, people come and fix some bugs or add new features, and some leave the team… the code tends to turn into a mess. So we decided to split into smaller teams that have some “sub-system ownership” for certain deliverables. I can’t say that this works perfectly, but better than before.
Can you share some challenges and pains you’ve seen in companies regarding the topic of bug tracking?
From our team’s perspective, bug tracking is a great challenge. Every team uses the bug tracker in their own way. As a result, we get many feature requests that are extremely specific or even contradicting each other. For example, some customers want to notify some user when some issue is in some state. The developer cannot and should not introduce new checkboxes in the configuration UI for every such request. Whereas YouTrack started as a very simple tool, lately we’ve had to add APIs and workflow customization to address this problem.
From the client’s perspective, if your product is successful and its audience is growing, the number of issues is always increasing. For instance, the IntelliJ IDEA project at JetBrains has about 30K unresolved issues. If you have that many issues in your bug tracker, a reasonably sized development team can never fix all of them. So you have to somehow prioritize and rank issues and bugs. That’s the main problem in bug tracking, and unfortunately I don’t see any good solutions for completely automating the process.
Is there any advice you would give yourself as a fourteen year old?
Not really. I think I did everything right. Like I said, I started programming pretty early which was absolutely fine.
If you could travel through time from the beginning of YouTrack, when you joined to now, which time would you choose?
I’d say in the very beginning.
Because after a couple of years software engineers have produced a lot of legacy code.
Are you reading any blogs or books you can share with us, which you can recommend to others who want to get started in that kind of area?
I don’t keep track of as many blogs now or technical articles, but tend to go for more non-technical stuff. I do check out a popular Russian blogging community called Habrahabr. It’s the place to go for all Russian-speaking software engineers.
What do you think will be the next challenges in software engineering?
We are facing some challenges right now. Every software product has bugs, and all we’re trying to do is reduce the number of bugs and to speed up the process of coding and software engineering. But at least we have these new APIs emerging that allow us to do lots of different things that used to be impossible.
What’s the most fun thing about working at JetBrains?
Well, you can work freely, with almost no control. The company is very project-oriented. Every project, every team is like a small company. If you’re part of a project, you can pretty much create whatever you like. We are not limited in using any tools or anything else, really, and this gives everyone a lot of freedom.