Jak radzić sobie z popularnym projektem, którego nie chcesz już utrzymywać?

75

Jestem opiekunem projektu, który ma dużą nietechniczną bazę użytkowników. Utrzymuję go od około 4 lat i dodam nowe funkcje, o które zostały poproszone.

Chciałbym teraz przejść do innych projektów i przestać się rozwijać dla tej aplikacji. Ze względu na nietechniczny charakter użytkowników, w przeszłości wkład kodu był bardzo niewielki. Nie sądzę, żebym mógł znaleźć kogoś, kto przejmie projekt zamiast mnie.

Błędy, problemy, prośby o nowe funkcje - wciąż nadchodzą. Nadal odpowiadam na e-maile o pomoc, ponieważ nie jestem pewien, czy powinienem je zignorować, powiedzieć, że nie pracuję nad aplikacją lub czy powinienem odpowiedzieć na e-maile tylko w niektórych przypadkach.

Jaki jest najlepszy sposób na „porzucenie” tego projektu, ale nadal pozwala użytkownikom korzystać z aplikacji?


Aktualizacja (lipiec 2016 r.) - Nie poszło zgodnie z planem. Zgłosiłem to w README i wkrótce potem zacząłem otrzymywać bardziej znaczący wkład. Wyciągaj wnioski z poprawkami błędów, funkcjami, dokumentacją, aktywnością problemów. Od tego czasu projekt stał się „ożywiony” i teraz z radością go utrzymuję wraz z nowszymi projektami. Mam też współpracowników. Podejrzewam, że mógł to być rodzaj wkładu, który wpływał na mój pogląd na projekt, a wraz z poprawą jakości wkładów nie wydawało się to już obowiązkiem.

Mendhak
źródło
1
Czy możesz przenieść go na nową platformę lub nową technologię? W ten sposób praca nad tym byłaby interesująca i możesz wyjaśnić, aby wesprzeć wywołania, że ​​poprawki błędów i ulepszenia nie będą już wprowadzane w starym kodzie, i sugerować, aby zaktualizowali go, gdy będzie gotowy itp.?
Stefan
5
Z ciekawości, jaki jest projekt? Połączyć? (zakładając, że jest to oprogramowanie typu open source)
Andres F.,
70
Czytnik Google, prawda?
Kyralessa
3
Dokładnie sprawdź swoje założenie: czy baza użytkowników jest zbyt nietechniczna, aby utrzymać projekt, czy też projekt jest zbyt zamknięty, aby umożliwić udział poza problemami i prośbami o funkcje?
Bengt,
Teraz wszyscy chcemy zobaczyć projekt ... Powinieneś dodać link.
daviewales

Odpowiedzi:

40

Zgaduję, że to nie jest projekt w miejscu pracy, w którym jesteś płatnym pracownikiem i coś, co robisz w wolnym czasie?

Jeśli nie zarabiasz na tym pieniędzy, to oczywiście nie ma dla ciebie zachęty ani zachęty dla nowych osób, aby zająć się tym. (chyba że może to być organizacja charytatywna lub podobna organizacja ochotnicza)

Alternatywnie, dlaczego nie spojrzeć na możliwość dodania płatnych funkcji.

W ten sposób możesz mieć motywację do kontynuowania. Możesz znaleźć osoby chętne do zapłaty, zwłaszcza gdy alternatywą jest przestanie być aktywnie rozwijany. (oczywiście ludzie mogą porzucić twój system, ale co cię obchodzi, już nie otrzymujesz zapłaty).

Inną opcją może być wykorzystanie projektu do nauki nowych technologii? Czy to jest strona internetowa? Uaktualnić do najnowszej technologii? Konwertujesz np. Z Asp.Net na MVC4? zbudować wersję mobilną, uczynić ją opartą na usługach i stworzyć dla niej interfejs aplikacji na iOS?

ozz
źródło
23
Inną możliwością jest sprzedaż (lub podarowanie) projektu firmie. Masz użytkowników, firma może zobaczyć zysk.
Sulthan
@Sulthan absolutnie!
ozz
1
Jeśli nie zarabiasz na tej stawce podwyżek lub zacznij pobierać opłaty za usługę.
Bill Leeper
9
Oznacził to jako „open source”. To jest coś w rodzaju działalności charytatywnej lub wolontariackiej. Motywy są po prostu inne. Zazwyczaj nie można sprzedawać projektów z otwartych źródeł. Ale zawsze mógł pobierać opłaty za dodatkową pracę. Zdobądź pulę darowizn na to, co zostanie naprawione / dodane dalej.
Filip
@Sulthan - bardzo interesujący, nie wziął tego pod uwagę. Zobaczę, które firmy byłyby tym zainteresowane.
Mendhak
25

