¿Cuál es el peor entorno de trabajo para un ingeniero de software?

He sido programador, desarrollador, ingeniero de software, por más años de lo que quiero admitir. Estoy bastante de acuerdo con Tim Hodgson.

El peor tipo de entorno físico para mí es la oficina de plan abierto que se ha vuelto omnipresente, presumiblemente porque los tipos de administración incompetentes piensan que es más barato de crear y creen que la comunicación continua nos ayuda. Me resulta muy difícil mantener la intensa concentración que a menudo se necesita y no exagero cuando digo que puedo hacer más trabajo de programación en una hora en mi Mac en casa que en un día completo en la mayoría de las oficinas.

Otro problema importante es que una pantalla enorme es una ayuda masiva para la productividad. Cuando puede establecer varias tareas en la pantalla y ver las relaciones entre ellas, el trabajo vuela mucho más rápido que cuando tiene que seguir haciendo cambios de contexto. Sin embargo, muchas compañías que tienen dinero de sobra nos equipan con pequeños monitores viejos o (peor) computadoras portátiles en las que hacer codificación y diseño pesado.

Otro error es cualquier compañía que espera que usted rinda cuentas por cada minuto del día laboral registrando todo su tiempo en algún código de costo con cargo.

Finalmente, existen los tipos técnicamente desorientados, generalmente en un rol de Gestión de Proyectos (o … peor … SCRUM Master) que hacen un gran problema sobre el hecho de que deletreó mal algo en el documento de lanzamiento que le dijeron que escribiera 5 minutos antes era “necesario”, pero desconocen los más de 100 problemas técnicamente exigentes que resolvió en un tiempo doblemente rápido.

EDITAR: solo corrige errores tipográficos y ortográficos

Muy en general, y solo es cierto en promedio, es mucho más probable que seas feliz en una compañía cuyo producto es software que una compañía cuyo producto es otra cosa (como una pieza de hardware o un servicio que no se ejecuta principalmente en software) .

Esto NO es absolutamente universal y estoy seguro de que hay muchos contraejemplos.

SIN EMBARGO, con mayor frecuencia, si el software es el producto, el software es algo que la empresa y su gerencia aprecian y valoran. Hacen eso porque ES su valor. Y lo más probable es que tengan un equipo de desarrollo de software que incluya la administración que entienda el software y lo que es y lo que es difícil y cómo hacerlo de manera efectiva.

Cuando una compañía realmente vende algún producto o que NO es software (o un servicio que no se ejecuta principalmente en software), es más probable que el software se vea como una sobrecarga y un costo que debe minimizarse.

Esto es ABSOLUTAMENTE no absoluto. Hay muchos contraejemplos en cualquier dirección. Pero a lo largo de los años ha sido una primera aproximación decente de lo que será para mí trabajar en una empresa.

Un ambiente de trabajo donde …

  • se le pide que cree algo nuevo y se le da una fecha límite imposible . Por ejemplo, cree una nueva X con la última tecnología, para fines de este mes.
  • se le da un código mal escrito y mal mantenido, y se le pide que “simplemente lo haga funcionar” .
  • en lugar de incluso las especificaciones más rudimentarias, se le pide que busque otra aplicación (ya sea interna o externa a la empresa) y que haga una “así como así, solo que mejor” . (No pude evitar reírme ante esta solicitud)
  • Su espacio de trabajo está en el centro de una habitación grande con mucho tráfico peatonal y mucho ruido. (Piense en vendedores que hablan por teléfono todo el día)
  • le asignan una oficina y, un par de semanas después, otra persona se muda con usted porque “no necesita silencio para hacer su trabajo” . (Algo común en las empresas de nueva creación, pero para las empresas más antiguas, una mala señal)
  • El trabajo diario cambia todos los días, dependiendo del capricho de una persona . Peor aún cuando son varias personas las que dan dirección. Peor aún cuando varias personas intencionalmente dan una dirección conflictiva por motivos políticos o ignorancia. (Típicamente visto en compañías pesadas en administración)
  • te contratan para ser ingeniero de software, pero pasas todo tu tiempo administrando a otros . (Oh, ¿no te dije que tú también eres el supervisor?)
  • se le otorga toda la responsabilidad del proyecto , pero ninguna autoridad para tomar decisiones o afectar el resultado. Por ejemplo, “convence a tu equipo de hacer XYZ, no puedes decirles que lo hagan directamente”.
  • lo contratan para ser ingeniero de software y pasa todo su tiempo realizando soporte de primer o segundo nivel . (El cliente es lo primero, sobre todo lo demás, incluso para lo que te contratamos)
  • la computadora que se le da está dañada o rota ; y terminas gastando tu propio dinero para arreglarlo o mejorarlo. (No necesita la tecla “F”, ¿verdad? Bueno, podría decirle qué hacer con ella)

