¿Debo hacer mi trabajo como dice mi jefe, si conozco una mejor manera?

Soy un programador de nivel junior en una empresa. Mi jefe me dio una tarea para hacer un trabajo de una manera particular, pero creo que es demasiado complicado y también requiere un poco de estudio. Puedo hacer la tarea a mi manera, lo que requiere el uso de un programa de código abierto en particular.

¿Debo hacer la tarea como dice mi jefe o hacerlo a mi manera?

No utilice ningún software externo sin dejar que su jefe verifique los términos de la licencia.
puede intentar sugerirlo y asegurarse de que puede justificarlo
Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
Siento que esta pregunta es una mala pregunta tal como está escrita. De ahí la proliferación de respuestas de baja calidad y flamewars sobre proyectos de código abierto en los comentarios. Necesita muchos más detalles en áreas clave para poder proporcionar una respuesta útil.
@Coxy No estoy de acuerdo. Hay un par de respuestas muy útiles (que brindan diferentes opiniones). Cualquier pregunta con este nivel de popularidad generará respuestas de baja calidad.
¡La broma sería para usted si "a su manera" esencialmente reconstruyera el componente que querían que reemplazara!
Esta pregunta era engañosa en la superficie. La adición de "que requiere el uso de un programa de código abierto en particular" cambia todo sobre la situación y cambia drásticamente las respuestas apropiadas. Parece que esta pregunta es en realidad "Como desarrollador, ¿debería incorporar un programa de código abierto en el software de mi empresa sin decírselo a mi jefe?"
A pesar de mi otro comentario anterior, me encuentro con esta situación más a menudo de lo que me gustaría. Una vez hice algo contrario al camino de Lead sin pedir permiso porque estaba 90% seguro de que me diría que no de antemano, pero me arriesgué porque mi camino no solo era mejor, literalmente tomó 2 o 3 días en lugar de muchas semanas. así que sabía que no nos dejaría atrás. Esperé hasta que Lead usó mi trabajo y elogió el tiempo y la calidad, luego le hice saber cómo lo hice antes de que examinara el código y le dije que todavía podía hacerlo a su manera si quería. Me preparé para el impacto, temiendo una reacción violenta, pero (1/2)
(2/2) ... pero admitió que lo que hice fue genial; de hecho, llegó a llamarme "genio" por la forma en que implementé mi camino. Estuvo de acuerdo en que habría dicho "no" si se lo hubiera pedido de antemano, pero ahora me ha pedido que use la misma técnica varias veces desde entonces en lugar de hacerlo a su manera. ¡Aviso!: No estoy sugiriendo que se arriesgue; ES un riesgo del que afortunadamente me beneficié . Con la misma facilidad, podría generar un aviso en su archivo de recursos humanos que lo acercaría un paso más a ser despedido por insubordinación. Mi caso era algo único y juzgué que probablemente estaría bien.
@Coxy Puedes culpar a la HNQ por la baja calidad. La pregunta aquí realmente es: "Mi jefe me pidió que hiciera una tarea usando el método X. Tengo un método Y que creo que es mejor. ¿Debería hacer X como dice mi jefe de todos modos?" La parte del programa de código abierto es relevante solo para este escenario en particular, pero la pregunta general se aplica incluso fuera del desarrollo de software.
@Aaron, desearía que pudieras desarrollar eso en una respuesta, pero veo que la protección de la pregunta te impide hacerlo en este momento, lo cual es un poco vergonzoso. No obstante, aunque el OP especificará los detalles relacionados con su escenario específico, siempre podemos tratar de hacer la pregunta lo más general posible y luego proporcionar una respuesta que no solo se aplique a la situación del OP sino también a varias otras. Por esa razón, he evitado deliberadamente mencionar el programa de código abierto en mi respuesta. ¡Tu comentario/respuesta y la mayoría de las otras respuestas también hacen eso!
Tal vez el 'estudio requerido' es el punto central de la tarea...

Respuestas (13)

