SlideShare a Scribd company logo
1 of 91
DEVELOPER EXPERIENCE
и API как ПРОДУКТ
Анастасия Горячева
INTENTO
INTENT
O
3© Intento, Inc. / Октябрь 2018
A simple API to third-
party AI models from
many vendors
https://inten.to
ПЛАН
1. Что такое DX?
2. Зачем делать DX лучше?
3. Как делать DX лучше?
4. Пример, что влияет на DX
5. Мир API-сервисов & DX
4
6. API машинного перевода
7. Как мы выбирали
характеристики DX
8. Опыт через характеристики
9. Что с этого фронтедеру?
1. ЧТО ТАКОЕ DX?
5
DX = UX + ПРАКТИКИ
РАЗРАБОТКИ
6
ЖИЗНЕННЫЙ ЦИКЛ
ПРОДУКТА
7
Продукт → Пользователь
СМЕСТИМ ТОЧКУ ЗРЕНИЯ
Продукт → Пользователь
Платформа → Продукт → Пользователь
8
МЕСТО ДЛЯ
РАЗРАБОТЧИКОВ
Продукт → Пользователь
Платформа → Продукт → Пользователь
9
ПРИМЕРЫ ХОРОШЕГО DX
Открытый код
Инструменты отладки в браузере
Интерактивный stack trace
…
10
INTENTO
11
INTENTO
НЕПРИЯТНЫЙ DX
“Вечные” баги в опенсорс проекте
Привяжите местный номер телефона
Используйте местную банковскую карту
12
ДНО DX
Подпишите NDA, а потом прочитаете спеку
13
2. ЗАЧЕМ ДЕЛАТЬ DX
ЛУЧШЕ?
14
ПЛОХОЙ DX
Съедает время ⌛
Истощает силы 😩
Делает вас несчастными 😿
Снижает производительность 🤯
15
Это вас раздражает
⬇️
Это вас замедляет
⬇️
Это тормозит Прогресс
16
3. КАК ДЕЛАТЬ DX ЛУЧШЕ?
17
ДВЕ СТОРОНЫ МЕДАЛИ
18
I. Выбирая, что использовать,
смотрите, что вас ждет
II. Предлагая интерфейс,
думайте про опыт его
использования
19
I. ВЫБОР ПРАВИЛЬНЫХ
ВЕЩЕЙ
• Сравниваете варианты (измеряете в числах)
• Предсказываете, что может вас замедлить в будущем
• Выбираете, что кажется подходящим сейчас
• Начинаете использовать, получаете инсайты
• Обновляете числа в сравнении и обновляете предсказание
• Возможно, пересматриваете выбор
20
НАСЛАЖДАЕТЕСЬ! 🤯
21
ВЫБОР КОМПОНЕНТА
<NAME>
• Сколько загрузок в неделю? (npmjs.org)
• Когда последнее обновление? (github.com)
• Есть ли демо? (jsfiddle.com)
• Пробуете добавить в свой проект
• Ой! Что-то с конфигом webpack
• Фиксите Ой / Берете другой компонент
22
II. СОЗДАНИЕ ПРАВИЛЬНОГО
ОПЫТА
1. Боли будущих пользователей? (не свои)
2. Выбираете одну из проблем
3. Решение доносите до пользователей
4. Уменьшилась ли ИХ боль?
5. Что можно поправить?
6. Обновляете реализацию
7. Повторяете…
23
ПРОФИТ! 💎
24
4. ПРИМЕР, ЧТО ВЛИЯЕТ НА
DX
25
ДОПУСТИМ,
ВАШЕМУ САЙТУ НУЖНА
КАРТА
26
INTENTO
27
ТРЕБОВАНИЯ К КАРТЕ
• Возможность встроить в сайт
• Добавление меток
• Приближение / удаление
• Drag’n’drop
28
ВАШ САЙТ ВЗЛЕТАЕТ
29
⏱
👩👩👧
👧 👨👨
👦👦
🚀
ЛИМИТЫ
• Варианты оплаты
• “Оптовый” тариф
• История оплат
30
UPTIME /
ОШИБКИ
• Уведомления
о сбоях
• Служба поддержки
АУДИТОРИЯ РАСТЁТ
31
БОЛЬШЕ ОЖИДАНИЙ
• Разные устройства
• Работа offline
• Поддержка китайского языка
• Интеграция с соцсетями
32
ОБУЧЕНИЕ
КОЛЛЕГ
• Быстрый старт
• Free trial
• Интерактивные
доки
33
ОБСЛУЖИВАНИ
Е
• Удобные логи
• Release notes
• Ясные ограничения
на RPS
INTENTO
34
УЖЕ НЕ ТАК МНОГО
ВАРИАНТОВ?
5. МИР API-СЕРВИСОВ & DX
35
СМЕСТИМ ТОЧКУ ЗРЕНИЯ
Продукт → Пользователь
Платформа → Продукт → Пользователь
36
ЦЕПОЧКИ ПЛАТФОРМ
Платформа → Продукт → Пользователь
Платформа → Платформа → Продукт → Пользователь
Платформа(ы) → Платформа → Продукт → Пользователь
Платформа(ы) → ... → Платформа(ы) → Продукт → Пользователь
37
INTENTO
38
INTENTO
ПРИМЕР ЦЕПОЧКИ
• Переводчик (человек)
• CAT-средство* - софт
• Вендор софта
• Сервис машинного перевода
• Натренированные модели для NMT**
40
* Computer-assisted translation
** Neural Machine Translation
КАЖДЫЙ РАЗ, КОГДА НУЖНО
СОСТЫКОВАТЬ ПАРУ ПЛАТФОРМ,
РЫДАЕТ СТРАДАЕТ ЕЩЁ ОДИН
РАЗРАБОТЧИК
41
6. API МАШИННОГО
ПЕРЕВОДА
42
II. СОЗДАНИЕ ПРАВИЛЬНОГО
ОПЫТА
1. Изучаете боли будущих пользователей, а не свои
2. Выбираете одну из проблем; подыскиваете решение
3. Реализуете; доносите до пользователей
4. Слушаете отзывы: уменьшилась ли ИХ боль?
5. Анализируете, что можно поправить
6. Обновляете реализацию или начинаете с пункта 1.
7. Повторяете 4-7
43
INTENTO
44
INTENTO
From State of the Machine Translation by Intento (July 2018)
https://bit.ly/mt_jul2018 19 Cloud MT engines, 48 language pairs
~70 ХАРАКТЕРИСТИК → 8
ГРУПП
45
• Product features
• API design
• Documentation
• Onboarding
• Commercial
• Implementation
• Maintenance
• Reliability
46
INTENTO
47
INTENTO
GOOGLE
48
INTENTO
ЯНДЕКС
49
INTENTO
PROMT
КОЕ-КАКИЕ ГРУППЫ
ДЕТАЛЬНО
50
ХАРАКТЕРИСТИКИ
ПРОДУКТА
• Языки
• Форматированный текст
• Определение языка
51
КОММЕРЧЕСКИЕ УСЛОВИЯ
• Free trial
• Публичные цены
• “Оптом дешевле"
• История платежей
52
НАДЕЖНОСТЬ
• Перебои
• Конфликты со спецификацией
• Тормоза
53
БОЛЬШЕ ПОДРОБНОСТЕЙ
В СТАТЬЕ*
54
* https://blog.inten.to/measuring-api-developer-experience-91b5c19645b0
7. КАК МЫ ВЫБИРАЛИ
ХАРАКТЕРИСТИКИ DX?
55
НА ОСНОВЕ ЖИЗНЕННОГО ОПЫТА
56
ИСТОРИЯ ПРО БУТЫЛКУ
57
ЧТО БУДЕТ НАПИСАНО
НА ВАШЕЙ ЗАПИСКЕ?
58
ЭТО ТЕХНИКА НАЗЫВАЕТСЯ
ПРЕМОРТЕМ
59
НА ОСНОВЕ ЖИЗНЕННОГО ОПЫТА
60
СОСТАВИЛИ ДЛИННЫЙ СПИСОК
ИЗ ТОГО, С ЧЕМ САМИ
СТАЛКИВАЛИСЬ
61
ПОЛНЫЙ ЛИ ЭТО СПИСОК?
62
ДОСТАТОЧНО ПОЛНЫЙ!
ДАВАЙТЕ
КАК-НИБУДЬ ЭТО
ПРОВЕРИМ
63
РОЛИ В КОМАНДЕ *
64
* или Команды в Организации
QA / Testing
Support
Security
Development
…
Product
Finance
Sales
DevOps
Analytics
В ВАШЕЙ КОМАНДЕ БУДУТ
ДРУГИЕ РОЛИ!
65
КАК СООТНОСЯТСЯ РОЛИ И
ХАРАКТЕРИСТИКИ DX?
67
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
68
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
РОЛИ В
КОМАНДЕ
ХАРАКТЕРИСТИКИ
DX
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
69
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
70
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
71
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
72
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
73
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
74
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
75
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
76
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
77
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
Product
Finance
Sales
DevOps
Analytics
QA Testing
Support
Security
Development
78
Product features
API design
Documentation
Onboarding
Commercial
Implementation
Maintenance
Reliability
РЕЗУЛЬТАТЫ
СОПОСТАВЛЕНИЯ
• Каждая роль в команде DX-характеристика
• Каждая DX-характеристка роль в команде
• То есть список достаточно хорош для оценки сервиса
79
⇒
⇒
8. ОПЫТ
ЧЕРЕЗ ХАРАКТЕРИСТИКИ
80
1/8 НЕДОСТАЮЩИЕ СВОЙСТВА
ПРОДУКТА
• Делать самим
• Добавлять еще один сервис
81
2/8 СОМНИТЕЛЬНЫЙ ДИЗАЙН
API
• Неинтуитивный формат URI
• Игнорирование стандартов вроде REST
• Нешифруемый трафик
• Нет запроса для определения квоты через API
82
3/8 НЕПОЛНАЯ
ДОКУМЕНТАЦИЯ
• Сообщения об ошибках без объяснения
• Новые фичи слабо описаны
• Нет песочницы для изучения API *
83
* Просто добавьте OpenAPI / swagger. Почти “просто”.
4/8 ВХОДНОЙ БАРЬЕР
• Кривая регистрация
• Недостаточно примеров
• Нет SDK
• Нет чата поддержки
84
5/8 НЕПРОЗРАЧНЫЕ КОММЕРЧЕСКИЕ
УСЛОВИЯ
• Нет публичных цен
• Нет истории платежей
• Просто очень дорого
85
6/8 ПОДОЗРИТЕЛЬНАЯ
РЕАЛИЗАЦИЯ
• Неочевидные коды ошибок
• Проблемы c unicode
• Нет http-сжатия
86
7/8 НЕБРЕЖНОЕ
ОБСЛУЖИВАНИЕ
• Нет версионирования
• Нет release notes
• Нет roadmap
87
8/8 НЕ-НАДЕЖНОСТЬ
• Наблюдаемые перебои
• Замедление производительности
• Внезапные баги
88
9. ЧТО С ЭТОГО
ФРОНТЕНДЕРУ?
89
БУДУЩЕЕ УЖЕ ЗДЕСЬ
• Делегирование через API-сервисы
• AI – это весело https://aijs.rocks/
• Tensorflow.js догоняет python-аналог
• AI-сервисы как помощники
90
ИТОГ
1. Что такое DX?
2. Зачем делать DX лучше?
3. Как делать DX лучше?
4. Пример, что влияет на DX
5. Мир API-сервисов & DX
91
6. API машинного перевода
7. Как мы выбирали
характеристики DX
8. Опыт через характеристики
9. Что с этого фронтедеру?
READ IT LATER
92
https://goo.gl/1BRB6x
IMAGE CREDITS,
UNSPLASH.COM
•Aaron Burden
•Alexander Andrews
•Andrew Itaga
•Arwan Sutanto
•Dawid Zawila
•Fleur Treurniet
93
• Jeremy Bishop
• Larry Teo
• Dan Freeman
• Mike Kononov
• Samuel Zeller
• Tom Grimbert
• Tyler Nix
СПАСИБО!
94
Анастасия Горячева
A.e.goryacheva@gmail.com
Github: tyanas
twitter: tyanas_

