As funções dedicadas de programação de manutenção acabam prejudicando o início de uma carreira?
Mais frequentemente do que não - SIM, assumindo:
- essa carreira aqui significa experiência em muitas habilidades técnicas diferentes.
- que você passa mais de X anos lá, onde X é suficiente para "definir" suas formas de pensar.
- que você não faz nada de lado.
- que "mantenedor dedicado" (ver EDIT, abaixo) significa que não codificam para manter , bem como código de coisas novas, mas que quase sempre o código para manter ou mesmo trabalhar em um projeto no modo de manutenção - sem novos recursos, necessários menos alterações no código para corrigir o erro.
Isso não significa que é sempre o caso.
As pessoas que mantêm software raramente são incentivadas (veja EDIT, abaixo) a fazer pesquisas, raramente podem conectar uma nova biblioteca ou banco de dados e passar alguns dias descobrindo como ele funciona. É (geralmente) um trabalho constante que requer alterações mínimas na base de código existente e, portanto, "molda" a maneira como você aborda os problemas posteriormente. Posso citar algumas empresas que têm uma política para manter software que declara explicitamente "menos alterações no código = melhor", apesar das coisas ruins que isso pode trazer.
Outros programadores estão certos em evitar papéis como esses?
Conheço mantenedores muito bons que gostam de seus empregos e não gostariam de se candidatar a outra coisa precisamente porque é confortável onde eles estão. Nem todo mundo gosta de aprender coisas novas de vez em quando. Portanto - evite ou procure, dependendo de suas preferências.
Fazer essa linha de trabalho o impede de realizar tarefas semelhantes, a menos que você esteja preparado para começar de novo como júnior?
Mais frequentemente do que não - SIM. Porque você já tem experiência em fazer isso, porque você já "conhece as cordas", etc. Mas a mudança é definitivamente possível e pode acontecer sem se candidatar a uma posição júnior. Você já começou a fazer as coisas de lado, continue! Isso realmente vale a pena e pode reduzir a 'lacuna de habilidades' que você notou.
EDIT: Dan indicou (com razão) que as tarefas de manutenção geralmente podem ser realizadas com a pesquisa. Isso é verdade. Alterei a resposta acima em dois lugares para melhor resolver isso.
Tais tarefas certamente poderiam ser feitas dessa maneira e se forem - ótimas! No entanto, a maioria dos mantenedores DEDICADOS do AFAIK dos sistemas LEGACY tem políticas ou expectativas e prazos de gerenciamento que - novamente, mais frequentemente do que não - os obrigam a resolver o problema com o mínimo de alterações possível. Freqüentemente, a pressão é alta o suficiente para que, mesmo que você possa fazer dessa maneira, não queira. Especialmente se não for o SEU código: sem a teoria (conforme Ryle e Naur) por trás disso, você corre o risco de danificar mais do que conserta.
No entanto, deve-se notar: não tenho dados globais rígidos, falo por experiência própria - trabalhei em uma situação de OP, recrutei pessoas com 4-10 anos de experiência como mantenedores, conversei com muitos mantenedores e eu conhecer pessoas que trabalham como mantenedores dedicados . Não apenas pessoas que codificam coisas novas, mas também codificam para manter um projeto - mantenedores dedicados, cuja única tarefa é fazer bugs e patches e nem mesmo um novo recurso, porque é um projeto antigo e agora está apenas no "modo de manutenção".