Como convencer o dono de uma empresa à migrar para Java?

Olá a todos.
Hoje eu tenho uma tarefa muito peculiar, convencer o dono de uma empresa a usar Java.

Um pouco do histórico
Trabalho em uma empresa que desenvolve um aplicativo para Bibliotecagem e indexação de conteúdo em geral (Gigantesco… com n modulos e n clientes), esse aplicativo já tem cerca de 10 anos e foi desenvolvido em Delphi, totalmente estrutural(0% OO :frowning: ) ,alem disso ele utiliza componentes do Delphi que já estão à muito tempo esquecidos…

Resumidamente, esse aplicativo vai ser reescrito.
Com isso surgiu a discussão, qual linguagem utilizar?
E no final sobrou Java x PHP.

Esse post não é um FlameWar entre php e java, eu particulamente programo em ambas linguagens, e adoro php pela facilidade que ele oferece, mas tambem acho que php para um projeto deste tamanho não apropriado. pela falta de estrutura padrão, frameworks etc.

E aqui que peço ajuda, ó grande mestres do Java, como convencer um dono de uma empresa em nivel gerencial (Não Técnico) em utilizar java, quais argumentos vocês usariam? qual a vantagem do java dobre o php(em linguagem não técnica! tenho que convencer alguem que não conhece java!).

O maior argumento que tenho contra é a velocidade de desenvolvimento do php, a curva de aprendizagem e alem do segundo maior sistema da empresa ser escrito em php, no qual eu trabalho (que é tb totalmente estrutural… peguei o projeto já iniciado…)

Eu já tenho alguns argumentos preparados, e ficaria muito feliz se vocês compartilhasem suas experiências comigo.
Muito obrigado.

João Amaro Lagedo
[size=9]PHP, Java, FreeBSD[/size]

/me Tenho 48horas para levantar isso :shock:

jlagedo,

Particularmente gosto de PHP, apesar de não ter trabalhado com a linguagem no meu dia-a-dia. Vai ser uma briga dura na minha opinião, mas eu argumentaria a favor do Java como Plataforma de desenvolvimento e não só como linguagem (apesar de gostar desta). Fala para ele que se quiser dá até para rodar PHP no Java (veja link abaixo). Agora cuidado no que vocês vão adotar, sair do PHP e cair em um sistema rodando Struts 1.X da vida ou EJB 2.X, o dono da empresa vai te matar!

Link: http://www.caucho.com/resin-3.0/quercus/index.xtp

ASOBrasil

[quote=jlagedo]Um pouco do histórico
Trabalho em uma empresa que desenvolve um aplicativo para Bibliotecagem e indexação de conteúdo em geral (Gigantesco… com n modulos e n clientes), esse aplicativo já tem cerca de 10 anos e foi desenvolvido em Delphi, totalmente estrutural(0% OO :frowning: ) ,alem disso ele utiliza componentes do Delphi que já estão à muito tempo esquecidos… Resumidamente, esse aplicativo vai ser reescrito.
Com isso surgiu a discussão, qual linguagem utilizar?
E no final sobrou Java x PHP.
[/quote]

Olha velho, código ruim se escreve em PHP do mesmo jeito que se escreve em Java, não é porque o sistema vai ser feito em Java que ele é melhor não. O único motivo interessante que eu posso ver pra esse caso é a performance da JVM que é um pouco melhor quando comparada a PHP, o acesso a banco de dados que em Java é mais bem organizado e a existência de ótimas ferramentas de indexação e texto, como o Lucene, que são escritas em Java.

No resto, as linguagens se equivalem, afinal Wikipedia é escrita em PHP. O problema é que nem sempre nós temos os cérebros incríveis que a galera da Wikipedia tem pra resolver os problemas.

E tem que migrar?

Não sei não. Há alguns anos atrás não dava pra pensar em um aplicação web em PHP ou nas plataformas web da época (ColdFusion? CGI?), mas hoje em dia eu realmente não vejo como utilizar Java para uma aplicação web com demandas simples, tanto funcionais quanto não funcionais.

Eu não conheço tanto do seu projeto para dizer use Y ou X, mas se você está tendo dificuldades em contrastar a necessidade das duas para um fim, será que você realmente vai estar melhor com Java?

Para ajudar na escolha, Java trabalha bem em sistemas de back-end com performance alta. Para sistemas com lógica simples (não quer dizer que sejam pequenos ou grandes, apenas simples) uma plataforma mais simples pode ser (e geralmente é) o ideal.

Neste contexto, mesmo grandes empresas estão migrando as partes simples dos seus sistemas (front-ends, por exemplo) para PHP ou, minha preferência, Ruby on Rails.

Se o sistema é tão importante para a empresa vale um estudo melhor, essa decisão pdoe significar o sucesso ou fracasso de toda a organização. Que tal contratar um consultor? Ah, e um consultor independente e imparcial, nada de vendedores de IBM, BEA, Zend, Linux ou JavaBoys, RUbyBoys. Eu sei, é difícil de achar, mas procure por indicações de amigos.