Powiadom społeczność użytkowników o rezygnacji z produktu. Może znajdziesz następcę do roli opiekuna. Spróbuj zorganizować czas przekazania, tak jak w przypadku projektu w codziennej pracy.

Jak to ujęła esr w The Cathedral And The Bazaar :

Kiedy stracisz zainteresowanie programem, twoim ostatnim obowiązkiem jest przekazanie go kompetentnemu następcy.

Pozostałość
źródło
2
Aby dodać do tego, komentuj strony programistyczne i sprawdź, czy ktoś jest gotowy na przejęcie. Niektórzy ludzie nie są pewni, jakie projekty chcą wykonywać, ale chcą doświadczenia w programowaniu i są otwarci na pomysły. Okres przekazania może wiązać się z większą pracą w krótkim okresie, ale mam nadzieję, że w dłuższej perspektywie zwróci się.
James
11

Kolejna propozycja dla ciebie, która jest nieco przeciwna do tego, o co pytasz, ale myślę, że powinna być na twojej liście do rozważenia. Czy zastanawiałeś się, czy go nie porzucić? Jeśli masz projekt, z którego aktywnie korzystają ludzie i który ma rosnące wymagania, ale nie jesteś w stanie samodzielnie go zmodyfikować i jesteś jedynym ekspertem w dziedzinie oprogramowania ... to jesteś w stanie obciążyć go pieniędzmi.

Jeśli źródło jest otwarte, możesz rozważyć jego zamknięcie (twój wybór, jeśli chcesz zdusić konkurencję, rozwijając projekt). Gdy pojawi się kolejne żądanie funkcji, powiedz „tak” za opłatą xyz $.

Tylko opcja do rozważenia.

Ian
źródło
11
Biorąc wcześniej otwartą aplikację i czyniąc ją zamkniętym źródłem, drażniłoby wielu użytkowników i może nawet nie być prawnie możliwe, gdyby inni użytkownicy wnieśli kod na podstawie niektórych licencji typu open source, w zależności od podpisanych przez nich lub nie podpisanych umów. Istnieje bardzo duża różnica między pobieraniem opłat za pracę nad projektem typu open source a nagłym zamykaniem tego, co było wcześniej otwarte.
James
3
@James Ładowanie za wykonaną pracę niekoniecznie oznacza zamknięte źródło. Oznacza to po prostu, że ktoś chce, aby oprogramowanie miało nowe funkcje, i chce zachęty do dodania go - nie ma powodu, dla którego nie mógłby pobierać opłat za swoją pracę przy zachowaniu otwartego źródła.
Daenyth,
1
@ Daenyth Oczywiście, ale ta odpowiedź wspomina o zamknięciu, więc jest to coś, co wymaga dyskusji.
James
@James Nie musisz zamykać źródła. Nadal możesz wypuszczać nowe funkcje jako open-source ... ale nie ma powodu, aby wypuszczać, aby zatwierdzić kod, dopóki czek nie zostanie wyczyszczony.
Sled
1
@ArtB Tak, wiem, ale ta odpowiedź wspomina konkretnie o jej zamknięciu, więc mój komentarz dotyczył właśnie tego.
James
7

Trudno jest zrezygnować z grona fanów, zwłaszcza gdy różnisz się od nich. Gdyby w grupie użytkowników znajdowali się programiści, łatwo byłoby rozwiązać ten problem: wystarczy poinformować o zbliżającym się wyjściu i zasugerować, że ktoś inny podejmie kroki, oferując pomoc w przyspieszeniu przed wyjściem. Ponieważ tak nie jest, pytanie jest naprawdę następujące: Czy możesz (lub twoi użytkownicy) znaleźć kogoś, kto zastąpi cię w terminie, który ma sens dla ciebie (lub twoich użytkowników).

W przeszłości utrzymywałem kilka projektów przez lata dłużej niż się przejmowałem, ponieważ było to dobre dla mojej reputacji. Moja postura, choć stosunkowo niewielka, w mojej dziedzinie pomogła mi znaleźć pracę, kiedy jej potrzebowałem lub chciałem, a to ma dla mnie wartość. Wystarczająca wartość, aby warto było poświęcić swój czas, kiedy mogłem. Ostatecznie oczywiście odszedłem, ale upewniłem się, że pełny kod projektu jest dostępny dla wszystkich następców.

Ross Patterson
źródło
„Trudno jest porzucić swoją grupę fanów, zwłaszcza gdy różnisz się od nich”. - Dokładnie! Zależy mi na nich, a niektóre inne posty tutaj mówią o tym, aby moje intencje były jasne + ładowanie, co może zadziałać.
Mendhak
„Mój wzrost w tej dziedzinie pomógł mi znaleźć pracę”. Dobra uwaga - projekt Open Source zawsze wygląda imponująco na CV / CV.
Mawg
5

