Feito em 5 anos, refazer em 5 meses?

26 respostas
jason_bourne

Pessoal,

Essa pergunta é meio off-topic, mas vamos la. Temos aqui na empresa um sistema em PHP, que funciona uma beleza, mas tem uma software house que disse pra nós que poderia refazer todo o código (cerca de 200 scripts complexos) em 5 meses. Algo que levou 4,5 anos para ser feito, eles disseram que podem migrar tudo para .NET em menos de 5 meses. Isso é possível? Eu acredito que não, principalmente pq eles vão alocar 1 ou 2 programadores para isso apenas. Mas gostaria da opinião de vcs.

26 Respostas

W

uma software house que disse pra nós que poderia refazer todo o código (cerca de 200 scripts complexos) em 5 meses
Porquê não se está pronto é somente refazer além do detalhe que somente recebe se entregar pronto né…??..

ViniGodoy

Refazer talvez até consigam, se eles tiverem acesso aos scripts, ao banco de dados e tudo tiver sido programado de forma inteligível. Ainda sim, eu tentaria não prometer um prazo tão curto.

Agora, mesmo depois de pronto, o sistema ainda leva um tempo de maturação, até que fique livre de bugs e que os usuários acostumem-se com o novo “idioma”, etc. E esse tempo certamente é maior que 5 meses. Dificilmente alguém que está investindo num novo sistema irá querer ele EXATAMENTE igual ao antigo. Gerentes não são muito ligados em qual linguagem usam e sim no resultado que o sistema traz… E acho muito difícil que o comercial tenha considerado esse tempo. Geralmente o que eles prometem é que ao final do sistema, todos estarão produzindo mais, a empresa estará lucrando e que todos viverão felizes para sempre.

Esse é o problema de muitas software houses. Na pressa de pegar um cliente, prometem prazos insólitos, dão garantias irreais e condenam-se a si mesmas. É um ciclo destrutivo, pois isso faz a concorrência prometer prazos ainda menores e, por conseqüência, para se manter no mercado, elas acabam sendo pressionadas a fazer o mesmo.

jason_bourne

ViniGodoy:
Refazer talvez até consigam, se vocês tiverem acesso aos scripts, ao banco de dados e tudo tiver sido programado de forma inteligível. Ainda sim, eu tentaria não prometer um prazo tão curto.

Agora, mesmo depois de pronto, o sistema ainda leva um tempo de maturação, até que fique livre de bugs e que os usuários acostumem-se com o novo “idioma”, etc. E esse tempo certamente é maior que 5 meses. Dificilmente alguém que está investindo num novo sistema irá querer ele EXATAMENTE igual ao antigo. Gerentes não são muito ligados em qual linguagem usam e sim no resultado que o sistema traz… E acho muito difícil que o comercial tenha considerado esse tempo. Geralmente o que eles prometem é que ao final do sistema, todos estarão produzindo mais, a empresa estará lucrando e que todos viverão felizes para sempre.

Esse é o problema de muitas software houses. Na pressa de pegar um cliente, prometem prazos insólitos, dão garantias irreais e condenam-se a si mesmas. É um ciclo destrutivo, pois isso faz a concorrência prometer prazos ainda menores e, por conseqüência, para se manter no mercado, elas acabam sendo pressionadas a fazer o mesmo.

Concordo contigo. Esse prazo que eles deram é uma grande piada.

L

eduacsp:
Pessoal,

Essa pergunta é meio off-topic, mas vamos la. Temos aqui na empresa um sistema em PHP, que funciona uma beleza, mas tem uma software house que disse pra nós que poderia refazer todo o código (cerca de 200 scripts complexos) em 5 meses. Algo que levou 4,5 anos para ser feito, eles disseram que podem migrar tudo para .NET em menos de 5 meses. Isso é possível? Eu acredito que não, principalmente pq eles vão alocar 1 ou 2 programadores para isso apenas. Mas gostaria da opinião de vcs.

Depende cara.

  1. precisa ver se eles irão alocar apenas 1 ou 2 programadores mesmo

  2. tem software house que faz nego trabalhar 16 horas por dia

  3. Vocês fizerem em 4,5 anos, mas tiveram que pensar em tudo, como as coisas iriam funcionar, requisitos funcionais, não funcionais etc. Eles só vão migrar de uma linguagem pra outra…ou seja…baba!!! Então, acho que ateh dah…

