Come dovresti affrontare un progetto popolare che non vuoi più mantenere?


75

Sono il manutentore di un progetto che ha una vasta base di utenti non tecnici. Lo sto mantenendo da circa 4 anni e aggiungendo nuove funzionalità come sono state richieste.

Vorrei ora passare ad altri progetti e smettere di sviluppare per questa applicazione. A causa della natura non tecnica degli utenti, ci sono stati pochissimi contributi in codice in passato. Non credo che sarò in grado di trovare qualcun altro a prendere il posto del progetto al posto mio.

Bug, problemi, richieste di funzionalità: stanno ancora arrivando. Sto ancora rispondendo alle e-mail di aiuto, poiché non sono sicuro che dovrei ignorarle, dire loro che non sto lavorando sull'applicazione, o se dovrei rispondere alle e-mail solo in alcuni casi.

Qual è il modo migliore per "abbandonare" questo progetto, ma consentire comunque agli utenti di utilizzare l'applicazione?


Aggiornamento (luglio 2016) - Non è andato come previsto. Ho fatto un annuncio nel README e subito dopo ho iniziato a ricevere contributi di natura più sostanziale. Estrai richieste con correzioni di bug, funzionalità, documentazione, attività di emissione. Da allora, il progetto si è sentito "rinvigorito" e ora lo mantengo felicemente insieme a progetti più recenti. Ho anche dei collaboratori. A quanto pare, potrebbe essere stato il tipo di contributi che ha influenzato la mia visione del progetto e con la qualità dei contributi in miglioramento, non mi sembrava più un lavoro ingrato.


1
Potresti portarlo su una nuova piattaforma o nuova tecnologia? In questo modo sarebbe interessante su cui lavorare e potresti spiegare a supporto delle chiamate che correzioni di bug e miglioramenti non sarebbero più stati fatti al vecchio codice e suggerire che si aggiornano quando è pronto, ecc.?
Stefan

5
Per curiosità, qual è il progetto? Link? (supponendo che sia open source)
Andres F.

70
È Google Reader, vero?
Kyralessa

3
Ricontrolla il tuo presupposto: la tua base utenti è troppo non tecnica per mantenere il progetto o il tuo progetto è troppo chiuso per consentire la partecipazione oltre i problemi e le richieste di funzionalità?
Bengt,

Ora vogliamo tutti vedere il progetto ... Dovresti aggiungere il link.
daviewales,

Risposte:


40

Immagino che questo non sia un progetto sul posto di lavoro in cui sei un dipendente retribuito e qualcosa che fai gratuitamente nel tuo tempo libero?

Se non stai facendo soldi con questo, allora chiaramente non c'è alcun incentivo per te e nessun incentivo per chiunque altro che arrivi fresco per affrontarlo. (a meno che forse non sia per un'organizzazione benefica o simile)

In alternativa, perché non guardare la possibilità di aggiungere funzionalità a pagamento.

In questo modo potresti avere qualche incentivo per continuare. Potresti trovare persone disposte a pagare, soprattutto quando l'alternativa è che il sistema smetta di essere sviluppato attivamente. (ovviamente le persone possono abbandonare il tuo sistema, ma cosa ti interessa, non sei già pagato).

Un'altra opzione potrebbe essere quella di utilizzare il progetto per apprendere nuove tecnologie? È un sito Web? Eseguire l'aggiornamento alla tecnologia più recente? Convertire ad esempio da Asp.Net a MVC4? costruire una versione mobile, renderla basata sul servizio e creare un front-end per app iOS?


23
Una possibilità diversa è quella di vendere (o donare) il progetto a un'azienda. Hai gli utenti, un'azienda può vedere il profitto.
Sulthan,

@Sulthan assolutamente!
ozz,

1
Se non stai guadagnando da questo aumento dei tassi o inizia ad addebitare il servizio.
Bill Leeper,

9
Lo ha taggato "open source". Questo è un po 'come la carità o il volontariato. I motivi sono semplicemente diversi. In genere non è possibile vendere progetti open source. Ma potrebbe sempre pagare per lavoro aggiuntivo. Ottieni un pool di donazioni per ciò che viene corretto / aggiunto successivamente.
Filippo

