Como convencer um cliente a utilizar J2EE

35 respostas
Zakim

ola pessoal…

O cliente quer um software para uma clinica médica, mas ele quer que os dados sejam armazenados no notebook dele. Seu fizer isso vou gastar tempo em um produto que ninguem mais vai comprar a nao ser ele mesmo.

Preciso de fortes argumentos para convence-lo de que um servidor fixo seria melhor haja vista que ele precisa manter comunicação com a recepção da clinica. Sem falar nos outros médicos que poderão utilizar a aplicação e talls…

tem um detalhe : (O Cliente atravessa um rio com um sonrizal na mão sem dissolver se quer um grãozinho!) Ele quer porque quer as informações no notebook dele e ao mesmo tempo a recepção tem que funcionar. hehehe (isso não é viavel pra mim)

replicar os dados para o note dle seria trabalho em vão. Tenho que pensar na clinica toda que tem um punhado de médico e não somente nele. Tenho que evitar o trabalho com manutenção.

alguem poderia me dar algumas idéias?

orbgaido pessoal :stuck_out_tongue:

35 Respostas

kdoigor

cara

em um sistema feito em camadas, (ou padrão mvc), vc não teria problemas de acesso e replicação de dados. e se fizer o sistema de maneira generica, pode oferecer pra outros clientes.

agora se vc é quem quer fazer o sistema via web então fala q vai ser mais barato pra ele. e so calcule seus custos pra não sair no prejuízo.

não venda um sistema, venda a solução para o problema dele.

recentemente fiz um sistema desktop em delphi com identificador de chamadas (bina) . fiz em delphi pq não tinha muito tempo pra programar (tinha q terminar o tcc da faculdade) e pq o cara não tinha grana pra comprar maquina boa. mas na hora de desenvolver eu fiz de uma forma que o sistema se tornou um produto de prateleira(EX: crie um cadastro de empresa com nome e logo e aproveite esses dados para gerar seus formulários e relatórios).

o principal é vender soluções, não importando a tecnologia q vc utiliza. e outra dica, aprenda a trabalhar com reuso de software(diferente de copy paste em codigo fonte), faca um minicadastro dos seus componentes que realmente são úteis e reutilize, melhore, crie mais e mais, quando menos esperar se tem um repositório de objetos grande o suficiente talves até pra criar seu próprio framework.

eu curto mto java, mas se amanha me pagarem mto bem pra programar na porcaria de forms e reports da oracle, eu vou… se é desse jeito q eu vo comprar meu arroz com feijão e abastecer minha bmw.

flw …

Zakim

legal…

vender uma solução não um sistema… (talves eu seja um tanto mercenário… hehe)

obrigado pela contribuiçao… isso ja abriu um pouco mais minha mente…

agodinho

Cara, desculpe, mas pq raios seu cliente iria se preocupar com isso? ele vai te pagar pra resolver os problemas dele certo? é pra isso que seu sistema irá existir. Obviamente se isso não afetar o preço (que é bem difícil) ele não deveria, em teoria, se preocupar.

Seu cliente, por outro lado, deve estar pensando: “como é que faço pra convencer esse cara a fazer o que eu quero? será que ele faz de graça!!!”

Esse detalhe do sonrizal é importante: pela minha experiência te diria pra não perder tempo com esse cara a não ser que vc não tenha um otro cliente melhor, mas não vou dizer.

Zakim

huahauhau…

ele é medico e dono da clinica tbm…

ele ja trabalhou em um lugar que tinha o software que servia a aplicação por meio de um servidor e talls…

ele tem medo da informação ser acessada pelos outros… sei la…
ele disse que direto entra ladrão na clinica dle para roubar e talls… o kra é traumatizado e por isso comprou um notebook e anda com ele colado debaixo do braço.

tenho q convence-lo de que tanto um notebook qto um servidor dentro de uma empresa pode estragar ou ser roubado.

valeu kra…

agodinho

Entendi.

