Nuevo desarrollador de software supuestamente experimentado que interrumpe mi trabajo actual en una organización de voluntarios

Actualización: esta situación está resuelta

Lea cómo terminó todo en la parte inferior de la publicación.

Antecedentes

Soy un estudiante de ingeniería de software que se gradúa y trabajo como desarrollador de aplicaciones backend. Hace aproximadamente un año me encontré con esta organización de voluntarios de veteranos para veteranos. Me encogí por el estado de su TI. De hecho, no había TI en absoluto, pero esta organización se basa en su administración basada en Excel. Me ofrecí a ayudarlos con sus problemas de TI, lo cual aceptaron agradecidos. Con el tiempo, logré ayudarlos con varios problemas, como hacer que trabajaran en un documento compartido en lugar de enviar el documento de Excel por correo varias veces al día, eliminar virus de sus computadoras, pero su principal problema seguía siendo: su sistema de administración basado en Excel. está inflado, difícil de usar y lleno de errores. Me ofrecí a echar un vistazo a la posibilidad de reescribirlo como una aplicación web, explicando que soy un estudiante y un trabajador a tiempo completo, por lo que no No puedo dedicarle más de unas pocas horas a la semana y tengo muy poca experiencia con las aplicaciones web. Les dije que potencialmente podría tomar un par de años. Un técnico de TI con experiencia en Excel también se unió y mejoró mucho el uso de Excel, mientras yo continuaba con la aplicación web a largo plazo.

Durante el último año, pasé bastante tiempo aprendiendo PHP, REST API y otras habilidades necesarias para crear la aplicación web. No va rápido, pero va bien. Configuré completamente el host y optimicé varias cosas de DevOp, como la ejecución automática de pruebas unitarias y la carga en el servidor en un impulso de GitHub.

El presidente ahora también quiere un sitio web con información. Ha contratado a un buen amigo suyo, llamémoslo Steve, quien, según dice el presidente, es 'bueno con HTML', que trabajará junto a mí para hacer que el sitio web y la aplicación web funcionen juntos.

La cuestión

El presidente le dio a Steve acceso al host, aunque no lo necesitaría, ya que configuré la función de "carga" para que funcione a través de GitHub. Aparentemente, Steve canceló el host y apuntó el nombre de dominio a su servidor que ejecuta WordPress. Todo mi trabajo de DevOps en ese servidor se ha ido. Parece desconocer qué es GitHub, ignora por completo los requisitos existentes y no se comunica conmigo en absoluto.

La API para la aplicación web está bastante avanzada, pero, como con cualquier API, no tiene una parte visual. Mientras tanto, el presidente está encantado con el sitio web de WordPress de 1 página de Steve. Él piensa que Steve es el mejor desarrollador de software de todos los tiempos y puedo aprender mucho de él, pero Steve es en realidad un creador de sitios web de WordPress. El chico de Excel es consciente de la extensión de su conocimiento, pero parece que Steve no lo es. Cree que sabe más sobre desarrollo web que yo, porque ha creado varios sitios web para clientes reales (y es bueno en eso), pero no sabe, por ejemplo, qué es una solicitud HTTP o cómo funciona el control de versiones. (¡Sin embargo, estoy bastante seguro de que sabe mucho más sobre WordPress que yo!)

¿Qué puedo hacer?

Me gustaría convencer al presidente y/o al resto de los voluntarios de que Steve está interrumpiendo mucho y borrando mi trabajo. Desafortunadamente, además del chico de Excel y Steve, ninguno de los voluntarios es experto en tecnología. La mayoría de los otros voluntarios creen que Steve es mucho mejor desarrollador que yo. Quizá la diferencia de edad (los veinte años frente a los sesenta) también tenga que ver con eso. Me queda muy poca credibilidad como 'constructor de sitios web' (ellos no conocen la diferencia entre WordPress y una aplicación web) con los voluntarios, debido a las críticas de Steve y porque no pueden 'ver' mi API. He sugerido una reunión de Skype antes (ya que Steve vive lejos de los otros voluntarios), pero Steve 'no tiene Skype', por lo que no es posible.

No quiero abandonar a todos los veteranos que necesitan mi ayuda (indirecta), pero también quiero dejar atrás esta fuente constante de estrés. ¿Cómo puedo recuperar la credibilidad y convencerlos de que Steve está interrumpiendo activamente mi trabajo?

Actualización: cómo terminó todo

Sé que todos están interesados ​​en cómo terminó esto;)

Hablé con Excel-guy sobre cómo proceder. El chico de Excel realmente no siguió lo que pasó, pero entendió que no estaba feliz con las acciones de Steve. Lo llamaríamos más tarde. Solo tomó un poco de tiempo para que surgieran más problemas: las acciones de Steve también hicieron que el correo electrónico quedara inutilizable. Con el presidente y el chico de Excel inundados con llamadas telefónicas de voluntarios, rápidamente pensaron que Steve accidentalmente creó un pequeño desastre.

Mientras tanto, se ha incorporado al equipo un nuevo desarrollador web, otro amigo de la presidencia. Parece consciente de lo que sabe y lo que no sabe. Admite que no sabe PHP ni HTML ni GitHub, pero cree que podemos aprender unos de otros y estoy de acuerdo. Hemos decidido que una aplicación web puede no ser la mejor manera de hacerlo. En cambio (gracias a los consejos de algunas personas increíbles aquí), hemos decidido seguir adelante con una hoja de cálculo de Google basada en PHP.

Hemos llegado a la conclusión de que tengo más experiencia con el desarrollo de software en general, el chico de Excel con Excel y Steve y el chico nuevo con sitios web. Estoy a cargo del back-end, Excel-guy estará a cargo del frontend basado en hojas de cálculo de Google y colaboraremos estrechamente.

