¿Las compañías de ingeniería de software necesitan gerentes?

En un mundo ideal, nadie necesita un gerente. Todos hacen lo que hacen por el bien común, y todos están felices. Toda la información pertinente se difundiría a todos aquellos que la necesiten. Todo el mundo estaría de acuerdo implícitamente sobre la dirección del producto y la compañía para el caso. El dinero iría mágicamente a cada empleado. Afortunadamente, en un mundo ideal, cada empleado es exactamente igual en habilidades y contribuye de manera equitativa, por lo que todos obtienen exactamente el mismo sueldo. Me encantaría seguir hablando sobre el mundo ideal, pero desafortunadamente vivo en el mundo real.

Un buen gerente, especialmente para los ingenieros, debe proporcionar un entorno que le permita al ingeniero trabajar sin problemas externos. Saben que siempre hay una compensación entre costo, calidad y funcionalidad, y tratan de tomar las mejores decisiones para optimizar cada uno. Sería genial pasar meses haciendo que la función X sea excelente, pero todo lo que el cliente necesita es que la función X sea aceptable.

Un buen gerente encontrará y desarrollará talento, así como combinará conjuntos de habilidades para optimizar el rendimiento del equipo. No todos los empleados son iguales. Cada empleado sabe cosas diferentes y trabaja de diferentes maneras. Algunos tienen más experiencia que otros. Como no todos los proyectos son exactamente iguales, un buen gerente sabrá cómo asignar personas a los equipos apropiados. Ayudarán a desarrollar habilidades en los empleados y ayudarán a distribuir el trabajo bueno y aburrido.

Un buen gerente nunca debe saber tanto como sus ingenieros. Emplearán a personas en las que pueden confiar para conocer los detalles y proporcionar información suficiente a los demás. Además, un administrador inteligente contratará a tantas personas como sea posible que sean más inteligentes que ellos.

Asumir que un gerente es tonto siempre es una mala decisión. Ocasionalmente puede suceder, pero no es la norma. ¿Quizás deberías preguntarte qué te hizo suponer eso en primer lugar? ¿Quizás el gerente lo trata de esa manera porque de hecho no es tan capaz como los demás? Si honestamente cree que las “herramientas y tecnologías” son suficientes para reemplazar la administración, apuesto a que ese es el caso. ¿Por qué más harías una pregunta tan puntiaguda?

Debería preguntarse todos los días “¿Qué valor estoy agregando a esta empresa?” Si no puede responder fácilmente a esa pregunta, entonces parece que no ve la imagen completa y, por lo tanto, no puede comenzar a juzgar a su gerente.

editar: corregido algunos errores gramaticales y ortográficos

¿Qué quiere decir con “tonto”? ¿Hacen elecciones con las que no está de acuerdo? ¿Tienen un puntaje bajo en las pruebas de coeficiente intelectual? No conocen los mismos detalles tecnológicos que usted y todos los demás en su grupo, porque enfocarse en la tecnología por largos períodos?

El conjunto de habilidades para un gerente es diferente al de un desarrollador. Es muy parecido a ser padre. Sus responsabilidades incluyen:

  • Proporcionando dirección, asignando trabajo
  • Tratar con interrupciones constantes
  • Llevarse bien y mediar entre desarrolladores, evaluadores y administradores
  • Contratación, evaluación, despido.
  • Motivador
  • Resolviendo disputas
  • Orientación de nivel superior
  • Organizar entrenamiento
  • Administrar recursos, incluyendo tiempo y dinero.
  • Negociaciones con la alta gerencia sobre cronograma y presupuesto.
  • Pasar sus días en reuniones

Un gran problema es que las personas con habilidades de desarrollador se tocan con una varita mágica: ¡prang, eres un gerente! Sin entrenamiento ni aptitud.

En “The Peter Principle” hay una historia sobre el mejor mecánico de una tienda de automóviles, que es ascendido a gerente de tienda. Por lo general, se lo podía encontrar con la cabeza debajo de una capucha. Mientras tanto, los otros mecánicos se quedaron esperando el trabajo.

Es un trabajo duro.

Sí, algunos gerentes de proyecto son tontos. No saben qué diablos está cocinando en los programas que en realidad son los productos que le dan pan y mantequilla a la empresa, pero aún así se sientan en posiciones altas.
Los gerentes en las compañías de software deben ser de antecedentes técnicos, siempre. Si no es así, seguramente los desarrolladores de software serían más inteligentes. En el desarrollo de software, es importante conocer el proceso de desarrollo para hacer cualquier cosa relacionada.