Olha, esse tipo de cliente costuma furar no meio do projeto - se vc demorar ele desiste, se vc for muito rápido ele reclama que o quê vc fez não é o que ele queria.

Se optar por continuar com ele como cliente faça o máximo pra botar no papel o que ele te pedir e não dê mole com os prazos - ele pode desistir e vc ficar na mão.

Tente ver a possibilidade de algum adiantamento: mas não se anime muito, isso tb é uma faca de dois gumes. Já que te pagou algo ele pode vir a se achar no direito de te cobrar …

Outra dica: faça preço homem hora,orce mais ou menos quanto tempo vc acha que vai demorar pra desenvolver e dê o valor pra essas horas, deixando claro pra ele que se estourar esse número de horas vc pode ter que renegociar. Ele vai fazer o possível pra tentar fazer preço por projeto - eu acho furada, pois ele vai mudar, com certeza, de idéia várias e várias vezes durante o projeto.

Woody

Zakim

certo certo…

vou analisar de todas as formas… pra nao me arrepender… o kra é meu chegado… e isso torna as coisas piores ainda

mas blz

t+

agodinho

vários notebooks certo? um por médico …

Vc poderia pensar em algo mais simples: ele só quer replicar a merda da informação.

Acho que uma aplicação desktop (cliente servidor bunda, com a base no micro dele) já daria conta do recado. Vc poderia incluir uma opção pra copiar a base de dados numa pasta da rede. simplificar pode ajudar.

Se houver necessidade de concorrência (usuários simultâneos acessando a base ou uma entidade em especial) aí sim vc pvai precisar de EJB num server (nem que seja o notebook dele).

Precisa amadurecer essas idéias.

Woody

aleck

O que interessa é que o cliente especificou o que ele quer, basta vc decidir como fazer.

Se você não tem argumentos é porque o que ele pediu atende as necessidades dele.

Já ouviu falar de replicação e conexão remota? Não vejo porque não funcionaria.

O que eu disse antes vale para este argumento.

Não tente empurrar um caminhão para um vendedor de cachorro-quente. Já vi muitos sistemas super “profissionais” que não agradavam o cliente, pois ele queria mesmo era algo simples.

Não me leve a mal, mas sua visão de satisfação do cliente está distorcida.

Recomendo a leitura do livro Por que os Clientes Não Fazem o que Você Espera?

Zakim

eu concordo colega…

porem, esse software vai se tornar um produto e vou vende-lo em outras clinicas tbm. esse é o X da questão
imagina só a manutenção que isso nao vai gerar. sem falar q é mto mais facil lidar com uma aplicação J2EE sem complicações…

a complexidade da aplicação vai ser a mesma, porem, eu preciso pensa no meu tempo tbm.

Será que compensa fazer uma aplicação que so vo vender pra um kra que ainda por cima é mais mukirana que tudo nesse mundo?

Só tem uma opção… ou eu convenço ele a fazer um J2EE ou caio fora pra nao perder tempo com um software complexo que so vou ganhar dinheiro uma vez só e olha lá…

mas de qualquer forma. seus questionamentos foram válidos

aleck

Lembre-se que você não é obrigado a aceitar o trabalho, porém vai estar jogando fora um cliente e uma adição em seu portfolio, que serviria como referencia a outras clinicas.

Acho interessante entregar o que ele quer e construir sua solução de prateleira por fora, com seu tempo e dinheiro, pois o cliente quer te pagar para tornar realidade algo util para ele e não para você.

LPJava

bom cara uma forma de vc implementar isso é colocar um servidor remoto… e dar acesso a todos da clinica e pronto… implante a solucao no cliente e pronto…nao entre em detalhes com ele… se falar demais ele enche o saco… ele é daqueles clientes que quer 100% de segurança… e outra nao precisa de replicacao nesse caso nao… nao sei a solução na essencia de j2ee mais to estudando servlet e jsp… e seguindo o que ja li nos 4 capitulos do livro… vc faz um padrao mvc ai… e vc vai ter varios clientes acessando o seu servidor e um container encarregado de atualizar as tarefas…

