Disciplined Agile

Support Strategies for DevOps

There are several solution support (help desk) strategies that support Disciplined DevOps:

  • Online information. A very common “self serve” support strategy is to develop and maintain online assets such as frequently asked questions (FAQ) pages, training videos, and user manuals to name a few. This enables customers to potentially support themselves, although suffers from the TAGRI (They Ain’t Gonna Read It) syndrome.
  • Artificial intelligence (AI). AI options include chat bots where customers purposefully interact with the AI, advice systems where the AI observes how the customer works with the solution and offers suggestions (such as Microsoft’s ill-fated Clippy), and correction functionality when the AI fixes input of customers (such as spelling autocorrect). 
  • Online discussion forums. Many organizations choose to implement internal discussion forums so that their customers can help each other in learning how to use their systems. This is effectively a collaborative self-serve support option for customers. The primary advantage is that your “power users”, or in some cases members of the development team, will come to the aid of other users who are struggling with an issue. A potential disadvantage is that you risk your discussion forum becoming a complaints forum if problems aren’t addressed in a timely manner.
  • Asynchronous support. With asynchronous support strategies an customer will put in a request for help and then sometime later somebody gets back to them with help (hopefully). Common ways to implement asynchronous support include implementing a standard support email or a support request page/screen. It is common in many organizations to put a service level agreement (SLA) in place putting limits on how long people will need to wait for help.
  • Synchronous support. With synchronous support strategies customers are put in contact with support people (who may even be one of the application developers) in real-time. This is often done via online chat software, video conferencing, or telephone calls. The key advantage of synchronous support is responsiveness. However, synchronous support can be expensive to operate and potentially frustrating for customers, particularly when the support desk function is outsourced to people following scripts.
  • Support alerts. With this strategy your solution itself detects serious problems affecting customers, such as a data source or a service/component being unavailable. When such an event occurs, and the solution isn’t able to swiftly recover, the customer is informed of the problem and presented with a “Would you like help?” option. If yes, they are put in direct contact with an appropriate support person who then helps them in real-time. This is part of your solution’s self-recovery process.
  • Developer-led support. This strategy has development teams performing the support services for their own solutions and is described in Development Strategies for DevOps.

Furthermore, anyone doing solution support, even if it is the development team itself, is likely to need an environment in which they can reproduce problems that customers experience. There are several options available to you:

  • Production. In some cases your production environment is sufficient, although many regulatory regimes, particularly life-critical and financial-critical ones, will not allow this.
  • Pre-production test sandbox. Some support teams will find that they can use their pre-production test environment to try to simulate production problems. The advantage is that you don’t put production at risk when trying to reproduce problems, the disadvantage is that you the test environment will be different than production and as a result you may not be able to simulate all reported problems.
  • Support sandbox. Some organizations choose to have a specific environment set up to enable support staff to simulate production problems. This strategy has the same trade-offs as using a pre-production test sandbox plus the additional cost and maintenance associated with yet another environment.