More Related Content

Similar to Developer experience и API как продукт

«Облака» под контролем: как эффективно оценить производительность облачных т...
«Облака» под контролем:  как эффективно оценить производительность облачных т...«Облака» под контролем:  как эффективно оценить производительность облачных т...
«Облака» под контролем: как эффективно оценить производительность облачных т...СвязьКомплект
 
Clouds Monitoring
Clouds MonitoringClouds Monitoring
Clouds MonitoringIgor Panov
 
Платформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateПлатформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateTibbo
 
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...Ontico
 
Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Nadezhda Avramenko
 
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...Clouds NN
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложенийAnatoly Sharifulin
 
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011Alexei Lupan
 
JET BI - Мобильные решения для Бизнеса
JET BI - Мобильные решения для БизнесаJET BI - Мобильные решения для Бизнеса
JET BI - Мобильные решения для БизнесаNadezhda Avramenko
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
Modular Bidder | Platform.io
Modular Bidder | Platform.ioModular Bidder | Platform.io
Modular Bidder | Platform.ioKir Soldatkin
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)e-Legion
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Решения для бизнеса: криптографические продукты и онлайн сервисы
Решения для бизнеса: криптографические продукты и онлайн сервисыРешения для бизнеса: криптографические продукты и онлайн сервисы
Решения для бизнеса: криптографические продукты и онлайн сервисыЦифровые технологии
 
Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Cisco Russia
 
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...sqadays8
 
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Unigine Corp.
 

