Jak reagujesz na: „Odkąd aktualizacji ...” pytań od klientów? [Zamknięte]

19

Odkąd aktualizacji, ludzie ciągle dzwoni i mówi „Odkąd aktualizacji X, Y i Z są powolne, zły i upaść”

To działo się zawsze od zarania aktualizacji.

Czego ludzie się spodziewać? Gamma pochodzi po beta, gamma i testowanie zawsze okazuje naszych użytkowników w niesamowitej kadłuby ...

Być może nigdy nie słyszałeś tego od klienta, może jesteś w college'u lub FLOSS Dev którzy mogą rozprzestrzeniać winę wokół więcej niż 5 lub 6 facetów, może przetestować urządzenie kod, być może nie jesteś w tej ciekawej sytuacji gdzie klienci faktycznie zadzwonić zainteresowanie dokładną godzinę będziesz uwalniający dzisiejszy patch (chciałbym to zrobić Microsoft) czy może jesteś przykro son-of-a-suchar jak ja, którzy po prostu wysyłają nowy zaktualizuj i wróciłem do domu. Obawiam się, że wrócę jutro do pracy.

W każdym razie będziesz mądrzejszy ode mnie. W jaki sposób krytyka pola w ramce „Musisz być zły programista bo robisz swoje oprogramowanie gorszy”?

Peter Turner
źródło
1
To zawsze dzieje się dla mnie zawsze, kiedy toczą się sprint do prod
Gopi
1
Lekkie profilowanie, które jest zawsze włączone, może pomóc (w ramach większej strategii). „To zabawne;.? Dane pokazują strona jest generowana 5% szybciej teraz Która część dokładnie czuje wolno Może uda nam się coś z tym zrobić ...”
1
Pytanie jest naprawdę jeśli X, Y i Z są naprawdę gorzej Tahn przed, czy istnieje jakiś inny czynnik poza kontrolą pracy.
Gerry
„Musisz być złym programistą, ponieważ pogarszasz swoje oprogramowanie”? ... po9ssibly ... w niektórych obszarach ... przez pomyłkę .. w trakcie czyni go tak dużo lepiej w następujących obszarach ...
Mawg mówi dozbrojenie Monica

Odpowiedzi:

16

Jeśli zdarzy się to przy każdym wdrożeniu, proces programowania może mieć poważną wadę. Podejrzewam kilka rzeczy, które są przyczyną problemów.

  1. Czy tworzysz w oparciu o bazę danych tego samego rozmiaru (z grubsza) co produkcja? Jeśli nie, to zawsze będziesz miał te problemy, ponieważ pytania, które są w porządku z małymi zestawami danych są często psy z Bigs nich.
  2. Czy obciążenie próbne w QA? Co działa dobrze z jednym z testów użytkownika jest bardzo różne od tego, jak sprawy będą reagować z 1000 użytkowników staramy się robić rzeczy w tym samym czasie.
  3. Czy zakładasz, że postrzeganie użytkownika jest nieprawidłowe i traktujesz go tak, jakby był głupi narzekając? Jeśli tak, to twoja postawa jest powodujące więcej skarg nie je zmniejszając.
  4. Robisz dobrą robotę testowania? Czy testy regresji nie zmieniło features aby sprawdzić, czy są one dotknięte przez zmiany? Czy ty w ogóle obchodzi, jak długo rzeczy wziąć aż trafią prod?
  5. Czy zwracasz uwagę na to, kiedy jest dobry czas dla użytkowników podczas wdrażania, czy też wesoło wdrażasz zmianę w systemie księgowym w dniu, w którym uruchamiana jest lista płac, i zastanawiasz się, dlaczego użytkownicy są źli z powodu spowolnienia?
  6. Czy masz różnice środowiskowe między dev i prod. Czasami te brzydkie różnice w systemach operacyjnych lub wersji bazy danych spowoduje problemy jak ten, jak również. Często dobrym pomysłem jest posiadanie środowiska pomostowego, które jest dokładnie takie jak prod, trochę sprzętu tego samego systemu operacyjnego, tej samej bazy danych z danymi, które są jak najbardziej zbliżone do danych prod. Służy do testowania wdrożenia. Uruchomić go najpierw na tym serwerze i tehn mieć niektórzy użytkownicy lub testerów iść do niego i przeprowadź kilka prób.
  7. Jak dobry jest Twój proces wdrażania, czy często brakuje kroki? Może być prowadzony przez kogoś innego niż dewelopera, ponieważ jest jasne, jaki kod idzie w branży są wdrażane? Znacznie lepiej wdrożyliśmy kod, kiedy dostaliśmy zespół zarządzający konfiguracją i nikt nie miał prawa siedzieć z prodem i opiekować się nim, wprowadzając zmiany „oopsie”. Automatyzacja twojej kompilacji może ogromnie pomóc. Nikt nie powinien być zgadywania, czego potrzebuje, aby przejść do prod jak należy już do QA i inscenizacja pierwszy i wszelkie kwestie deplyment wypracowane. Kluczowe są także zmiany w bazie danych skryptów. Powinny być w skryptach i kontroli źródła, więc proces kompilacji może je odebrać bez potrzeby pamiętania, o tak, musimy zmienić długość kolumny B na 241 z 50.
