Tuesday, March 13, 2012

Shouldn't DevOps really be DesignOps?

There is a lot of buzz these days about DevOps, the movement to blur the lines between application development and IT operations. The thinking goes - if there is direct linkage between the functions (or if they are a single group), then how the applications are operated is always top-of-mind and things like security, automation and scalability can be designed-in from Day 1.

But as we move towards a world that is heavily dominated by touch-screen devices (gestures instead of clicks), apps replacing applications (UI + API + Data) and API integration between various services, I'm starting to wonder if the value of the automation begins to get overshadowed if Design isn't considered as the #1 factor.

By "Design", I'm not talking about the application design or the infrastructure design - none of that technical stuff. Not even just the UI experience. What I'm referring to is the end-to-end design that directly effects the experience of the user.
  • How simple do you make it to get the app?
  • How simple do you make it to launch the app, or sign up for the service?
  • How many additional services are implicitly linked in intuitive ways to your app?
  • Does the design get in the way of using the app/service, or does it create an experience where the user immediately has a positive opinion of your group/company?
Signing up for the NetFlix streaming service recently gave me that type of experience. I know in the back-end that Adrian Cockroft (@adrianco) and their team are doing all sort of cool DevOps things (part I, part II, part III), but the experience I had was the pure simplicity of getting an account and experiencing the first video. The 1st month is free, but they don't bother getting a credit card up front, that would take time. They ask some "learn about you" questions before subjecting you to a search box. They deliver the same experience across all screens. It's pretty darn close to the simplicity of flopping myself on the couch and clicking a button on the TV remote. I suspect that might have been the goal.

A similar experience can be had by using the Square service for mobile payments. Extremely complicated on the back-end to connect merchants, shoppers and banks in a way that's simple and yet avoids fraud and other ugliness. But yet the company is guided by the principle that better design can be the differentiation in a crowded, well-established market.

I know it's sacrilegious to mention the word marketing in the same context as something as engineering-driven as DevOps, so ignore that previous mention, but I do believe that the DevOps groups that figure out how to embrace customer-centric design will be the models of success. It's more than just a nice UI, it's thinking about how to deliver anything-as-a-service with great experience, which doesn't just happen because the Chef is leading the Puppets by pulling all the right API strings.