Quais são as características de um “Centro de Excelência” (CoE) de software?

13

Recentemente, um novo diretor do meu departamento entrou e expressou seu desejo de nos tornarmos um "centro de excelência". Eu esperava que, já que ele é meu primeiro chefe, que realmente tem um histórico de programação, haveria alguma descrição disso. No entanto, ficou assim.

Ao refletir sobre isso nos últimos dias, estou me perguntando o que um CoE realmente significa além de apenas "ser eficaz" na entrega do produto. Aqui estão os principais itens com os quais estou lutando:

  1. Esse é apenas um termo usado pelos tipos de gerenciamento?

  2. Que qualidades tornam excelente um grupo de desenvolvedores e testadores de software?

  3. Como você mede a excelência nesse contexto?

Randy
fonte
7
Um "Centro de Excelência" é um centro mastigável e delicioso de codificadores, no meio de um doce de gerenciamento crocante. ;)
FrustratedWithFormsDesigner
8
Você já perguntou a ele? Quero dizer ... a descrição pode ainda não estar lá, mas eu definitivamente perguntaria o que ele quer ver nos desenvolvedores e testadores para chamar o departamento de um centro de excelência. Caso contrário, você está apenas esfaqueando no escuro, com poucas chances de sucesso e uma enorme chance de frustração.
Marjan Venema
@ Marjan, eu não perguntei a ele, pois ele está alguns níveis acima e eu não tenho muito tempo de sobra (e não tive nenhum desde então). Tenha certeza que eu vou da próxima vez. Eu só gostaria de me informar a partir de fontes de terceiros confiáveis primeira :)
Randy
Polegares para isso. Sempre bom para chegar preparado com o que você pensa de um centro de meios de excelência ...
Marjan Venema
1
Provavelmente, este post do blog pode ter algumas informações para você: agileelements.wordpress.com/2008/10/29/… (já que é de um cara (não eu) que estabeleceu um em sua organização).
yasouser 3/06/11

Respostas:

7

Sim, este é apenas um termo que é divulgado pelos tipos de gerenciamento, mas se você retirar a linguagem de gerenciamento, o que ele está dizendo é que ele quer um departamento que é visto como usando e incorporando as melhores práticas do setor de uma maneira que outras pessoas aspiram e estão fazendo para oferecer ótimas soluções que as pessoas gostam.

(Essa última parte é importante - se você não está realmente entregando, não importa o quão bom seja o resto e o seu gerente não demorará muito).

A complexidade vem de duas maneiras principais:

1) Ele quer isso porque entende que é o caminho certo para desenvolver software e que é assim que você produz ótimos produtos, ou ele quer isso porque quer ser capaz de se gabar?

2) Ele aceitará o custo inicial (tempo, dinheiro, credibilidade e risco) que vem com a implementação das melhores práticas? É bom dizer "vamos agilizar", mas ele está colocando sua reputação em risco de que isso melhore as coisas e terá que gastar muito tempo vendendo-o para a organização. Quase sempre os benefícios são de longo prazo, os custos são de curto prazo e essa é a parte difícil. Em última análise, ele está realmente falando sério?

Em termos de como seria, isso depende do que você está fazendo, mas você precisa pensar em termos de quais são seus processos de desenvolvimento e gerenciamento de projetos, quais ferramentas você está usando, que kit as pessoas têm e assim por diante . O Teste Joel é sempre um bom lugar para começar e, em particular, eu gostaria de ver um processo de controle de versão realmente sólido, um rastreamento de erros muito bom e processos de criação muito bons.

Também verificaria se as metodologias ágeis são adequadas para você (em particular o SCRUM), até que ponto os testes automatizados podem ajudar (sem iniciar uma guerra religiosa, existem crenças diferentes sobre o ponto em que a complexidade dos testes supera os benefícios que eles oferecem. fornecer) se você possui as ferramentas e o kit necessários para fazer o trabalho. Geralmente, sugiro que você queira que as ferramentas estejam na vanguarda, mas não no limite. Vale ressaltar que não se trata de brinquedos, mas de dar a todos da equipe as ferramentas para que sejam produtivas o máximo possível durante o dia de trabalho possível. O exemplo mais óbvio são os PCs ruins - é realmente excelente pagar aos desenvolvedores que observem um cursor enquanto seu projeto leva 5 minutos para ser construído quando o cria meia dúzia de vezes por dia?

Algumas outras coisas que provavelmente serão visíveis em um centro de excelência: eu sugiro que um centro de excelência em software provavelmente tenha um bom programa de treinamento - talvez não cursos formais, mas certamente orçamentos de livros, tempo de estudo, orientação e gostar.

E eu sugiro que provavelmente também esteja fazendo uma pequena quantidade (pelo menos) de P&D. Com isso, não quero dizer coisas completamente do céu azul, mas dar aos desenvolvedores espaço para experimentar coisas novas e avaliar novas ferramentas e linguagens sem a pressão contínua da entrega ao cliente. É assim que você avança e permanece bom no próximo ano, no ano seguinte e assim por diante.

Como você pode medir isso? Ah, a velha pergunta. Por fim, medir o desenvolvimento de software é difícil, se não impossível, e medir a excelência no desenvolvimento de software é igualmente difícil.