HLGEM
źródło
Zalety: 1. Tak, 2. Czasami 3. Pass 4. N / A, 5. Nie, jeśli nie możemy na to poradzić. Mam pytanie do was, ale mogę o tym myśleć i pisać go później.
Peter Turner,
6. Czasami, ale to są legit błędy zwykle spowodowane przez coś w starym aktualizacji nie został uruchomiony.
Peter Turner,
7. Tak, to duży problem - nikt nie korzysta z pliku makefile, który napisałem, chyba że jest to absolutnie konieczne, a to jest przyczyną 60% naszych nieszczęść. (PS Oznaczę to jako poprawne, jeśli sformatujesz to lepiej)
Peter Turner,
Jest to świetna odpowiedź na „Co należy spojrzeć, aby zapobiec pękaniu uwalnianie UX?” ale nie jestem pewien, dlaczego @PeterTurner przyjęte, ponieważ to nie jest odpowiedź na rzeczywiste pytanie.
Lilienthal
13

W jaki sposób krytyka pola w ramce „Musisz być zły programista bo robisz swoje oprogramowanie gorszy”?

Ale taka krytyka jest w większości uzasadniona. Nowe wydanie nie powinno być gorsze niż poprzednie, ale jak wiemy, w rzeczywistości często tak jest i to nasza wina, ponieważ to zrobiliśmy.

Popełnianie błędów jest ludzkie i nie czyni nikogo „złym programistą”, więc nie bierz krytyki osobiście (nigdy nie wziąłbym poważnej krytyki ze strony osoby niebędącej kolegą). Tylko podziękować klientom za zgłoszenie problemu i rozwiązać go tak szybko, jak to tylko możliwe. To twoja praca jako dobrego programisty.

Joonas Pulakka
źródło
9

Cóż, w pracy nie kontaktujemy się bezpośrednio z klientami, więc muszę odpowiedzieć na to pytanie z osobistej pracy projektowej. Piszę silnik gry, że ludzie mogą używać do tworzenia własnych gier. Jest jeszcze w pre-alpha, ale mam kilka zainteresowanych użytkowników, a czasami otrzymuję błędy.

Kiedy uzyskać raport jak to od użytkownika, staram się korzystać z osobistego kontaktu. Nie chciałem wprowadzać błędów i chcę, żeby mieli dobre doświadczenia z moim silnikiem, więc muszę im w to uwierzyć. Najpierw zdobądź uchwyt IM, abyśmy mogli porozmawiać. Poproszę użytkownika o ich projektu i postarać się o kopię. To znacznie ułatwia reprodukcję. Zapytaj ich, co robili, kiedy doszło do usterki. Tymczasem mam silnik otwarty w debuggerze i zajmuję się tym problemem podczas rozmowy.

Jeśli jest to wyjątek, to zwykle dość prosta. Powtórz problem, a debugger go złapie i zabierze Cię prosto do miejsca błędu z pełnym śledzeniem stosu, i jest oczywiste, co się dzieje. Jeśli jest to niska wydajność lub niewłaściwe zachowanie, może to potrwać trochę dłużej. Ale w większości przypadków może mam dylemat gotowy w ciągu pierwszych 20 minut, topy. Zamykam go i wysyłam do nich w celu przetestowania. „OK, myślę, że mam go. Sprawdź, czy w Twoim końca to działa?”