espero ter ajudado :smiley:

Agora uma duvida… tu ja explicou para ele como vai ter q acessar o sistema remotamente? ele nao está pensado em acessar sem nenhum tipo de conexao ne? achando q so ligar o laptop e ja era…

sudeval

Zakim:
huahauhau…

ele é medico e dono da clinica tbm…

ele ja trabalhou em um lugar que tinha o software que servia a aplicação por meio de um servidor e talls…

ele tem medo da informação ser acessada pelos outros… sei la…
ele disse que direto entra ladrão na clinica dle para roubar e talls… o kra é traumatizado e por isso comprou um notebook e anda com ele colado debaixo do braço.

tenho q convence-lo de que tanto um notebook qto um servidor dentro de uma empresa pode estragar ou ser roubado.

valeu kra…

se ele está preocupado com a segurança, usa argumentos para solucionar esse medo dele, algo do tipo:
podemos usar um servidor linux, onde o acesso a informações (falando em termo de SO) são restrita por usuários assim com o acesso ao banco vai ser restrito a usuário do banco.
t+

Zakim

bom…

estou começando a acreditar nessa mudança… hehehe…

como seria isso? instalo um servidor em cada maquina e quando ele estiver na rede ele se comunica com o server central…?

isso é um pouco confuso pra mim…

lembrem-se que o medico deve manter contato com a recepcionista que atende e marca as consultas…

alguem poderia me detalhar como faria isso funcionar ? quais as possibilidades?

obrigado

LPJava

Zakim:
bom…

estou começando a acreditar nessa mudança… hehehe…

como seria isso? instalo um servidor em cada maquina e quando ele estiver na rede ele se comunica com o server central…?

isso é um pouco confuso pra mim…

lembrem-se que o medico deve manter contato com a recepcionista que atende e marca as consultas…

alguem poderia me detalhar como faria isso funcionar ? quais as possibilidades?

obrigado

Qual o problema de um servidor remoto? para todos os clientes? lá vc so carrega o modulo necessario para cada cliente… e o sistema nao fica pesado…

Zakim

oque vcs aconselham?

um server J2EE na maquina do kra… ou um J2SE em modulos… um modulo médico e outro módulo recepção?

de que forma interligalos remotamente? tem como ser mais claro? O servidor serviria a aplicação mais não serviria os dados. é isso?

orbigado

sergiotaborda

Na realidade o seu cliente, como todos os clientes, é um desinformado que acha que porque os dados vão estão no laptop dele , ele terá posse e controle dos dados. Diga-lhe que se ele perder - ou deus nos livre, o laptop seja roubado, ele vai perder todos os dados.
Se o problema dele é a segurança um data center é a resposta (aliás de a clinica é de médio para grande porte não ha nem duvidas de que essa é a solução). Mas eu desconfio que ele quer os dados por outros motivos menos licitos. Se isso for verdade, é melhor vc abandonar o projeto.
A única arma que vc tem contra ele é o custo. De ele quer mesmo fazer dessa forma exdruxula diga-lhe que tudo bem ,mas demorará mais tempo e o programa terá menor qualidade - da qual vc não se responsabiliza.
Vc tem que o fazer entender que o acesso aos dados pela aplicação é fundamental para a qualidade do serviço do sistema. Por outro lado, tente entender porquê ele quer os dados no laptop. É que o cliente sempre tem a mania que sabe muito de tecnologia e 101% da vezes sabe é nada.
O plano é portanto:
1)entender porque ele quer ter os dados no laptop.
Se for segurança de perda e extravio informe-o que o laptop é muito vulnerável e que ninguem faz isso. Informe-o dos riscos. Risco = dinheiro , isso ele vai entender (espera-se). E ai a melhor solução é um data center.
Se for por motivos (i)legais é bom que vc pese na sua consciencia se quer trabalhar para alguem assim.
Entender o motivo é o primeiro passo para resolver.
2) Se não houver forma de o convencer a usar uma arquitetura moderna e padrão informe-o que isso implica em mais tempo de desenvolvimento porque vc tai ter que inventar uma forma. Que isso tem riscos ( mais uma vez == dinheiro) e portanto vc vai cobrar mais.
Se ele pagar , deve tar tudo bem por si. Faça um contrato para por os pontos nos iis
3) Faça um contrato