¿Debo hacer las cosas como dice el jefe, lo que requiere un poco de estudio, o hacer las tareas a mi manera, lo que requiere el uso de un programa de código abierto en particular?

Le recomiendo encarecidamente que utilice la metodología y la tecnología descritas por su jefe. Él tiene más experiencia que usted y tiene más experiencia en dominios comerciales y técnicos.

Una vez que tenga algunos proyectos en su haber, siéntase libre de ofrecer sugerencias que podrían hacer que una tarea se complete más rápido. No se sorprenda de que cuando lo haga, es posible que tenga que justificar su sugerencia desde una perspectiva de tiempo de comercialización, costo inicial y propiedad total.

Estoy considerando un voto negativo simplemente por "Una vez que tenga algunos proyectos en su haber" debido a cómo se aplica. Si OP simplemente ofreciera sugerencias, entonces algunos proyectos en su haber son completamente innecesarios. Me estremezco ante los grupos que critican tanto a los nuevos desarrolladores que ni siquiera pueden hacer sugerencias. Que sugieran; una sugerencia no es una decisión. No dejes que pierdan el tiempo de todos sugiriendo malas ideas todo el tiempo, pero déjalos que sugieran.
Hay un poco de una falsa dicotomía aquí. A menudo, en situaciones como esta, se puede utilizar un enfoque más sencillo como herramienta de prueba. Cuando esta implementación produce resultados diferentes, el desarrollador investiga por qué. Este es un gran ejercicio de aprendizaje para el desarrollador. También ofrece la oportunidad de demostrar la alternativa y discutir los pros y los contras. Discutir un enfoque de trabajo es diferente a discutir una idea. Obviamente el tiempo es una preocupación. Si te atascas en tu idea 'fácil', deberías abandonarla, al menos a corto plazo.
@Aaron totalmente de acuerdo. Nuevo par de ojos, nuevo cerebro, nuevas ideas siempre son agradables. Las sugerencias son buenas. Este tipo fue contratado por una razón. Tener una charla sobre cómo y por qué para los proyectos es un gran ejercicio mental. Le ayuda a demostrar que conoce su dominio. A veces tengo que acortar las discusiones, pero siempre prefiero preguntar + discusiones en lugar de murmurar malhumorado sobre 'mi manera es mejor'. Esto ayuda tanto al jefe como al nuevo empleado. Esto no funciona en un lugar de comida rápida, es programación.

Discuta su enfoque con el jefe. No haga parecer que su enfoque es mejor y que está ignorando su enfoque.

Jefe, analicé esta tarea y me preguntaba sobre el siguiente enfoque alternativo. ¿Qué piensa usted al respecto?

Hay dos resultados principales, los cuales pueden ser beneficiosos para usted:

  • Boss le explica 1 por qué el enfoque que sugirió es mejor

    Esto le muestra una parte del panorama general y un adelanto gratuito de lo que sucede detrás de escena cuando los jefes toman estas decisiones. A medida que asciende en la escala corporativa, usted mismo será responsable de tomar estas decisiones, por lo que esta información le ayudará más adelante.

    Su empresa está haciendo negocios y el desarrollo de software es solo una parte de ese negocio. Por lo tanto, las consideraciones comerciales tienen prioridad sobre sus preferencias personales . Como desarrollador junior, es posible que te centres casi por completo en la parte de desarrollo de software, pero tu jefe es responsable de tomar la decisión comercial correcta.

  • Boss se da cuenta de que su enfoque es mejor

    Esto es menos probable, pero no imposible. En este caso, no solo puedes hacer la tarea a tu manera, sino que también creas una impresión positiva. La próxima vez que tenga que hacer esta tarea o algo similar, su jefe lo recordará como la persona que encontró una mejor manera de hacerlo 2 .

