sexta-feira, junho 30, 2006

Dúvidas e decisões sobre um novo projeto – Mais dúvidas do que decisões.

Como sempre, a única coisa permanente é mudança, certeza a gente só tem de que vai mudar, nem que seja para o arquivo geral da cidade, vulgarmente conhecido como cemitério. Bem, neste caso as coisas não são tão dramáticas assim, mas empresa nenhuma fica parada no mesmo lugar, ou cresce ou diminui, ou vai para a frente ou vai para trás, e a minha não foge à regra, já cresci, já diminui, já levei calote, já ganhei grana, já dei com a cara no muro, com o muro na cara, e tudo o mais.
Como as coisas estão evoluindo e melhorando, é hora de pensar no futuro, para onde crescer, para onde ir, em que fatia do mercado apostar? Enfim, uma penca de decisões cruciais, além das normais do dia a dia, como faturar a grana para pagar os funcionários, pagar o contador, o telefone, aluguel, internet, a Borland (que tá cobrando uma grana preta pelo Delphi, bem que eles podiam aliviar a mão um pouquinho né?), e principalmente o raio dos impostos (eita vida danada, o Lula pode não saber governar nem contar até dez, mas cobrar impostos sabe como ninguém, o que aumentou a carga tributária não é mole não, é no mínimo 1 funcionário a mais para cada 1 funcionário efetivo).
Então, deixando a choradeira de lado, e o lero-lero para depois, a decisão é:

- Que mercado atender? Qual seria o rentável?
- Que produto esse mercado quer?

E o que mais interessa para o pessoal de tecnologia que eventualmente ler este blog (que anda meio atirado às moscas, sem leitores nem postagem nos últimos tempos):

- Que premissas atender ?
- Que tecnologia usar?
- Quais os pré-requisitos?


Bem, vamos lá, tentando resolver as broncas uma de cada vez, e levando em consideração uma penca de opiniões do pessoal do news do delphi (news.netuno.com.br, grupo u-br.comp.ling.delphi), que é uma galera prá lá de non-sense, onde se discute de tudo um pouco, e onde nem o pessoal da Borland agüentou o tranco, que o diga o Lanusse, o pessoal lá é fera e doido, de tudo um pouco, por isso eu faço parte desde tempos imemoriais, no tempo em que ainda estávamos no news do uol, antes de nos banirem daquelas bandas, e como desenvolvedor bom tem que ter doses de doideira e habilidade em iguais proporções, por esses critérios o pessoal lá deve ser a melhor turma de desenvolvedor do Brasil.

- Como esse produto será posicionado no mercado?
Em principio, a idéia é de que o produto seja internacional (estamos chique agora!), com suporte fácil a diversas linguagens, que essas linguagens possam ser inseridas apenas com um arquivo de recursos.
Deve suportar diversos temas, para que se possa configurar o sistema com a identidade do cliente, cores e logotipia, de forma fácil e rápida.
As rotinas de moeda e configurações locais para cada país devem ser implementadas via recursos também, possivelmente um pacote de localização que contenha também a linguagem.
Não adianta malhar em ferro frio, como diria meu avô, quando você chega em um cliente de médio porte para cima, a marca da tecnologia começa a pesar, e nos pequenos clientes o que pesa é o custo, como compatibilizar isso?
Para esta última questão, começamos pelo banco de dados, o aplicativo vai ter que suportar tecnologia open source e comercial, então vamos de suporte para Firebird ( prefiro muito mais do que MySQL, nunca fui com as fuças de um banco de dados à lá Paradox, com cada tabela separada em um arquivo, e além do mais Firebird é bem mais rápido e poderoso, além do licenciamento ser totalmente royalty free), ORACLE e Microsoft SQL Server, dois nomões do mundo de banco de dados com um market share considerável, e futuramente um suporte também para IBM DB2, este nunca pode ser desconsiderado, pois é o rei nas grandes instalações, e as últimas versões estão com uma performance assombrosa.
Claro que isso vai dar um trabalho considerável para manter em sincronia todas as características rodando 100% em todos os bancos de dados, mas não se ganha dinheiro sem passar algum trabalho duro, salvo se você resolver traficar pasta base de cocaína, mas como isso é algo que o meu médico não recomenda para a preservação da minha saúde física, eu resolvi deixar essa solução prá lá, parece que só restou o trabalho duro, até por que eu queimei as outras chances de ficar rico: Não nasci rico, e casei com uma mulher tão dura quanto eu, e sou um verdadeiro fiasco jogando na mega sena.