Odpowiedź jest niemal uniwersalną mieszanką zdumienia i wdzięczności, ponieważ większość programistów (czytaj: firmy produkujące oprogramowanie) po prostu nie naprawia błędów i nie wydaje tak szybko. A potem, jeśli to faktycznie stała, ja okazało potencjalne krytyk pod wentylatorem. To naprawdę dobra technika; Chciałbym tylko, żeby więcej programistów to przyjęło.

Mason Wheeler
źródło
1
Tak, są zdumieni. Pracuję z wieloma pielęgniarek, którzy logują się na naszym forum PHPBB i naciśnij „bang głowę o ścianę” emotikon, a następnie skończyć myśleć, że jesteśmy całkiem Hot Stuff raz mamy przeniesione DLL lub prowadził kwerendy SQL i ich system znowu działa i nawet nie musieli się wylogowywać.
Peter Turner,
6

Ja osobiście podjąć ten problem pozytywnie. Cały czas wchodzę w interakcje z wieloma klientami i nadal koduję.

Kiedy pobierają nowe wydanie i mówią mi coś takiego, zawsze mówię coś takiego:

Dzięki za zgłoszenie mi tego błędu. Może to zostało wprowadzone razem będą wszystkie nowe funkcje doliczone. Naprawimy to jak najszybciej.

W rzeczywistości, klient jest twoim prawdziwym szefem. Jeśli doświadczenie z was jest złe, to jest złe dla Ciebie.

Nawet jeśli nie ma racji, ty jako członek firmy, powinieneś skorzystać z okazji, aby:

  • dowiedzieć się od niego, poprzez zbieranie potencjalnych ulepszeń można zrobić z produktem.
  • zamień niezadowolonego klienta w szczęśliwego, tak szczęśliwego, że będzie o tobie opowiadał (w tym o swoim szefie)
  • być dumnym z tego, co robisz

źródło
1
„przekonwertować niż niezadowolonego klienta na nieszczęśliwego”? Nie chciałbym tego robić.
Lie Ryan
4

Szczegóły, szczegóły, szczegóły. Pytam, co robią i kiedy, być konkretne. To może być coś lub po prostu wideo Justin Beaber właśnie opublikowane na youtube. Pliki dziennika są Twoim przyjacielem w obu przypadkach.

Proszę także o terminach, kiedy zauważył. Czasami, zwłaszcza w sklepach korporacyjnych, użytkownicy nie wiedzą, kiedy pojawi się wydanie, po prostu wiedzą, że ukończenie czegoś zajmuje dużo czasu i właśnie na to narzekają.

Cień pracy. Nie mogę tego wystarczająco podkreślić. Jeśli masz szczęście mieć użytkowników w pobliżu, po prostu obserwuj ich pracę od czasu. Często stwierdzam, że ignorują rażące problemy i nigdy ich nie zgłaszają. Często narzekają tylko wtedy, gdy wiedzą, że coś jest nowego lub początkowo zauważają problem.

Bill Leeper
źródło
3

Krok 1 polega na tym, że musisz wywodzić się z myślenia, że ​​to (aktualizacja psuje inne rzeczy) nie jest normalne. Twoja aktualizacja nie powinna przerywać ani spowalniać innych części aplikacji. To nie jest w porządku, nie należy się tego spodziewać i to nie wina użytkownika, kiedy narzeka. Powinieneś robić tyle testów, ile możesz, aby temu zapobiec. Kiedy to się dzieje, masz problem, i to pilny.

Krok 2 polega na tym, że musisz wiedzieć, co zrobiłeś. System kontroli źródła może być w stanie pomóc, albo jakiś system śledzenia pracy, ale musi być w stanie powiedzieć minuty można dostać jeden z tych skarg „ok, dodałem kolumnę do tabeli, zmienił tę siatkę do obliczenia nowe podatki, dodano te dwa nowe raporty ... ”i tak dalej.