Los gerentes en general son inútiles sin el conocimiento y la experiencia de dominio adecuados.

Tengo una frase para ingenieros no administrados … “Reclusos que dirigen el asilo”.

Hace mucho tiempo, en el primer boom de las punto com, trabajaba para una empresa que estaba haciendo terminales de internet por hardware. Phoenix BIOS para nuestras placas base habría sido un dólar por placa. Como un grupo de programadores, pensamos que esto era indignante … ¡podríamos escribir un BIOS nosotros mismos arrancando un kernel de Linux desde el chip del BIOS en unos pocos meses-hombre, y ahorrar MILLONES! WOO HOO! ¡INGENIEROS BRILLANTES AHORRAN A LA COMPAÑÍA UNA FORTUNA!

El proyecto llegó a su fin cuando descubrimos que no podíamos arrancar un kernel de Linux con una imagen inferior a 720k, demasiado grande para un chip PROM de 512k. Hubiera costado más ir a una PROM de 1M que simplemente usar Phoenix BIOS.

Pero aquí está la verdadera idiotez … perdimos varios meses hombre en este ejercicio de arrogancia y machismo del programador. Todos sabíamos que el reloj avanzaba, que el dinero de las punto com no estaría para siempre. Arriesgamos todo el negocio para ahorrar un poco de dinero en el futuro. Eso es estúpidamente estúpido. ¡Y lo hicimos porque no teníamos un gerente “tonto” para intervenir y decirnos que dejáramos de perder el tiempo y hiciéramos un trabajo que realmente nos llevaría a un producto que funcionara!

Existe la ilusión de que inteligentes y estúpidos son opuestos. No son. Felizmente coexisten en un solo cerebro.

Tal vez que ninguna gestión es mejor que la mala gestión. En algunas circunstancias, al menos, es posible que un grupo de programadores decentes trabaje cooperativamente para construir un sistema común a través de sus propias iniciativas y sin interferencias externas. En el pasado, ciertamente he visto a algunos de estos gerentes despistados apartarse del camino y centrarse en tareas administrativas como la facturación y el filtrado de interrupciones en nombre del equipo de trabajo. Las cosas se hicieron, pero muchos problemas no se abordaron. Cada programador siguió su propio camino a través de su propia visión de túnel, se compartieron o estandarizaron muy pocas prácticas, cada persona tuvo que abrirse camino por sí misma … El más pequeño de los éxitos dependió del esfuerzo heroico de cada individuo, que tuvo que hacer demasiado muchas decisiones para realizar su trabajo profesionalmente en todos los niveles. La libertad conduce a la arrogancia y la arrogancia a un desastre de trucos cuestionables improvisados ​​y a menudo inacabados. Algunas personas discutirán sobre las virtudes de trabajar de esta manera, y se ha logrado mucho en ausencia de las clases gerenciales. Se puede hacer, pero ¿qué tan óptimo podemos esperar ser al deshacernos de la administración?

El software es un proceso de colaboración, y cada vez que las personas trabajan juntas, hay que administrar algo. Se deben distribuir los roles, se deben compartir las normas y prácticas, se deben acordar las instrucciones, se deben cumplir las buenas condiciones de trabajo, etc. Un buen gerente puede trabajar para asegurarse de que todos y todo funcionen bien juntos. Podemos elegir distribuir estas responsabilidades entre el equipo de producción, pero tal vez a costa de aumentar la carga cognitiva de los programadores y con el riesgo de dejar que las cosas sucedan como pueden. El software y la documentación pueden ayudar a enmarcar la forma en que las personas trabajan juntas, pero tener a alguien para centrarse en facilitar una gran cooperación puede ser una contribución valiosa. Quizás la clave no sea deshacerse de la administración, sino asegurarse de que exista para apoyar a la tripulación y al proyecto.

Los gerentes se enfrentan con el ejecutivo y asumen la responsabilidad de si el proyecto va en la dirección correcta o incorrecta. Ingeniería de software no tendrá que tomar tanto.
Si está trabajando con Scrum, entonces usted y el equipo serán los dueños de lo que entregan. En ese momento, no necesitará un gerente, sino un Scrum Master para evitar que todos los demás lo distraigan de cumplir lo que se ha comprometido.
En resumen, el gerente o los ingenieros de software de Scrum Master ayudan a centrarse en lo que son buenos.

Supongo que está hablando de gerentes de proyecto, por lo que responderé en función de eso.

