Skip to main content

Continuous deployment for enterprise

We talk about a lot of agile practices that enterprise needs to adapt. Continuous deployment is an engineering practices in the agile practices arsenal.
Till recently, I was a vocal supporter of this practice for enterprise as well. Yet, a few thoughts and happenings have made me rethink blindly supporting this for the enterprise.

I still support it but do it with a lot more rational approach. This is a sign of me understanding how enterprise read and understand agile.







Seamless transition
Customers love a lot of new features. That is not at the cost of ease of use. Customers are not ready to go through a whole lot of pain just for new features.
For example, I cannot ask users to create a new profile or uninstall and reinstall software every time there is an update. That is not going to happen.
One key ways I have managed to do this is small and has worked for a lot of enterprise before. This is a simple scenario. Not all enterprises are lucky enough to be in this situation.
  • We had to revamp the whole site to introduce a lot of new features
  • One task we wanted the customer to do was to login and enter new details so the site would be relevant.
  • We did this by making the site is compatible with old profiles and asking 2 questions a day. This helped them complete their profile gradually.
  • For areas of the site that needed new profile information, we showed persona's information. The personal was that of the user’s segment.
Data Migration
For any product, the devil is in the details. For any enterprise, that is data and the number of sources that data needs to come.
Any new update for launch meant that there are systems that needed  data migrations scripts run. These are fraught with issues and need time and people to get it right.
For continuous deployment, all these need to take place. They are time and resource intensive and might not be worth it to for every release.
One way to handle is by checking if there is a way to automate the whole process of data migration
  • Automate data migration to make it less expensive
  • Have many environments to test them and hence make it less labor intensive. With cloud, it is less expensive to spin out environments for all related systems
  • Over time, the cost comes down and value increases.
Taking other departments along
Not all the time does it make sense to release a feature to the user continuously. It depends on several other functions in the enterprise. Some of the notable functions that we need to work with are Customer support, operations and marketing.
Customer support is a key stake holder  during continuous deployment. We are talking about people here who handle calls from your customers and users. They need to be able to understand why you are releasing often and what you are releasing often. If you outsource customer support, it becomes even tougher. The process to change all the relevant documentation and training them becomes tough.
Marketing needs to have enough time to understand how it impacts their ongoing campaigns. They can make sure they have a proper marketing campaign across all channels.
Finally, operations needs to understand what is the impact on their side. You cannot release a feature that makes it easier for users to order. This could lead to a 1000% increase in orders & operations not being ready.
Conclusion
While all the above problems exists, Continuous deployment still makes a lot of sense . Enterprise should be aware of the benefits  and make those changes internally to benefit.

Comments

Popular posts from this blog

My Journey in Inquiry and Advocacy - An experience report

It is recently that I have consciously started practicing Inquiry. Let me explain. I am a consultant who constantly looks at the situation and comes up and implements the solution to progress from there. While I do that, I constantly use Inquiry as a means to progress - one of the key facilitation technique specifically in multiple stakeholder situations.

Principles for developing systems that are anti-fragile

I have been trying to make sense of what anti-fragility means and how do I use that in my day job. As a Business Principal, I tend to work with the abstract but orchestrate a program of work that needs details. This makes my job a little difficult in the terms of designing for more self-preserving systems that preserve the spirit of the abstracted strategy or vision. I came across an article from Daniel Russo on anti-fragility and his attempt at creating a manifesto similar to the manifesto for agile software development. For more reading on Daniel Russo, here is his profile:  http://djrusso.github.io More reading from his paper here:  https://www.sciencedirect.com/science/article/pii/S1877050916302290 This post is an attempt for me to understand what goes into developing a program that uses every opportunity to strengthen itself and achieve its objective - the vision.  I liked the approach of principles for developing systems that are anti-fragile. It is a very valua

User Personas

User Personas are a very good tool for the product owners, business analysts or product managers to be able to co-create with designers. It is predominantly a product of the user research and should not be an amalgamation of demographic data. It is the best way for us to list all scenarios that a persona would take when they want to attain a goal. It is predominantly used to build empathy with user, focus the team and build consensus in a large diverse stakeholder group. The website I referred to is here:  https://www.smashingmagazine.com/2014/08/a-closer-look-at-personas-part-1/