Steve ha sido puesto a cargo del sitio web junto con el chico nuevo. A todos se les ha dicho explícitamente que no cambien ninguna configuración sin consultar a todas las demás personas de TI. Todas esas decisiones deben ser aprobadas por todos ahora. Vamos a trabajar con resultados similares a los de un sprint, para que las personas sin conocimientos técnicos también puedan ver el progreso.

En definitiva, ha sido una gran oportunidad de aprendizaje para mí.

¿Te preocupa abandonar a los voluntarios que "necesitan" tu ayuda o tu proyecto y las horas que has dedicado hasta ahora?
@rath ambos. Los voluntarios que no están en el “tablero” (no estoy seguro de la palabra en inglés) siempre están muy contentos con mi ayuda.
@Belle Ahora ha aprendido una de las lecciones más importantes para su futura carrera. No importa cuán bueno sea su backend si no tiene una interfaz bonita para mostrar a los negocios.
@Wilbert Creo que la comida para llevar mucho más valiosa aquí es la habitual, no es lo que sabes, sino a quién conoces.
@Mark aprendí dos lecciones muy valiosas aquí :)
Los gerentes tienden a dejarse impresionar por las nuevas ideas de personas nuevas, porque parecen crear nuevas posibilidades para que trabajen los gerentes. Es raro que las nuevas ideas sean tan útiles, o incluso realmente nuevas, como parecen al principio, pero es un efecto bastante común. Además, a veces las empresas y las organizaciones benéficas solo necesitan un sitio de wordpress porque no están haciendo nada único o complejo con su presencia en la web.
@Belle ¿Hay alguna posibilidad de que esté dispuesto a discutir sobre su proyecto en sí? Configuré una sala de chat: chat.stackexchange.com/rooms/73729/… He trabajado mucho con archivos de Excel durante años, creando aplicaciones basadas en PHP. No tienes que reinventar la rueda. PHP tiene complementos que pueden manejar archivos de Excel. Excel 2003 y posteriores también están basados ​​en XML, y se pueden leer aún más fácilmente.
Mejor vs peor es probablemente la forma incorrecta de pensar sobre esto. Parece que eres mejor para "hacer que las cosas funcionen" (es decir, eres un desarrollador de back-end) y Steve es mejor para "hacer que las cosas funcionen". Ambas son habilidades útiles, pero son habilidades diferentes, puede ser útil presentar esto como una definición de dónde se encuentran los límites de la responsabilidad.
@Belle Si estaba implementando DevOps correctamente, con suerte '¿cancelando el host?' no habría eliminado ningún trabajo... (ver devops.stackexchange.com/questions/653/… ). La forma en que ha redactado sus preguntas y respuestas me lleva a estar de acuerdo con las otras personas que sugieren que puede haber complicado esto y, de hecho, una solución más simple es mejor. Si una de sus llamadas API falla o necesitan agregar una nueva tabla, ¿podrán obtener ayuda de un nuevo desarrollador de PHP después de que se haya ido? ¿Incluso necesita una API en primer lugar?
¿Tienes la opción de alejarte de todo el lío? ¿Estás siendo pagado?
Creo que es importante tener en cuenta que el problema aquí no son tus habilidades técnicas. Tiene un problema de gestión de proyectos .
@Milney Tendrían exactamente el mismo problema y tenían exactamente el mismo problema antes de que el chico de Excel y yo nos uniéramos. Su Excel es un lío incoherente que es extremadamente difícil de entender y trabajar con él. Algún desarrollador en el pasado lo hizo para ellos y luego lo abandonó. La mantenibilidad es un requisito del que somos muy conscientes y para el que lamentablemente no tenemos una buena solución. Afortunadamente, Excel-guy tiene un conocimiento muy básico de PHP y un buen conocimiento de la base de datos, por lo que podría agregar una tabla y una consulta si es necesario.
@Milney Además, la organización no puede pagar múltiples anfitriones, todo funciona con donaciones, así que sí, la configuración del anfitrión se elimina. Tengo copias de seguridad de todos los scripts, pero tendré que reinstalar el correo electrónico, etc., que no funcionará hasta que tenga tiempo de reinstalarlo.
@BaileyS No me pagan. Es un trabajo voluntario que hago después del trabajo y además del trabajo universitario nocturno.
Una buena manera neutral de iniciar conversaciones en tecnología cuando crees que alguien ha hecho algo malo es "Parece que has hecho X. ¿Puedes decirme por qué hiciste eso?" siguiendo con "Esto también ha impactado a Y y es posible que no te hayas dado cuenta".
Otra lección para aprender: les dije que potencialmente podría tomar un par de años . Eso no funcionará sin una formalización seria del proceso. La gente se olvida, especialmente si no ven resultados.
Te costará cambiar a Steve, aunque el presidente te entienda, necesita la ayuda de Steve. En cambio, concéntrate en lo que estás haciendo. Aprende de esto y serás imparable en el futuro. Por ejemplo, al iniciar un proyecto largo como este, es mejor tener objetivos de entrega regulares, entregando porciones más pequeñas de la aplicación. En lugar de crear una capa a la vez (API, DB, UI), cree una pieza vertical (Administración de usuarios, Administración de miembros, Informes, etc.). La retroalimentación regular de los entregables del proyecto lo ayudaría a verse como un héroe durante todo el proyecto en lugar de al final.
@KevinH Construir verticalmente también garantiza que su pila realmente funcione como cree que lo hará y que no está olvidando algo crucial. No hay nada peor que tener una API "lista", solo para descubrir que es muy engorroso escribir un front-end contra ella y que hubiera sido mejor escribir de otra manera.
Mucha gente ha mencionado las lecciones aprendidas de esto, y son buenos puntos. Voy a agregar una lección potencial (YMMV según lo caritativo que sea): no trabaje gratis (excepto los proyectos de código abierto). Alguna vez. Ni siquiera trabajes barato. La gente no valorará adecuadamente tus aportes, ni tú por tus aportes.