Sem contar que pra biblioteca existem alguns softwares já prontos e mais que testados e aprovados. Amanhã pego o nome de um que uma instituição de pesquisa que eu conheço usa e eles estão satisfeitos.

Não reeinvente a roda.

[]'s

Rodrigo Auler

[quote=Rodrigo Carvalho Auler]Sem contar que pra biblioteca existem alguns softwares já prontos e mais que testados e aprovados. Amanhã pego o nome de um que uma instituição de pesquisa que eu conheço usa e eles estão satisfeitos.

Não reeinvente a roda.

[]'s

Rodrigo Auler
[/quote]

Legal… vamos acabar com a empresa e dizer para os mais de 50 clientes que usam o software desenvolvido comprar o software x…
Vc leu alguma parte do meu post ? :lol:

Uma coisa é fato, se for convencer o dono de uma empresa, não será com argumentos técnicos.

Tente descobrir se isso realmente representará economia para o negócio dele e de quanto. Em quanto tempo ele cobrirá o investimento dessa migração. Não esqueça que ele já deve ter pessoal na empresa, que terá que ser retreinado e a curva de aprendizado do java não é pequena.

Se não for algo muito grande e significativo, pesquisando os aspectos humanos e financeiros com o qual o seu chefe se preocupa, talvez quem saia convencido de que o java não é necessário seja você…

Acho argumentos válidos para seu chefe:

:arrow: economia em ferramentas de desenvolvimento , qto custa a IDE Delphi?
:arrow: independência de plataforma , não ficará preso com a familia Windows
:arrow: A linguagem java a cada ano que se passa sempre há uma inovação

Agora a curva de aprendizagem de Delphi para Java será enorme , isso pode custar tempo e dinheiro

Vc deve avaliar bem as alternativas …

Vc precisa endereçar os vários requisitos não funcionais do seu sistema e ver qual tecnologia se encaixa…

Por exemplo, o sistema vai ser distribuído, clusterizado, vai ter transações assíncronas, conversar com sistemas legados…

Além disso, é necessário levantar a capacidade da sua equipe nas 2 tecnlogias…

É bom lembrar que nem todo sistema é web…

A melhor forma de convencer talvez seja telefones ameaçadores para a casa dele de madrugada 8) :smiley:

Brincadeiras à parte, isso tudo depende de 2 coisas:

  1. é fundamental a instalação no cliente ou vocês querem rodar ASP?

  2. O fonte precisa ser fechado ou vocês entregam o fonte junto?

  3. Se é ASP, tanto faz. Senão, vira uma questão de entender o que os seus clientes atuais e futuros clientes vão achar de Java, ou PHP, ou qualquer outra coisa.

  4. Se você não quer entregar o fonte, só dá Java. Apesar de poder ser descompilado, pelo menos é melhor que tentar essa compilação maluca do php que você vai ter que fazer uma pro windows, uma pro linux,… (pelo menos era assim).

Agora, não faria nada em PHP, com certeza iria de RoR (ruby on rails). Isso porque o PHP apesar de ser simples, não possui uma forma clara de escrita e o ambiente é, pelo menos para mim, mais difícil de testar (acho que vou tomar pedradas).

Recentemente passamos por isso e as perguntas vão para os dois lados.

Para a empresa, as perguntas são:

1- O aplicativo terá alguma conectividade fora da empresa?
2- A aplicação será 100% desktop?

Se a resposta para a pergunta 1 for não e a da pergunta 2 for sim, eu não sairia do Delphi, ele é melhor que Java pra isso.

Para o cliente, os únicos argumentos que realmente funcionam são:

1- Você terá segurança em tal e tal processo. Só funciona em processos que não tenham a nova segurança especificada.
2- Tal processo será melhorado por isso e isso.
3- Você vai economizar com isso e mais isso.

Falar pro cara que é uma tecnologia livre, em crescimento (a da Borland está meio parada, etc) só vai fazê-lo balançar a cabeça e dizer “aham”.
Curiosidade: em mais de 10 anos programando em Delphi, nunca vi um programa nesta linguagem 0% OO. Até porque Delphi é muito orientado à eventos, que vêm de objetos.

Creio que vc pode dizer ao seu chefe que o java esta em alta, pode favorecer mais aceitação no mercado e que o produto fica mais valorizado.

Espero que faça ele entender que o java é uma linguagem muito fácil e que tem como objetivo aumentar seu desempenho.

Antes de tudo devemos perguntar:

1 - Por quê mudar?

Coisas como… “web é mais bonitinho e todos estão usando” nunca servirá como argumento, isso se quiser trocar de ambiente desktop para web. Deverá sim observar se com o ambiente atual está havendo limitações no projeto, dificuldades de manutenção e atualização, e dificuldades de manuseio do cliente com o software.

2 - Qual o custo da empresa na mudança de arquitetura?

