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.