maquiavelbona

Migrar código de linguagem que não são tão díspares - de PHP para .Net - , é relativamente rápido, pois você não terá que reinventar nada, só passar uma lógica de um lugar ao outro. Se eles tivesse que fazer do zero um sistema desses, realmente eu acharia 5 meses muito pouco, contando que eles aloquem realmente 2 programadores. Uma migração limpa seria lenta se tivesse que mudar de linguagens muito diferentes - de EasyTrieve para Java por exemplo .

Mas para que migrar um sistema se ele já está funcionando? Vai ter alguma melhoria? Senão eu acho que não compensa.

Até!

jason_bourne

maquiavelbona:
Migrar código de linguagem que não são tão díspares - de PHP para .Net - , é relativamente rápido, pois você não terá que reinventar nada, só passar uma lógica de um lugar ao outro. Se eles tivesse que fazer do zero um sistema desses, realmente eu acharia 5 meses muito pouco, contando que eles aloquem realmente 2 programadores. Uma migração limpa seria lenta se tivesse que mudar de linguagens muito diferentes - de EasyTrieve para Java por exemplo .

Mas para que migrar um sistema se ele já está funcionando? Vai ter alguma melhoria? Senão eu acho que não compensa.

Até!

A dona da softwarehouse disse que migraria para .NET pois é uma tecnologia nova que permite sejam feitas alterações no código muito mais rápido que o PHP. Mas na verdade eu acredito que isso é xaveco e que o real motivo é que a empresa dela só sabe trabalhar com .NET e isso faria com que a nossa empresa ficasse de certa forma amarrada a ela.

s4nchez

eduacsp:
Pessoal,

Essa pergunta é meio off-topic, mas vamos la. Temos aqui na empresa um sistema em PHP, que funciona uma beleza, mas tem uma software house que disse pra nós que poderia refazer todo o código (cerca de 200 scripts complexos) em 5 meses. Algo que levou 4,5 anos para ser feito, eles disseram que podem migrar tudo para .NET em menos de 5 meses. Isso é possível? Eu acredito que não, principalmente pq eles vão alocar 1 ou 2 programadores para isso apenas. Mas gostaria da opinião de vcs.

Como você é da empresa que trabalhou os 4,5 anos é natural que você pense que é impossível refazer seu sistema em 5 meses. Mas se a idéia é apenas trasnformar de PHP para .NET, sem modificar nada, acredito que pode ser feito em até menos tempo, usando ferramentas específicas para isso.

jason_bourne

Alguem conhece alguma software house que possa fazer esse mesmo serviço só que em J2EE?

jason_bourne

s4nchez:
eduacsp:
Pessoal,

Essa pergunta é meio off-topic, mas vamos la. Temos aqui na empresa um sistema em PHP, que funciona uma beleza, mas tem uma software house que disse pra nós que poderia refazer todo o código (cerca de 200 scripts complexos) em 5 meses. Algo que levou 4,5 anos para ser feito, eles disseram que podem migrar tudo para .NET em menos de 5 meses. Isso é possível? Eu acredito que não, principalmente pq eles vão alocar 1 ou 2 programadores para isso apenas. Mas gostaria da opinião de vcs.

Como você é da empresa que trabalhou os 4,5 anos é natural que você pense que é impossível refazer seu sistema em 5 meses. Mas se a idéia é apenas trasnformar de PHP para .NET, sem modificar nada, acredito que pode ser feito em até menos tempo, usando ferramentas específicas para isso.

Não é tão simples, existe uma série de coisas no código como ajax,muito javascript,integração entre scripts…esse prazo que ela deu é irreal.

s4nchez

eduacsp:

Não é tão simples, existe uma série de coisas no código como ajax,muito javascript,integração entre scripts…esse prazo que ela deu é irreal.

Todo prazo é irreal, se você pensar que se trata de uma mera estimativa.

Quanto tempo você levaria para fazer essa migração e como você chegaria a esse prazo?