A única coisa que realmente posso sugerir que seria útil e amplamente adotada por muitas empresas é a satisfação do cliente e da equipe. É uma medida indireta, mas minha opinião é que, se você não for excelente, é improvável que você esteja obtendo realmente grandes níveis de satisfação do cliente e realmente grandes níveis de satisfação da equipe.

Jon Hopkins
fonte
Meu problema com os chavões é que, com muita frequência, parecem pretender ser um substituto eficaz para o pensamento real sobre o que eles representam. Eu tento não julgar muito severamente quando me deparei com caras da palavra da moda, porque às vezes eles são apenas o equivalente de gerente de nerds de programadores, apanhados em um universo diferente de verbage e não percebendo que parecem bobos para o resto de nós mesmo que eles realmente têm integridade intelectual e são eficazes, acessíveis, etc ...
Erik Reppen
6

Esse é o problema das palavras de doninha ; parece que eles significam algo ... mas realmente não.

No contexto, parece que sua empresa produz um produto e que seu diretor deseja que seu departamento seja o mais eficiente e eficaz possível. IME, significa que eles pretendem fazer um ou todos os seguintes:

  • Contrate novas pessoas com "requisitos rigorosos" na contratação (geralmente graus mais altos ou certificações ou reconhecimento da indústria)
  • "Apare a gordura" - elimine as pessoas que eles acham que não estão produzindo
  • Injetar dinheiro no departamento para ferramentas / processos / pessoas / treinamento

Portanto, para responder diretamente às suas perguntas:

  • sim
  • Eu não tenho uma resposta sólida para isso. Existem muitas métricas que podem ser usadas para quantificar grandiosidade.
  • Nesse contexto, geralmente se você faz ou não datas de lançamento.
Steven Evers
fonte
3

Nos meus mais de 30 anos de experiência, uma frase como essa geralmente significa que queremos que você produza mais com menos pessoas.

HLGEM
fonte
Resposta soberba simples.
Aluno
2

Em resposta ao seu ponto número 1:
A resposta é definitivamente Sim , é um termo semelhante aos jogadores experientes de Bingo Bullshit . Isso não significa que o termo não tenha sentido.

Vamos para o número 2:
Extraído da Wikipedia : Centro de Excelência: um corpo de conhecimento e experiência formalmente nomeado e aceito informalmente na área de assunto. Vamos esquecer formalmente nomeado e informalmente aceito, e focar no corpo de conhecimento e experiência. Eu consideraria o conhecimento como base teórica, a experiência final como algo que vem da aplicação prática. Para alcançar a excelência, você precisa de ambos. Além dessas qualidades (bastante óbvias), acho que uma terceira é essencial para alcançar a excelência: a capacidade de se questionar, de refletir sobre o que está fazendo e de procurar maneiras de melhorar. Conhecimento que você aprende como estudante, mas precisa trabalhar constantemente nele, acompanhar os desenvolvimentos mais recentes, etc. Experiência que você obtém como experiência, que é quase inevitável. A parte mais complicada do ponto de vista gerencial é criar uma cultura de reflexão e auto-aperfeiçoamento (boa sorte para seu chefe com esse ;-)

Quanto à sua pergunta número 3:
acho que você não pode. Estou falando de mais do que apenas trazer projetos para o sucesso aqui (o que já é difícil de medir, entre outras coisas, devido à tendência de declarar um sucesso até mesmo o mais fracassado, porque parece melhor na apresentação do PowerPoint). A verdadeira excelência vem da atitude de todos os membros de uma equipe de dar o melhor de si, de melhorar a si mesmos, de suas ferramentas, de seus processos etc. Sua melhor chance é encontrar uma maneira de medir a eficácia de algum processo de melhoria contínua predefinido

Treb
fonte
1

A primeira pessoa que me vem à cabeça quando penso em "Software Center of Excellence" é tio Bob Martin

O tio Martin é um defensor de longa data da excelência no desenvolvimento de software na forma conhecida como Artesanato de Software . Como a Wikipedia descreveu

O artesanato de software é uma abordagem ao desenvolvimento de software que enfatiza as habilidades de codificação dos próprios desenvolvedores de software. É uma resposta dos desenvolvedores de software aos males percebidos da indústria de software convencional, incluindo a priorização de preocupações financeiras sobre a responsabilidade do desenvolvedor.

Ouça-o no seguinte podcast enquanto ele explica o que é Software Craftsmanship:

Confira também o Manifesto de artesanato de software , que destaca a importância de um software bem criado, agregando valor, a comunidade de profissionais e parcerias produtivas

EDIT: Como um centro de excelência de software requer programadores excelentemente treinados, convém consultar os seguintes recursos:

Anthony
fonte
0

Parece-me que ele está apenas dizendo que quer ter uma cultura de qualidade em vez de quantidade, e novamente ele poderia estar falando sobre seu @ss. Como programadores, acho que temos uma tendência a pensar demais no que as pessoas dizem. Pelo menos eu sei que sim. Tanto quanto ele disse, é apenas uma conversa corporativa, mas não pense demais. Como outros já disseram, pergunte a ele.

Ominus
fonte