Se o custo for muito alto, pode se tornar inviável para a empresa, se o custo for “apenas” maior, e se as vantagens da mudança for realmente algo que faça diferença, então esses custos poderá se converter em lucro no futuro.

3 - Quais os benefícios que irei perder quando mudar?

Geralmente há alguma coisa que na mudança de arquitetura poderá perder, ou ficará “complicada” de se implementar/incorporar na nova arquitetura, isso deverá ser sempre verificado.

4 - Quais os benefícios que irei ganhar quando mudar?

Eis o ponto chave, os itens que aqui destacaram a real necessidade da mudança, seja para a empresa, para o cliente e para o próprio desenvolvedor.

Galera ele VAI migrar, só precisa decidir entre JAVA ou PHP.

é importante assimilar que:

Java não é sempre Web
Delphi não é sempre desktop

[quote=Grinvon]Antes de tudo devemos perguntar:

1 - Por quê mudar?

Coisas como… “web é mais bonitinho e todos estão usando” nunca servirá como argumento, isso se quiser trocar de ambiente desktop para web. Deverá sim observar se com o ambiente atual está havendo limitações no projeto, dificuldades de manutenção e atualização, e dificuldades de manuseio do cliente com o software.

2 - Qual o custo da empresa na mudança de arquitetura?

Se o custo for muito alto, pode se tornar inviável para a empresa, se o custo for “apenas” maior, e se as vantagens da mudança for realmente algo que faça diferença, então esses custos poderá se converter em lucro no futuro.

3 - Quais os benefícios que irei perder quando mudar?

Geralmente há alguma coisa que na mudança de arquitetura poderá perder, ou ficará “complicada” de se implementar/incorporar na nova arquitetura, isso deverá ser sempre verificado.

4 - Quais os benefícios que irei ganhar quando mudar?

Eis o ponto chave, os itens que aqui destacaram a real necessidade da mudança, seja para a empresa, para o cliente e para o próprio desenvolvedor.[/quote]

Pelo que eu entendi, essa decisão de mudar já foi tomada, ele só quer saber quais as vantagens que ele poderia dizer sem entrar em detalhes tecnicos, de Java sobre PHP.

Porque parece que a migração para web já vai ser feita.

Se o software for apenas de caixinha ( vai fazer e entregar ) , esdcolha PHP…

se a empresa for ter MUITO contato…( aluga o software… ou ele é a menina dos olhos das empresa ) entao ecolha Java… se o “tempo de vida” for uma coisa a ser considerada… use Java… pois “escalar” sua aplicação vai ser uma tarefa BEM mais simples… “integrar” com ferramentas do mercado tambem… java conversa com tudo e fala com todos desde .Net até Mainframe… , voce tem um mundo de escolhas no caso de fornecedores… o material de java na internet realmente visa resolver problemas com as melhores praticas… em PHP vejo que a maioria eh xunxo para fazer “tal coisa”…

Use JBoss Seam e seja feliz.

Outra coisa… FOQUE EM PRODUTIVIDADE… mostre como java pode ser produtivo…

Eu recomendaria o NetBeans para voce… a versao 5.5 está muito boa… e a versão 6 (em beta) está ficando MUITO melhor…

O Eclipse é muito bom tambem… porem o que vc vai precisar agora é produzir e sem ter muito conhecimento… e com eclipse voce vai ter problemas enquanto nao souber exatamente com o q esta mechendo…

Nada substitui uma boa analise… sem ela… esqueca Java… pule direto para PHP…

JBoss Seam e NetBeans vao te dar a seguranca e a produtividade que voce esta querendo…

http://www.netbeans.org/download/flash/why-netbeans-part1/player.html

http://www.netbeans.org/download/flash/why-netbeans-part2/player.html

Bom Acho que já colocaram diversas colocações, eu só vou fazer uma argumentação frente ao PHP.

Se eu fosse utilizar uma linguagem de Script, não a utilizaria por uma série de fatores, como um modelo OOP pobre.

Talvez valha à pena gastar de 1 à 2 semanas para aprender Ruby.

Se fores caminhar por WEB - Ruby On Rails poderá lhe dar uma boa mão e com o JRuby entrando em cena, você poderá usar um ApplicationServer como o GlassFish para rodar em cima.

Terá todo o suporte da plataforma JEE sem necessitar de um grande esforço.

Lembrando que o Netbeans 6 vem com um suporte intensivo ao Ruby e Rails , além de muitos outros projetos que estão no mercado, como RadRails baseado no eclipse.

Na prática você utiliza uma linguagem mais simples de script, mas extremamente poderosa, um framework com excelente renome no mercado e todo o suporte JEE por trás…lindo :slight_smile: Mata dois coelhos com uma cajadada só :slight_smile:

Galera muito obrigado pelo feedback até agora.

Só respondendo algumas duvidas.

O produto atual é Delphi desktop com algumas funções em Delphi para WEB.
A intenção é migrar tudo para web (Não fui eu quem decidiu isso :slight_smile: )