¿Cómo navegar por la discusión estancada sobre la ubicación del entorno de desarrollo?

TL;DR: Boss insiste en una costosa máquina virtual alojada en la nube para un entorno de desarrollo para un cliente consciente de los costos. Tiene malentendidos y reservas sobre el uso de dispositivos físicos para el trabajo de desarrollo debido a la propiedad del cliente y las preocupaciones sobre el riesgo. Pasamos semanas en lo que no veo como un problema y no avanzamos en esta aplicación. Boss no es receptivo a explicaciones o argumentos de una forma u otra. Es un equipo de 2 personas y hay más tarareo y burocracia miscelánea que la que tenía cuando trabajaba en un laboratorio farmacéutico... En este punto, solo quiero trabajar para este cliente, no estoy seguro de cómo hacer que esto avance.


Soy un desarrollador remoto que trabaja para una pequeña empresa (<10 personas) que realiza varios desarrollos contratados para otras empresas. Trabajo solo en la mayoría de nuestros proyectos, y mi jefe (el dueño de la compañía, llamémoslo Frank), hace un pequeño desarrollo aquí y allá. Pero en su mayor parte, él dirige el negocio y, como resultado, se ha quedado un poco atrás en cuanto a cómo ha cambiado el desarrollo a lo largo de las décadas (por ejemplo, el control de código fuente es una "cosa nueva" que nadie más utiliza excepto yo).

Estamos comenzando con un nuevo cliente con un proyecto greenfield considerable en el que seré el desarrollador en solitario; esperamos que este proyecto dure de 2 a 3 años. Son muy conscientes de los costos, ya que son un pequeño equipo de 10 personas y su aplicación se alojará en un proveedor de la nube como AWS.

Finalmente hemos llegado al punto en el que puedo comenzar con su producto; sin embargo, Frank insiste en que debemos resolver un entorno de desarrollo remoto. Y hemos estado yendo y viniendo sobre esto durante semanas, sin progresar. El problema es que una VM lo suficientemente capaz le costará al cliente ~ $ 250 / m en costos de alojamiento ($ 3000 / año, o $ 9000 durante los próximos 3 años), lo cual es exorbitante dado lo conscientes que son de los costos. Sugerí simplemente desarrollar en un dispositivo local, que ha sido el estándar en todas las demás empresas en las que he trabajado. En mi experiencia, los entornos de desarrollo son móviles y se pueden llevar con usted en una computadora portátil, encender en una VM o usar en mi estación de trabajo. Son desechables, y son unas pocas instalaciones y un git pull lejos de ser configurado nuevamente.

Frank está muy preocupado por el uso de un dispositivo físico, in situ, para el desarrollo. Parece creer que el código y la aplicación viven en este dispositivo, y si se pierde, el cliente pierde su producto. A Frank le preocupa que el cliente necesite la propiedad total de todo, todo el tiempo, y que usar un dispositivo que no está en su poder no sea profesional. He explicado de muchas maneras que este no es el caso, y que un entorno de desarrollo en nuestra pila es completamente desechable, que el código se mantiene en un repositorio remoto y las copias de seguridad se mantienen en otro lugar.

Frank no parece entender que el entorno de desarrollo no es particularmente especial. Le he explicado de muchas maneras cómo funciona, pero sus opiniones y suposiciones no cambian. Estamos desperdiciando semanas de tiempo haciendo girar nuestras ruedas sobre algo tan mundano como el lugar donde debería estar el entorno de desarrollo. Para mí, no importa, es móvil y puedo configurarlo en cualquier dispositivo cuando lo necesite. Esto es para asegurarme de que puedo hacer el trabajo incluso si estoy de viaje o si pierdo el acceso a Internet. Una máquina virtual remota está bien, solo que es menos eficiente debido a la latencia y otros problemas diversos que son parte del desarrollo remoto, y le costará más dinero al cliente.

No estoy seguro de en qué dirección debo ir, o qué hacer en este punto. Tenemos suficientes trámites burocráticos autoinfligidos para enorgullecer a una empresa Fortune 500, y solo somos nosotros dos. Es extremadamente frustrante.

¿Cómo navegarías por esto?

