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
Post a Comment