¿Cómo debe lidiar con un proyecto popular que ya no desea mantener?

75

Soy el encargado de mantener un proyecto que tiene una gran base de usuarios no técnicos. Lo he estado manteniendo durante aproximadamente 4 años y agregué nuevas funciones a medida que fueron solicitadas.

Me gustaría pasar a otros proyectos ahora y dejar de desarrollar para esta aplicación. Debido a la naturaleza no técnica de los usuarios, ha habido muy pocas contribuciones de código en el pasado. No creo que pueda encontrar a nadie más para hacerse cargo del proyecto en mi lugar.

Errores, problemas, solicitudes de funciones: todavía están llegando. Todavía estoy respondiendo a correos electrónicos para obtener ayuda, ya que no estoy seguro de si debo ignorarlos, decirles que no estoy trabajando en la aplicación o si debo responder a correos electrónicos solo en ciertos casos.

¿Cuál es la mejor manera de 'abandonar' este proyecto, pero aún permitir que los usuarios usen la aplicación?


Actualización (julio de 2016) - No salió según lo planeado. Hice un anuncio en el archivo README y poco después, comencé a recibir contribuciones de una naturaleza más sustancial. Solicitudes de extracción con correcciones de errores, características, documentación, actividad de problemas. Desde entonces, el proyecto se ha sentido 'revigorizado' y ahora felizmente lo mantengo junto con proyectos más nuevos. También tengo colaboradores. Supongo que puede haber sido el tipo de contribuciones que estaban afectando mi visión del proyecto y con la mejora de la calidad de las contribuciones, ya no parecía una tarea.

Mendhak
fuente
1
¿Podría portarlo a una nueva plataforma o nueva tecnología? De esa forma, sería interesante para usted trabajar y podría explicar a las llamadas de soporte que ya no se realizarían correcciones de errores y mejoras en el código anterior y sugeriría que se actualicen cuando esté listo, etc.
Stefan
55
Por curiosidad, ¿cuál es el proyecto? ¿Enlazar? (suponiendo que sea de código abierto)
Andres F.
70
Es Google Reader, ¿no es así?
Kyralessa 05 de
3
Vuelva a verificar su suposición: ¿Su base de usuarios es demasiado poco técnica para mantener el proyecto o su proyecto está demasiado cerrado para permitir la participación más allá de los problemas y las solicitudes de características?
Bengt
Ahora todos queremos ver el proyecto ... Deberías agregar el enlace.
daviewales

Respuestas:

40

Supongo que este no es un proyecto en un lugar de trabajo donde eres un empleado remunerado y algo que haces gratis en tu tiempo libre.

Si no está ganando dinero con esto, entonces claramente no hay ningún incentivo para usted, y ningún incentivo para que alguien más venga fresco a lidiar con eso. (a menos que sea para una organización benéfica u organización voluntaria similar)

Como alternativa, ¿por qué no considerar la posibilidad de agregar funciones de pago?

De esta manera, puede tener algún incentivo para continuar. Puede encontrar personas dispuestas a pagar, especialmente cuando la alternativa es que el sistema deje de desarrollarse activamente. (por supuesto, las personas pueden abandonar su sistema, pero qué le importa, ya no se le paga).

¿Otra opción podría ser utilizar el proyecto para aprender nuevas tecnologías? ¿Es un sitio web? ¿Actualizar a la última tecnología? ¿Convertir de Asp.Net a MVC4 por ejemplo? ¿Construir una versión móvil, hacerla basada en el servicio y crear una aplicación iOS para ella?

ozz
fuente
23
Una posibilidad diferente es vender (o donar) el proyecto a una empresa. Tienes los usuarios, una empresa puede ver el beneficio.
Sulthan
@Sulthan absolutamente!
ozz
1
Si no está ganando dinero con esto, aumente las tarifas o comience a cobrar por el servicio.
Bill Leeper
9
Lo etiquetó como "código abierto". Eso es como una obra de caridad o trabajo voluntario. Los motivos son simplemente diferentes. Por lo general, no puede vender proyectos de código abierto. Pero siempre podía cobrar por trabajo adicional. Obtenga un grupo de donaciones para lo que se arregla / agrega a continuación.
Philip
@Sulthan: muy interesante, no lo había considerado. Veré qué compañías estarían interesadas en esto.
Mendhak 05 de
25