Krok 3 polega na tym, że musisz mieć doświadczenie w szybkim wyszukiwaniu problemów z awariami, więc wiesz, jakie rzeczy mogą je powodować, i od razu możesz rozwiązać problem. Ta rzecz została uruchomiona i musisz szybko znaleźć problem i usunąć łatkę. Zmiana raportu nie może spowolnić części aplikacji, która nie korzysta z raportu. Jesteś teraz w trybie awaryjnym i musisz dowiedzieć się, gdzie jest błąd i co z tym zrobić - nie psując przy tym innej części aplikacji.

Krok 4 dotyczy każdej z tych nieszczęść, powinieneś nauczyć się lekcji, którą przetestujesz następnym razem. Staniesz się „tym facetem”, który sprzeciwia się niektórym konstrukcjom, ponieważ „będzie to okropne, gdy będzie 10 000 rekordów”.

Nieco więcej na froncie „to jest normalne”. Biegnę (wśród wszystkich innych rzeczy, które robimy) zwinny projektu dla zewnętrznego klienta. Robiliśmy uwalnia około co 6 tygodni do dwóch lub trzech lat. I tak, wydanie jest zaplanowane na minutę. Właśnie zrobiliśmy wczoraj o 8 rano. I mniej więcej co czwarte lub piąte wydanie (innymi słowy raz lub dwa razy w roku) coś się psuje, a my skaczemy do akcji i robimy to tak szybko, jak to możliwe. Mimo że testujemy, testujemy i testujemy przed wydaniem. Potem mówimy im, co się stało. „W czerwcowym wdrożeniu pojawił się mały błąd, który pozwolił, aby to pole było puste, ale nigdy tego nie zauważyliśmy, ponieważ nie korzystaliśmy z tej wartości w tym czasie. Następnie w tym wdrożeniu, kiedy zaczęliśmy korzystać z pola, te, które były puste, spowodowały ten komunikat o błędzie, który widziałeś. naprawiliśmy błąd, aby nie mogły być puste, umieściły wartości w złych rekordach i potwierdziły, że już nie wysadza. Przepraszamy. „Lub” Ta nagła zmiana, o którą prosiłeś, zaledwie dwa dni przed wydaniem, miała konsekwencje, o których nie pomyśleliśmy i których nie testowaliśmy. Pamiętasz, dlaczego opieramy się zmianom awaryjnym? ”Może nie jestem złym programistą, który pogorszył sprawę wraz z aktualizacją, ale na pewno zrobiłem coś złego. I muszę to naprawić. Być może nie jestem złym programistą, który pogorszył sprawę dzięki aktualizacji, ale na pewno zrobiłem coś złego. I muszę to naprawić. Być może nie jestem złym programistą, który pogorszył sprawę dzięki aktualizacji, ale na pewno zrobiłem coś złego. I muszę to naprawić.

Kate Gregory
źródło
0

Wystarczy na pokrycie inny aspekt:

Prowadzimy listę klientów, którzy twierdzą, że tak się nie stało. Podczas gdy oprogramowanie jest wadliwe, często bardzo błędne, wielu naszych klientów twierdzi, że „zaczęło się od aktualizacji”, aby uzyskać szybką uwagę, nie zdając sobie sprawy, że kończy się to marnowaniem czasu, ponieważ będziemy omijać delty dla wskazanej funkcji w poszukiwaniu problemu. Jeśli klient mówi prawdę, zwykle szybko ją odnajduje. Jeśli klient jest na fałszywej liście zbyt wiele razy, nie zawracamy sobie głowy, ponieważ nie lubimy tracić czasu.

Nie mogę sobie wyobrazić, jaki sposób myślenia jest potrzebny, aby powiedzieć nam, że kłamstwo przyspieszy ten proces. Ci ludzie są lub współpracują z lekarzami i powinni dobrze wiedzieć, co się dzieje, gdy ludzie okłamują lekarzy. Obowiązuje ta sama zasada.

Jozuego
źródło
1
Prawdziwy aspekt, chyba że myślę, że nie kłamią. Oni po prostu stało się zauważyć po aktualizacji (z jakiegokolwiek powodu psychologicznego), a następnie przejść do konkluzji - użytkownicy są naprawdę mistrzami, jeśli chodzi o tego :-)
Martin Ba