Guruprasad S (firstname.lastname@example.org) – Director of Software Engineering
With Inputs From
Anirudh Banger (email@example.com) – Engineering Manager
Vamsi Krishna (firstname.lastname@example.org) – Lead ZENworks Architect
As a ZENworks administrator or user, you have probably realized that ZENworks is a big product. It has a lot of capabilities and provides a ton of value. You probably use many of the features it provides, and there are probably a lot you don’t even know exist. We’ve been asked by several of you, what does it take to build such a complex enterprise product? What processes are followed to ensure quality? How do we test and validate? Etc. As the director of the ZENworks engineering team, I would like to share with you some of our practices to help you understand what we do and how we do it. So without further ado here’s is an inside look at what we do in the Engineering group to deliver the scalability, quality and capability you’ve come to expect from the ZENworks product.
Until 2007, Novell used Waterfall as our development methodology. In Waterfall you typically have large, monolithic releases that tend to take a fairly large amount of time to release. For instance, ZENworks 10 took almost 3 years from start to finish, and unfortunately for those of you that adopted the 10.0 version, when you spend 3 years writing new code you are more likely to have more issues.
After the release of ZENworks 10, we wanted to develop in a more iterative fashion that would allow us to release the product faster to the market, with better quality, while responding more quickly to changing market needs. With these goals in mind, we embraced Scrum, one of the leading agile development processes, as our development methodology. In the last eight years, we have learned the Scrum process in depth, made some complementary changes, and also introduced some new practices which better support what we want to accomplish. To a great extent, we have been able to respond to changing market needs more quickly, and we are getting better at delivering more frequent releases. We still have work to do and improvements to make, but we are definitely moving in the right direction.
As I previously mentioned, the ZENworks team uses Scrum today, which means we are following all the tenets outlined in the Scrum methodology. As I explain what we do, I am not going to talk about the standard Scrum methodology; instead, I will focus on the additional practices we have developed that complement Scrum and help us deliver quality ZENworks releases. I will use many of the Scrum-related terminologies as well as associated activities and explain how we have tailored or modified them to suit our needs. I am going to outline just a subset of engineering practices we follow, which should give you an idea of what we do as part of the product development process.
ZENworks is an Enterprise product, with flexibility of platforms, huge scalability requirements, and a large amount of value and capability. The above information, though not exhaustive, should give you an idea of our development practices and the steps we are taking to ensure you get the best ZENworks product ever. We have been working with this framework for a couple of years now and have seen good improvements in the quality of releases. Several of you have told us that you have seen major improvements in the quality of the product, which ultimately is what really tells us how well we are doing.
We are now embarking on addressing the challenge of delivering more value to you and your users in shorter periods of time, while continuing to maintain and even improve quality. We hope you come with us on that journey as we enter the ZENworks 2016 era.