Anuncie su abandono del producto a su comunidad de usuarios. Tal vez encuentre un sucesor para su rol de mantenedor. Intente organizar algún tiempo de entrega, como lo haría con un proyecto en su trabajo diario.

Como esr lo puso en La Catedral y El Bazar :

Cuando pierde interés en un programa, su último deber es entregarlo a un sucesor competente.

Residuo
fuente
2
Para agregar a esto, comente en los sitios de programación y vea si alguien está dispuesto a hacerse cargo. Algunas personas no están seguras de los proyectos que quieren hacer, pero quieren algo de experiencia en codificación y están abiertas a ideas. El período de entrega puede implicar más trabajo a corto plazo, pero con suerte dará sus frutos a largo plazo.
James
11

Otra sugerencia para usted, que es un poco lo contrario de lo que está preguntando, pero creo que debería estar en su lista para su consideración. ¿Has considerado no abandonarlo? Si tiene un proyecto en el que hay personas que usan activamente y tiene requisitos cada vez mayores, pero no puede modificarlo por sí mismo y usted es el único experto en el software ... entonces está en condiciones de cobrarles dinero por ello.

Si la fuente está abierta, podría considerar cerrarla (su elección si desea sofocar la competencia para desarrollar aún más el proyecto). Cuando llegue la próxima solicitud de función, diga sí por un cargo de $ xyz.

Solo una opción a considerar.

Ian
fuente
11
Tomar una aplicación de código abierto anterior y convertirla en código cerrado molestaría mucho a muchos usuarios y puede que ni siquiera sea legalmente posible si otros usuarios han contribuido con código bajo ciertas licencias de código abierto, dependiendo de los acuerdos de contribuyentes que firmaron o no. Hay una gran diferencia entre cobrar por su trabajo en un proyecto de código abierto y cerrar repentinamente lo que estaba abierto anteriormente.
James
3
@ James Cobrar por el trabajo realizado no necesariamente significa código cerrado. Simplemente significa que alguien quiere que el software tenga nuevas funciones, y quiere un incentivo para agregarlo; no hay razón para que no pueda cobrar por su trabajo mientras lo mantiene abierto.
Daenyth
1
@Daenyth Por supuesto, pero esta respuesta menciona específicamente el cierre, por lo que es algo que debe discutirse.
James
@ James No es necesario que sea de código cerrado. Todavía puede lanzar las nuevas funciones como código abierto ... pero no hay ninguna razón para liberar el código hasta que se borre la verificación.
Trineo
1
@ArtB Sí, lo sé, pero esta respuesta menciona específicamente el cierre, por lo que mi comentario fue específicamente en referencia a eso.
James
7

Es difícil abandonar su base de seguidores, especialmente cuando es diferente de ellos. Si hubiera desarrolladores en el grupo de usuarios, sería un problema fácil de resolver: solo anuncie su salida inminente y sugiera que alguien más se ofrezca para ayudarlos a ponerse al día antes de irse. Como no lo hay, la pregunta es realmente esta: ¿Puede usted (o sus usuarios) encontrar a alguien que lo reemplace en un plazo que tenga sentido para usted (o sus usuarios)?

En el pasado, he mantenido varios proyectos durante años más de lo que me importaba porque era bueno para mi reputación. Mi estatura, aunque relativamente pequeña en mi campo, me ha ayudado a encontrar trabajo cuando los necesitaba o quería, y eso tiene valor para mí. Suficiente valor para que valga la pena dedicar mi tiempo cuando pueda. Finalmente, por supuesto, me alejé, pero me aseguré de que el código completo del proyecto estuviera disponible para cualquier sucesor.

Ross Patterson
fuente
"Es difícil abandonar su base de seguidores, especialmente cuando es diferente de ellos". - Exactamente! Me preocupo por ellos y algunas de las otras publicaciones aquí están hablando de aclarar mis intenciones + cargar, lo que podría funcionar.
Mendhak 05 de
"Mi estatura en mi campo me ha ayudado a encontrar trabajo". Buen punto: un proyecto de código abierto siempre se ve impresionante en un currículum vitae.
Mawg
5