Podría seguir…

Por cierto, me he encontrado con todas estas situaciones en mi carrera, y en un grado u otro, son parte del trabajo y parte de llevarse bien con los demás. No me arrepiento de las compañías o personas involucradas que me ayudaron a hacer esta lista. Todo fue parte de la experiencia.

  • No eres respetado:
  • Sus preferencias se usan pero se asumen, no se sondean, y ocasionalmente se le explican sin margen de corrección.
  • Su personalidad e identidad más amplias son prescritas por otros.
  • Estás mal administrado:
    • Múltiples gerentes / superiores con demandas conflictivas.
    • El trabajo viene en grumos, por lo que la única forma de trabajar a un ritmo constante es adivinar lo que se le exigirá en la próxima “emergencia”.
    • Un individuo está en condiciones de abusar de su poder sobre usted.
  • Su producto está mal planificado:
    • Las expectativas cambian varias veces dentro de los plazos.
    • Las decisiones se toman en función de los resultados deseados, no de los caminos disponibles para llegar a ellos.
    • Nunca deje el “modo de emergencia” / “marcha de la muerte” en su producto.
    • Nadie que toma decisiones habla con los clientes o con las personas que hablan con los clientes.
  • Las siguientes cosas están infravaloradas y bajo influencia promociones / recompensas:
    • Prevención de emergencias.
    • Aumentar la eficiencia de otras personas.
    • Seguridad.
    • Automatización.
    • Mantenimiento.
    • Usabilidad.
    • Fijación de deuda técnica.
    • Seguimiento e investigación de problemas reportados.
  • Las siguientes cosas están sobrevaloradas y sobre influencian las promociones / recompensas:
    • Ser ruidoso / agresivo sobre sus opiniones / demandas.
    • Reinventar cosas sin reducir la deuda técnica.
    • Reinventar cosas sin integrar la nueva solución en el sistema anterior.
    • Prueba brillante de conceptos que no se productizan.
    • Antigüedad.
    • Dinámica social fuera del lugar de trabajo.
  • Su entorno no es propicio para brindar buenos resultados a sus superiores.
    • No tiene voz para escalar problemas, pero aún enfrentará las consecuencias para ellos.
    • Su entorno (número de reuniones, plano de planta) está estructurado para que solo pueda hablar sobre su trabajo y nunca hacerlo.
    • No puede obtener las herramientas / recursos que necesita para hacer su trabajo.
  • No se respetan los acuerdos que ha realizado con la empresa.
    • Su función laboral cambia sin su consentimiento, lo que le otorga responsabilidades en cualquier cosa, desde ser gerente hasta una secretaria.
    • Su jefe puede exigir interminablemente fines de semana y horas extras.
    • Su jefe puede cancelar sus vacaciones meses después de su aprobación.
    • Su jefe le permite tomar sus vacaciones, pero no disminuye su producción esperada durante el tiempo que está de vacaciones ni planifica los plazos en torno a las horas disponibles por persona.
    • Su salario no se mantiene al día con la inflación.
  • Los incentivos personales para empleados y los incentivos de la empresa no están alineados
    • La política de la oficina domina la creencia en lugar de los resultados.
    • No está claro qué tipo de comportamiento / resultados lo promocionarán.
    • No parece que las acciones de nadie más formen un círculo de retroalimentación significativo para el despido / promoción.
    • No hay consecuencias significativas por ser terrible para tus compañeros de trabajo.

    Podemos señalar dos tipos principales de factores que afectan la experiencia laboral de un individuo.

    • Factores humanos
    • Tener al menos un Reclamante. El único tipo que se queja de todo, relacionado con el trabajo o no, sin sugerir soluciones.
    • Tener al menos un Blamer . Cada vez que algo sale mal, él / ella es quien comienza a señalar con el dedo quién tiene la culpa y quién no, en lugar de salir primero del problema.
    • Falta de conocimiento de las convenciones y estándares de la industria. Cuando señala que el servicio web RESTful se encuentra en un estado que no puede llamarse RESTful, o dice “Creo que debería importarnos cumplir con las convenciones de nomenclatura”, o dice “estamos rompiendo innecesariamente las mejores prácticas conocidas”, pero entonces usted llamarse “quisquilloso” o escuchar “… las convenciones / normas / mejores prácticas no son sagradas”, y usted está casi solo en ese argumento. Entonces es una bandera roja.
    • Las murmuraciones son comunes, y algunas veces son grupales, y nadie es llamado por ello. En serio, huir . Es tóxico como Chernobyl.
    • Mala gestión (Moralmente). Deja enfermedades morales / éticas / psicológicas para infestar como se muestra arriba.
    • Mala gestión (técnicamente). Te pone en plazos abrumadores. Rehacer. Investigación de requisitos basada en codificación. Lo expone a una responsabilidad innecesaria y espera que compense los errores cometidos por otros.
  • Factores físicos
    • Subestimación de la tranquilidad.
    • Mala iluminación
    • Mal estado del baño.
    • Mala ventilación y temperatura ambiente.
    • El tamaño de la habitación de un gerente superior> = El tamaño de todo el equipo de desarrollo.
    • No hay vistas exteriores. El cielo es apenas visible, no hay árboles. Hormigón por todas partes. Esto es eventualmente depresión. Algunas habitaciones que vi incluso no tenían ventanas -_-. Solo puedes saber que es mediodía o anochecer mirando los relojes.
    • Malas sillas.
    • Pequeñas pantallas.
    • Mal olor.

    Entonces, hablando como alguien que ha formado parte de un equipo de software muy exitoso durante 6 años y lo ve destruirse en poco más de un año, diría que lo más pernicioso para un desarrollador es la política .

    Los mejores equipos están motivados por la idea de que sus capacidades les darían recompensas proporcionales. Donde hay gente siempre habrá política, pero sabes que las cosas se están yendo de las manos cuando las consideraciones políticas se vuelven una preocupación más grande para el tipo promedio en el equipo que el desempeño.

    La gestión no técnica generalmente empeora este aspecto porque tienes un traje muy bien pagado sobre un equipo del que conoce poco pero que siempre se siente amenazado por la posibilidad de que uno de los muchachos bajo él “se haga cargo”. Esto convierte la situación en un desastre políticamente cargado donde la primera víctima es la productividad.

    Y cuando un programador no es productivo, y sus manos están atadas por tener una salida creativa para sus habilidades, crea infelicidad y disminuye aún más la productividad.

    La razón de este tipo de desastre es la mala gestión. Cuando la administración está más preocupada por la política y siente poca resistencia a incendiar sus informes directos si es conveniente hacerlo, la gente reconoce que no hay futuro en una configuración de ese tipo y las mejores personas (que tienen opciones fáciles en otros lugares) son las primeras unos para irse.

    Lo mejor es evitar lugares como ese.

    Después de leer todas las respuestas, al principio pensé, hey, la mayor parte de la mala experiencia que un ingeniero de software puede experimentar está ahí. Entonces se me ocurrió una idea de que tal vez, tenemos algo nuevo que aprender aquí.

    En primer lugar, veamos cómo puede beneficiarse al leer algunas de las respuestas. Tal vez te das cuenta de que algunos de los puntos dolorosos se aplican a ti. Tal vez aproveches esta experiencia para darte cuenta de que es hora de hacer un cambio, y haces todo lo posible para conseguir el trabajo que mereces. Esta fue la intención de este artículo sobre malos trabajos también.

    Tenga en cuenta que existe una creciente demanda de desarrolladores de software. La ubicación geográfica es cada vez menos importante, ya que Internet rompe las barreras y el trabajo remoto está cada vez más disponible que nunca. Tenga en cuenta que tiene la oportunidad de cumplir con estándares más altos y dejar a las empresas con una cultura que no es compatible con la suya.

    Si las empresas se dieran cuenta de cuánto les cuesta proporcionar una mala experiencia de desarrollador, comenzarían a trabajar en la cultura de la empresa. Las fallas fundamentales a menudo se reducen a los valores que representa la empresa y la cultura que establece la empresa.

    Desafortunadamente, incluso si una empresa hizo todo lo posible para mejorar su cultura y defender sus valores, algunos de ustedes aún pueden encontrar un mal ambiente de trabajo. La razón es que sus valores individuales pueden estar en conflicto con los valores de la empresa para la que está trabajando. Este choque inevitablemente conducirá a una menor satisfacción laboral.

    La respuesta de Silviu presenta la prueba de Joel. Este artículo muestra que a pesar de que hay mérito en lo que dice Joel, en última instancia, doce respuestas sí / no no describirán lo genial que es una empresa para usted. Esto se debe a que el “usted” cambia en esta ecuación en función de quién está leyendo estas respuestas. Por ejemplo, imagina que obtienes ocho respuestas afirmativas en la prueba de Joel, pero obtienes total autonomía para apuntar a las cuatro respuestas restantes sin respuesta, eres competente para marcar la diferencia y tus colegas te apoyan totalmente y te quieren. ¿Trabajarías en un entorno como este que en una empresa con 11 respuestas sí, donde no tienes ninguna posibilidad de obtener el duodécimo sí?

    Por lo tanto, mi respuesta a la pregunta “¿Cuál es el peor entorno de trabajo para un ingeniero de software?” Es que depende del ingeniero de software en cuestión.

    Tenga en cuenta el peligro de esta pregunta. Al leer todas las cosas malas a continuación, puede pensar, bueno, aunque hay problemas con mi trabajo, no es tan malo como algunos de estos puntos. Solo leer estas respuestas puede hacerte sentir que estás bien en comparación con los demás. Es por eso que las comparaciones son tan peligrosas.

    A lo largo de mi vida, he aprendido que compararme con los demás socava mi autoestima. Cuando hago compromisos, mi autoestima sufre. Al final, vale la pena compararme con mi yo pasado de ayer y con nadie más en lo que respecta al desarrollo profesional y personal. Si comparte esta opinión y elimina el hecho de que hay personas con peores condiciones de trabajo que usted, es posible que vea más claramente si está en el lugar correcto.

    Una compañía con un pequeño ejército de ingenieros superficiales que tienen estudios universitarios pero nunca han estado expuestos a trabajar con ingenieros de A-Team que hacen cosas. Son elogiados por ser “pluggers” que hacen sacrificios personales para hacer las cosas a tiempo sin importar lo que pase. La antigüedad se valora como la estrategia para obtener un aumento y obtener reconocimiento, por lo tanto, vemos a “personas vivas” dispuestas a defender el status quo hasta la muerte. Finalmente, la necesidad de especialistas lleva a la creación de algunos “equipos ninja”, pero la cultura de la empresa aún no puede explicar la relación entre los “ninjas” y los “pluggers” y el resultado neto es negativo. Al final, los “ninjas” obtienen otro trabajo, los “pluggers” son promovidos al estilo Peter, y el círculo de la vida continúa.

    ¿Qué tiene de malo esto? No toma en serio el oficio de crear un excelente software.

    Un rasgo importante de un buen ingeniero de software: desprecia tener que trabajar en software malo con personas a las que no les importa.

    Recientemente escribí un artículo titulado “La Declaración de derechos del programador, revisada” en la que se describen 10 principios fundamentales para crear un buen ambiente de trabajo para programadores, desarrolladores o ingenieros de software.

    Negar esos conceptos básicos conducirá a un entorno de trabajo deficiente, con síntomas que incluyen: baja moral entre los miembros del equipo, disminución de la motivación y fuga de cerebros en el equipo, ya que muchos desarrolladores talentosos se irán a una empresa más abierta.

    En ese mismo artículo, hay una sección que describe uno de los peores entornos de trabajo que he visto para los ingenieros de software.

    Aquí hay algunas respuestas excelentes, sin embargo, no estoy seguro de si alguien mencionó la prueba de Joel para empresas que contratan programadores:

    1. ¿Usas control de fuente?
    2. ¿Se puede hacer una acumulación en un solo paso?
    3. Haces contrucciones todos los dias.
    4. ¿Tienes una base de datos de errores?
    5. ¿Tú arreglas los errores antes de escribir un nuevo código?
    6. ¿Tiene un horario actualizado?
    7. ¿Tienes una especificación?
    8. ¿Los programadores tienen condiciones de trabajo tranquilas?
    9. Utilizas las mejores herramientas que el dinero puede comprar?
    10. ¿Tienes probadores?
    11. ¿Los nuevos candidatos escriben código durante su entrevista?
    12. ¿Haces pruebas de usabilidad en el pasillo?

    Entonces, básicamente, el peor entorno de trabajo para un ingeniero de software (programador en general) sería uno en el que ninguna de las preguntas de la prueba se pueda responder con “sí”, mientras que la mejor sería una con una puntuación de 12 respuestas “sí”.

    “Lo bueno de The Joel Test es que es fácil obtener un sí o un no rápido a cada pregunta. No tiene que encontrar líneas de código por día o errores promedio por punto de inflexión Déle a su equipo 1 punto por cada respuesta afirmativa. Lo malo de The Joel Test es que realmente no debe usarlo para asegurarse de que el software de su planta de energía nuclear sea seguro.

    Un puntaje de 12 es perfecto, 11 es tolerable, pero 10 o menos y tienes serios problemas. La verdad es que la mayoría de las organizaciones de software funcionan con un puntaje de 2 o 3, y necesitan una ayuda seria, porque las compañías como Microsoft funcionan a las 12 a tiempo completo ”.

    Me sorprende que nadie haya mencionado a Hubstaff. Hubstaff realiza un seguimiento de lo productivo que eres contando las pulsaciones de teclas y el movimiento del mouse por minuto. ¿Debería uno enfocarse en diseñar código de tal manera que sea fácilmente escalable y eficiente o estar preocupado por qué personal de seguimiento está rastreando? ¡Venga! Soy desarrollador, no mecanógrafo.

    Me gustaría compartir mi experiencia sobre este tema:

    Fui reclutado en el campus de un instituto de capacitación en informática en Bangalore en 2011, la compañía que me ofrecieron me envió a la ubicación del cliente para el proyecto de apoyo. Y mi cliente es una de las compañías de bienes de consumo más grandes del mercado indio, me sorprendió bastante cuando mi compañía de nómina compartió los detalles del cliente conmigo y me sentí orgulloso de ser parte de ese gigante de bienes de consumo. Sin embargo, con la cara brillante, ingresé a mi empresa cliente, y este es mi primer día, noté que había un ambiente de trabajo completamente malo para el equipo de TI, de hecho, han modificado el área de la cocina como La estación de trabajo con Atenea por todas partes.

    Eso no es todo, la gente de negocios allí siempre domina a los técnicos de TI, ya que son muy verdes sobre los informáticos, el mantenimiento de la limpieza es muy deficiente y hay que caminar a la planta baja para ir a los baños o beber agua, no había impresora instalada, así que tenemos que caminar a otras áreas de trabajo de negocios, también, ¡nos proporcionaron un viejo sistema Wipro que cuelga habitualmente, sobre todo que había una pequeña biblioteca adyacente a la entrada donde las personas se reúnen allí para fumar! ¡Esta situación solo podía imaginarla pero la tuve en realidad!

    Diría que, en general, los ingenieros de software tienen el menor placer de trabajar en instituciones más grandes. Esto se debe a que las personas a cargo (es decir, los ejecutivos psicopáticos) casi nunca tienen experiencia técnica y toman decisiones que afectarán sus esfuerzos de trabajo sin tener en cuenta el impacto técnico: solo piensan en negocios y prefieren apariencias inmediatas de éxito en lugar de soluciones sostenibles reales.

    Más específicamente, he encontrado la ineptitud más ejecutiva dentro de las instituciones del sector público.

    Si tiene alguna habilidad y desea producir un trabajo significativo, evítelas a toda costa. Tienen la ventaja de excelentes beneficios, incluida una pensión sólida; pero gana menos dinero, tiene que trabajar en los entornos con mayor carga política, y su creatividad puede morir de forma lenta y dolorosa durante los años de la mediocridad.

    Muchas buenas respuestas aquí, pero prácticamente todas se pueden resumir en una oración simple ”

    Su gerente cree que sabe más sobre ingeniería de software que usted.

    Si tiene razón, estás en el trabajo equivocado.

    Si ella está equivocada, vas a ser microgestionado.

    Ambos apestan.