V4, V5 and V6 are three major releases of the same product but the underlying development process is completely different. At the time of the V4 release, Nexthink was a small company of 10 developers and less than 100 customers. Now we are more than 50 developers and we have 10 times more customers. The company has grown quickly, so has the R&D team. Managing such rapid growth is always a challenge.
Developing quality software with 10 developers is all about having independent and extremely motivated people sharing the same company vision. The communication is simple and the process is secondary. With 50 developers, it is a different story. The software becomes so complex that strong area’s of expertise appear and communication and synchronization become major issues. In order to ensure the same quality, predictability and reactivity, a good process has to be put in place.
From V4 on, we have moved progressively to Agile methodology. In short, developers and QA engineers are grouped in small development teams which are a unit of shared responsibility. Features are divided into small tasks. Tasks are grouped together by development teams into 3 week iterations. A reevaluation takes place after each iteration to swiftly react to any unexpected changes. At the same time, we have invested in automating tests. Test suites grows over time, leading to better quality.
Agile seems obvious and beautiful, but if you google it, you will find out that there are vigorous detractors. They argue that Agile tends to lower code quality, to demotivate developers and the list is long. So what is the catch?
Our experience has been that Agile clearly increased our quality and predictability and set up good communication mechanisms. However, at the same time, it modified our company values. Innovation and personal entrepreneurship were at the heart of the company with emphasis on quality and predictability.
Collective thinking changed our focus and thereby our values. Modifying company values is clearly destabilizing. I would bet that it is what detractors went through. Once we understood it, we created more room for creativity inside and outside our Agile process. We allocated time for innovation in each iteration, to be sure to work on new ideas every day and we set up a Nexthink lab to foster larger initiatives. The team behind Nexthink labs evolves with time depending on new projects and personal interests to maximize creativity.
We are now able to deliver a fully tested release every two months containing bug fixes and features as soon as they are ready. Some more experimental features may be turned off but can be enabled on demand. At the same time, Nexthink labs is developing innovative new features and you may expect great things soon.