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:
Esse é apenas um termo usado pelos tipos de gerenciamento?
Que qualidades tornam excelente um grupo de desenvolvedores e testadores de software?
Como você mede a excelência nesse contexto?
terminology
Randy
fonte
fonte
Respostas:
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.
fonte
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:
Portanto, para responder diretamente às suas perguntas:
fonte
Nos meus mais de 30 anos de experiência, uma frase como essa geralmente significa que queremos que você produza mais com menos pessoas.
fonte
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
fonte
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
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:
fonte
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.
fonte