¿Cuáles son las características de un "Centro de Excelencia" (CoE) de Software?

13

Recientemente, un nuevo director de mi departamento entró y expresó su deseo de que nos convirtamos en un "centro de excelencia". Esperaba que dado que él es mi primer jefe, que en realidad tiene un fondo de programación, habría alguna descripción de esto. Sin embargo, fue dejado en eso.

Al reflexionar sobre esto en los últimos días, me estoy quedando sin entender qué significa realmente un CoE más allá de simplemente "ser efectivo" en la entrega del producto. Aquí están los elementos principales con los que estoy luchando:

  1. ¿Este es solo un término que se muestra por los tipos de administración?

  2. ¿Qué cualidades hacen que un grupo de desarrolladores y probadores de software sean excelentes?

  3. ¿Cómo mide la excelencia en este contexto?

pregunta Randy 03.06.2011 - 16:48

6 respuestas

7

Sí, este es solo un término que se muestra por tipos de administración, pero si elimina el lenguaje de administración, lo que él dice es que quiere un departamento que se considere que utiliza y que incorpora las mejores prácticas de la industria de manera que otros aspiren a y lo está haciendo para ofrecer excelentes soluciones a las personas que gustan.

(Este último bit es importante: si no lo estás entregando, no importa lo bueno que sea todo lo demás y tu administrador no estará presente por mucho tiempo).

La complejidad viene de dos maneras principales:

1) ¿Quiere esto porque entiende que es la forma correcta de desarrollar software y que así es como se producen excelentes productos, o lo quiere porque quiere presumir de ello?

2) ¿Aceptará el costo inicial (tiempo, dinero, credibilidad y riesgo) que conlleva la implementación de las mejores prácticas? Está bien decir "vamos a ser ágiles", pero está poniendo su reputación en la línea de que mejorará las cosas y tendrá que dedicar mucho tiempo a venderla a la organización. Casi siempre los beneficios son a largo plazo, los costos son a corto plazo y eso es lo difícil. En última instancia, ¿es realmente serio al respecto?

En términos de cómo se vería, bueno, eso depende de lo que esté haciendo, pero debe estar pensando en cuáles son los procesos de desarrollo y gestión de proyectos, qué herramientas está utilizando, qué kit tiene la gente y así. Joel Test siempre es un buen lugar para comenzar y, en particular, me gustaría ver un control de versión realmente sólido. proceso, muy buen seguimiento de errores y muy buenos procesos de compilación.

También me gustaría ver si las metodologías ágiles son adecuadas para usted (SCRUM en particular), en qué medida las pruebas automatizadas podrían ayudar (sin iniciar una guerra religiosa hay diferentes creencias sobre el punto en el que la complejidad de las pruebas supera los beneficios que proporcionan) si tiene las herramientas y el kit necesarios para hacer el trabajo. En general, sugiero que desee que las herramientas estén a la vanguardia pero no a la vanguardia. Vale la pena enfatizar que no se trata de tener juguetes, sino de darles a todos en el equipo las herramientas para que sean lo más productivos posible durante la mayor parte del día de trabajo posible. El ejemplo más obvio son las PC defectuosas: ¿es realmente excelente pagar a los desarrolladores para que vean un cursor mientras que su proyecto demora 5 minutos en construirse cuando lo construyen media docena de veces al día?

Algunas otras cosas que probablemente serán visibles en un centro de excelencia: sugiero que un centro de excelencia en software probablemente tenga un programa de capacitación bastante bueno, tal vez no cursos formales pero ciertamente presupuestos de libros, tiempo de estudio, tutoría y similares.

Y sugiero que probablemente también esté haciendo una pequeña cantidad (al menos) de R & D. Con eso no me refiero a cosas completamente azules, pero le doy espacio a los desarrolladores para probar cosas nuevas y evaluar nuevas herramientas e idiomas sin la presión continua de la entrega al cliente. Así es como avanzas y te mantienes bien el próximo año, el año siguiente y así sucesivamente.

¿Cómo puedes medirlo? Ah, la vieja pregunta. En última instancia, medir el desarrollo de software es difícil, si no imposible, y medir la excelencia en el desarrollo de software es igualmente difícil.

La única cosa que realmente puedo sugerir que creo que sería útil y que es ampliamente adoptada por muchas empresas es la satisfacción del cliente y del personal. Es una medida indirecta, pero mi opinión sería que si no eres excelente, es poco probable que obtengas grandes niveles de satisfacción del cliente y realmente grandes niveles de satisfacción del personal.

    
respondido por el Jon Hopkins 03.06.2011 - 17:14
6

