DxDD - developer experience driven development

DxDD - developer experience driven development

OSS libraries are built by devs for devs and devs tend to think solution first while I always advocate to think API first. Let me explain.

Solution fist means you have to wrap APIs of the library around the inner implementation. By doing that you lose an opportunity to design interface without any biases. You're now bounded in the design domain by an actual implementation. It might work sometimes if you get lucky, but most of the time it wont.

When we were building chatbots I've noticed that developers tend to implement chatbots in a way like terminal apps are working. They treat them as a set of commands, formalised requests and responses. Clients tend to do it the same way when they form business demands in Google Docs or Sheets. Their dialog design choice is bounded by a tool. When I asked developer to use ChatFuel with their in place editor to build a bot - immediately I got a result of a humanised version of a conversation with stickers, photos and GIFs. It was the tool that defined the output of a final product.

The so called API first design I advocate means you a have a freedom to play around, fantasise on what would be the most useful, clean, compact and explicit way to use a library as developer and then you try to implement library core to fit the APIs. Treat your library as a product and developers as customers.

Thanks!