Entonces deberías hacer lo que dice el jefe , en cualquier caso. Sin embargo, con el enfoque anterior, su jefe vería que en realidad está pensando en el trabajo que está haciendo . Esto también suele ser una consideración importante al decidir sobre promociones en los niveles inferiores. Un desarrollador junior que solo hace lo que se le dice necesita supervisión constante y no será promovido, mientras que alguien que persistentemente trata de contribuir y comprender cómo funcionan las cosas puede confiar en una mayor responsabilidad.


1 Si el jefe no está dispuesto a dar explicaciones, puede preguntarle cortésmente, pero no lo moleste. A veces, el jefe decide que hacer el trabajo es de suma importancia y convencer a un empleado subalterno está muy abajo en su lista de prioridades. En ese caso, solo haga el trabajo como él dice, y tal vez haga preguntas más tarde cuando esté más dispuesto a dedicar algo de tiempo a la explicación.

2 A menos que su jefe sea un idiota que se ofenda, en cuyo caso tiene un problema mucho mayor, que está fuera del alcance de esta pregunta.

Cuándo debe seguir a su jefe
Cuando su jefe le da instrucciones explícitas sobre cómo debe hacer algo, debe hacer el trabajo de la manera en que lo describe. Por lo general, no se esfuerzan por delinear cómo se debe hacer algo a menos que les importe el cómo.

En especial, no debe 'volverse pícaro' haciendo lo suyo después de que el jefe le dé instrucciones si eso implica el uso de bibliotecas de terceros. Por lo general, existen numerosos problemas que podrían surgir del uso de software de terceros, y como nuevo desarrollador, esta no es una buena idea. El uso de software de terceros (especialmente sin aprobación) podría resultar en uno o más de los siguientes:

  • Problemas de estabilidad
  • ramificaciones legales
  • Violación de la política de la empresa con respecto al proceso de aprobación de agregar nuevas bibliotecas al sistema.
  • Vulnerabilidades o riesgos de seguridad
  • Necesidad de volver a hacer el trabajo porque cualquiera de los anteriores fue un problema

Si tiene problemas con la forma en que el jefe le pide que haga el trabajo y está seguro de que hay una mejor manera, debe presentar sus hallazgos a su jefe y obtener la aprobación antes de hacer el trabajo a su manera. Por lo general, está mal visto cuando los nuevos desarrolladores demuestran que creen que saben más que los ingenieros superiores y no aceptan las instrucciones.

Cuándo debe tomar la iniciativa
Una vez que comprenda completamente el sistema y las necesidades comerciales detrás de un proyecto y tenga la libertad de completar un proyecto sin instrucciones adicionales o supervisión sobre cómo se debe realizar el proyecto, puede sentirse libre de hacerlo de la manera te parece bien. Por lo general, los desarrolladores más nuevos deben someterse a revisiones de código para que los ingenieros senior y de nivel medio puedan revisar el trabajo hasta que todos se sientan cómodos con la calidad del trabajo que se está realizando. (Realmente, las revisiones de código deberían continuar e involucrar a todos, pero esto se sigue con mucha menos frecuencia y es otra discusión para otro foro).

Por cierto. He dejado ir a varios desarrolladores después de no seguir mis solicitudes repetidamente. Y normalmente no tengo tiempo para explicar el panorama general con suficiente detalle para permitir que esos desarrolladores vean y entiendan la luz. Un rápido "¿cuál es el problema con esta solución de código abierto?" debe obtener (de un buen gerente) una explicación de 20 segundos como "eso nos impedirá integrar de manera eficiente el inicio de sesión único en Sprint 15"
¿@BrianLeeming no está explicando el panorama general a los desarrolladores el 50 % de su trabajo como gerente? ¿Con el otro 50% asegurándose de que nadie los moleste mientras trabajan en ello?
Para ser justos, Erik tiene razón. El equipo debe al menos tener visibilidad de la imagen general, si espera que obtengan alguna satisfacción real de su trabajo. Intenta mantenerlos informados, @Brian, al menos en algún nivel. Y, quién sabe, tal vez descubras que uno de ellos tiene una idea brillante que puede facilitar las cosas para todos. ¿No es para eso que están ahí?
@Erik Suena como algo que podría variar enormemente según la estructura y la jerarquía del equipo. Dependiendo de los roles de los gerentes, pueden estar ocupados con otras cosas. No digo que sea una buena o mala forma de organizar la empresa, solo digo que no todas las empresas tendrán la misma estructura.
@Erik El trabajo de un gerente es hacer coincidir el poder de los empleados con los objetivos del negocio. Algunos desarrolladores responderán bien al panorama general y a otros no les importará. Los desarrolladores júnior deben sentirse empoderados para investigar y los gerentes decentes y experimentados deben aprovechar la capacidad de los desarrolladores para usar esa información.
@BrianLeeming, ¿por qué contrataría a personas a las que no les importan los objetivos del negocio? No suenan muy productivos.
@erik, si contratar fuera tan simple...

