I studied computer science at Palacký University in Olomouc (M.Sc., 1996) and then at Masaryk University in Brno (Ph.D., 2003).
I started working as a C++ developer at ANF Data (a branch of Siemens), where I worked for several years on telecommunications projects. I tried my hand as an architect, project and line manager and sometime in 2006 I became interested in Scrum and working with teams. The product I was working on at the time was being developed by about 200 people in 3 cities on 2 continents. I was part of a group of coaches that helped convert product development management from pure waterfall to Scrum back then with monthly sprints. I was in charge of setting up processes in the Brno office and later worked as a Scrum Master for several teams.
In 2010, I joined Y Soft in Brno as an agile coach with the task of setting up software development processes in the R&D (research and development) department, where about 20 people worked at the time. As Y Soft grew very quickly from a startup, it was not only about introducing agile practices, but sometimes about introducing some software development practices at all (e.g. automatic build). Today, of course, Y Soft is much further along. The first experiment with using Scrum and agile practices lasted about a year at Y Soft. Then the management decided to leave it and I joined SolarWinds in 2012.
From the beginning, I worked at SolarWinds as a team leader developing the company’s flagship product, Network Performance Monitor (NPM). At the time I joined, the team was more like two independent sub-teams – programmers and testers. This split was gradually overcome, and when the company decided to use Scrum for all product development in 2016, I was able to use NPM team as a role model. In 2016, I became part of a group of about five people that drove the company-wide Scrum rollout. I trained dozens of teams and helped them apply agile principles in their specific practical settings. For several of these teams, I later served as a Scrum Master and also led the company’s agile community to push for further innovation. The last few years in a department called Core, which developed a set of shared components used by other teams (including NPM).
This and other experiences led me to the realization that if software development is to be able to respond quickly to customer requirements (=agile), it is not enough to teach developers of one component modern technical practices (e.g. TDD) or to set up processes in one department. It is necessary that the whole company, led by top management, is involved in formulating what software development should look like.
On the contrary, in all of my jobs I have tried to implement modern practices and try them myself so that I know what I am recommending. I am a proponent that a software development consultant should know how to develop software. In my career, I’ve tried C++ (Siemens), Java (Y Soft), .Net (SolarWinds), python (current). I’ve stored code in ClearCase, perforce, cvs, svn and git. I have written scripts for building large products in bash, ant, groovy, msbuild and powershell. I’ve set up build servers for jenkins, teamcity and Github actions. I’ve been involved in test automation using selenium and webdriver. Even when I was in managerial positions, I verified that what I was recommending was applicable in practice.
In addition to working for my current employer, I try to make sure that my work has a social impact. For several years I organized a meetup for the agile community in Brno. Currently, I am a member of the #CzechAgile association, which tries to spread agile ideas throughout the software development industry in the Czech Republic. For many years, I have also been a co-owner of Autonapul, the first Czech carsharing company that runs cars in a sustainable way – as a shared fleet. I am also a technical director and an active programmer (python and django) in the company.