Pergunta

Quando uma nova versão de um quadro ou do idioma aparece (por exemplo .NET 3.5, SQL2008), qual a abordagem que as pessoas tomam quando a adotar / upgrade?

Geralmente desenvolvedores dirá logo que possível (eles querem em seu CV e de uma perspectiva de gerenciamento dando-lhes o que eles querem fornece um impulso de motivação), mas comercialmente muitas vezes há pouco incentivo (alguns clientes exigem a versão mais recente) e da uma perspectiva de custos (reteste, formação) muitas vezes há um desincentivo.

Eu estou particularmente pensando "em curso" sistemas e projectos (como em uma casa de software) que existem e evoluem ao longo dos anos em que tomar os "novos projetos usar a nova tecnologia" abordagem não funciona.

As pessoas são orientados por requisitos específicos (a necessidade de usar um novo recurso, um potencial ou cliente existente exigindo suporte para ele), eles avaliá-lo (caso em que quais são os critérios) formalmente ou eles atualizar como uma questão de rotina (caso em que, quando - levando vs. borda do sangramento borda)

?

As pessoas pensam que não estar na versão mais recente de algo deve ser considerado débito técnico e gerido como tal?

Ou "se não está quebrado não conserte" uma abordagem válida é?

Foi útil?

Solução

Leia-se sobre Dívida Técnica . Esta é uma decisão simples de custo-benefício.

O "se não está quebrado não conserte" é uma política de gestão comum que diz "dólares de amanhã não valem tanto quanto hoje, portanto, não planejar para melhorias futuras." dívida, eventualmente técnico acumula até o ponto onde o produto já não pode mancar junto.

O ponto de ruptura mais comum é quando algum pedaço da infra-estrutura não é mais suportado. Até então, a mudança incremental é impossível.

Reinventando a partir do zero é um novo investimento de capital. Fixação código existente é uma despesa. As contas de gestão de força para tomar decisões tecnicamente loucos.

No caso de software de fonte aberta, que exige gestão técnica cuidado, pois não há nenhum anúncio oficial "apoio do sol" de Oracle / dom gestão técnica ruim, é claro, leva à falência técnica.

Outras dicas

Nós olhamos para os os custos de ciclo de vida de suporte . Por quanto tempo são as versões mais antigas suportado, e qual o seu preço? Plataformas como Windows e Java tendem a mover-se rapidamente, em comparação com ambientes de mainframe, e parte do custo de fazer negócios nessas plataformas é realizar atualizações periódicas. Em um mundo racional, que é!

Novas versões podem ter assassino características que precisamos - mas isso é raro no desenvolvimento da empresa. Os principais pontos de venda positivos de novas versões (em oposição às negativas, tais como suporte expirado) tende a ser maior eficiência desenvolvedor , que é difícil de medir. Contra que, como você indica, o custo de reciclagem devem ser considerados, não só para os desenvolvedores iniciais, mas, fundamentalmente, para a manutenção. Em cada atualização, algumas aplicações tendem a ser deixado para trás como muito crítico para se aposentar, e muito caro / frágil para atualizar. Com o tempo, o número de plataformas e versões você tem que aumenta apoio global da dívida técnica (não importa sua idade).

Outro critério para a atualização para novas versões (que você nota) é a capacidade de atrair e reter pessoal . Com a actual fase económica, que está jogando o segundo violino, mas ainda não pode ser ignorado completamente. Você quer ter pelo menos um tempero de desenvolvedores entusiasmado e experiente.

Eu acho que a pergunta assassino é se o seu aplicativo irá sobreviver a longo prazo, se você NUNCA atualizar a versão de plataforma / linguagem. Se você acha que não pode, assim como você pode atualizar mais cedo ou mais tarde, uma vez que só se tornará mais difícil.

Pense sobre quanto tempo a sua aplicação deve ser desenvolvido ativamente até que você precisa de uma reescrita completa. Se você nunca plano para reescrevê-lo, gostaria de atualizar continuamente. Considere o quão difícil será para encontrar os melhores desenvolvedores se você está trabalhando em uma tecnologia ultrapassada. Considere como novos recursos quadro / idioma poderia acelerar o seu processo de desenvolvimento a longo prazo, para um pouco de dor a curto prazo.

Quando você realmente precisa. .NET 1.0 foi cagado, 1,1 era um upgrade agradável, mas o desenvolvimento Web com VS2003 não foi tão suaves. As coisas melhoraram com VS2005 e .NET 2.0 - e vejo ainda muitos desenvolvedores e empresas são pau para .NET 2.0. As versões anteriores eram tão fresco, a versão 2.0 foi amadurecer tecnologia. Então, se você estava feliz com 1.1, por que você atualizar? Se você está feliz agora com 2.0, por que atualizar para 3.5 ou 4.0?

Quando os benefícios da atualização (mais recursos, ou uma correção de bug que você precisa) superam os riscos / custos envolvidos (novas questões, quebrar o código existente).

Quando você desenvolver para plataformas baseadas em Microsoft, como Windows Forms App para Windows ou ASP.NET webapp para o Windows Server, o tempo agradável para migrar é para cada duas versões principais de OS.For exemplo, se seu aplicativo foi desenvolvido para Windows 2000, você deve migrar para o Vista que XP pode ser negligenciada. Da mesma forma, se fosse projetado para XP SP2, você pode ignorar Vista e alvo Win 7. Normalmente Microsoft nunca quebra (ou raramente breaks) atualizações do sistema operacional incrementais. Portanto, um aplicativo em execução no OS de hoje definitivamente correrá na próxima. Mas nunca por um que se lhe segue. (Ele se corre como pode M $ make dinheiro ???)

Fonte: Auto ... Windows Developer para mais de 5 anos)

Eu estou na atualização o mais cedo possível camp (embora eu poderia esperar um mês após uma nova versão sair apenas no caso de questões não capturadas). Há algumas coisas que você precisa pensar:

1. Lançamentos de segurança

Muitas das pessoas que me dizem se não está quebrado não conserte também são as mesmas pessoas que fecham os olhos quando 2 patches de segurança são liberados. Pense Equifax.

Para mim, é uma responsabilidade ética para ser pelo menos em versões de um quadro de segurança suportados. Devemos isso aos nossos clientes a proteger seus dados.

2. Atrair e manter talentos

Há muita conversa sobre como a linguagem de programação ou estrutura usada não importa. Mas, na minha experiência, o código mais limpo e design para um aplicativo web são geralmente escritos por pessoas que são apaixonadas sobre a linguagem de programação quadro e usado devido à sua experiência e conhecimentos com ele.

Essas pessoas não são susceptíveis de permanecer por muito tempo ou se juntar a sua empresa, se você ficar com uma versão muito antiga. Por favor, pense sobre a felicidade de seus desenvolvedores.

3. Mais recente, maneiras mais simples oferecidos pela versão mais recente

Muitas vezes, as versões mais recentes de um quadro make algo duro no passado muito mais fácil. Se não atualizar, nós perder as boas novas pacotes / características e escrevemos nosso código na velha maneira frustrante saber que há uma maneira muito mais simples para atingir o mesmo recurso. E quando chega a hora de atualizar, podemos acabar por ter de mudar novamente para a nova forma. Então por que não atualizar e utilizar a nova forma melhor e perder menos tempo?

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