Escucha a tu jefe

Los desarrolladores junior a menudo no ven el aspecto de mantenibilidad de las soluciones propuestas. Sí, es posible que tenga un enfoque de código abierto genial para resolver el problema, pero no ayuda a su jefe (o a la empresa) a largo plazo si usted es la única persona del equipo que sabe cómo apoyarlo. Piensa en lo que sucede si te vas de vacaciones o te enfermas o te vas. ¿Qué pasa entonces? No es tu problema, pero tu jefe puede enojarse por eso.

Esto no es para matar su espíritu innovador, pero hay una realidad más grande a considerar cada vez que presenta algo nuevo.

Sí. Y volverse irremplazable incluso por fricciones no es algo favorable mientras todavía hay un "junior" y mientras probablemente no pueda cargar con el peso de sus decisiones todavía.
Es completamente al revés en mi experiencia. Si escribe algo patentado, es mucho más probable que pierda el conocimiento de cómo funciona cuando alguien se va. Los proyectos de código abierto tienen una comunidad, por pequeña que sea, en la que puede confiar.
@Michael Como alguien a quien se le encargó reescribir un módulo completo dejado por alguien que se fue, estoy completamente de acuerdo contigo. Incluso había dejado documentación decente. Podríamos entender cómo funcionaba el código, pero bastaron algunas correcciones de errores para que el paquete de cartas se desmoronara. Probablemente tenía en mente una mejor manera de hacer esas correcciones, pero descubrimos que volver a escribirlo desde cero (con una reutilización generosa de algunos métodos de su código) sería más barato a largo plazo. Incluso lo llamamos en broma el último módulo de Fermat.

¿Tengo que hacer las cosas como me pide el jefe?

Siempre tienes que hacerlo como tu jefe te lo pide .

Si tiene una alternativa sólida y su jefe está abierto a recibir aportes, puede convencerlo de que le pida que lo haga de otra manera, pero aún lo haría de la manera en que su jefe lo pidió .

Supongamos que soy su jefe. Si te digo que hagas A...

  1. ... y haces B, eres un mal empleado y probablemente me enojaré o me decepcionaré contigo. Confiaré menos en ti, ya que haces lo que te place.

  2. ...y me convences de que B es mejor, entonces te pediré que hagas B y harás lo que te diga. Te tendré en alta estima. Ambos (encontraron una mejor manera de hacer algo) e (hicieron lo que se les dijo) .

  3. ...y no logras convencerme de que B es mejor, y haces A, te tendré en mayor estima. Propusiste una alternativa, que podría haber sido mejor, pero aceptaste las órdenes superiores. Aprecio ambos.

  4. ...y no me convences de que B es mejor, y haces B... ver (1) . Probablemente peor: no puedes alegar ignorancia o buena voluntad, ya que te dije explícitamente que no hicieras B.

  5. ...y no logras convencerme de que B es mejor, y haces ambas cosas para "probarme" que es mejor... es un movimiento arriesgado. Pasarías más tiempo, tal vez innecesariamente, e incluso si tuvieras razón, podría resentir tu desafío. REALMENTE depende de mi personalidad, estado de ánimo actual y tu relación conmigo. Es arriesgado y solo lo recomendaría si CONOCES a tu jefe y REALMENTE CREES que funcionará bien. Incluso entonces, es arriesgado.