Por tudo que você falou ainda me parece que você está sendo levado mais pela emoção de sentir que o trabalho da sua empresa está sendo desemerecido pelo “5 meses” do que por razões técnicas.

jason_bourne

s4nchez:
eduacsp:

Não é tão simples, existe uma série de coisas no código como ajax,muito javascript,integração entre scripts…esse prazo que ela deu é irreal.

Todo prazo é irreal, se você pensar que se trata de uma mera estimativa.

Quanto tempo você levaria para fazer essa migração e como você chegaria a esse prazo?

Por tudo que você falou ainda me parece que você está sendo levado mais pela emoção de sentir que o trabalho da sua empresa está sendo desemerecido pelo “5 meses” do que por razões técnicas.

Não estou sendo emotivo, até pq estou saindo da empresa. É que realmente não senti firmeza no prazo.

s4nchez

eduacsp:

Não estou sendo emotivo, até pq estou saindo da empresa. É que realmente não senti firmeza no prazo.

Então ainda não entendi o sentido deste tópico. Você precisa de algum argumento melhor que esse “sentir firmeza”?

jason_bourne

s4nchez:
eduacsp:

Não estou sendo emotivo, até pq estou saindo da empresa. É que realmente não senti firmeza no prazo.

Então ainda não entendi o sentido deste tópico. Você precisa de algum argumento melhor que esse “sentir firmeza”?

o sentido do tópico é o seguinte: Quero que profissionais que ja fizeram migração de uma linguagem para outra me diga se é viável nesse tempo migrar um sistema tão grande.

s4nchez

Se a migração é apenas de linguagem, sem modificar as funcionalidades, o prazo é viável, como eu já disse anteriormente.

Mas também concordo com o ViniGodoy que uma migração deste tipo é difícil de acontecer, já que sempre se encontra algo pra melhorar no software. Neste caso, eu nem chamaria de migração e o prazo de 5 meses vai depender do quão “grande” é o sistema (coisa que ainda não consegui vislumbrar).

rodrigousp

2 Programadores? Mais nada? Analista, projetista, arquiteto, nada nada ??? Acho mais fácil 3 desenvolvedores fazer em 3 meses do que 2 em 5.

Z

Possível é. Mais do que isso não dá para dizer com as informações que foram dadas.

“Um sistema que levou quatro anos e meio para ser escrito e possui mais de 200 scripts complexos” não diz muita coisa. Se esse sistema foi feito por apenas uma pessoa e a nova equipe terá quatro programadores full-time, é perfeitamente possível sair nesse prazo. Mas se for o contrário? Pode ser que não.

Não existe um cálculo exato para isso. Mas é possível sim…

ViniGodoy

Eu realmente não acho possível.
Nem que seja um sistema relativamente pequeno.

Pelos seguintes motivos:

  1. Refazer código significa necessariamente refazer bugs. Um bom processo pode minimizar isso, mas não eliminar totalmente esse problema.

Se o programa é pequeno, provavelmente os anos de sustaining geraram um sistema muito estável e apreciado pelo usuário. E a mesma estabilidade será dificil de se obter.

Se o programa for grande e foi intensamente desenvolvido nos 4 anos (como pareceu), bem, ele é grande. Você não fará isso em 5 meses.

É bom lembrar que o sistema não está finalizado quando a sua programação terminou e sim quando ele está sendo usado com satisfação pelo usuário. Isso certamente não está contemplado no prazo dado. É necessário um tempo de testes (se possível em campo) para atingir uma qualidade real de produção. E acho difícil que a dona da softwarehouse tenha avisado o usuário de que ele terá um período com bugs após a implantação do novo software. Caso ela tenha avisado, então o tempo de desenvolvimento será em torno de 3 meses, não 5…

  1. Geralmente migrações como essa são uma opotunidade para melhorias. E melhorias envolvem análise, entender o processo, etc. A migração também não é tão simples e parte das melhorias serão técnicas. Em java, por exemplo, você terá que passar para tecnologia de servlets e fazer uso de algum framework MVC, ou não terá benefícios reais. Nesse caso, muitas classes terão de ser analisadas e retrabalhadas praticamente do zero.

  2. Uma equipe grande, exige um trabalho anterior de projeto de sistema ou mais trabalhadores levarão mais tempo do que menos. Se tiver um projetista experiente e uma equipe técnica boa e entrosada e que conhecesse a fundo o sistema original, talvez a migração fosse realmente possível. Mas se ela tivesse isso, provalvemente teria perguntado o prazo para esse projetista experiente, o que não me parece ser o caso.