Respuestas (12)

Así que tenemos tres personas involucradas: Charlie (como lo llamaré) el presidente. No tiene idea de nada de TI, pero es consciente de que su organización depende en gran medida de las computadoras. Por lo tanto, él está, por supuesto, feliz de que los voluntarios ayuden con eso.

Steve, el viejo amigo de Charlie. Ha estado creando pequeños sitios web (y/o tal vez blogs, ya que parece estar familiarizado con WordPress) antes y es razonablemente bueno con HTML. Es por eso que se ofreció a ayudar con el sitio web. HTML no es uno de los éxitos más recientes en las listas, por lo que las personas "buenas con HTML" no necesariamente están en contacto con las API de PHP, GitHub y REST. Es posible que no sea consciente de su importancia y HTML y WordPress se pueden usar de una manera razonablemente "sin complejidad" en la que no es necesario.

Pero luego está Belle (tú). Y Belle puso mucho esfuerzo en aprender todas esas cosas para producir el mejor resultado posible para Charlie y su organización. Charlie lo sabe, aunque también sabe que no puede juzgar su hábil trabajo con su conocimiento.

Charlie probablemente pensó que sería una buena idea no cargarte más cosas. Una aplicación web (para uso interno) y un sitio web (para mostrar la organización al exterior) son cosas completamente diferentes en su libro y, por lo tanto, sería una buena idea tener a alguien más (con menos conocimiento sobre el complejo Web- Cosas de la aplicación) para configurar el sitio web, mientras que sus valiosas habilidades se pueden usar para las cosas donde se necesitan.

Steve probablemente no estaba al tanto de que estaba interrumpiendo y destruyendo su trabajo, Charlie no estaba al tanto de que esto podría suceder y que Steve no necesitaría acceder a estas cosas para hacer su trabajo. Ambos están haciendo cosas web, ¿no es así?

No está claro si alguna vez trató de describir la situación como lo hizo aquí a Charlie (o Steve, o ambos).

Organice una reunión con todas las personas involucradas. Tome la iniciativa en esto, ya que podría ser el más experimentado (por educación y conocimiento, no por años). Planifique quién se supone que debe hacer qué, dónde se conectan esas cosas y cómo se manejan esas conexiones. Además, hable sobre quién puede y quién no puede acceder y cambiar cosas específicas. Haga que este grupo de voluntarios trabajen juntos como una organización. Esto, a la larga, reducirá el trabajo y el estrés para todos ustedes.

Si Steve no quiere o no puede participar en esta reunión, haga la reunión con Charlie y el chico de Excel de todos modos. Esto podría mostrarle a Charlie qué personas trabajan bien juntas y cuáles sabotean el trabajo de los demás. Si él y las otras personas involucradas no responden a esto, probablemente deba decidir dejarlo atrás y usar su tiempo como voluntario para otro caso que apoye y donde sus habilidades sean necesarias y apreciadas.