Entonces, si realmente cree que su camino (B) es mejor, debe presentar un buen caso para ello, lo suficiente como para que su jefe diga "Ok, adelante e inténtelo". No seas molesto ni demasiado insistente. Si no obtienes su aprobación, simplemente déjalo. Hazlo como dicen. Gánese su confianza y respeto con un trabajo sólido y probablemente la próxima vez estarán más abiertos a sus sugerencias.

Me gusta mucho esta respuesta. Tuve un gerente que me dijo de manera explícita y urgente que hiciera algo que estaba dañando. Lo hice sin pensar en ello con malos efectos. Luego me disculpé porque con mi experiencia debería haberle advertido de inmediato, pero me dejé llevar por la urgencia. Para mi gran sorpresa, se dio la vuelta y me pidió disculpas y me dijo que era su culpa. Esa fue la primera y posiblemente la única vez que lo escuché decir que estaba equivocado en algo. En otras palabras, agradeció que siguiera sus órdenes directas a pesar de que debería haberlo sabido mejor.
Este consejo es bastante terrible. La razón por la que deberías escuchar a tu jefe es porque tiene más conocimiento o una visión superior/un mejor contexto de una situación. Si conoce una mejor manera de hacer algo que su jefe, entonces sabe algo que su jefe no sabe, o su jefe sabe algo que usted no sabe, y es su responsabilidad como empleado cerrar la brecha. Como gerente, los peores empleados que he tenido eran drones sin sentido que hacían exactamente lo que les decía. Prefiero contratar a alguien para que piense de forma independiente, mientras consulta conmigo la visión más amplia.
Si tienes un trabajo en el que no tienes que pensar, entonces está bien, sigue lo que dice tu jefe para que puedas mantener tu trabajo. Si realmente quiere ser feliz en su trabajo mientras contribuye con algo más grande que su trabajo inmediato, empuje los límites y siempre esfuércese por mejorar. Si tu jefe es irracional y no quiere que hagas esto, haz lo que tengas que hacer para salir adelante hasta que encuentres un mejor trabajo.
@user1234567890abcdef "Si conoce una mejor manera de hacer algo que su jefe... es su responsabilidad como empleado cerrar la brecha". Para mí, esta respuesta parece estar diciendo lo mismo. Lo siento, no entiendo su preocupación aquí.

Tu jefe es, bueno, tu jefe.

Están literalmente a cargo de lo que haces. Ese es su trabajo. Es su propósito de ser. Ellos están ahí para decirle qué hacer.

A veces pueden decidir que quieren escuchar sus consejos y, a veces, incluso pueden decidir seguir sus consejos. Pero no tienen que hacerlo, porque son tu jefe.

Es su decisión.

Esto no es difícil.

Si y no. Ningún jefe decente quiere ser un microgerente. El jefe está contratando el cerebro y la iniciativa del empleado, así como solo sus manos.
@superluminary: Sí, dije que el jefe puede escucharte y hacer lo que recomiendas. Pero el punto es que ellos son el jefe. Haces lo que finalmente te ordenan. El OP se pregunta si esto es opcional; No lo es.
Y si a ti, como jefe, no te gustan sus consejos, sueltas tus dragones sobre ellos y les derrites la cara. ¿Derecha? Simple. :)
@Wildcard: Eso podría funcionar.

En una palabra, sí.

Si bien el uso de un programa de código abierto para resolver el problema puede funcionar a corto plazo, no hay forma de saber cuál será su estado en el futuro. Las empresas dedicarán un poco más de tiempo a hacer algo por su cuenta para garantizar el mantenimiento de ese software, porque se trata internamente.

Además, puede considerar que su jefe le presenta esta tarea como una experiencia de aprendizaje. No hay nada de malo en perfeccionar las habilidades :)

Considérese que tiene un cierto presupuesto de capital social que puede ser utilizado por un comportamiento "desafiante". Incluso un nuevo empleado junior tiene algo de este presupuesto.