Aclaración: hay 7 personas empleadas por mi empresa, pero para este proyecto solo soy yo como desarrollador y mi jefe como jefe.

"¿Cómo manejarías esto?" Que el jefe haga lo que quiera, si pierde al cliente es culpa suya.
Parece que ha realizado otros proyectos de software para esta pequeña empresa. ¿Se realizó el desarrollo en dispositivos locales o máquinas virtuales remotas? Si es local, ¿por qué el jefe está preocupado en este caso en particular?
@sf02 Mi preocupación es que el contrato de este cliente paga una buena parte de mi salario. Incluso entonces, esto sigue siendo frustrante cuando podemos ponernos a trabajar...
@Dave Me hice cargo de los clientes del desarrollador anterior que se fue, aquellos que se realizaron en cajas remotas alojadas internamente por las empresas con las que contratamos. Que son configuraciones fundamentalmente diferentes de las que tendríamos aquí.
¿Qué quieres decir con "jefe"? ¿El dueño de la empresa? ¿O algún humilde gerente?
Quizás dejen de tratar de servirse a sí mismos y comiencen a tratar de servir al cliente. ¿Qué quiere el cliente? ¿Ha presentado objetivamente ambas opciones al cliente? Seguramente hay costos para el cliente relacionados con cualquiera de las dos opciones. En última instancia, son para quienes trabajas. Si al cliente no le importa o deja que usted decida qué es lo mejor, entonces haga lo que su jefe quiera, ya que él es el responsable final.
¿Has considerado hacer lo que tu jefe te dice que hagas?

Respuestas (2)

El jefe es el jefe. Asume la responsabilidad de sus decisiones, buenas o malas. Si el cliente le dice "¿por qué gastas mi dinero en esta estupidez que no necesitamos?" y pierde al cliente, eso es culpa de él, no de ti (y si trata de hacerlo contigo, huye MUY RÁPIDO). Aparte de eso, él es el jefe, así que haz lo que quiera. Has cumplido con tu deber de explicarle por qué está haciendo algo mal y por qué está mal, el resto está por encima de tu sueldo, como dicen.

Dicho esto, si solo ustedes dos están en esta "compañía" y él es tan atrasado como dice, es posible que desee comenzar a buscar otro trabajo. Ninguna empresa que se precie que utilice tecnología contrataría a una consultora de este tipo para realizar sus proyectos. Es posible que se encuentre sin trabajo más temprano que tarde, sin culpa propia.

El problema es que una VM lo suficientemente capaz le costará al cliente ~ $ 250 / m en costos de alojamiento ($ 3000 / año, o $ 9000 durante los próximos 3 años), lo cual es exorbitante dado lo conscientes que son de los costos.

Usted, como desarrollador, no debe preocuparse por los costos; ese es el trabajo de su gerente. Si está contento de que algo esté dentro del presupuesto del cliente, entonces eso es todo lo que importa. Puede argumentar que su entorno de desarrollo propuesto será engorroso para usted, etc., pero eso es algo aparte y, aun así, sigue siendo su decisión (tal vez el cliente insista en esto).

Por separado, no dice dónde se encuentra usted o el cliente, por lo que no sé qué tan caros son $ 9000 en relación con los salarios locales, etc., pero no puedo imaginar que haya ningún lugar en la tierra donde $ 9000 sea relativo significativo a 3 hombre/años de costo de desarrollo de software. Piense en lo que le pagarán durante los próximos 3 años, piense en lo que su empresa le cobrará al cliente por su tiempo (al menos el doble de lo que le pagan a usted), y presumiblemente $ 9000 es una gota en el océano.

Por el contrario, si hay un cliente tan sensible al precio que $ 9000 adicionales realmente se considerarán exorbitantes (independientemente de cuán grande sea el costo total del proyecto), entonces esta será una situación laboral horrible: ¿cómo reaccionarán? si se excede uno o dos meses del presupuesto, o si necesita comprar una biblioteca de terceros, etc.

Diablos, las dos semanas que el OP ha drogado sus pies en lugar de simplemente hacerlo ha costado un buen porcentaje de los $ 9000, estoy seguro.