Muy buena respuesta, ciertamente me da algunas cosas a considerar. ¿Tiene algún consejo sobre cómo puedo recuperar la credibilidad antes de esta reunión?
¿Qué te hace sentir que has perdido credibilidad? Puedes tratar de ser "muy maduro" al respecto, explicando en tu correo electrónico "Tengamos una reunión" que entiendes que las cosas han ido un poco mal (sin culpar a nadie) y sientes que esta reunión es importante para mejorar la situación. Trate de no ser condescendiente, pero tampoco de disculparse (no es su culpa).
Esta es una buena respuesta. Una buena idea sería presentar cualquier conflicto en términos de "duplicación de trabajo"; no des la impresión de que estás herido. También: prepárate para alejarte. Al final del día, el chico de Wordpress podría tener más influencia que usted, y si no puede separar las responsabilidades en su reunión, podría ser más productivo para todos que usted se vaya.
Su tiempo en esta Tierra es limitado. Cada segundo que gastas en algo podrías haberlo gastado en otra cosa. El tiempo que le dedique a esta organización (aunque sea voluntariamente) nunca se utilizará para otra cosa. Úsalo con sabiduría. Si está feliz de gastarlo para ayudar a las personas, asegúrese de que esas personas no vean su ayuda como un obstáculo. Si ya no está contento de gastarlo allí, entonces no lo haga. Si cree que vale la pena escuchar los consejos anteriores (que en mi opinión son muy buenos consejos), hágalo. Sin embargo, debes saber esto: ya hiciste más de lo que mucha gente hubiera hecho. Te importaba, sufriste, lo intentaste.
@skymningen Los ayudé a solucionar varios problemas pequeños con el tiempo. Confiaron en mi consejo de TI. Pero luego, en 2 días, "Steve" construyó un sitio web completo, que aparentemente es más de lo que he hecho en un año. (No en la práctica, pero ellos no lo saben)
¿Te dijeron que Steve ha hecho más en dos días que tú en un año? Porque es muy fácil percibir que la gente piensa así. ¿Quizás simplemente felicitaron a Steve por lo que hizo más de lo que te elogiaron a ti y te sentiste poco apreciado? A menos que alguien te haya dicho explícitamente que ya no confía en tus habilidades, asumiría que este no es el caso. En cualquier caso, debe actuar bajo el supuesto de que DEBE tener credibilidad. Eso te hará parecer creíble.
@skymningen Puedo ver cómo perdió credibilidad, he visto lo mismo en un entorno corporativo. El chico del backend fue despedido porque su trabajo de backend era invisible y "no produjo nada", al chico del frontend no se le pidió, pero se vio obligado a hacerse cargo del backend, y todo el proyecto se vino abajo poco después. Lo mismo está a punto de suceder aquí. Es por una razón que todavía están atascados con Excel, no creo que OP haya sido el primero en intentar convencerlos de una aplicación personalizada.
@Alexander Todos los que trabajan allí son voluntarios, por lo que puedo ver, por lo que nadie será despedido. Además, es por eso que nunca antes hubo nadie que los convenciera de que una aplicación personalizada es mejor. En un entorno corporativo sería mucho más cuidadoso con las cosas que no se han dicho, pero con los voluntarios educaría mucho más el "beneficio de la duda".
WordPress es mucho más que una plataforma de blogs :(

No tengo ninguna razón para dudar de lo que estás diciendo sobre "Steve" y el impacto que está teniendo en tu trabajo y ciertamente es bastante malo que él ande cancelando cosas como el alojamiento web sin hablar contigo. Pero creo que debe enfrentarse a verdades duras: no está "perdiendo credibilidad como 'creador de sitios web'" porque realmente no tiene ninguna. Parece que está haciendo algo bueno en términos de aprender algunas habilidades sólidas de mejores prácticas (y eso es realmente admirable), pero desde el punto de vista de la organización de veteranos, no ha producido precisamente nada .en un año, mientras que "Steve" ha cambiado rápidamente algo que realmente pueden ver y comprender (es decir, el sitio de wordpress), por lo que no es descabellado que, como personas sin conocimientos técnicos, lleguen a la conclusión de que él es lo mejor. alguna vez.

En cuanto a qué hacer ahora, creo que tu instinto de tener una conversación con Steve es bueno: si no tiene Skype, ¿qué tal si sugieres una llamada telefónica? Supongo que probablemente tiene un teléfono. Si puede entablar un diálogo real con Steve, entonces tendrá muchas más posibilidades de encontrar una manera de trabajar juntos y evitar que él impacte en lo que está trabajando.

También sugeriría perder la actitud... te quejas de que Steve habla mal de ti, pero ¿no estás haciendo exactamente lo mismo con los comentarios sarcásticos acerca de que él no sabe qué es Github, etc.? Eso no le hará ningún favor, especialmente cuando no tiene resultados reales que lo respalden. Así que póngase su modesto límite, dele a Steve el crédito por lo que sabe y ya ha hecho con éxito e intente encontrar una manera en que puedan trabajar juntos y potencialmente usar las habilidades de los demás para complementarse mutuamente.

También depende de la complejidad del sitio. Una página de información simple va a ser difícil de vender las cosas de github, apis, etc. porque se vuelve demasiado compleja para algo simple. Pero si tiene eventos, registros, comercio electrónico, etc., entonces sería más fácil de vender.
Estoy de acuerdo con su respuesta, excepto la parte sobre la actitud del OP. Un poco frustrado, tal vez, pero no sarcástico en mi opinión.
WordPress en realidad tiene un control de versiones incorporado, por lo que trabajar con él no requiere ningún conocimiento de Git. Y tal vez Steve sea un experto en SVN;)

Toda la discusión hasta ahora parece ser "Su solución es mejor, pero Steve les está dando resultados visibles". Me gustaría lanzar otra posibilidad: la solución de Steve podría ser la mejor.