Rodar em servidor IIS ou Apache, que são os significativos no mercado, o restante nem vale a pena o esforço, para uma empresa pequena, tenho que concentrar os esforços aonde possa render, não vale a pena tentar defender tese, no fundo o nosso negócio é ganhar dinheiro solucionando as encrencas dos outros, e não conseguir mais encrenca né?
Regras de negócio em camada de web services, para que o cliente possa consumir em aplicativos internos, ou que possa ser integrado e se integrar com outras soluções do mercado, logicamente estamos mirando integração com SAP, PeopleSoft, JDEdwards, Microsiga, DataSul, ORACLE ERP, etc, afinal é onde está a grana.
Interface de cliente magro (thin client, para usar um jargão de marketing corrente no mercado), apenas um browser, user name e senha, e o usuário já está usando o aplicativo, até de um quiosque em uma lan-house, instalação zero, configuração mínima, funcionamento com o mínimo de problemas, e a grana do suporte paga a evolução do dito cujo.

Receita legal né? Acho que dá prá crescer e fazer algum dindin, pelo menos até um Google da vida querer comprar a gente (estou aceitando ofertas generosas, que incluam 1 iate, apartamento em Paris, e o telefone da Juliana Paes, e claro um dos meus carros de sonho: uma Bugatti Veyron, um Aston Martin Vanquish Zagato, um Koenigsegg, uma Lamborghini Murciélago, uma Masserati MC12 Stradale ou Saleen S7, ou até um Jaguar, além de um punhado de dólares).

E o que usar?
Bem, na parte de banco de dados já defini o que quero, e na camada de web services?
As opções eram várias, agora estão reduzidas à 3: Delphi, .NET ou Java, pendendo fortemente para a última, em que pese o peso absurdo do JavaStudio Enterprise da Sun.

Bem, já foi um avanço até aqui, o resto no próximo post, que não vai demorar como os outros, agora eu prometi para o Tiago Hiller que vou escrever mais seguido, e o alemão vai pegar no meu pé se eu não postar, agora ele tá de papai, com mania de responsável, e como é um grande amigo, a gente deixa ele mandar um pouco, afinal em casa quem manda é a mulher mesmo, como na minha, onde eu dou a última palavra e aos berros: “SIM SENHORA! JÁ ESTOU INDO MEU AMOR!”.

4 comentários:

Anônimo disse...

AcidBicha tá de bloguinho...!
A1000ton é nome de boiola. Maciel é nome de ministro corrupto.

Anônimo disse...

Replicando aqui o que já foi dito no news da u-br. Atendendo a pedidos :D

Como já disse em seu post no news "Novo desenvolvimento, quais tecnologias?"
tenho um problema semelhante ao seu.
Preciso que o cara tenha um sistema prático e robusto acessível via browser,
e extensível para ser acessado por outras aplicações clientes (no meu caso
os clientes seriam a princípio desenvolvidos em Delphi).
Pelo que tenho lido, o IntraWeb é bem mais animador que ASP.NET para
desenvolvimento do módulo web. O processo de desenvolvimento é mais parecido
com o que já estamos acostumados no Delphi para aplicações Desktop.
Outro ponto seria utilizar RemObjects na camada servidora, mas não estou
considerando esse ponto tão importante no momento, até por uma questão de
orçamento disponível, pois talvez tenha que investir no IntraWeb. Nesse caso
utilizaria DataSnap sem RemObjects.
IntraWeb tem a vantagem de poder ser utilizado no Delphi 7, enquanto ASP.NET
requer o 2006.

AcidBytes disse...

Jeferson, eu comecei considerando asp.net, também decidi deixar de lado e, se o caso for desenvolver a parte server side em Delphi, vou optar pelo DataSnap, o RemObjects é uma opção muitissimo interessante, eu baixei o trial deles e testei, e se o produto vender razoavelmente, o RemObjects se paga fácil, fácil.

Anônimo disse...

A propósito, caso ainda não conheça, sugiro que dê uma olhada no Smarty http://smarty.php.net/, é um mecanismo que possibilita facilmente gerar templates para PHP, tornando mais fácil a programação do lado cliente. Só usei em testes, e achei interessante, para limpar o código PHP, que normalmente se mistura com a "echoação" de código HTML.