¿Cuáles son las características de un "centro de excelencia" de software (CoE)?

13

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

Como reflexioné sobre esto en los últimos días, me estoy quedando vacío sobre lo que realmente significa un CoE más allá de simplemente "ser efectivo" en la entrega del producto. Estos son los principales elementos con los que estoy luchando:

  1. ¿Es este solo un término que los tipos de administración arrojan?

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

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

Cachondo
fuente
77
Un "Centro de Excelencia" es un centro de codificadores masticable y delicioso, en medio de un dulce y crujiente manejo. ;)
FrustratedWithFormsDesigner
8
¿Le has preguntado? Quiero decir ... la descripción puede no estar allí todavía, pero definitivamente le preguntaría qué quiere ver en los desarrolladores y evaluadores para llamar al departamento un centro de excelencia. De lo contrario, solo estás apuñalando en la oscuridad con pocas posibilidades de éxito y una gran posibilidad de frustración.
Marjan Venema
@Marjan, no le he preguntado ya que está un poco más arriba y no tengo mucho tiempo de cara (y no he tenido ninguno desde entonces). Asegúrate de que lo haré la próxima vez. Solo me gustaría informarme primero de fuentes confiables de terceros :)
Randy
Aprobado por eso. Siempre es bueno venir preparado con lo que crees que significa un centro de excelencia ...
Marjan Venema
1
Probablemente esta publicación de blog podría tener algunas ideas para usted: agileelements.wordpress.com/2008/10/29/… (ya que es de un tipo (no yo) que ha establecido uno en su organización).
yasouser

Respuestas:

7

Sí, este es solo un término que los tipos de administración arrojan, pero si elimina el lenguaje de administración, lo que está diciendo es que quiere un departamento que se considere que utiliza e incorpora las mejores prácticas de la industria de una manera que otros aspiran y lo están haciendo para ofrecer grandes soluciones que a la gente le guste

(Esta última parte es importante: si no está entregando, no importa cuán genial sea todo lo demás y su gerente no estará disponible 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 grandes productos, o lo quiere porque quiere alardear 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 ágilmente", pero está poniendo en juego su reputación de que mejorará las cosas y tendrá que pasar mucho tiempo vendiéndolo en la organización. Casi siempre los beneficios son a largo plazo, los costos son a corto plazo y esa es la parte 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 pensar en términos de cuáles son sus procesos de desarrollo y gestión de proyectos, qué herramientas está utilizando, qué kit tiene la gente, etc. . La prueba de Joel siempre es un buen lugar para comenzar y, en particular, me gustaría ver un proceso de control de versiones realmente sólido, un seguimiento de errores realmente bueno y procesos de compilación realmente buenos.

También analizaría si las metodologías ágiles son adecuadas para usted (SCRUM en particular), en qué medida las pruebas automatizadas podrían ayudar (sin comenzar una guerra religiosa, existen diferentes creencias sobre el punto en el que la complejidad de las pruebas supera los beneficios que ofrecen proporcionar) si tiene las herramientas y el kit necesarios para hacer el trabajo. En general, le sugiero que desee que las herramientas estén a la vanguardia pero no en el límite. Vale la pena enfatizar que no se trata de tener juguetes, se trata de dar a todos en el equipo las herramientas para ser 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 miren un cursor mientras su proyecto tarda 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: sugeriría que un centro de excelencia de software probablemente tenga un programa de entrenamiento bastante bueno, tal vez no cursos formales, pero ciertamente presupuestos de libros, tiempo de estudio, tutoría y el me gusta.

Y sugeriría que probablemente también esté haciendo una pequeña cantidad (al menos) de I + D. Con eso no me refiero a cosas completamente azules, sino que les da 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.

Lo único que realmente puedo sugerir que creo que sería útil que muchas compañías adopten ampliamente es la satisfacción del cliente y del personal. Es una medida indirecta, pero creo que si no eres excelente, es poco probable que obtengas niveles realmente altos de satisfacción del cliente y niveles realmente altos de satisfacción del personal.

Jon Hopkins
fuente
Mi problema con las palabras de moda es que con demasiada frecuencia parecen ser un reemplazo efectivo para el pensamiento real con respecto a lo que representan. Sin embargo, trato de no juzgar con demasiada dureza cuando me encuentro con muchachos de palabras de moda, porque a veces son solo el equivalente gerente de los nerds programadores, atrapados en un universo diferente de verdura y sin darse cuenta de que nos parecen tontos al resto de nosotros. a pesar de que realmente tienen integridad intelectual y son efectivos, accesibles, etc ...
Erik Reppen
6

Este es el problema con las palabras comadreja ; suenan como si significaran 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 uno o todos los siguientes:

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

Entonces, para responder directamente a sus preguntas:

  • si
  • No tengo una respuesta sólida para esto. Hay muchas métricas que se pueden usar para cuantificar la genialidad.
  • En este contexto, por lo general por si hace o no fechas de lanzamiento.
Steven Evers
fuente
3

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

HLGEM
fuente
Excelente respuesta simple.
Alumno
2

En respuesta a su punto número 1:
la respuesta es definitivamente , es un término similar al de los jugadores experimentados de Bullshit Bingo . Sin embargo, eso no significa que el término no tenga sentido.

Pasemos al número 2:
Tomado de Wikipedia : Centro de excelencia: un cuerpo de conocimiento y experiencia formalmente designado e informalmente aceptado en el área temática. Olvidemos lo formalmente designado y aceptado informalmente, y enfóquese en el cuerpo de conocimiento y experiencia. Vería el conocimiento como fondo teórico, la experiencia final como algo que proviene de la aplicación práctica. Para alcanzar la excelencia, necesitas ambos. Además de esas cualidades (bastante obvias), creo que una tercera es esencial para lograr la excelencia: la capacidad de cuestionarse, reflexionar sobre lo que está haciendo y buscar formas de mejorar. Conocimiento que aprende como estudiante, pero necesita trabajar constantemente en él, mantenerse al día con los últimos desarrollos, etc. La experiencia que acumule sea experiencia, esa 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 su jefe con eso ;-)

En cuanto a tu pregunta número 3:
creo que no puedes. Estoy hablando de algo más que simplemente llevar los proyectos al éxito aquí (que 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 opción es encontrar una manera de medir la efectividad de algún proceso de mejora continua predefinido

Treb
fuente
1

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

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

La artesanía del 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 del software convencional, incluida la priorización de las preocupaciones financieras sobre la responsabilidad del desarrollador.

Escúchelo en el siguiente podcast mientras explica qué es Software Craftsmanship:

Consulte también el Manifiesto de 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 excelentemente capacitados, es posible que también desee ver los siguientes recursos:

Antonio
fuente
0

Me parece que él solo dice que quiere tener una cultura de calidad sobre cantidad, y nuevamente podría estar hablando de su @ss. Como programadores, creo que tenemos una tendencia a pensar demasiado en lo que dice la gente. Al menos sé que sí. En cuanto a cómo dijo, es solo hablar corporativo, pero no lo pienses demasiado. Como han dicho otros, pregúntale.

Ominus
fuente