¿Quieres abandonar el proyecto porque ...

ya no quieres hacerlo?

Entonces: cierre elegante ala Reader.

O ... contrate a un desarrollador (continúe a continuación)

¿O porque estás perdiendo dinero?

Calcule los costos de bolsillo (y continúe a continuación)

¿O porque no estás ganando dinero?

Calcule cuánto necesita hacer para sentirse diferente:

  1. los gastos de bolsillo deben estar cubiertos
  2. costo de un desarrollador para continuar el desarrollo
  3. un margen de beneficio

Sea honesto con sus usuarios: explíqueles que mantener el servicio cuesta una cierta cantidad de tiempo, energía, etc.

Luego solicite donaciones y / o cobre por las funciones existentes . No intente inventar funciones premium que solo retrasen la determinación de si el servicio es realmente lo suficientemente valioso como para mantenerse. Simplemente ve con las características que tienes.

Si los usuarios se quejan bien, pueden ir a otro lado. Si no hay suficientes donaciones y / o registros, entonces cierre.

Sea brutal: una vez que desconecte el enchufe, no mire hacia atrás.

Palmadita
fuente
2
+1 para estas ideas. Incluya su "factura" mensual que cobraría si estuviera haciendo esto por alguien comercialmente. Luego diga a sus usuarios que podrían agruparse y contratar un mantenedor a partir de ese momento. Demonios, tal vez incluso puedas postularte para el puesto :)
Zlatko
@zladuric: estoy de acuerdo en que es por eso que tengo "el costo de un desarrollador para continuar el desarrollo" (donde "usted" podría ser ese desarrollador). Demasiados desarrolladores hacen algo "divertido" sin reconocer la necesidad de administrar un negocio. TANSTAAFL
Pat
3

Tienes un par de opciones como otras han señalado. Mi opción es publicar un aviso de fin de vida. Indique que el producto se cerrará en tal o cual fecha.

Además, indique que dado que este producto está llegando al final de su vida útil, solo se abordarán los errores críticos que afecten la capacidad de la aplicación para funcionar según lo diseñado o previsto. Es decir, si el servidor está inactivo, lo volverá a poner en funcionamiento.

Si los usuarios tienen datos, es posible que deba agregar una forma de exportarlos.

Eche un vistazo a lo que Google hizo recientemente con Reader para obtener orientación. Lo cerraron y era un servicio muy popular, pero no se ajustaba a sus objetivos a largo plazo, por lo que era necesario tomar la difícil decisión de cerrarlo.

Bill Leeper
fuente
1
+1 Aquí hay un ejemplo de un proyecto similar, excelente (IMO): picoos.sourceforge.net
Vorac
3

¿Es algún tipo de medida a mitad de camino una posible solución? ¿Continuar el proyecto pero disminuir su carga de trabajo?

Por ejemplo, usted dice que todavía está respondiendo a correos electrónicos para obtener ayuda. ¿Puedes configurar un foro de usuarios e insistir en que todas las consultas de soporte se realicen para que otros usuarios avanzados puedan ayudar?

James
fuente
1
Además, limite el desarrollo solo a las principales correcciones de errores. De esa manera, la aplicación (se supone que termina) funcional y robusta.
Vorac
Respuesta bien intencionada que solo está retrasando lo inevitable. Mátalo o gana dinero. No lo hagas hasta la mitad, entonces se convierte en una pérdida de energía.
Pat
2
@pat parece estar asumiendo que la única motivación que alguien podría tener es el dinero. Hay otras motivaciones para escribir software de código abierto, algo que creo que el operador entiende cuando habla de querer ayudar a sus usuarios. Lo que sea, tal vez esta respuesta no sea adecuada para el OP en este caso, pero hay otras soluciones además de "OMG Money" que al menos deberían discutirse.
James
@ James - lo siento pero sí. Necesitamos dinero para sobrevivir. Todos tenemos una cantidad de tiempo muy limitada en este mundo. Deberíamos centrarnos en las cosas que crean más "valor". Trabajar en proyectos que no se valoran es una pérdida de vidas. Cómo medir el valor: 1) si otras personas no encuentran valor en un proyecto (y no lo usan), entonces, ¿qué tan "gratificante" es ese proyecto? 2) el dinero es cómo medimos el "valor". 3) Costo de oportunidad: si OP continúa trabajando en este proyecto (¿no valorado?), ¿En qué está trabajando OP?
Pat
@Pat OP indica claramente que el proyecto tiene una gran base de usuarios, por lo que no sé de dónde sacas esta basura "no valorada". El hecho de que nadie pague actualmente no significa que nadie lo valore. El dinero es una medida de valor; muchas personas también ponen acciones en otras medidas, como crearon un software útil que muchos otros quieren. Pero hablando de tiempo limitado, realmente no puedo molestarme en entrar en una discusión política sobre esto en una sección de comentarios: adiós.
James
1

