Suponha que eu tenha um objeto PHP, digamos: companyObj.
class companyObj
{
private company_name;
private company_address;
public function print_contact()
{
//logic
}
}
Este é o objeto que escrevi e compartilhei com os colegas de equipe. Agora eu gostaria de torná-lo mais poderoso, assim:
class companyObj
{
private company_name;
private company_address;
private company_contact_person;
public function print_contact()
{
//logic updated
}
}
Agora, como posso notificar meus colegas de equipe que meu objeto tinha mais atributos que eles podem definir?
Em vez de enviar email para todos na equipe de desenvolvimento, como faço para que a equipe saiba o que está acontecendo, quando não quero que meus colegas desperdiçam seu tempo olhando o que mudou no nível do código-fonte?
programming-practices
teamwork
communication
Ted Wong
fonte
fonte
Respostas:
Depende muito da situação concreta. Vamos assumir que a nova propriedade que você adicionou é obrigatória, ou seja, deve ser definida sempre. Em seguida, você deve pesquisar o código por conta própria e atualizá-lo onde quer que
companyObj
seja criado, para garantir que ele seja construído corretamente (incluindo a configuração da nova propriedade). Suponho que o PHP tenha construtores; nesse caso, você só precisará adicionar um novo parâmetro de construtor e o compilador marcará automaticamente cada chamada de construtor sem o parâmetro extra como um erro de compilação. Isso também garantirá que os colegas aprendam sobre a nova propriedade assim que usarem umcompanyObj
.Se a nova propriedade for opcional, no entanto, as coisas serão menos claras. Você pode ou não ter um valor padrão adequado para ele. No último caso, eu ainda sugiro que você atualize todas as criações de instância para definir a nova propriedade sempre que apropriado. Isso é para garantir que o código seja mantido em um estado consistente o tempo todo .
Comunicar a mudança aos seus colegas de equipe é outro passo distante aqui. Equipes ágeis preferem comunicação cara a cara e IMHO por um bom motivo. Depender de documentos é um meio muito lento e ineficaz de espalhar informações pela equipe. Um Wiki é um pouco melhor, mas ainda assim, documentar cada atributo de classe é um exagero no IMHO. Isso só se tornará um fardo enorme para a equipe e rapidamente se tornará não confiável e inútil de qualquer maneira, como somos seres humanos, então devemos esquecer a atualização às vezes. Além disso, aposto que muitos membros da equipe não vão regularmente verifique a documentação (seja de que forma for) para se informar sobre as alterações mais recentes do código.
O último também é válido para a documentação gerada automaticamente via, por exemplo, Javadoc ou Doxygen. Embora eles possam ser configurados em uma compilação automática para manter a documentação gerada sempre atualizada, nunca vi uma equipe de desenvolvimento com membros navegando regularmente pela documentação para ser informado sobre as alterações mais recentes do código. E se você estiver usando qualquer sistema de controle de origem, o primeiro lugar para observar as alterações é quando você atualiza sua cópia local do código de qualquer maneira - você pode verificar se há alterações nas classes familiares e ver exatamente o que e como mudou (junto com um breve explicação e / ou referência a um ID de tarefa, se sua equipe estiver acostumada a adicionar comentários significativos nos check-ins - que estarão ausentes nos documentos gerados automaticamente).
A comunicação é uma das principais razões pelas quais as equipes de programação extrema combinam programação. Se você fizer as alterações junto com um companheiro de equipe, há imediatamente dois que sabem sobre cada alteração e, na próxima vez em que cada um de vocês se unir a outra pessoa, informações úteis se espalharão rapidamente. Nem sempre é aplicável, por várias razões. Exceto isso, você pode simplesmente conversar com seus vizinhos sobre a mudança em um momento apropriado (por exemplo, durante o almoço, se por acaso almoçar juntos) ou enviar um e-mail se for uma mudança maior, mais importante ou mais complicada.
Neste último caso, pode haver um bom motivo para documentá-lo corretamente. Os documentos de design do IMHO são melhores quando oferecem uma visão geral grosseira e de alto nível do sistema, enquanto os detalhes da implementação estão no código (aderindo ao princípio DRY ).
fonte
Você já pensou em simplesmente conversar com eles ? Agende uma breve reunião: "ei, fiz algumas alterações no objeto X, quero mostrar o que mudou e por quê". Ou apenas converse com cada pessoa individualmente se uma reunião parecer muito formal ou perturbadora.
fonte
Se você tem uma equipe, provavelmente também possui um documento de design. Se não. começar nele. E use alguma ferramenta UML para mapear seus projetos.
fonte
Você pode usar uma ferramenta como doxygen dentro do seu código. Agora crie um script que gere a documentação doxygen e execute-a regularmente, talvez como parte de sua construção noturna (você faz uma construção noturna, certo?).
Eu acho que você pode atribuir um atributo personalizado no doxygen à sua adição para destacá-lo como novo.
Se seus colegas de equipe forem bons, eles passarão pela nova documentação.
fonte
Bem, você não deve informar seus colegas de equipe sobre tudo o que faz. Caso contrário, você teria que enviar muitos e-mails. Se isso é importante, você pode fazer uma pequena reunião e informar o que você fez (se você faz o scrum, não é necessário marcar uma reunião separada).
Se você usa um IDE compatível com o preenchimento automático, seus colegas de equipe devem observar sua alteração. Eu só espero que você comente seu código.
fonte