ChatOps to Enable Self-Service Operations

Self-service is the practice of serving oneself. Common examples are Automatic Teller Machines (ATM) and Check-in at the airport. Most consumers prefer to use self-service because it’s better, cheaper and faster. Consumer has the full of control over the service request. There is less room for mistakes as the service completely automated and finally there is no need to wait at any time.

Self-service process is quite simple. Consumer interacts through an interface and machine serves the consumer. It is so common nowadays self-service cloud application in IT world. You login to a User Interface, select the virtual machine type you want, set the resources and go! And some other use tools like Jenkins to automate processes in software development lifecycle, developer logs in and clicks the build button and deploys the changes to given environment.

Automating the operational tasks is great but how to present the automation to all development teams and stakeholders? There is a long list of toolchain in software development life cycle and the lack of knowledge causes the lack of visibility. Sometimes even everything is automated stakeholders are not able to get these services without help of some one technical. Solution is simple: Conversation Driven Development Operations. By putting the tools at the center of the conversation we gain higher visibility, team engagement. Tell what you need at the team chat channel, that is it! No more ITSM tickets & emails!

Formulation for Conversational Interface

All great interfaces share eight qualities or characteristics: Clarity, Concision, Familiarity, Responsiveness, Consistency, Aesthetics, Efficiency and Forgiveness.

Principle of Least Astonishment

People are part of the system. The design should match the user’s experience, expectations, and mental models. (source: Principles of Computer System Design: An Introduction, Authors: Jerome H. Saltzer,M. Frans Kaashoek)

Do What I Mean (DWIM)

DWIM computer systems attempt to anticipate what users intend to do, correcting trivial errors automatically rather than blindly executing users’ explicit but potentially incorrect inputs.