Używanie prototypu jako specyfikacji produktu API
Opublikowany: 2016-02-02Jako Developer Experience Product Manager w SendGrid mam za zadanie identyfikować możliwości, funkcje i produkty, które obejmują nasz interfejs API. Jedną z rzeczy, nad którymi pracuję, jest określenie metod, dzięki którym komunikuję moje pomysły dotyczące produktów innym kierownikom projektu, inżynierom i klientom.
Dowiedziałem się, że monolityczny dokument wymagań produktu (PRD) nie jest idealnym sposobem na zrobienie tego i że testowalny interfejs zawierający te same informacje, co specyfikacja produktu, byłby potężną alternatywą. Problem z PRD polega na tym, że często są one bardzo duże i zawierają głównie tekst. Zbyt łatwo stracić miejsce lub przegapić coś naprawdę ważnego.
Nasi przyjaciele w UX rozwiązali ten problem za pomocą narzędzi takich jak Invision , gdzie zapewniają klikalny interfejs, którego można dotknąć i używać, a nie dokument lub model szkieletowy, który po prostu opisuje interfejs. Ponieważ API jest interfejsem, potrzebujemy narzędzia, które umożliwi interakcję ze specyfikacją w czasie rzeczywistym, a nie garść tekstu opisowego i JSON w dokumencie.
Definiowanie wymagań
Jak powinien wyglądać ten testowalny interfejs jako specyfikacja produktu? Jak by to działało? Czy to istnieje?
Kiedy czytałem rozdział 18, „Reinventing the Product Spec”, Marty Cagan’s Inspired: How to Build Products Customers Love , zdałem sobie sprawę, że chcę podzielić się narzędziem, którego używam, które spełnia wymagania Cagana dotyczące specyfikacji produktu, w większości jego lista życzeń dotycząca specyfikacji produktu i moja osobista lista wymagań dotyczących prototypu jako specyfikacji.
Wymagania Cagana*:
- Specyfikacja musi opisywać pełne wrażenia użytkownika.
- Specyfikacja musi dokładnie odzwierciedlać zachowanie oprogramowania.
- Musisz być w stanie przekazać produkt w taki sposób, aby wszyscy interesariusze otrzymali to, czego potrzebują.
- Specyfikacja ulegnie zmianie
- Musi istnieć pojedyncza główna reprezentacja specyfikacji, aby zmniejszyć niejednoznaczność i zapalenie wersji.
Lista życzeń Cagana*:
- Będziesz musiał uzupełnić prototyp [o]:
- Logika biznesowa
- Wymagania dotyczące wydania
- Wymagania dotyczące dostawy platformy
- Przypadków użycia
- Naprawdę chcę mieć możliwość dodawania adnotacji do prototypu
Moje wymagania dotyczące prototypu jako specyfikacji:
- Prototyp powinien być zgodny ze specyfikacją.
- Dokumentacja powinna być zintegrowana z prototypem.
- Każdy w firmie, który tego potrzebuje, powinien mieć dostęp do prototypu i dokumentacji.
- Klient powinien mieć dostęp do funkcjonalnej części prototypu do testowania przez użytkownika.
- Prototyp powinien zastąpić specyfikację i działać jak najbliżej zamierzonej funkcjonalności bez okablowania gotowego produktu.
- Tworzenie i rejestrowanie zmian w prototypie powinno być łatwe.
- Tworzenie odmian A/B powinno być łatwe do przetestowania przez każdego, kto ma dostęp do prototypu.
- Eksport dokumentacji klienta z prototypu powinien być łatwy.
Przedstawiamy StopLight
Narzędzie, którego używałem, które spełnia prawie wszystko powyżej, nazywa się Stoplight.io . Jest to w istocie silnik dokumentacji API i serwer proxy. Umożliwia zdefiniowanie interfejsu API za pomocą intuicyjnego interfejsu użytkownika, który ma najlepsze cechy Swaggera i RAML za kulisami jako silnik specyfikacji, a także możliwość importowania lub eksportowania z dowolnego formatu.
Ponieważ StopLight jest narzędziem dokumentacji, możesz zdefiniować żądania, odpowiedzi, nagłówki i opisy dla swoich punktów końcowych. Dzięki funkcji proxy możesz wywołać swój interfejs API i sprawdzić, czy wywołania są zgodne ze specyfikacją lub automatycznie wykryć punkty końcowe, aby większość dokumentacji została napisana automatycznie.
Proxy StopLight ma również kilka innych absolutnie niesamowitych funkcji:
- Możliwość wykonywania próbnych połączeń do punktów końcowych, jeśli produkt nie jest ukończony lub nie chcesz proxy swoich żądań.
- Lokalny serwer do testowania prototypu na Twojej maszynie.
- Zdalny serwer do testowania Twojego prototypu w Internecie.
- Oprogramowanie pośredniczące, napisane w języku JavaScript, służące do definiowania kodu, który może być uruchamiany przed i/lub po wywołaniu punktów końcowych prototypu.
Jeśli porównasz kombinację mojej listy życzeń, wymagań specyfikacji Cagana i jego listy życzeń z funkcjonalnością zapewnianą przez StopLight, zobaczysz, że StopLight spełnia wszystkie potrzeby i pragnienia:
- Tylko wewnętrzna dokumentacja prototypu i jego funkcji.
- Łatwo dostępny pełny prototyp funkcjonalności.
- Testowalny interfejs, który umożliwia przełączanie funkcji zmiennych w celu testowania i opinii użytkowników.
- Łatwy sposób na wersjonowanie prototypu pod kątem konkretnej rozmowy, dzięki czemu możesz modyfikować funkcjonalność prototypu w czasie zbliżonym do rzeczywistego, aby zilustrować i zweryfikować otrzymane opinie.
Przepływ pracy w StopLight jest prosty i może go wykonać każdy , niezależnie od jego umiejętności technicznych:
- Utwórz nowy projekt.
- Dodaj specyfikację, klikając i wpisując informacje o punkcie końcowym, jego parametrach, żądaniu i odpowiedzi.
- Dodaj informacje o specyfikacji swojego prototypu na ekranie Definicja.
- Jeśli masz opcjonalne funkcje, dodaj je za pomocą oprogramowania pośredniczącego.
- Włącz drwiny.
- Skopiuj/wklej publiczny adres URL serwera szyderczego i udostępnij go w celu uzyskania opinii.
Jeśli wybierasz się na wizytę u klienta i chcesz poeksperymentować z prototypem w czasie rzeczywistym, po prostu pobierz definicję na swój komputer, utwórz nowy projekt nazwany tak jak Twoja wizyta i zaimportuj definicję. Teraz możesz zmienić wszystko, co chcesz, bez zmiany oryginalnego prototypu. Kiedy wracasz i łączysz pomysły, wprowadzanie zmian jest równie łatwe, jak tworzenie prototypu w pierwszej kolejności.
Jako kierownik produktu Developer Experience, StopLight nie tylko pomaga mi w bardziej efektywnym wykonywaniu mojej pracy, jest bardzo prosty w użyciu i ułatwia etapy przygotowania dostawy związane z dokumentowaniem interfejsu API, ponieważ dokumentacja została rozpoczęta przed etapami weryfikacji klienta i jest aktualizowana przez cały proces. Istnieje wiele innych przypadków użycia i funkcji, które zapewnia StopLight, ale to może być ten, który najbardziej wpłynął na moją pracę.
*Wymagania i lista życzeń Cagana to bezpośrednie cytaty z Inspired: How to Build Products, Customers Love.