Esta es una organización de voluntarios que ni siquiera tenía un departamento de TI hasta que llegaste tú. Ahora, imagina que pasan un puñado de años y ni tú ni Steve están trabajando para este grupo... ¿qué se supone que deben hacer? Probablemente sería mucho más fácil encontrar a alguien que pueda abrirse camino a través de Wordpress que alguien que sepa PHP, Restful API, GitHub, etc. Diablos, soy un desarrollador de software profesional y solo sé algunas partes de eso. stack (generalmente Soap/C#/Bitbucket para nuestra empresa).

Antes de hacer algo más, sugeriría pensar y considerar ese ángulo un poco. Avanzando con la suposición de que su solución es simplemente mejor... bueno, realmente debería sopesarla y asegurarse de que realmente sea mejor.

Acordado. Es muy importante comprender los casos de uso de back-end. Considere los tipos de cambios que sus clientes realizarán en su sitio web y quién realizará esos cambios.
Soy escéptico de que esta solución sea mejor. Wordpress puede ejecutarse en el mismo host, especialmente si ya usa PHP.
En qué servidor se ejecuta WordPress es un poco irrelevante. El problema que menciono es: ¿qué es más fácil para una persona que no es de TI asumir la responsabilidad de: un sitio de WordPress o una aplicación PHP/REST programada a medida con un marco de implementación de GitHub? Todos los comentarios/respuestas en la página parecían dar por sentado que PHP/REST era la mejor opción. Estaba señalando que ... es mejor que el OP realmente analice detenidamente si WordPress (o algo similarmente simple) podría ser mejor a largo plazo para este caso particular.
Me gustaría lanzar otra posibilidad: la solución de Steve podría ser la mejor... Mis pensamientos exactamente. El OP ha hecho un gran trabajo por sí mismo, pero esta organización realmente no lo necesita. Según lo que el OP nos ha dicho sobre esta organización, un sitio de wordpress parece mucho más adecuado.
Hay una cosa que realmente vale la pena señalar: el OP aprende mucho en el proceso. Independientemente de qué solución sea mejor para la organización, OP aprendió muchas habilidades técnicas. Y ahora, también aprende habilidades de gestión de proyectos. ¡Vale mucho!
@VolkerSiegel Tenía la intención de escribir una respuesta solo sobre este pensamiento.
@brett Sí, vale la pena responder eso, lo pensé yo mismo. ¡Mi +1 en tu respuesta ya es seguro!
Puedo entender cómo llegó a esta conclusión, pero no, Wordpress no va a ser suficiente para su administración. Es la complejidad de un pequeño CRM. Sin embargo, Wordpress está bien para un sitio web frontal, que es un requisito aparte . Algo que no mencioné en la pregunta, que tal vez debería haberlo hecho: un técnico de TI hizo la primera administración pero se fue por razones que desconozco.
@VolkerSiegel ella, por cierto ^^
@Belle Ups! Lo siento sinceramente.
@Belle Actualmente, sus necesidades administrativas se satisfacen enviando documentos de Excel por correo electrónico: WordPress al menos puede manejar la administración de ese contenido. No es ideal, pero decir que WordPress no puede satisfacer sus necesidades no tiene mucho sentido, simplemente no puede cumplir con el alcance que creó para su proyecto . Y de nuevo: ¿qué pasa después de que te vas? A menos que estén planeando contratar a un desarrollador de PHP, existe una buena posibilidad de que cualquier aplicación personalizada que escriba sea abandonada y vuelvan a enviar correos electrónicos manuales de Excel.
@Kevin "ser conocido" es un poco exagerado. Estoy muy contento de que el tipo de Excel esté apagando incendios en Excel ahora, porque estaba pasando todo mi tiempo libre en eso. Dicho esto, tienes razón. Esperaba lanzar un sistema que no requiera mucho mantenimiento, pero eso puede no ser posible.

En mi opinión, los problemas que tiene aquí es que parece estar desarrollando en el servidor de producción.

Hasta que su código esté listo para funcionar, espero que use sus propios servidores de desarrollo para ejecutar y probar su código, asegurarse de que funcione y hacer todo eso. Si lo está ejecutando en sus propios servidores (y esto puede incluir simplemente tenerlo funcionando en su computadora local, no necesariamente en algún host pago en Internet), entonces no hay forma de que nadie más pueda interrumpir su trabajo.

También en otro punto:

"El presidente le dio a Steve acceso al host, aunque no lo necesitaría, ya que configuré 'cargar' para trabajar a través de GitHub"

Esto no es comparable. Los sitios de Wordpress no son solo archivos HTML que se cargan, son un marco de gestión de contenido. Probablemente podría haberse configurado en el mismo servidor, pero es más difícil, por lo que, en igualdad de condiciones, es más fácil usar un proveedor existente y simplemente volver a apuntar su DNS. El hecho de que hicieran esto y cerraran su servidor existente puede deberse simplemente a que no sabían que lo estaba usando; después de todo, no habían visto nada.

Gracias por la respuesta. Desarrollo en un servidor local, con el desarrollo y las ramas inferiores en Github. Al presionar para dominar, se ejecutan todas las pruebas y, si tienen éxito, se cargan en el servidor de producción. Ahora puede ser una buena idea descubrir qué es más fácil: recuperar 'mi' host y mover su WordPress allí o reescribir los scripts en 'su' host.
Entonces, ¿tengo razón al pensar que lo que se pierde es solo la configuración del servidor donde se envía el código? De cualquier manera, personalmente creo que estabas haciendo las cosas en el orden equivocado. Escriba el código primero, hágalo funcionar y luego preocúpese por implementarlo en el servidor. Si bien, desde el punto de vista del aprendizaje, podría ser mejor pensar en las cosas de implementación al mismo tiempo en una situación del mundo real, creo que preocuparse por la implementación del servidor demasiado pronto significa que está bloqueado en las cosas demasiado pronto. Si las cosas cambian, ¿entonces qué? Exactamente esta situación.
Sí, no se pierde mucho, por suerte. Mencionas algunos puntos buenos sobre el pedido. Oportunidad de aprendizaje para mí :)
Sí. Mientras que otras personas ciertamente no manejaron bien las cosas, puedes aprender mucho de tu experiencia.

Trabajo para una empresa con aproximadamente mil clientes que ha estado en el negocio durante unos 20 años. Tenemos, en cierto sentido, exactamente el mismo problema que tú. Tienes la oportunidad de arreglarlo ahora y arreglarlo correctamente, y te imploro encarecidamente que aproveches esa oportunidad ahora.

Lo que necesita es un dominio de tercer nivel separado . Deje el sitio de wordpress de Steve en www.helpvets.com y configure el DNS para que admin.helpvets.com lo dirija a su sitio completamente diferente . De hecho, es mejor si admin.helpvets.com ni siquiera está alojado en la misma ubicación, porque eso ayudará a descubrir la causa raíz cuando no se puede acceder a uno u otro. Le aconsejaría que (con benevolencia) obtenga el control de la configuración de DNS, si es posible, para que pueda evitar que personas como Steve lo desconecten por error en un esfuerzo equivocado de "consolidación" o algo así.

Su sitio es el reemplazo de la hoja de cálculo centralizada. El sitio de Steve es "el sitio web". Estarás tan feliz cuando Steve haga algo en wordpress y tu sitio aún funcione. Tan feliz. Muy feliz.

Tenga en cuenta que Steve obtendrá todo el crédito por la increíble presencia en línea y muchas personas ni siquiera se darán cuenta de lo que está haciendo. Deberías estar preparado para eso, es todo lo que digo. Menos mal que todas tus cosas estaban en el control de versiones cuando Steve las eliminó, por cierto. Oh, ¿solo el código lo era y ninguna de las cosas de apoyo lo era? Hmmm, apuesto a que no vuelves a cometer ese error. :)

Estás aprendiendo grandes lecciones muy temprano en tu carrera. Tendrá este tipo de cosas repetidas en cada trabajo real, y lo que aprenda aquí será aplicable una y otra vez en muchas situaciones diferentes. Una fuerte separación de preocupaciones es una bendición para cualquier organización y usted tiene la oportunidad de aplicar ese principio a estos veteranos en la planta baja. No es necesaria una lucha por el poder: simplemente estás dividiendo las responsabilidades, tú haces lo que sabes y Steve hace lo que Steve sabe, el conflicto desaparece. (Hasta que surja el próximo conflicto :)).