Similar to Developer experience и API как продукт (20)

«Облака» под контролем: как эффективно оценить производительность облачных т...
«Облака» под контролем:  как эффективно оценить производительность облачных т...«Облака» под контролем:  как эффективно оценить производительность облачных т...
«Облака» под контролем: как эффективно оценить производительность облачных т...
 
Clouds Monitoring
Clouds MonitoringClouds Monitoring
Clouds Monitoring
 
Платформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGateПлатформа для Интернета вещей AggreGate
Платформа для Интернета вещей AggreGate
 
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
Как Mail.Ru и AT Consulting перевели профили абонентов Beeline на Tarantool /...
 
Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса Разработка мобильных приложений для бизнеса
Разработка мобильных приложений для бизнеса
 
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...
CloudsNN 2013 Торшин Дмитрий. Софт из облака – взаимная выгода для клиента и ...
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011Paper 67 (supplementary file)   sqadays 2010-burmistrov_fomin_3011
Paper 67 (supplementary file) sqadays 2010-burmistrov_fomin_3011
 
JET BI - Мобильные решения для Бизнеса
JET BI - Мобильные решения для БизнесаJET BI - Мобильные решения для Бизнеса
JET BI - Мобильные решения для Бизнеса
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Modular Bidder | Platform.io
Modular Bidder | Platform.ioModular Bidder | Platform.io
Modular Bidder | Platform.io
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Решения для бизнеса: криптографические продукты и онлайн сервисы
Решения для бизнеса: криптографические продукты и онлайн сервисыРешения для бизнеса: криптографические продукты и онлайн сервисы
Решения для бизнеса: криптографические продукты и онлайн сервисы
 
