Zasady produktu Intercom: Budowanie małymi krokami, aby zapewnić maksymalną wartość dla klienta
Opublikowany: 2022-09-07Duże zmiany są trudne do zrozumienia i trudniejsze do debugowania.
W Intercom dostarczamy złożone zmiany w serii małych, kontrolowanych, łatwych do zrozumienia kroków. Małe zmiany są łatwiejsze do zbudowania i szybsze do sprawdzenia, co pozwala nam szybciej dostarczać wartość klientom.
To siódmy post z serii, w której badamy zasady dotyczące naszych produktów . Tutaj Aidan omawia naszą zasadę inżynierską „Buduj małymi krokami”.
Nikt nie ma racji przez cały czas
Błędy zdarzają się w każdym zespole, w każdej firmie na świecie. Gdy zaakceptujesz, że nie będziesz przez cały czas robił tego dobrze, możesz to zmienić na dwa sposoby:
- Spróbuj poprawić błędy przed ich wysłaniem, podejmując kroki w celu weryfikacji lub sprawdzenia swojej pracy.
- Pozwól sobie na pomyłkę, ucz się na błędach i szybko dostosuj się, aby to naprawić.
Jeśli pogrążyłeś się już kilka tygodni w zmianie, często jest mniej miejsca na pomyłkę. Może to prowadzić do polegania na walidacji, aby uniknąć niespodzianek podczas wysyłania zmiany. Walidacja ma swoje miejsce, ale jest kiepskim substytutem wdrożenia czegoś w rzeczywistości. Im więcej walidacji musisz przeprowadzić przed wysyłką, tym dłużej trwa iteracja lub przejście do następnej funkcji – to ostatecznie spowalnia.
Wysyłając zmianę, staramy się kontrolować:
- Liczba zmiennych, których dotyczy zmiana: Im więcej zmiennych dotyczy zmiany, tym trudniej jest ustalić, która część zmiany spowodowała problem. Zmniejszając rozmiar każdego kroku, zacieśniamy pętlę sprzężenia zwrotnego i przygotowujemy się do szybszego uczenia się i dostosowywania, jeśli zajdzie taka potrzeba.
- Rozmiar zmiany: Zmniejszając rozmiar naszych zmian, zmniejszamy również promień wybuchu każdej zmiany. Testowanie zmian jest bardzo ważne, ale walidacja z góry będzie obejmować tylko tyle. Mniejsze zmiany pozwalają nam skoncentrować naszą uwagę na stopniowym osiąganiu celu i nie dać się zbytnio pochłonąć zapewnieniu, że każda zmiana jest idealna.
- Którzy klienci doświadczają zmiany: Opieramy się na flagach funkcji, aby weryfikować zmiany w produkcji i stopniowo udostępniać je klientom.
Nie wiemy na pewno, czy funkcja rozwiąże problem klienta, dopóki nie będzie miał go w swoich rękach. To zobowiązanie do wysyłania małych iteracji szybko łączy się z inną zasadą interkomu: statek do nauki.
Zarządzanie złożonością
Budowanie w złożonych systemach jest wyzwaniem. Gdy błędy pojawiają się w dużych zmianach lub rozdęte funkcje chybiają celu, trudno jest wskazać konkretny problem. Małe kroki ułatwiają walidację, zmianę i kontynuowanie — masz pewność, że budujesz na solidnym gruncie.
Duże zmiany obejmują wiele założeń:
- Zewnętrzne założenia dotyczące tego, jak Twoja zmiana wpłynie na przepływy pracy Twoich klientów.
- Wewnętrzne założenia dotyczące interakcji i zależności między różnymi częściami zmiany.
Chociaż możesz zrobić wszystko, co w Twojej mocy, aby sprawdzić zewnętrzne założenia, często szybciej i bardziej niezawodnie jest wysłać zmianę i zweryfikować lub skorygować. W założeniach wewnętrznych może wkraść się złożoność. Gdy zmiana staje się wystarczająco duża, aby objąć kilka bloków konstrukcyjnych, które są od siebie zależne, testowanie ich razem może być ryzykowne. O wiele bezpieczniej jest uwalniać je stopniowo, budując jeden na drugim i monitorując wpływ na bieżąco.
Trwała prędkość buduje rozpęd
Szybkość jest świetna, ale trwała, niezawodna prędkość zmienia zasady gry. Wysłanie dużej zmiany oznacza, że sukces jest znacznie większy i większe ryzyko niespodzianek w porównaniu z serią małych, szybkich iteracji.
„ Wąski cykl wysyłania małych zmian, uczenia się i iteracji buduje silny rozmach”
Wąski cykl wprowadzania małych zmian, uczenia się i iteracji nabiera silnego tempa. Eliminuje potrzebę uzyskania racji za pierwszym razem, zachęca do szybszego podejmowania decyzji i zmniejsza promień wybuchu błędów. Co więcej, dzielenie pracy na mniejsze jednostki oznacza, że inżynierowie mogą równolegle rozwijać pracę, co pozwala zespołowi działać szybciej jako całość.
Budowanie małymi krokami wymaga odpowiedniej kultury zespołowej
Budowanie małymi krokami nie jest dziełem przypadku, wymaga przemyślanej intencji i odpowiedniego otoczenia. Nasza kultura zespołowa i stos infrastruktury odgrywają kluczową rolę w naszej zdolności do szybkiego wprowadzania małych zmian.