Sin embargo, considere que tiene un suministro escaso de este presupuesto en el futuro previsible. Si gasta de más, se producirán consecuencias, que pueden incluir el despido.

En una situación como esta, la pregunta central es: "¿Vale la pena empujar a mi jefe mucho más cerca de despedirme?"

Si el problema es solo que su jefe le ha dicho que haga algo de una manera particular sin usar herramientas de código abierto, realmente no quiere desperdiciar su presupuesto de capital social en esto. Puede llevar más tiempo y requerir una depuración que el proyecto de código abierto ya ha realizado, pero la respuesta correcta, para un empleado que quiere estar en el mismo trabajo un año después, es " No " .

Como desarrollador de nivel junior (o cualquier cosa de nivel junior), no es su trabajo reinventar la rueda o ser "creativo": su trabajo es establecerse como un recurso confiable y creíble.

Si bien definitivamente puede preguntar por qué su jefe quiere que se haga de cierta manera, no se sorprenda si no obtiene una respuesta satisfactoria (en su opinión).

No hay nada más molesto para un gerente que un empleado que piensa que es más inteligente que su gerente. Desafiar repetidamente a tu jefe es lo que los expertos conocen como un "movimiento que limita tu carrera" y créeme, la gente lo recuerda mucho más tiempo de lo que puedas imaginar.

"No hay nada más molesto..." . Estoy en completo desacuerdo. Como gerente, es su trabajo contratar personas que sean más inteligentes que usted. Los conjuntos de habilidades técnicas y de gestión son diferentes y, como se señaló en otras respuestas, los desarrolladores suelen tener más conocimientos que sus gerentes.
@adelphus Cierto, pero no es prudente que un desarrollador junior asuma que es más inteligente que su gerente. Él mismo dice que el método del gerente requeriría un poco de estudio para implementarlo, por lo que obviamente no está tan familiarizado con él y, como tal, diría que no está en posición de decidir si su forma es mejor.
No hay nada más estúpido que alguien que se deleita en su estúpida creencia de que todos los demás deben ser más inteligentes.
@UpAllNight, quiero que implementes un servidor web en lenguaje ensamblador. Si implementar eso requiere un poco de estudio para usted, entonces obviamente no está en posición de decidir que otra forma es mejor.
El hecho es que no tiene nada que ver con "ser más inteligente". Tiene que ver con la responsabilidad de cada uno de entender sus deberes y tareas. Y, un miembro del grupo debe insistir en su derecho a tener iniciativa. Si ve lo que le parece ser una mejor manera de lograr los propósitos del grupo, pero no debe hacerse de esa manera, tiene derecho a entender por qué no.
@Wildcard hago eso todo el tiempo

Será mejor si escucha a su jefe correctamente y programa según las instrucciones.

  • La razón principal detrás de esto es que es posible que no sea el único programador del proyecto, por lo que si sigue la guía, eso será bueno para los demás programadores y los programadores que trabajarán después de usted.

  • Cada empresa tiene una estructura/cultura de trabajo especial, aquí me refiero al modelo de software. si todos los programadores siguen la misma pauta, será fácil para todos comprender el código de los demás.

Si eres un desarrollador junior , entonces, sí. Su papel está integrado en su título. Los desarrolladores júnior son contratados para hacer el trabajo duro. Puede parecer un poco explotador, pero al mismo tiempo, hacer el trabajo duro ayuda a los desarrolladores a comprender el código y familiarizarse con los patrones y procesos, especialmente en lo que respecta a cómo los utiliza su organización en particular.