¡Buena suerte!

Me preguntaba por qué el servidor de administración interno estaba incluso en el mismo host que el sitio web público. Suena como una receta para el desastre.

Mencionaste dos aspectos muy importantes, y déjame tratar de convencerte de que uno de ellos tiene futuro, mientras que el otro no.

También quiero dejar atrás esta fuente constante de estrés.

Esto es lo que quiere hacer su objetivo principal. Estás en un lugar muy apretado en este momento. La parte técnica no se ve a tu favor (tus clientes no han visto nada de tu año de trabajo), y la parte social/humana es tensa.

Para cada problema hay tres soluciones: amarlo, cambiarlo o dejarlo. No amas tu situación; Creo que será completamente inútil que lo cambies (con respecto al estrés), así que solo queda una opción: déjalo.

¡ Esto no significa que dejes la organización! Esto significa que deja su puesto actual como gurú de TI en un contexto tecnófobo. Da un paso atrás y deja que Steve se haga cargo. No es como si pudiera arruinar la organización; él no irá y eliminará todas las copias de su archivo de Excel. En el peor de los casos, hace que todo su trabajo sea inútil, pero tal como está ahora, ni siquiera ha lanzado la versión 0.1 de su aplicación, por lo que literalmente aún no existe.

¿Cómo puedo recuperar la credibilidad y convencerlos de que Steve está interrumpiendo activamente mi trabajo?

La única forma de ganar credibilidad es presentarles una versión 1 terminada de su aplicación, que muestre precisamente cómo puede ayudarlos y muestre un camino hacia el futuro que vaya estrictamente más allá de lo que puede hacer con Wordpress. Literalmente no hay otra manera, ya que nada más cuenta. El ego no tiene lugar aquí (y después de todo, Steve parece ganar en el departamento de "ego" de cualquier manera).

No puedes ganar credibilidad (o llamémoslo respeto) peleando contra alguien. Siempre puede señalar su GUI de Wordpress y tener algo que presentar. No hay forma de explicar a las personas no técnicas por qué su solución (que, en lo que a ellos respecta, ni siquiera existe) es mejor y por qué Steve es atroz.

Entonces lo que hay que hacer

Mantenga la solución de Excel en ejecución hasta que Steve termine con su trabajo. Ayude a transformar las cosas de Excel en su Wordpress (tal vez transformándolo con algunas herramientas que programe), etc. Sea amable y servicial (y lo digo en serio, no finja ni planee detrás de la espalda). Si no funciona (porque Wordpress simplemente no es adecuado para el problema que está tratando de resolver), continúe con su plan original. Si no funciona debido a problemas personales persistentes de su parte, márchese. Si funciona => ¡genial!

Tienes que aceptar trabajar junto con Steve, nada más hará que tu estrés desaparezca. Si no puede hacer eso, entonces deje la organización, esto no es algo por lo que preocuparse.

Ampliando su caja de herramientas

Citado directamente del usuario @brett en los comentarios:

Wordpress es enormemente capaz de manejar una gran cantidad de tareas. La programación en Wordpress es una habilidad buena y útil. Lo recomiendo. Prácticamente puede incrustar en wordpress cualquier script que pueda haber inventado como una solución independiente. Ayudar con la transición de Excel a Wordpress ayudaría a obtener más habilidades de Wordpress. En mi libro, esta es otra victoria, sumada a la primera victoria de aprender PHP, REST, API en este proceso.

Entonces, aunque estamos en Workplace aquí y no en Stackoverflow, vale la pena señalar que agregar cosas a su caja de herramientas siempre es bueno.

Wordpress es enormemente capaz de manejar una gran cantidad de tareas. La programación en Wordpress es una habilidad buena y útil. Lo recomiendo. Prácticamente puede incrustar en wordpress cualquier script que pueda haber inventado como una solución independiente. Ayudar con la transición de Excel a Wordpress ayudaría a obtener más habilidades de Wordpress. En mi libro, esta es otra victoria, sumada a la primera victoria de aprender PHP, REST, API en este proceso.
Gracias, @brett, ese es un gran punto. Espero que estés de acuerdo conmigo agregando tu comentario a la respuesta textualmente.
Claro, adelante.

¿Cómo puedo recuperar la credibilidad y convencerlos de que Steve está interrumpiendo activamente mi trabajo?

Probablemente no puedas. No son técnicos, por lo que cualquier cosa que digas pasará por encima de sus cabezas y probablemente se percibirá como una señal con el dedo. Sugeriría que su único enfoque es ganarse a Steve, de alguna manera, pero no estoy seguro de cómo lo haría, dado que parece menos que técnicamente competente, y lo que está haciendo se interpondrá en el camino de su basura de Wordpress e implicar más esfuerzo de su parte. Así que probablemente no tengas suerte en "arreglar" esto como quieras. La única sugerencia que tengo en este sentido es que si puedes encontrar una manera de acercarte a Steve y enmarcar lo que has hecho como complementario o incluso útil para su basura de Wordpress, él será mucho más receptivo.

¿Qué puedo hacer?

Bueno, trata esto como lo que es: una experiencia de aprendizaje. De tantas maneras.

La primera, o al menos la más evidente para mí, es que las personas no valoran las cosas que obtienen gratis o baratas. Y puede (y debe) usar este hecho para determinar lo que la gente valora en lo que gasta su dinero. Si, en su carrera profesional, se encuentra con un lugar de trabajo que no gasta "adecuadamente" en TI, ha descubierto un lugar de trabajo que no valora la TI y debe huir. Esto se aplica doblemente a ti, porque eres un voluntario aquí. Apuesto dinero a que el amigo de Steve no lo es. La otra conclusión de esto es no caer en la trampa típica de los ingenieros de aceptar o hacer una oferta baja en su carrera profesional, porque hacerlo significa que el negocio lo subestimará.