Обзор Cisco UCCX 11
Обзор Cisco UCCX 11Обзор Cisco UCCX 11
Обзор Cisco UCCX 11
 
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
Анатолий Любомиров -- Тестирование пользовательского интерфейса – как это дел...
 
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
Технический писатель: ожидание vs реальность (Ольга Кириченко) - DocFactor 2016
 
tech_writer_2016_fin
tech_writer_2016_fintech_writer_2016_fin
tech_writer_2016_fin
 

More from Anastasia Goryacheva

Developer Experience & API as a Product
Developer Experience & API as a ProductDeveloper Experience & API as a Product
Developer Experience & API as a ProductAnastasia Goryacheva
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Anastasia Goryacheva
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Anastasia Goryacheva
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoAnastasia Goryacheva
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
МРТ для данных, Avito SPA meetup #2
МРТ для данных, Avito SPA meetup #2МРТ для данных, Avito SPA meetup #2
МРТ для данных, Avito SPA meetup #2Anastasia Goryacheva
 

More from Anastasia Goryacheva (6)

Developer Experience & API as a Product
Developer Experience & API as a ProductDeveloper Experience & API as a Product
Developer Experience & API as a Product
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)
 
Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)Фронтенд для миллионов (НН)
Фронтенд для миллионов (НН)
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов Avito
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
МРТ для данных, Avito SPA meetup #2
МРТ для данных, Avito SPA meetup #2МРТ для данных, Avito SPA meetup #2
МРТ для данных, Avito SPA meetup #2
 

Developer experience и API как продукт