@Sulthan - molto interessante, non l'avevo considerato. Vedrò quali aziende sarebbero interessate a questo.
Mendhak,

25

Annuncia il tuo abbandono del prodotto alla tua community di utenti. Forse troverai un successore per il tuo ruolo di manutentore. Cerca di organizzare un po 'di tempo per la consegna, come faresti con un progetto nel tuo lavoro quotidiano.

Come diceva esr in The Cathedral And The Bazaar :

Quando perdi interesse per un programma, il tuo ultimo dovere è consegnarlo a un successore competente.


2
Per aggiungere a questo, commentare i siti di programmazione e vedere se qualcuno è disposto a subentrare. Alcune persone non sono sicure di quali progetti vogliano fare ma vogliono avere qualche esperienza di programmazione e sono aperte alle idee. Il periodo di consegna può comportare più lavoro a breve termine, ma si spera che ripagherà a lungo termine.
James,

11

Un altro suggerimento per te, che è leggermente l'opposto di quello che stai chiedendo, ma penso che dovrebbe essere nella tua lista per considerazione. Hai pensato di non abbandonarlo? Se hai un progetto per il quale ci sono persone che utilizzano attivamente e per cui hanno requisiti crescenti, ma non riesci a modificarlo da solo e sei l'unico esperto del software ... allora sei nella posizione di addebitare loro denaro per questo.

Se la fonte è aperta, potresti considerare di chiuderla (la tua scelta se vuoi reprimere la concorrenza sviluppando ulteriormente il progetto). Quando arriva la richiesta di funzione successiva, dire di sì con un addebito di $ xyz.

Solo un'opzione da considerare.


11
Prendere un'applicazione precedentemente open source e renderla chiusa avrebbe infastidito molti utenti e potrebbe anche non essere legalmente possibile se altri utenti hanno contribuito con il codice con determinate licenze open source, a seconda di eventuali accordi con i contributori che hanno sottoscritto o meno. C'è una grande differenza tra la carica per il tuo lavoro su un progetto open source e la chiusura improvvisa di ciò che era precedentemente aperto.
James,

3
@James Fare pagare per il lavoro svolto non significa necessariamente fonte chiusa. Significa solo che qualcuno vuole che il software abbia una nuova funzionalità e desidera un incentivo per aggiungerlo - non c'è motivo per cui non possa pagare per il suo lavoro mentre lo mantiene open source.
Daenyth,

1
@Daenyth Certo, ma questa risposta menziona specificamente la sua chiusura, quindi è qualcosa che deve essere discusso.
James,

@James Non è necessario renderlo chiuso. Puoi ancora rilasciare le nuove funzionalità come open-source ... ma non c'è motivo di rilasciare per eseguire il commit del codice fino a quando il controllo non viene cancellato.
Slitta,

1
@ArtB Sì, lo so, ma questa risposta menziona specificamente la sua chiusura, quindi il mio commento era specificamente in riferimento a quello.
James,

7

È una cosa difficile abbandonare la tua base di fan, specialmente quando sei diverso da loro. Se ci fossero sviluppatori nel gruppo di utenti, sarebbe un problema facile da risolvere: basta annunciare la tua imminente uscita e suggerire a qualcun altro di fare un passo avanti, offrendo di aiutarli a mettersi al passo prima di partire. Dato che non ce ne sono, la domanda è davvero questa: puoi tu (oi tuoi utenti) trovare qualcuno che ti sostituisca in un lasso di tempo che ha senso per te (o per i tuoi utenti).

In passato, ho mantenuto diversi progetti per anni più a lungo di quanto mi importasse perché era buono per la mia reputazione. La mia statura, per quanto relativamente piccola, nel mio campo mi ha aiutato a trovare lavoro quando ne avevo bisogno o li desideravo, e questo ha valore per me. Abbastanza valore per far valere la pena dedicare il mio tempo quando potevo. Alla fine, ovviamente, mi sono allontanato, ma mi sono assicurato che il codice completo del progetto fosse disponibile per tutti i successori.


"È una cosa difficile abbandonare la tua base di fan, specialmente quando sei diverso da loro." - Esattamente! Mi preoccupo per loro e alcuni degli altri post qui parlano di chiarire le mie intenzioni + addebito, che potrebbe funzionare.
Mendhak,