Luego, el hecho de que a un amigo incompetente del jefe se le dé la iniciativa y se le trate como si no pudiera hacer nada malo, mientras que una persona competente que no tiene una conexión personal con el jefe es tratada como usted. muestra lo que realmente importa. Se trata más de a quién conoces que de lo que puedes hacer, así que cultiva esas conexiones personales. Son al menos tan importantes como tus habilidades. Tampoco es una coincidencia que el tipo que recibe todo el amor de la gerencia tenga un frente brillante para presumir. Puedo programar, puedo administrar sistemas complejos, tengo un conjunto de habilidades profundamente técnicas que probablemente solo comparto con un puñado de personas en el mundo, pero más a menudo que nada de eso, lo que realmente impresiona a la administración es mi capacidad para mejorar una tabla dinámica. en Excel, o lanzar uno de esos mapas de ataque inútiles o alguna otra ayuda visual brillante.

Finalmente, aquí hay una lección valiosa para cuando las cosas van mal (lo que sucede con más frecuencia que cuando todo sale bien). Supongamos que sucede el peor de los casos, y la basura de Wordpress de Steve gana sobre cualquier solución útil que tenía en mente. Habrás acumulado una gran cantidad de experiencia valiosa que tus compañeros no tendrán, tienes un excelente elemento de currículum que muchos de tus compañeros que ya están en una buena forma de sus carreras no tienen, y tú (con suerte) saldrás con muchas habilidades blandas y sabiduría sobre cómo tratar con la gerencia. Ese es un lado positivo bastante grande, y le aconsejo que no se estrese. Es un puesto de voluntario, y si la gerencia toma la decisión estúpida, ellos toman la decisión estúpida. Está fuera de tus manos, y no es tu culpa. Probablemente tampoco sea la última vez en su carrera que

Intento expandir el acrónimo SoL para que sea legible por lectores no nativos. ¿ SoL no tiene suerte ? Reemplazaré "SoL" por "sin suerte", siéntase libre de corregir.

PREGUNTE AL PRESIDENTE - EN TÉRMINOS COMERCIALES

Steve está construyendo un sitio de WordPress que es bastante estándar y bastante fácil de administrar y mantener, incluso para personas casi técnicas y, por lo tanto, los recursos se obtendrán fácilmente.

Está comenzando a construir una infraestructura de TI formal: aplicación web + backend, entorno de CD/CI, control de código fuente, etc.

Desde una perspectiva comercial, este es un entorno que requerirá que ALGUIEN lo mantenga después de que usted se haya ido. ¿Está bien el presidente con eso?

Por lo tanto, reúnase con el presidente y pregúntele qué dirección estratégica le gustaría tomar:

  1. ¿Reemplazar la hoja de cálculo de Excel?

  2. ¿Tiene un sitio web público?

  3. ¿Ambos?

Para que el presidente tome esta decisión, debe comprender desde una perspectiva comercial que los recursos necesarios para deshacerse de la hoja de cálculo de Excel no son los mismos que los necesarios para un sitio de WordPress.

Necesita saber que se está comprometiendo a mantener una aplicación personalizada respaldada por una infraestructura personalizada, lo que requerirá un recurso a largo plazo con habilidades más allá de las que tiene Steve.

¿Está bien con eso?

Si es así, pídale permiso para bloquear la infraestructura para que todos, incluido Steve, deban seguir los nuevos procesos para proteger la inversión del presidente en esa infraestructura.

Creo que el OP, el presidente y Steve ya han superado este punto. Además, dados los recursos actuales, "ambos" es un camino viable siempre que OP comprenda cómo funciona el negocio y esté dispuesto a guiar a Steve/Presidente hacia la finalización del proyecto. Sin embargo, mi temor es que el OP sea la persona equivocada para ese rol.
@NotMe Yo también lo creo. Hicimos un análisis de requisitos y resultó que un sitio web público no era lo que querían, solo un reemplazo para Excel. Todos los voluntarios de "alto nivel" han visto los requisitos y están de acuerdo con ellos, incluido el requisito de que no haya un sitio web público. Pero luego el presidente decidió que quería un sitio web público y quería que se terminara lo antes posible. Fue realmente inesperado. Tal vez sea una opción volver a ver los requisitos, pero lo hacemos todos los meses.
Por lo tanto, parece que realmente necesita ambas cosas ahora: un sitio web fácil de mantener que ofrece contenido para usuarios externos y una aplicación web respaldada por un almacén de datos para que los usuarios internos trabajen. Wordpress o algo similar es probablemente la herramienta adecuada para el primero para una organización no técnica, y en lo que ha estado trabajando es probablemente la herramienta adecuada para el segundo. Entonces, lo que realmente tiene que suceder es que se necesita una reunión con todas las partes involucradas y enfatizar estas diferentes necesidades, y que estas necesidades tienen diferentes soluciones, pero también es probable que deban integrarse de alguna manera.

Además de las valiosas respuestas anteriores ya dadas, me gustaría "agregar" algunos puntos más.

1) a veces tomar un descanso resuelve mejor el problema. Tomar seis meses o más de descanso de la organización. Deja que ese tipo continúe por su cuenta. No debes abandonar el lugar, pero es mejor recuperar el ejército en algún momento, recargar con nuevas habilidades y luego volver más tarde para luchar contra la situación de probarte a ti mismo. Hasta entonces, la persona equivocada, ya tendrá su credibilidad perdida. Como no se va de forma permanente, las otras personas a las que está ayudando lo recuperarán después de solo unos meses. Pero cuando tome un descanso, interrumpa completamente el 100% durante ese período. Ni una sola visita.