O contrário, trabalhar várias horas numa equipe pequena introduziria bugs, pois o cansaço as vezes faz a gente até mesmo estragar código bom achando que está fazendo a coisa certa. O colega falou em 2 programadores. Tomara que eles tenham acesso aos fontes, que esses fontes estejam inteligíveis, que o banco de dados esteja ok, e que eles tenham acesso ao programador que mantenha o sistema hoje.

  1. Está claro que a dona da software house está pensando nos seus próprios custos e quer manter apenas um tipo de profissional dentro da empresa. Podemos afirmar com um bom grau de certeza de que ela não está realmente preocupada em dar uma estimativa de prazo segura e sim algo que soe barato aos ouvidos do cliente. Afinal, depois que ele começar a investir, difilmente vai parar… mesmo que o projeto atrase. Depois, ela sabe que não conseguirá vender uma simples migração e provavelmente está prometendo algum tipo de melhoria, recaindo no argumento 2.
Z

Já tem gente batendo o martelo e dizendo que não é possível, mesmo sem conhecer absolutamente nada do projeto? Impressionante o poder da especulação.

Minha opinião é que a descrição “um projeto de 4,5 anos e 200 scripts complexos” não indica nada do que realmente o projeto é.

E se parte desse tempo tenha sido gasto desenvolvendo infra-estrutura, como frameworks etc.? Em uma nova empreitada para refazer o sistema, isso já seria considerado tempo ganho, caso fosse usar algum framework pronto.

Portanto, não dá pra dizer que é impossível. Principalmente sem conhecer ambas as equipes (tanto a que desenvolveu como a que vai desenvolver).

ViniGodoy

Não sei não… ele falou que o sistema original é em PHP. Também acho pouco provável que o tempo de maturação leve menos do que uns 2 ou 3 meses, pois envolve o próprio usuário conhecer o novo sistema.

Eu também estou confiando na avaliação dele, quando afirma que os 200 scripts são complexos. E na afirmação que ele deu, mostrando que a preocupação da dona da software house não é dar prazo adequado ou um motivo consistente.

E quem já trabalhou em softwarehouse já sabe… estimativas de prazos para baixo (e até surreais) para ganhar projetos (pq clientes mesmo vão acaber é perdendo) é o que não falta por aí.

Mas não estou batendo o martelo em nada… só estou dando a minha opinião. O que vejo por aí é que esses prazos geralmente estão errados, e nunca para cima, e sim para baixo. Projetos atrasam a torto e a direita e geralmente a culpa é de quem promete um prazo muito apertado, não do cliente e nem da equipe de desenvolvimento.

C

Bem, à grosso modo, dá para fazer em 5 meses se for um sisteminha de padaria, uma lojinha virtual, ou coisas do tipo.

Agora se for um sistema parrudo de verdade aí não…

clodoaldoaleixo

Na minha modesta opinião…Da pra fazer sim…

Depende de alguns fatores claro, mas 5 meses não é prazo absurdo não, e se a equipe contar com um número razoavel de profissionais trabalhando full time no projeto??..

ViniGodoy

Ele já não tinha falado que eram 1 ou 2?

MarcioTavares

Vou dar meu pequeno pitaco aqui: eu já trabalhei em um projeto de migração de código-fonte, de ASP para ASP.net/VB.net. O único motivo para usarem dotnet é que os donos do software queriam manter o código protegido dentro de uma DLL. Eles sabiam que uma DLL pode facilmente sofrer uma engenharia reversa, mas desse jeito eles já eliminariam uns 80 por cento de espertos.