Czy chcesz porzucić projekt, ponieważ ...

nie chcesz tego więcej robić?

Następnie: Graceful zamknięcie ala Reader.

Lub ... zatrudnij programistę (kontynuuj poniżej)

A może dlatego, że tracisz pieniądze?

Oblicz koszty z własnej kieszeni (i kontynuuj poniżej)

A może dlatego, że nie zarabiasz pieniędzy?

Oblicz, ile musisz zarobić, aby poczuć się inaczej:

  1. należy pokryć koszty z własnej kieszeni
  2. koszty dewelopera, aby kontynuować rozwój
  3. marża zysku

Bądź uczciwy wobec swoich użytkowników: wyjaśnij im, że utrzymanie określonej usługi kosztuje pewien czas, energię itp.

Następnie poproś o darowizny i / lub opłaty za istniejące funkcje. Nie próbuj wymyślać funkcji premium, które po prostu opóźniają ustalenie, czy usługa jest naprawdę wystarczająco cenna, aby się utrzymać. Po prostu skorzystaj z posiadanych funkcji.

Jeśli użytkownicy dobrze suka, mogą iść gdzie indziej. Jeśli nie ma wystarczającej liczby darowizn i / lub rejestracji, zamknij się.

Bądź brutalny - po wyciągnięciu wtyczki nie oglądaj się za siebie.

Poklepać
źródło
2
+1 za te pomysły. Podaj swój miesięczny „rachunek”, który obciążalibyśmy, gdybyś robił to dla kogoś komercyjnie. Następnie powiedz użytkownikom, że od tego momentu mogą się połączyć i wynająć opiekuna. Do diabła, może wtedy możesz nawet ubiegać się o stanowisko :)
Zlatko
@zladuric - zgodził się, dlatego mam „koszt programisty, aby kontynuować programowanie” (gdzie „ty” mógłbyś być tym programistą). Zbyt wielu programistów robi coś „fajnego”, nie zdając sobie sprawy z potrzeby prowadzenia firmy. TANSTAAFL
Pat
3

Masz kilka opcji, jak zauważyli inni. Moja opcja to wystawienie powiadomienia o zakończeniu okresu użytkowania. Wskaż, że produkt zostanie zamknięty w takim i takim dniu.

Dodatkowo wskaż, że ponieważ ten produkt zbliża się do końca życia, zostaną usunięte tylko krytyczne błędy, które wpływają na zdolność aplikacji do działania zgodnie z przeznaczeniem. IE, jeśli serwer nie działa, uruchomisz go ponownie.

Jeśli użytkownicy mają dane, może być konieczne dodanie sposobu ich wyeksportowania.

Aby uzyskać wskazówki, spójrz na to, co Google ostatnio zrobił z programem Reader. Wyłączyli go i była to bardzo popularna usługa, ale nie pasowała do ich długoterminowych celów, więc musiała zostać podjęta trudna decyzja o jej zamknięciu.

Bill Leeper
źródło
1
+1 Oto przykład podobnego, doskonałego projektu (IMO): picoos.sourceforge.net
Vorac
3

Czy jakiś środek w połowie drogi jest możliwym rozwiązaniem? Kontynuować projekt, ale zmniejszyć obciążenie pracą?

Na przykład mówisz, że nadal odpowiadasz na e-maile z prośbą o pomoc. Czy możesz założyć forum użytkowników i nalegać, aby wszystkie zapytania obsługi były wykonywane przez to, aby inni zaawansowani użytkownicy mogli pomóc?

James
źródło
1
Ponadto ogranicz rozwój do tylko głównych poprawek błędów. W ten sposób aplikacja (ma się skończyć) funkcjonalna i solidna.
Vorac,
Odpowiedź oznaczająca opóźnienie nieuniknionego. Zabij to lub zarabiaj pieniądze. Nie rób tego w połowie - wtedy staje się to po prostu drenażem energii.
Pat
2
@pat wydajesz się, że jedyną motywacją, jaką ktoś może mieć, są pieniądze. Istnieją inne motywacje do pisania oprogramowania typu open source, co myślę, że operatorzy rozumieją, gdy mówią o chęci pomocy swoim użytkownikom. Cokolwiek, może ta odpowiedź nie jest odpowiednia dla OP w tym przypadku, ale są to inne rozwiązania niż „OMG Money”, które należy przynajmniej omówić.
James
@James - przepraszam, ale tak. Potrzebujemy pieniędzy, aby przetrwać. Wszyscy mamy bardzo ograniczony czas na tym świecie. Powinniśmy skupić się na rzeczach, które tworzą największą „wartość”. Praca nad projektami, które nie są cenione, to strata życia. Jak zmierzyć wartość: 1) jeśli inne osoby nie znajdą wartości w projekcie (i nie używają jej), to jak „satysfakcjonujący” jest ten projekt? 2) pieniądze to sposób, w jaki mierzymy „wartość”. 3) Koszt alternatywny - jeśli PO nadal pracuje nad tym (nieocenionym?) Projektem - nad czym OP przechodzi dalej?
Pat
@Pat OP wyraźnie stwierdza, że ​​projekt ma dużą bazę użytkowników, więc nie wiem, skąd bierzesz te „nieocenione” śmieci. To, że nikt obecnie nie płaci, nie oznacza, że ​​nikt go nie docenia. Pieniądze to jedna miara wartości; wiele osób stosuje również inne środki, takie jak użyteczne oprogramowanie, którego pragnie wielu innych. Ale skoro mowa o ograniczonym czasie, naprawdę nie przejmuję się politycznym sporem na ten temat w sekcji komentarzy - do widzenia.
James
1

