Pergunta

Vamos supor que você está no meio de um projeto de longa duração (de longa duração = vários anos) e, como esperado, haverá várias coisas chegando com novos lançamentos. Pode haver um novo .NET Framework com novos recursos (por exemplo, Linq, Entity Framework, WPF, WF ...), um novo Visual Studio ou V.next de sua biblioteca preferida de controle, um novo quadro Mock e muito mais coisas . Quais são as suas diretrizes para lidar com essas atualizações de tecnologia? Você adotá-las imediatamente ou você ignorá-los até o final do projeto? Você tem diretrizes diferentes para coisas diferentes (Ferramentas, Frameworks, material de apoio)?

Foi útil?

Solução

Na minha experiência, essas decisões são sempre feitas em uma base caso-a-caso. Vários fatores são considerados, incluindo:

  1. Como amadurecer é a nova tecnologia? Será que a organização gostaria de estar na vanguarda trabalhando com sangramento novas tecnologias de ponta, ou ele prefere trabalhar com ferramentas e metodologias comprovadas?

  2. O que conjuntos de habilidades que o seu povo tem? eles são consistentes com o uso da nova tecnologia, ou é mais treinamento necessário? Vai melhorar a produtividade superam o tempo que leva para chegar até a velocidade?

  3. O investimento você tem na tecnologia existente? Qual é o custo de se mudar para a nova tecnologia? Quanto retrabalho e reescrita de código está envolvido?

  4. Qual é o requisito? É apoiado pelo techology existente, ou são novas ferramentas necessárias para cumprir a exigência?

  5. Quais são as expectativas de desempenho? Será que a nova tecnologia proporcionar uma melhoria de desempenho que não podem ser atendidas com a velha tecnologia?

  6. E sobre a cultura tecnológica? É a organização fornecedor específico (por exemplo, a Microsoft loja)? Pode abrir-source code ser usado?

  7. Qual é o escopo do projeto? É um grande projeto que iria beneficiar de apoio tecnologias como frameworks e ferramentas, ou é um pequeno projeto que seria indevidamente pesado para baixo e complicada por estas coisas?

  8. Como é que a nova tecnologia é suportada? Será que o vendedor tem uma boa documentação? Existe alguém que você pode falar se você tem problemas? Ou você é uma organização que tem pessoas que sabem como resolver problemas sem um contrato de suporte?

  9. É a tecnologia confortável para trabalhar? Será que ela parece fazer sentido? É limpo e elegante? Fazer outras pessoas parecem gostar dele? São outras pessoas tendo problemas com ele?

  10. É a tecnologia mais recente sabor da semana? Ele tem provado no campo de batalha para produzir resultados tangíveis, ou é apenas uma religião?

  11. Quanto tempo você tem que aprender a nova tecnologia e ferro as torções? Será que os benefícios superam os custos?

Como um breve exemplo, eu escolhi Link to SQL para o meu projeto mais recente, porque o projeto foi suficiente complexa para justificar um ORM, L2S executa bem e é leve, somos um Microsoft Shop, e é o meu sentido de que o Entity framework não está completamente pronto para o horário nobre (embora Microsoft diz que vai ser o go-to-quadro para o futuro).

Outras dicas

Vara com o que você começou com.

Um projeto grande e de longa duração, muitas vezes vem com um enorme e altamente complexo código-base. Qualquer alteração ou upgrade para uma nova versão de uma biblioteca pode adicionar erros de maneiras muito sutis e inesperadas.

Também: Para grandes projectos as ferramentas e bibliotecas utilizadas deveriam ter sido testados e avaliados na fase de design. A menos que você encontrar um show-rolha ou uma questão de segurança, é melhor não atualizar.

Lembre-se sempre: não mudam cavalos no meio de um córrego. : -)

Eu diria diferentes fatores gramado em, como -

  1. Say um software está chegando ao fim da vida, por exemplo, em abril passado, a Microsoft retirou o suporte base para SQL Server 2000, e seus usos de produtos de TI, então é mais sensato para ir para a próxima versão do SQL Server em seu próximo lançamento.
  2. Outro fator que entra em jogo é o quanto de valor faz os novos recursos na versão mais recente de um software traria para o seu produto. Pode muito bem ser o caso que a nova versão do framework .NET tem algo que não acrescenta qualquer valor ao seu produto, em seguida, que não construir um caso forte para atualizar.
  3. O orçamento é também um factor importante. Eu acho que você precisa atualizar licenças a fim de intensificar a próxima versão, a menos que já fazem parte de algo como garantia de software.
  4. Treinamento para a equipe também é um fator. Se a versão mais recente está indo para adicionar ao seu produto, então você terá que treinar a sua equipe também.

Bem, poderia haver outros fatores reveladoras demais. Estes foram os únicos em cima da minha cabeça. Espero que ajude.

aplausos

Se você está falando sobre um exemplo específico-estrutura, o maior conselho que eu vou te dar é manter o sistema e sua aplicação separar. É por isso que eu amo padrões tais como MVC -. Ele mantém o seu código modular e significa que você pode atualizar seções sem quebrar o aplicativo como uma totalidade

Em um nível mais prático, se o seu quadro tem um repositório Git ou SVN, check-out do diretório de costume 'sistema' do repo, então você pode chamar 'svn update' ocasionalmente para manter-se com o mais recente e maior constrói.

Gostaria de sugerir que o projeto não durar muito tempo. Desenvolver a aplicação em pedaços menores, com iterações a cada dois meses. Dessa forma, como a nova tecnologia vem de fora, você pode fazer as mudanças necessárias e implementar as atualizações que você vá em vez de ter que decidir para reconstruir toda a aplicação. Como você disse, tentando desenvolver toda a aplicação como as coisas mudam simplesmente não funciona.

Como outra com dossel disse, é certamente uma coisa base caso-a-caso. O que você pode atualizar e quando é determinada principalmente por quão difícil ou fácil é para testar a nova versão do sistema. Ter um suite de testes automatizados abrangente para a sua aplicação ajuda muito com isso.

Geralmente, tento atualização para a última versão estável de bibliotecas e assim por diante o mais rápido possível, porque isso torna a manutenção mais fácil. Se você não atualizar, você pode encontrar-se remendar ou trabalhando em torno erros na versão da biblioteca que você está usando. Se você atualizar com menos frequência, cada atualização será mais trabalho porque você tem mais mudanças para lidar com, e tem sido mais desde a última vez tocou o sistema e, assim, você se lembra menos sobre isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top