O software era um simulador para elearning feito em Flash e usando ASP para ações no background, como acesso a banco, para funcionalidades auxiliares, e não era tão grande assim. Acho que a parte ASP não chegava a 40, 50 mil linhas de código e só essa parte foi migrada. O grande problema é que o código original era extremamente mal feito. O projeto original foi feito por 2 programadores, um deles era filho do dono da empresa, e foram eles que decidiram pela migração. Após alguns tempo eles contrataram mais um programador (eu) para corrigir bugs e implementar pequenas coisas novas. Além do projeto original mal feito, o “projeto” novo era basicamente o mesmo código em ASP “adaptado” para vb.net (na prática era ctrl-c ctrl-v, roda, se der erro vamos corrigir o que impede o programa de rodar) e TUDO ficava dentro de apenas UMA classe, com trilhões de functions e subs usando intensivamente response.write (não só para o Flash, mas para outras coisas mais triviais como algumas dezenas de CRUDs). Acho que dá pra imaginar que maravilha era trabalhar nisso.

A grande questão que interessa então é quanto tempo essa migração levou. Como tem alguns anos que isso aconteceu eu não me lembro do tempo exato, mas com certeza levou mais do que 5 meses. Se eu não me engano a migração já estava próxima de 1 ano de tempo consumido quando eu entrei. Eu fiquei lá apenas 3 meses e fui para algo melhor depois, mas a migração ainda continuou por mais uns 3 ou 4 meses.

Vamos relembrar os fatores envolvidos:

  • os mesmos programadores que fizeram o código original foram os que fizeram o código migrado;
  • as linguagens eram muito parecidas;
  • o código original, apesar de simples, era uma lástima e assim ficou o código final;
  • novos bugs surgiram;
  • todo o software teve que ser testado novamente;
  • o projeto inteiro levou um pouco mais do que 1 ano;

Como disse o Zé, é difícil fazer algum comentário sobre o projeto citado pelo autor do tópico, mas o que eu poderia dizer é que eu acho bem difícil essa migração durar apenas 5 meses. Não sei se o código é maior ou menor, qual é a qualidade, mas pelo que foi dito, já surgiram alguns fatores complicadores como ambientes diferentes, uso intenso de ajax, entre outras coisas, e aparentemente a migração não será feita pelos mesmos programadores que criaram o código. Isso não é muito bom, mas também não ajuda a dar nenhum tipo de conclusão. Seria preciso discutir mais com os envolvidos no projeto.

Alguns comentários:

“eduacsp”:
A dona da softwarehouse disse que migraria para .NET pois é uma tecnologia nova que permite sejam feitas alterações no código muito mais rápido que o PHP.
.equals(“Falácia”) -> true;

“s4nchez”:
Mas se a idéia é apenas trasnformar de PHP para .NET, sem modificar nada, acredito que pode ser feito em até menos tempo, usando ferramentas específicas para isso.
Que ferramentas?

D

Me chefe sempre diz…

Se o tempo é infinito, qualquer problema é solúvel…

5 meses é realizável e .net tem boa produtividade, mas se vc escrever seus scripts em uma IDE descente e e usar um controle de versão, pra que migrar pra .net ?

a menos que só tenha POG no php…

PS: Isso não é um fórum java ?

bzanchet

Concordo com o dbht, mas vou ser mais explícito.

A minha especulação, motivada inclusive pelo tom da pergunta inicial, é a seguinte: tudo leva a crer que estão usando o termo “migração” para dizer “vamos reescrever aquela porcaria de código que temos hoje, e mudar a tecnologia é só uma desculpa”. E em 5 meses é possível, sim. Só que nesse contexto o benefício é nulo, pois o código entregue pela consultoria provavelmente vai ser a mesma macarronada. Para refazer o sistema, provavelmente levaria mais tempo.

(1975, mas incrivelmente atual.
quero dizer: não que engenharia de software não tenha evoluído, mas é que são desesperadoramente comuns casos em que se usam as mesmas técnicas de três décadas atrás)

PS. não, esse é um fórum de um grupo de usuários java. :wink:

Kenobi

Fiquei curioso somente com a mensuração do esforço.

Como será que estimaram o trabalho ? Contagem de linha de código ? UCPs ? FPA ?! …

Estranho …

Criado 28 de março de 2007
Ultima resposta 6 de jul. de 2007
Respostas 26
Participantes 14