Haz las cosas como dice tu jefe, pero aún puedes ser creativo mientras coloreas dentro de las líneas. Busque formas innovadoras de mejorar la eficiencia, la legibilidad y la estabilidad de su código. Asegúrese de que se haya probado a fondo y piense en escenarios de casos límite para probar. Casi cualquier código de desarrollador junior se revisará en algún momento, y si el revisor ve constantemente un código sólido, eficiente, completamente probado y bien documentado, entonces su opinión tendrá mucho más peso. Con el tiempo, es posible que pueda sugerir nuevas formas de hacer las cosas, ya que ha demostrado una buena ética de trabajo y prácticas de codificación sólidas. También es más probable que te asciendan a un puesto con más autonomía en ese momento.

Recuerde también que, para bien o para mal, la comunidad de programación está muy basada en castas. Los desarrolladores senior no siempre son amables con los desarrolladores junior pensando que saben más, incluso si lo saben. En última instancia, debe mostrar respeto en todo lo que hace. Incluso si conoce a un desarrollador en particular, su jefe, etc., están completamente equivocados, no salga y diga eso. En cambio, aborde los conflictos desde una perspectiva de aprendizaje. Pídele a tu jefe o a quien sea (amablemente) que te explique por qué se debe hacer una cosa de la manera que dice que se debe hacer, para que realmente puedas entender. A menudo, puede comenzar conversaciones de esta manera y, potencialmente, presentar sus ideas de una manera más relajada, donde su jefe no escucha tanto "estás equivocado" como "trabajemos juntos para encontrar la mejor manera".

Por último, no seas arrogante. Todos los desarrolladores de todos los niveles de experiencia siempre piensan que son estrellas de rock. Es un efecto secundario de lo que hacemos, ya que el acto de creación hace que uno se sienta como un dios. Sin embargo, la simple verdad es que siempre hay algo nuevo que aprender y siempre áreas en las que puede mejorar. He estado programando la mayor parte de mi vida, y todavía aprendo cosas nuevas todos los días, todavía tengo momentos de estupidez que golpean la cabeza todos los días. Está bien. Eso es normal. El peligro viene cuando crees que lo sabes todo, porque entonces eres imposible de enseñar.

Sí, he recorrido este camino tantas veces que, con suerte, su jefe supervisará todo el panorama. He perdido la cuenta de las veces que pude hacer las cosas de manera más rápida y eficiente, solo para que me informaran más tarde sobre una dependencia/característica que cambia completamente el juego. Seguir el procedimiento establecido y posteriormente, en su caso, sugerir mejoras/retroalimentación.

Como han dicho otros, la respuesta corta es "sí". Haz lo que tu jefe te dijo que hicieras.

Puede pensar que su manera es "mejor", pero la definición de mejor de su jefe puede ser diferente a la suya. Si eres un programador junior, entonces, por lo general, tu jefe tendrá un conocimiento y una experiencia mucho más amplios que los tuyos. Por ejemplo, sabrá cosas como:

  1. Lo que se ha intentado antes en la empresa, y por qué algunas cosas funcionaron y otras fallaron. Las causas de la falla a menudo no son técnicas; pueden estar más relacionados con la experiencia del personal, la voluntad de invertir, la estructura organizativa o incluso la política interna.
  2. Qué proyectos futuros dependen del actual.
  3. El plan estratégico de la empresa; específicamente la visión de la empresa de lo que quieren ser conocidos.
  4. Qué atributos valoran los clientes en sus productos
  5. Qué tipo de cosas pueden ser explicadas por su personal de Ventas/Marketing (si las hay) y, por lo tanto, utilizadas para vender el producto.
  6. Las implicaciones legales de hacer las cosas de una manera frente a otra.
  7. Los amplios impactos económicos/financieros de hacer las cosas de una forma frente a otra.
  8. La vida útil prevista del código que está escribiendo.
  9. Planes para mantenerlo/mejorarlo.

En un mundo ideal, su gerente le explicaría todas estas cosas para que conozca el contexto completo del trabajo que está haciendo. Pero no todos los gerentes tienen el tiempo o la inclinación para hacer eso. Puede presionar para obtener estas explicaciones, pero deje de presionar si siente alguna molestia. Sin estas explicaciones, no puede decir qué enfoque es "mejor", así que simplemente haga lo que su jefe le dijo que hiciera.