Pasar a puro pago matará a muchos usuarios, pero hay muchas alternativas a puro pago. Un videojuego que juego ofrece a los donantes algunos beneficios adicionales, como más descargas por hora, "un juego basado en habilidades puras, que no debe confundirse con el pago para ganar basura jajaja". Otro juego Path of Exile ofrece actualizaciones cosméticas. Otros sitios ponen encuestas a cambio de ancho de banda. El codificador de donaciones otorga a los usuarios gratuitos licencias para (X Time) renovables tantas veces como quieran, pero los donantes obtienen licencias permanentes.

Hay toneladas de opciones que se ofrecen por dinero en efectivo, pero aún así mantienen a los usuarios gratuitos.

La mayoría de las personas no tienen problemas para apoyar algo que les gusta, así que, sinceramente, solo trataría de preguntar primero estableciendo un área de propinas calculada para cubrir su costo mensual.

Dibujó
fuente
1
Puedo ver cómo su respuesta se relaciona con la pregunta del OP, pero el OP está pidiendo un aspecto ligeramente diferente. Quieren pasar del proyecto. Muchos de los puntos en su respuesta crearían un vínculo continuo con el proyecto.
1

Usted ha incluido la open-sourceetiqueta, por lo que supongo que su proyecto es de software de código abierto.

ha habido muy pocas contribuciones de código en el pasado

Eso es lamentable, pero comprensible en caso de que estuvieras haciendo todo. Muchos usuarios no se involucran mientras funcione razonablemente.

A algunos líderes les gusta delegar todas las responsabilidades, y a algunos líderes les gusta mantener un control más estricto. Si bien es necesario un equilibrio, la clave aquí es delegar lo antes posible.

He creado más de 30 proyectos de código abierto, y muchos todavía están activos a pesar de que los he dejado. Esto es lo que recomendaría:

  1. Dé acceso al rastreador de errores MUY generosamente, tal vez a cualquiera que haya contribuido alguna vez con una línea de código. Si alguien comienza a hacer locuras (muy baja probabilidad), todavía tiene control de administrador para eliminarlas. No olvide otorgar otros derechos: control de código fuente, wiki, traducción colectiva, página de Facebook, cuenta de Twitter, sitio web oficial, google analytics, etc.

  2. Publique en el foro (y en el aviso del sitio web) anunciando que se jubila y buscando un nuevo líder de proyecto.

  3. Incluso si nadie interviene como líder del equipo, los problemas fatales que podrían ocurrir (ejemplo tonto: una URL codificada se convierte en 404, lo que hace que la aplicación se bloquee al inicio), probablemente alguien la solucionará. Si nadie repara fallas fatales, significa que ya no debes preocuparte demasiado, has hecho lo que pudiste, pero el proyecto ya no parece ser viable.

Nicolas Raoul
fuente
Gracias, supongo que aquí es donde Github no brilla exactamente, no tengo ese tipo de controles de seguridad. ¿Qué plataformas VCS admiten el tipo de características de las que estás hablando?
Mendhak
Por el contrario, Github es en realidad uno de los mejores lugares. Con Github puede crear una cuenta de "organización" e invitar a otros desarrolladores a unirse. Además, Github hace que sea fácil ver las horquillas populares, lo cual es algo bueno.
Nicolas Raoul