"La mia statura nel mio campo mi ha aiutato a trovare lavoro". Un buon punto: un progetto Open Source sembra sempre impressionante su un curriculum / CV.
Mawg,

5

Vuoi abbandonare il progetto perché ...

non vuoi più farlo?

Quindi: arresto grazioso ala Reader.

Oppure ... assumi uno sviluppatore (continua sotto)

O perché stai perdendo soldi?

Calcola i costi immediati (e continua di seguito)

O perché non stai facendo soldi?

Calcola quanto devi fare per farti sentire diversamente:

  1. le spese vive devono essere coperte
  2. costo di uno sviluppatore per continuare lo sviluppo
  3. un margine di profitto

Sii onesto con i tuoi utenti: spiega loro che per mantenere il servizio è necessario un certo tempo, energia, ecc.

Quindi chiedere donazioni e / o addebitare funzionalità esistenti . Non tentare di inventare funzionalità premium che ritardano semplicemente a determinare se il servizio è davvero abbastanza prezioso da supportarsi. Basta andare con le funzionalità che hai.

Se gli utenti si lamentano bene, possono andare altrove. Se non abbastanza donazioni e / o iscrizioni, quindi chiudere.

Sii brutale - una volta staccata la spina non guardare indietro.


2
+1 per queste idee. Includi la tua "fattura" mensile da addebitare se lo facessi per qualcuno commercialmente. Quindi dì ai tuoi utenti che potrebbero riunirsi e assumere un manutentore da quel momento in poi. Cavolo, forse puoi anche candidarti per la posizione allora :)
Zlatko,

@zladuric - concordato che è per questo che ho "il costo di uno sviluppatore per continuare lo sviluppo" (dove "tu" potresti essere quello sviluppatore). Troppi sviluppatori fanno qualcosa di "divertente" senza riconoscere la necessità di gestire un'azienda. TANSTAAFL
Pat

3

Hai un paio di opzioni come altri hanno notato. La mia opzione è di mettere un avviso di fine vita. Indicare che il prodotto verrà spento in tale e tale data.

Inoltre, indica che poiché questo prodotto sta per esaurirsi, verranno risolti solo i bug critici che incidono sulla capacità dell'applicazione di funzionare come previsto o previsto. Ad esempio, se il server è inattivo, lo riavvierai e lo eseguirai di nuovo.

Se gli utenti dispongono di dati, potrebbe essere necessario aggiungere un modo per esportarli.

Dai un'occhiata a ciò che Google ha fatto di recente con Reader come guida. Lo hanno chiuso ed era un servizio molto popolare, ma non si adattava ai loro obiettivi a lungo termine, quindi è stata presa la decisione difficile di spegnerlo.


1
+1 Ecco un esempio di un progetto simile, eccellente (IMO): picoos.sourceforge.net
Vorac,

3

Una sorta di misurazione a metà strada è una possibile soluzione? Continuare il progetto ma ridurre il carico di lavoro?

Ad esempio, dici che stai ancora rispondendo alle e-mail di aiuto. Puoi creare un forum di utenti e insistere sul fatto che tutte le domande di supporto vengano fatte in modo che altri utenti esperti possano aiutarti?


1
Inoltre, limitare lo sviluppo solo alle principali correzioni di bug. In questo modo l'applicazione (dovrebbe finire) funzionale e robusta.
Vorac,

Una risposta ben intenzionata che sta ritardando l'inevitabile. Uccidilo o guadagna soldi. Non farlo a metà strada, poi diventa solo un consumo di energia.
Pat

2
@pat sembra che tu stia assumendo che l'unica motivazione che qualcuno potrebbe avere è il denaro. Ci sono altre motivazioni nella scrittura di software open source, qualcosa che penso che l'op capisca mentre parlano di voler aiutare i loro utenti. In ogni caso, forse questa risposta non è adatta all'OP in questo caso, ma si tratta di soluzioni diverse da "OMG Money" che dovrebbero almeno essere discusse.
James,

