From Static Software Releases To Agile Continuous Delivery
Guest Column | By Nancy Van Elsacker Louisnord, TOPdesk USA
The times sure are a-changing. Bob Dylan famously sang such a tune but, for those of us in software, quick to be gone are the days of the deployed solutions and monolithic database-driven solutions used to manage huge amounts of information or disparate data manipulated for multiple needs across an organization.
Technology advancements are moving faster than many organizations are able to respond. So much is happening in software development, and many changes are coming. Organizations must find a way to future proof themselves or face some tough realities. The old way of releasing software is dying, and the current landscape suggests recent developments can be summarized easily: Agility and continuous improvement on architectural by leveraging DevOps.
As is the case in most development shops, changes to technology have come because of initiatives put in place by the development department. Here’s a pretty clear example: When the development department applies agile methodology, terms like “SCRUM” and “standups” spread throughout the organization to areas such as sales and even the communications departments.
Much continues to evolve in the areas of continuous delivery and it required agile response. While much inspiration comes from tech giants — Facebook, Twitter, LinkedIn, Netflix, and others — smaller, more focus organizations with niche markets must develop clean ways of enhancing their UX while also assisting in the leaning down of organizations so their responses to appropriate stimuli are efficient and forward thinking.
Continuous Improvement
Let’s look at continuous delivery where an agile development shop is essential. This team examines organizational and client needs. For those software leaders who are exploring a move to an agile shop, there’s some foundation work required beforehand. Interviews with a variety of stakeholders to identify points of attention — proving the desire for change and how others feel it can be managed. Through these conversations, a formal process can be developed to get through the changes ahead. The interviews also make it clear that changes to architecture must be made, as well as how the organization can synchronize efforts to match the organization’s new direction.
Ultimately, this entire process works in tandem of implementing the switch to an agile environment, and ensures that the technology is not disconnected from the organization.
Architectural Change
From personal experience, the stakeholder interviews in my organization proved the move to a cloud-based horizontally scalable architecture would need some attention as well. We moved from a monolithic approach to a service-oriented architecture where the services sat behind the APIs. We focused on two major things to accomplish this: replaceability and versioning. This meant we focused more on what we needed to deliver instead of how to implement it. This was a huge difference in the way we had previously done things where in the old code-driven approach, limiting ourselves because of our perceived permanence of the code, believing we were stuck with it once created. Torpedoing this thinking allowed us to accept rapid development. Now, anything new that is developed can immediately be used and deployed by releasing a new API.
Continuous Delivery
Another important observation from the interviews with stakeholders, that we found, was the speed of development and the speed of delivering these new produced developments (new code and our ability to publish it immediately for use). Bottlenecks always appeared in the previous waterfall development approach. For example, code had been developed a year prior, and then it sat on the shelf. When finally ready to be tested, unforeseen issues always seemed to arise and pushed the release further down the calendar.
With continuous delivery, DevOps enabled the process to get there. Continuous delivery of code to your customers also means that you’ve got to trust the code and what has been created at any given time. A continuous delivery approach changes the impact and responsibility of a developer as they are constantly required to think about testing. When there is a new build of the product every day and something they created does not work, there can be no further builds until any issues are resolved. To improve the quality controls, critical workflows are defined and the notion of “blockers” introduced in the development prioritization process.
We’re seeing an increase in the quality we’re delivering because of this change and more automation, collaboration on the product. Change to an agile, continuously delivered environment does not happen overnight. Consider implementing these changes by putting together a group of people from different disciplines to create a community focused in helping create more automation.
Internal collaboration becomes much clearer. In the past there was clear feedback and communication from support and consultancy to development. These lines got a lot shorter as the pace of developments and delivery increased. Feedback is much quicker both ways now.
Because of our organizational and technological changes, we’re able to implement new functionalities, take into account direct feedback from our customers, and bring all of our departments together so we are able to publish the best product available. That’s been our experience, anyway, and most other firms that are taking a similar tact are likely finding similar results.
Here’s the ultimate benefit of an agile environment: Trends and requirements that come up can immediately be communicated, developed, delivered and deployed without sitting around on a shelf for several months while you wait for the next delivery date. You’re able to future proof through continuous improvement and delivery, and you’ll always be available, always ready to help our clients serve your customers in a more agile and efficient way.
About The Author
Nancy Van Elsacker Louisnord is the president TOPdesk USA. She’s also a public speaker, a contributor to dozens of leading industry publications, and a service management expert.