I'm not a developer. I don't work with code, and though I use computers every day, I don't understand what's running in the background. But that's okay, because I'm a writer instead. So I spend a lot of time asking developers about their process and trying to understand how they do what they do and why. Fortunately for me, they tend to be very patient people.
So, when I talked with Ron Tabata, the Director of Professional Services at NexJ Systems, and asked him about NexJ's delivery model, Ron was kind enough to walk me through it. For people that aren't familiar with software development, some of the concepts and terms can be complicated. Software companies are constantly trying to improve their processes to build software in the best possible way, deliver what clients need, and minimize waste.
When NexJ recently started a major migration project for one of our customers, Ron and the developers on the project also updated our delivery model process. This delivery model has set the new standard for our development. The process is highly agile and highly responsive. In many ways, this has challenged our developers, pushing them to reinvent how we do things here at NexJ.
So what's different about this delivery model? What makes this worth pulling a director away from his work so that I can ask him about it? Why do I want to write about it and more specifically, why do you want to read about it?
Agile development is becoming more popular. It's a responsive style of developing software that allows the development team to react and change their plans according to the actual problems and requirements they have. The customer for this project actively embraces agile, and they challenged NexJ to redefine how we plan and complete projects. Though NexJ already employed agile development, the customer wanted something extremely responsive to allow for user feedback and dynamic changes.
One major innovation for NexJ is streaming the project for prototyping on a live environment and creating a sandbox for NexJ's developers to work in and the users to provide feedback on. This creates a direct line into the product for users and a direct line of feedback from those users to NexJ developers. Feedback could, hypothetically, be gotten and responded to in as little as a month after it's been sent. Indicative of modern development paradigms, quick responses mean less time spent developing something that doesn't fit, because the product is constantly adapting and changing. Development becomes a dynamic process rather than a static process.
Another major difference is the rapid pace of deployment. With this project, NexJ developers have been deploying weekly to production, faster than any previous deployments. With each deployment, feedback and comments from previous deployments are incorporated, so that new feedback and comments can be made around the changes. Developers are defining what they're working on up to only two weeks before they actually do the work, rather than starting with a specific plan and following it rigidly through development. This creates a highly adaptable and dynamic process that is allowing NexJ to push continuous integration and an evolutionary approach.
The developers at NexJ work hard to stay current and up to date on trends in the software industry as well as the industries of our clients. Many companies choose NexJ because we’re industry experts that work with clients in a strategic partnership where we are committed to their success. In pursuing better partnerships, part of our vision is to shorten deployment cycles, working towards continuous deployment, so that we can offer the quick responses and effective solutions our clients need.
Working with this client to establish highly agile development practices shows our commitment to providing the best product in the best way for your company. Or, more simply, it shows our commitment to being the best.