2) Ahora, la parte más importante, durante el descanso, aprenda el tema y el desarrollo de extensiones del sistema de administración de contenido basado en wordpress/drupal. Muchas veces, los resultados probados y rápidos se obtienen utilizando las herramientas adecuadas. Desarrolle el sitio web de esa empresa usando wordpress en privado. Si su idioma principal del lado del servidor es PHP, entonces aprenda el marco de trabajo Symphony utilizado en Drupal) o cakePHP para el desarrollo rápido de aplicaciones. Si usa Java, aprenda el marco de juego. Una persona adecuada dedicará cuatro horas a afilar su hacha, de modo que pueda cortar el árbol en una hora.

Tomar un descanso completo es un muy buen consejo.

TL; DR: Interrumpir su trabajo mientras le permite salvar las apariencias podría ser para lo que contrataron a Steve.

Eso significaría que la silla está tirada. Se supone que Steve debe hacer un sitio web frontal separado de mi administración y ayudarme con lo que crea que puede ayudar. Más bien creo que esto fue una acción de ignorancia.

De un tipo con experiencia en gestión de proyectos, camine. Usted está ayudando a este grupo muy amablemente y deberían hacer todo lo posible para mantenerlo feliz. Abrace a una persona autoritaria y profesional, y escriba una breve carta con viñetas al director ejecutivo explicando las principales contribuciones que hizo, hasta que su trabajo se esfumó, y dígales que ha hecho todo lo posible por ellos, y que ha otro proyecto en el que trabajar. El nivel de responsabilidad que ha aceptado voluntariamente ha llegado a un puesto de tiempo completo con un salario competitivo, y se ha alegrado de haberlos llevado hasta aquí. Para una mayor participación, pedirá $ XXX.yy dólares por hora y con gusto prepararía una propuesta y un presupuesto para ellos.

Al adoptar la ruta profesional de esta manera, en realidad está estableciendo los términos para su próximo compromiso: ha aumentado su experiencia en este concierto y es hora de adoptar un nuevo nivel y modelo de éxito.

Piense en una persona exitosa en el negocio y notará que la autoridad y la confianza son sus principales características de venta. No te doblegues.

¡Todo lo mejor! Pedro

Esto no responde la pregunta.
@reinierpost Lo hace. Podría discutir si responde bien a la pregunta o no, pero "aléjese" es una respuesta. Como es:Think of a successful person in the business and you will notice authority and confidence is their biggest selling feature. Don't kow-tow.
Creo que este es un consejo particularmente malo para alguien que es un "estudiante de ingeniería de software que se gradúa". El mayor obstáculo para un estudiante que se gradúa es tener experiencia en el campo, y ella está en un lugar donde puede obtener esa experiencia con personas con las que ha disfrutado trabajando en el pasado. Pratfall, usted y yo somos personas con experiencia en el campo; es fácil para nosotros pensar: "Oh, caminaremos y encontraremos algo más". Eso es MUCHO más difícil de hacer si aún no has terminado la universidad.
@reinierpost: es la mejor respuesta posible a la pregunta. ¿Cómo puedo recuperar la credibilidad y convencerlos de que Steve está interrumpiendo activamente mi trabajo? Continúe porque "Steve está interrumpiendo activamente mi trabajo". Nada da más credibilidad que eso.
@Kevin: el OP ya ha ganado mucha experiencia. Trabajar durante un año en un proyecto así es genial. Aparecerán otras oportunidades, ya sea como voluntario o, con suerte, profesionalmente.
@Vector Poner la experiencia y un enlace a Github en mi CV me consiguió este trabajo como desarrollador de aplicaciones back-end para un popular sistema ERP, por lo que ciertamente lo ha hecho.

Sé que esta es una pregunta de hace un mes que ya está resuelta. Pero tengo algunas ideas adicionales para su consideración.

Un objetivo útil en el desarrollo de software es minimizar el "tiempo de valor". Lo que significa que generalmente es mejor entregar algo pequeño pero útil rápidamente que entregar algo más completo en una escala de tiempo más larga. De esa manera, las personas pueden ver lo que está haciendo y brindarle comentarios continuos. Esto a menudo ayuda a sus clientes a comprender sus requisitos tanto como lo ayuda a comprenderlos a usted.

Dado que tiene partes interesadas no técnicas, cuestionaría el enfoque de construir la API de forma horizontal antes de construir cualquier interfaz de usuario. Centrarse completamente en la API primero aumenta el tiempo de creación de valor. Parece que pasó un año construyendo algo que nadie podía ver o usar y, por lo tanto, no entregó ningún valor que sus clientes pudieran apreciar. Además, el riesgo de hacer las cosas mal o trabajar en un trabajo no prioritario aumenta significativamente.

Un enfoque alternativo sería trabajar con las partes interesadas para determinar si hay algún módulo pequeño en la aplicación de Excel que podría eliminarse y luego crear la interfaz de usuario y la API de respaldo para ese módulo pequeño, y tal vez alguna automatización de compilación. De esa manera, puede entregar valor en un período de tiempo más corto. Luego tome el siguiente módulo y agregue automatización de implementación a la mezcla. Etc.

A menudo es más difícil hacerlo de esta manera, porque no siempre está claro qué cortar o cómo hacerlo. A veces terminas teniendo que hacer integraciones temporales y torpes que sabes que terminarán siendo desechables. Pero reduce el tiempo de valorización y, por lo tanto, esta es una habilidad clave de ingeniería de software. Lo eleva de ser un tecnólogo puro a alguien que puede usar la tecnología para resolver problemas comerciales de una manera que sus clientes aprecian y valoran.

Sin embargo, parece que tienes una buena historia de guerra en tu haber, y que terminó bastante bien. Me alegra escuchar eso.