Independentemente de como vai fazer, faça um contrato. É bom para salvar a sua pele e bom para que a pessoa entenda melhor o que está pedindo.
Muitos clientes têm pedidos irrealistas porque eles tentam substituir o desenvolvedor. É preciso chegar ao amago do que eles querem dizer.

Zakim

aew…

essa foi a melhor de todas… valeu!

Zakim

esse meu cliente quer ter o controle dos dados da casa dele para alguma eventualidade. Como por exemplo um cliente que liga em dia de domingo solicitando o nome do rémedio que ele tinha lhe receitado na semana passada.

Ele quer ter os dados o tempo todo… tanto por questão de segurança quanto para acessa-los se precisar

pensei em duas soluções que não tornaria o produto comercializavel em outras clinicas

o primeiro é implementar o J2EE em um datacenter e servir a aplicação normalmente. No fim da tarde o médico poderá replicar os dados alterados no dia atraves da replicação (atualizando seu bd local) e com uma aplicação j2SE ele poderia apenas acessar as inforações e nada mais.

Dessa forma ele poderia atender a seus clientes e facilitar o desenvolvimento para o nosso lado!

que tal?

sintam-se livre para criticar ou dar sugestões… obrigado!

aleck

E por que a aplicação “j2se” não teria acesso a alterações na base principal?

Lembre-se que a especificação JEE não te força a criar uma aplicação web necessariamente.

Recomendo antes de qualquer ação você fazer um documento de requerimentos, assim você pode trabalhar melhor as idéias e até abandonar o projeto se for o caso.

Zakim

o j2se nao teria acesso pq um cliente pode ser paciente de varios medicos, fator que faz com que o ponto certo das informações seja o datacenter

Um medico só pode alterar os dados de um cliente dentro da clinica.

apesar de saber que a logica de negocios e persitencia será praticamente a mesma para o j2se isso o tornaria uma segunda aplicação desktop e agregaria maior valor ao serviço que meu cliente quer. Entao abstrai essa informação para caso o cliente solicite isso. ai sim vou pensar na segunda fase do j2se e na forma de como replicar os dados para o datacenter sem arrebentar com os demais medicos.

Estou tentando ser cauteloso com a segurança das informações. quanto mais replicação e serviços descentralizados tiver, mais riscos e posteriormente problemas eu vou ter que resolver…

:stuck_out_tongue:

sudeval

isso, e nada impede do seu cliente obter informação sobre determinadas áreas!, como as Consultas

Zakim

Boas novas…

balanciei as informações que vcs me passaram e formalizei uma solução, considerando não so o cliente como tbm a mim…

Considerei que dpois de pronto eu poderei fazer uma carteira, a partir do aluguel do softwarep para outros clientes.
Tbm decidi, que com um aplicativo Desktop eu teria mais argumentos positivos como por exemplo a possibilidade do cliente se deslocar para uma consulta domiciliar…

montei uma análise e escrevi algumas coisas sobre precificação de software. venda alguel e etc… pra tentar dar um embasamento inicial ao cliente antes de ele questionar sobre o preço… hehehe

no final da contas, o cliente que eu achava que iria ridicularizar meu preço e questionar tudo agiu totalmente ao contrario… eu fiquei sem palavras e tbm mto feliz…

to indo agora toma uma cerva pra comemora …

obrigado pessoal, vcs nem tem noção do quanto me ajudaram! :stuck_out_tongue:

sudeval

que bom, boa sorte com os próximos passos ! :smiley:

Andre_Brito
Eu faria como o midlanet falou, mas ainda não sou nem um pouco experiente no assunto.

As opções seriam:

1 - Web service, onde ele usaria um aplicativo no navegador que conversasse com o banco;

2 - Aplicação Desktop, onde ele teria contato com o banco somente quando estivesse na clínica e conectado na rede; em casa  seria consultas ao banco;

Como você fez Zakim? Li que foi Desktop, mas você teria acesso ao banco como? Onde ele ficou? Que ferramentas você vai usar?

Hehe…

spycall

Só pergunta pra ele.
“E se roubarem o seu note?..”

Zakim

Estou construindo um DeskTop…

uma apliação dentro do consultorio e outra na recepção. (dois sistemas distintos)

o sistema que fica no consultorio do medico se comunica com o da recepção.

Todos os dados ficam armazenados no sistema do médico. com execção do cadastro de pacientes que é replicado junto com a consulta caso o médico ainda nao tenha o paciente cadastrado. (assim, a recepção só tera acesso ao cadastro de pacientes e o restante só pode ser a partir do sistema do medico).

desssa forma, caso o médico mude para outra clinica ele nao ficará sem as informações do datacenter e poderá contactar-me para instalar o sitema de recepção caso ele queira.

Eu achei interessante fazer isso, pela viabilidade que isso trará para o cliente. Penso que se ganhar a confiança desse primeiro, ele me trará novos clientes!

valeu

Zakim

pra isso vai existir o backup local e tbm online caso o cliente queira pagar! (O roubo pode acontecer de ambos os lados)

marciosantri

dedejava:
Eu faria como o midlanet falou, mas ainda não sou nem um pouco experiente no assunto.
2 - Aplicação Desktop, onde ele teria contato com o banco somente quando estivesse na clínica e conectado na rede; em casa só seria consultas ao banco;

De onde vc tirou isto? Tenho clientes que utilizam aplicação desktop client/server utilizando apenas uma internet comercial de 512Kb + IP fixo em uma das pontas, o que não é nem um pouco caro. Tem uma loja inteira pendurada deste jeito e funciona a mais de 1 ano, 100%. Fica um pouco mais lerdo mas funciona.

Marcio_Nogueira

Outra solução seria o cliente acessar via web service. :wink:

marciosantri

Também fiz assim. Não é tão rápido quanto o acesso à porta 1521 do Oracle mas é bem interessante. :smiley:

Zakim

um simples acesso ao banco no pc do outro não seria suficiente? O sistema não vai ser tão concorrido assim!

qual a dessas soluções une o útil(fácil) ao agradavel(viável)

marciosantri

Estes dois casos só são necessários se vc quer ter um acesso através de uma máquina fora da rede, via Internet.

Se você vai fazer cliente/servidor, peça seu cliente para colocar um IP fixo na empresa e configure o firewall para liberar a porta que seu banco de dados utiliza.

Dessa forma, você tem uma aplicação rápida e robusta internamente que permite um acesso remoto. Lógico, não com a mesma velocidade, mas funciona.

É bem melhor que manter o banco de dados no notebook. Se assim for, no dia em que esse médico não for trabalhar, ninguém trabalha, hehehe.

MiltonBastos

Não sei se é o caso, mas talvez o médico queira ter
o sistema disponível para qualquer lugar em que esteja
o notebook, inclusive um local SEM INTERNET.

Se esse for o motivo, daí não adianta sugerir
conexão com ADSL, cabo, rádio, wi-fi, etc…

R

Simples, utilize o método infalível das atuais consultorias… minta, exagere, suplique, etc etc :wink:

midianet

kra pq num tenta fazer uma aplicação smart client. talvez usando web service. ai quando a aplicação perceber que tem conexão com uma central ela descarrega e envia informações.

aki fizemos um sistema que tem uma funcionalidade parecida para pocket

Criado 18 de dezembro de 2007
Ultima resposta 9 de jan. de 2008
Respostas 35
Participantes 14