Przejście na czysto płatne zabije wielu użytkowników, ale istnieje wiele alternatyw dla czysto płatnych. Gra wideo, w którą gram, daje dawcom dodatkowe korzyści, takie jak większa liczba pobrań na godzinę „gra oparta wyłącznie na umiejętnościach, nie mylić z zapłatą, aby wygrać śmieciowe lol”. Kolejna gra Path of Exile oferuje ulepszenia kosmetyczne. Inne strony wymieniają ankiety w zamian za przepustowość. Koder darowizn daje darmowym użytkownikom licencje na (X Time) odnawialne wiele razy, jak chcą, ale dawcy otrzymują stałe licencje.

Istnieje mnóstwo opcji, które oferują gotówkę, ale nadal utrzymują wolnych użytkowników.

Większość ludzi nie ma problemu ze wsparciem czegoś, co lubią tak szczerze, po prostu spróbuję najpierw zapytać, ustawiając obszar napiwków obliczony na pokrycie miesięcznych kosztów.

Rysował
źródło
1
Widzę, jak twoja odpowiedź odnosi się do pytania PO, ale PO stawia nieco inny aspekt. Chcą przejść od projektu. Wiele punktów w twojej odpowiedzi stworzyłoby ciągły związek z projektem.
1

Zawarłeś open-sourcetag, więc sądzę, że twój projekt to oprogramowanie typu open source.

w przeszłości było bardzo niewiele wpisów w kodzie

To niefortunne, ale zrozumiałe na wypadek, gdybyś robił wszystko. Wielu użytkowników nie angażuje się, dopóki działa to rozsądnie.

Niektórzy liderzy lubią przekazywać wszystkie obowiązki, a niektórzy liderzy lubią mieć większą kontrolę. Podczas gdy równowaga jest konieczna, kluczem jest tutaj jak najszybsze delegowanie.

Stworzyłem ponad 30 projektów open source i wiele z nich jest nadal aktywnych, mimo że je opuściłem. Oto, co poleciłbym:

  1. Daj dostęp do narzędzia do śledzenia błędów BARDZO hojnie, może każdemu, kto kiedykolwiek napisał linię kodu. Jeśli ktoś zacznie robić szalone rzeczy (bardzo małe prawdopodobieństwo), nadal masz kontrolę administratora, aby je usunąć. Nie zapomnij zrezygnować z innych praw: kontroli kodu źródłowego, wiki, tłumaczenia tłumu, strony na Facebooku, konta na Twitterze, oficjalnej strony, Google Analytics, itp.

  2. Wpis na forum (i zawiadomienie na stronie internetowej) informujący o przejściu na emeryturę i szukaniu nowego lidera projektu.

  3. Nawet jeśli nikt nie wkroczy jako lider zespołu, mogą wystąpić fatalne problemy (głupi przykład: zakodowany adres URL zmienia się na 404, powodując awarię aplikacji podczas uruchamiania), prawdopodobnie ktoś go naprawi. Jeśli nikt nie naprawi fatalnych wad, oznacza to, że nie powinieneś się już zbytnio przejmować, zrobiłeś, co mógłeś, ale projekt nie wydaje się już opłacalny.

Nicolas Raoul
źródło
Dzięki - przypuszczam, że tutaj Github nie świeci dokładnie - nie mam tego rodzaju kontroli bezpieczeństwa. Jakie platformy VCS obsługują funkcje, o których mówisz?
Mendhak,
Wręcz przeciwnie, Github jest w rzeczywistości jednym z najlepszych miejsc. Dzięki Github możesz utworzyć konto „organizacyjne” i zaprosić innych programistów do przyłączenia się. Ponadto Github ułatwia oglądanie popularnych widelców, co jest dobrą rzeczą.
Nicolas Raoul,