Gdy zespoły przekonają się, jak ważne jest szybkie wysyłanie niewielkich zmian, wzajemne recenzje są traktowane priorytetowo i szybciej kończone. Ponieważ małe zmiany są łatwiejsze do zrozumienia i przeglądu, istnieje większe prawdopodobieństwo, że błędy zostaną wyłapane na każdym etapie. To zrozumienie i pilność zespołu przyspiesza cały proces.
„ Znacznie zainwestowaliśmy w zapewnienie, że po sprawdzeniu i scaleniu zmiany w celu jej wprowadzenia do produkcji zajmie mniej niż 15 minut, w tym zautomatyzowane testowanie i walidacja etapów”
Gdy czas wdrażania zwalnia, inżynierowie są bardziej skłonni do zmian wsadowych, co skutkuje cyklem większych zmian. Znacznie zainwestowaliśmy w zapewnienie, że po sprawdzeniu i scaleniu zmiany do poziomu głównego przejście do produkcji zajmie mniej niż 15 minut, łącznie z automatycznym testowaniem i walidacją etapów. Jest to całkowicie wyłączone, a inżynierowie otrzymują automatyczne powiadomienie o Slack, gdy zmiana zostanie wprowadzona.
Zastosowanie zasady „buduj małymi krokami” do integracji z Salesforce w Intercomie
W zeszłym roku staraliśmy się głębiej zintegrować Intercom z Salesforce, umożliwiając klientom automatyczne tworzenie przypadków Salesforce na podstawie rozmów Intercom. Szybko zrozumieliśmy złożoność; rozmowy i sprawy nie zawsze są mapowane bezpośrednio, a synchronizacja danych w relacji wiele-do-wielu byłaby trudna zarówno z perspektywy inżynierskiej, jak i projektowej. Do tego dochodziło duże zróżnicowanie w sposobie, w jaki klienci chcieli korzystać z tej funkcji i konieczne było dopasowanie się do istniejącej integracji, na której klienci w dużym stopniu polegają.
Po przeanalizowaniu wielu implikacji i kompromisów projektowych zaparkowaliśmy projekt na rzecz czegoś, co naszym zdaniem zapewni bardziej niezawodny efekt. Prawie tego nie zbudowaliśmy, ponieważ potraktowaliśmy to jako dużą zmianę, a nie serię małych kroków.
Powróciliśmy do projektu z innym podejściem
Nie minęło dużo czasu, zanim nasz zespół sprzedaży powrócił, aby podkreślić, jak ważna jest ta funkcja dla naszych klientów – i postanowiliśmy nadać jej inny wygląd. Tym razem przyjęliśmy inne podejście, zaczynając od najmniejszej możliwej wersji i unikając pewnej złożoności, aż mogliśmy dowiedzieć się, czego naprawdę potrzebują klienci.
„ Klienci, z którymi współpracowaliśmy, naprawdę docenili tempo, w jakim zespół iterował i jak funkcja ewoluowała na co dzień, kierując się ich opiniami”
W ciągu dwóch tygodni z innym inżynierem zbudowaliśmy najbardziej podstawową wersję tej funkcji, którą mogliśmy udostępnić klientom. Zrobiliśmy to w wielu małych krokach, upewniając się, że nie złamaliśmy żadnego z istniejących przepływów pracy, z których korzystali już klienci. Dzięki temu funkcja była znacznie bardziej namacalna, a klienci mogli przekazać konkretną opinię na temat luk i ulepszeń produktu.
Gdy klienci już z niej korzystali, zespół wykonał iterację małymi krokami, szybko czyniąc tę funkcję bardziej elastyczną. Wraz ze wzrostem elastyczności wzrosła liczba korzystających z niej klientów i szybko rozszerzyliśmy wersję beta.
Okazało się, że relacja wiele-do-wielu nie przeszkodziła klientom w korzystaniu z tej funkcji i pomyślnie uruchomiliśmy ją bezpiecznie i bez tej dodatkowej złożoności, co odkryliśmy dopiero rozpoczynając od małych i szybko powtarzając. Klienci, z którymi współpracowaliśmy, naprawdę docenili tempo, w jakim zespół iterował i jak funkcja ewoluowała na co dzień, kierując się ich opiniami.
Budowanie małymi krokami działa dla każdego
Budujemy małymi krokami przede wszystkim dlatego, że pomaga nam to szybciej dostarczać klientom wartość w bezpieczniejszy i trwalszy sposób. Ale poza tym dla inżyniera jest to przyjemniejszy sposób pracy. Jest to o wiele mniej stresujące niż wysyłanie dużych zmian, w których wiele zależy od tego, czy masz rację za pierwszym razem – i otrzymujesz regularne uderzenie dopaminy za każdym razem, gdy wysyłasz do produkcji to, nad czym pracujesz.
Tak więc, jeśli nic w tym poście na blogu nie przekonuje Cię do optymalizacji pod kątem redukcji ryzyka i dostarczania dodatkowej wartości, powinieneś to zrobić, ponieważ jest to po prostu przyjemniejsze.
Chcesz dowiedzieć się więcej o tym, jak pracujemy w Intercomie? Dowiedz się więcej.