@James - scusa ma sì. Abbiamo bisogno di soldi per sopravvivere. Abbiamo tutti un periodo di tempo molto limitato in questo mondo. Dobbiamo concentrarci sulle cose che creano il maggior "valore". Lavorare su progetti che non sono apprezzati è uno spreco di vita. Come misurare il valore: 1) se altre persone non trovano valore in un progetto (e non lo usano), allora quanto è "gratificante" quel progetto? 2) il denaro è il modo in cui misuriamo il "valore". 3) Costo opportunità - se l'OP continua a lavorare su questo progetto (non valutato?) - su cosa sta lavorando l'OP?
Pat

@Pat OP afferma chiaramente che il progetto ha una vasta base di utenti, quindi non so da dove provenga questa spazzatura "non apprezzata". Solo perché nessuno paga attualmente non significa che nessuno lo valuti. Il denaro è una misura di valore; molte persone mettono anche in magazzino altre misure, come hanno fatto un utile software che molti altri vogliono. Ma parlando di tempo limitato, non riesco davvero a preoccuparmi di entrare in una discussione politica su questo in una sezione di commenti - arrivederci.
James,

1

Passare al puro pagamento ucciderà molti utenti, ma ci sono molte alternative al puro pagato. Un videogioco a cui gioco offre ai donatori alcuni vantaggi extra come più download all'ora "un gioco basato sull'abilità pura, da non confondere con la retribuzione per vincere la spazzatura lol". Un altro gioco Path of Exile offre aggiornamenti cosmetici. Altri siti mettono sondaggi in cambio di larghezza di banda. Il programmatore di donazioni offre agli utenti gratuiti una licenza per (X Time) rinnovabile molte volte come vogliono, ma i donatori ottengono una licenza permanente.

Ci sono tonnellate di opzioni che offrono denaro contante, ma mantengono anche gli utenti gratuiti.

La maggior parte delle persone non ha problemi a sostenere qualcosa che gli piace così onestamente, proverei prima a chiedere impostando un'area di suggerimento calcolata per coprire il costo mensile.


1
Vedo come la tua risposta si collega alla domanda del PO, ma il PO sta ponendo un aspetto leggermente diverso. Vogliono andare avanti dal progetto. Molti dei punti della tua risposta creerebbero un legame continuo con il progetto.

1

Hai incluso il open-sourcetag, quindi immagino che il tuo progetto sia software open source.

ci sono stati pochissimi contributi in codice in passato

È sfortunato, ma comprensibile nel caso tu stia facendo tutto. Molti utenti non vengono coinvolti finché funziona in modo ragionevole.

Ad alcuni leader piace delegare tutte le responsabilità e ad altri leader piace mantenere un controllo più stretto. Mentre è necessario un equilibrio, delegare il prima possibile è la chiave qui.

Ho creato oltre 30 progetti open source e molti sono ancora attivi anche se li ho lasciati. Ecco cosa consiglierei:

  1. Dare accesso al tracker di bug MOLTO generosamente, forse a chiunque abbia mai contribuito con una riga di codice. Se qualcuno inizia a fare cose folli (probabilità molto bassa), hai ancora il controllo di amministratore per rimuoverle. Non dimenticare di cedere altri diritti: controllo del codice sorgente, wiki, traduzione della folla, pagina Facebook, account Twitter, sito Web ufficiale, analisi di Google, ecc.

  2. Pubblica sul forum (e avviso sul sito Web) che annuncia che stai andando in pensione e stai cercando un nuovo capo progetto.

  3. Anche se nessuno interviene come leader del team, potrebbero verificarsi problemi fatali (esempio sciocco: un URL hardcoded diventa 404, causando l'arresto anomalo dell'app all'avvio), probabilmente verrà risolto da qualcuno. Se nessuno corregge difetti fatali, significa che non dovresti più preoccuparti troppo, hai fatto quello che potevi, ma il progetto non sembra più essere fattibile.


Grazie - suppongo che sia qui che Github non brilli esattamente - non ho questo tipo di controlli di sicurezza. Quali piattaforme VCS supportano il tipo di funzionalità di cui stai parlando?
Mendhak,

Al contrario, Github è in realtà uno dei posti migliori. Con Github puoi creare un account "organizzativo" e invitare altri sviluppatori a unirsi a esso. Inoltre, Github rende facile vedere le forcelle popolari, il che è una buona cosa.
Nicolas Raoul,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.