Este es el problema con weasel words ; suenan como que significan algo ... pero realmente no lo hacen.

Desde el contexto, parece que su empresa produce un producto y que su director solo quiere que su departamento sea lo más eficiente y efectivo posible. IME, significa que tienen la intención de hacer una o todas las siguientes acciones:

  • Contratar nuevas personas con "requisitos estrictos" en la contratación (generalmente títulos superiores o certificaciones o reconocimiento de la industria)
  • "Recorte la grasa": deshágase de las personas que creen que no están produciendo
  • Inyectar dinero en el departamento para herramientas / procesos / personas / capacitación

Entonces, para responder directamente a sus preguntas:

  • No tengo una respuesta sólida para esto. Hay muchas métricas que se pueden usar para cuantificar la maravilla.
  • En este contexto, por lo general, ya sea que realice o no fechas de lanzamiento.
respondido por el Steven Evers 03.06.2011 - 17:10
3

En mis más de 30 años de experiencia, una frase como esa generalmente significa que queremos que produzcas más con menos personas.

    
respondido por el HLGEM 03.06.2011 - 18:57
2

En respuesta a tu punto número 1:
La respuesta es definitivamente Sí , es un término similar al de los jugadores experimentados de Bullshit Bingo . Sin embargo, eso no significa que el término carezca de significado.

Vayamos al número 2:
Tomado de Wikipedia : Centro de Excelencia: un cuerpo de conocimiento y experiencia formalmente designado y aceptado informalmente sobre el área temática . Olvidemos el nombramiento formal y la aceptación informal, y nos centramos en el cuerpo de conocimiento y experiencia. Me gustaría ver el conocimiento como fondo teórico, la experiencia final como algo que proviene de la aplicación práctica. Para lograr la excelencia, necesitas ambos. Aparte de esas cualidades (bastante obvias), creo que una tercera es esencial para alcanzar la excelencia: la capacidad de cuestionarse, reflexionar sobre lo que está haciendo y buscar formas de mejorar. El conocimiento que aprendes como estudiante, pero necesitas trabajar constantemente en él, estar al día con los últimos desarrollos, etc. La experiencia que acumulas es una experiencia que es casi inevitable. La parte más difícil desde el punto de vista de la administración es crear una cultura de reflexión y superación personal (buena suerte para tu jefe con esa ;-)

En cuanto a su pregunta número 3:
Creo que no puedes. Estoy hablando de algo más que simplemente llevar los proyectos al éxito aquí (lo cual ya es difícil de medir, entre otras cosas debido a la tendencia a declarar que incluso el proyecto más fallido es un éxito porque se ve mejor en la presentación de PowerPoint). La verdadera excelencia proviene de la actitud de todos los miembros de un equipo para dar lo mejor de sí mismos, para mejorar ellos mismos, sus herramientas, sus procesos, etc. Su mejor oportunidad es encontrar la manera de medir la efectividad de un proceso de mejora continua predefinido

    
respondido por el Treb 03.06.2011 - 17:11
1

La primera persona que me viene a la mente cuando pienso en "Centro de excelencia de software" es tío Bob Martin

El tío Martin es un defensor de la excelencia en el desarrollo de software desde hace mucho tiempo en la forma conocida como Software Craftsmanship . Como wikipedia lo describió

  

La artesanía de software es un enfoque para el desarrollo de software que enfatiza las habilidades de codificación de los propios desarrolladores de software. Es una respuesta de los desarrolladores de software a los males percibidos de la industria de software general, incluida la priorización de las preocupaciones financieras por la responsabilidad del desarrollador.

Escúchelo en el siguiente podcast mientras explica qué es la artesanía de software:

También puedes ver el Manifesto for Software Craftsmanship , que destaca la importancia de un software bien diseñado, agregando valor, la comunidad de profesionales, y asociaciones productivas

EDITAR: Dado que un centro de excelencia de software requiere programadores con una formación excelente, es posible que también desee consultar los siguientes recursos:

respondido por el Anthony 04.08.2012 - 03:23
0

Me suena como si solo dijera que quiere tener una cultura de calidad en lugar de cantidad, y nuevamente podría estar hablando en voz alta de su @ss. Como programadores, creo que tenemos una tendencia a pensar demasiado en lo que dice la gente. Al menos sé que lo hago. En cuanto a lo que dijo, es solo hablar corporativo, pero no lo pienses demasiado. Como han dicho otros, pregúntale.

    
respondido por el Ominus 04.06.2011 - 05:10

Lea otras preguntas en las etiquetas