1. Dudo mucho que la mayoría de los pms sean tontos. Pueden o no tener un buen conocimiento del lado de la ingeniería de las cosas y eso definitivamente puede afectar su capacidad para administrar de manera efectiva.

2. No todos los ingenieros de software odian sus pms. Y estaría dispuesto a apostar que su inteligencia rara vez es un factor en sus sentimientos. Estoy dispuesto a apostar que en la gran mayoría de los casos esa capacidad de hacer su trabajo es un factor mucho mayor. Y sé lo que estás pensando, si son tontos, entonces no pueden hacer su trabajo. Así que lo remito a mi respuesta para 1.

3. Las herramientas y la tecnología son tremendamente útiles. Los buenos pms los usan cuando corresponde. Pero si no hay pm, ¿quién está monitoreando el progreso? ¿La alta dirección? Dudoso ya que tienen otras cosas que hacer y casi con certeza tienen una comprensión aún menor del lado de la ingeniería que los pms, en promedio. ¿Los propios ingenieros? Una vez más, es poco probable porque están demasiado ocupados haciendo el trabajo frente a ellos.

La última tarde con la que trabajé me dijo que su trabajo era ayudarme a hacer mi trabajo mejor. Y creo que la mayoría de los buenos reflejarían ese sentimiento. Actuó como la interfaz entre la alta dirección y los ingenieros. Pudo decirles cuánto trabajo podíamos hacer en cuánto tiempo y asegurarse de que no nos presionáramos demasiado. Pudo filtrar todo el gobbledy corporativo y realmente decirnos qué necesitaba la alta gerencia para que pudiéramos ver si se podía hacer.

Los PM tienen valor. Pero como todas las cosas, las buenas mejoran la vida y las malas empeoran las cosas.

Desde que dirijo una empresa de desarrollo de software, diré un sí fuerte. Organizamos nuestra empresa en equipos. Un equipo de desarrollo como desarrollador senior y dos desarrolladores junior. Reportan y son administrados por el CTO, que también es el arquitecto de software. Somos una tienda ScrumDo. Agregaré un gerente de producto para cada uno de los productos principales que desarrollamos, pero funciono como gerente de producto que representa a los clientes y posibles clientes.

Siempre desconfío de que los desarrolladores se queden solos. Puede pensar que estaba obteniendo un pura sangre pero terminó con un camello. Ambos tienen cuatro patas y pueden correr.

More Interesting

¿Qué tipo de empresa puede iniciar un empleado de nivel básico a tiempo parcial o completo?

¿Por qué estas compañías de TI están llevando a estudiantes / estudiantes de primer año no técnicos a los campos de TI? ¿A dónde se supone que debemos ir (estudiantes de primer año de MCA)?

Estoy trabajando en Cognizant. Mi edad es 23. Desarrollador de Dotnet. Quiero cambiar a una empresa basada en productos de servicio basado. ¿Qué tengo que hacer?

¿Cuál es la peor de estas 2 opciones: aceptar la oferta y no unirse o unirse a la nueva empresa y dejar el trabajo en 1 mes?

¿Cómo es trabajar en una empresa de renombre que le paga bien pero no le da trabajo que hacer?

¿Cuál es el punto importante que debe ser considerado por cualquier supervisor de cualquier empresa?

¿Qué se debe hacer si otras empresas (grandes / pequeñas) siguen la misma idea?

Instituto Nacional de Tecnología de Karnataka (NITK), Surathkal: ¿Cómo se comparan las ubicaciones químicas y metalúrgicas en NIT-K con NIT-T y VNIT? ¿Las empresas de consultoría y finanzas reclutan estudiantes de estos departamentos en estos NIT? ¿Cómo es el pago?

Mi porcentaje de btech es inferior a 60 ¿conseguiré un trabajo? ¿Hay empresas que acepten menos de 60?

¿Qué todas las empresas reclutarán para estudiantes de Mtech VLSI?

Soy un probador manual / mainfranes y tengo 8 años de experiencia en el mismo proyecto. ¿Cómo cambio de compañía?

¿Cuál es la mejor compañía para que un estudiante universitario realice viajes misioneros?

¿Cuáles son las mejores empresas de tecnología para un fondo de electrónica que no sean Texas y Qualcomm y no gubernamentales?

¿Qué empresas contratan a estudiantes de primer año como desarrolladores de Hadoop en India?

¿Cuáles son algunas buenas compañías de software en Pune que trabajan con las últimas tecnologías?