Muitas pessoas têm me perguntado sobre a criação de sistemas reais em Flex. Como fazer, por onde começar, questões sobre produtividade e muito mais. Neste artigo e nos próximos vamos comentar sobre o desenvolvimento destes sistemas, e de como usar o melhor do Flex para alcançar os seus objetivos.
É válido lembrar que este primeiro artigo é altamente filosófico. Nada de Flex é visto aqui e somente na segunda parte vamos abordar o Flex. Então pegue uma xícara de café e aproveite!
Definindo sistemas reais
Um sistema torna-se real a partir do instante em que não estamos mais na fase de aprendizagem, ou seja, não estamos criando telas em Flex ou criando tabelas no banco de dados apenas para aprender algo. Respiramos fundo e criamos o projeto Flex que, um dia, será uma aplicação que faz algo realmente útil.
Dois pesos, duas medidas
Quando você decide criar um sistema que realmente será útil (ou foi contratado para isso), deve-se inicialmente pensar no seguinte peso: quantidade de telas. Isso mesmo, seu sistema terá 10 ou 100 telas? Você foi contratado para construir um sistema de cadastro de clientes de uma loja, ou uma erp integrada?
Talvez você possa não imaginar ao certo quantas telas terá no início, mas com certeza terá uma opinião formada quanto ao seu tamanho. Por exemplo, o software TweetDeck pode ser considerado como pequeno, pois possui algumas telas de configuração e define um escopo limitado: manipular o seu twitter.
Já um software que gerencia todas as funcionalidades de uma empresa, com recursos humanos, financeiro, controle de horário, de empréstimos etc., é considerado um software “grande complexo”.
Tempo de Investimento x Resultado
Definir o tamanho do seu software é um dos primeiros passos. Deve-se medir o quanto de tempo terá que usar para deixá-lo bonito. Poderá definir o quanto seguro ele será além de questões como escalabilidade e disponibilidade financeira para investimentos.
Tudo isso se resume a tempo (lembre-se que tempo é dinheiro!) de investimento e ao resultado esperado. Nesta relação está a chave para o sucesso, ou o fracasso. Investir muito tempo com design e esquecer-se da segurança é um risco altíssimo se você está criando um software e-commerce.
Definir estas métricas é complicado, e eu vou tentar ajudar um pouco às pessoas que estão com muitas dúvidas.
O Software é seu ou foi contratado para desenvolver?
Esta é uma questão importante no desenvolvimento de software. Definir como será a forma de ganhar dinheiro com seu software influencia diretamente nas decisões sobre o seu desenvolvimento.
Eu vou criar o meu Software, e vou ficar rico!!!
Se você está criando um software seu, e pretende ganhar dinheiro com ele, você tem mais poder de decisão sobre o que o software terá. Este é um ponto muito positivo e eu recomendo muito, mas muito mesmo, a leitura do texto Getting Real.
Depois que você ler esse livro fantástico, vai descobrir que um software nunca termina e sempre evolui. Nesse paradigma resta saber quais serão as funcionalidades básicas do seu software. Definidas estas funcionalidades, você deverá repensar e eleger as mais úteis mesmo, retirando tudo que é supérfluo. Feito isso, você já possui um conjunto de funcionalidades, ou requisitos, que o seu software terá.
Eu acredito que esse conjunto de funcionalidades é muito pequeno, na ordem de 10 requisitos, no máximo. Isso significa que você terá um pouco mais de tempo para se dedicar ao design do seu sistema, juntamente com a usabilidade. A programação em si fica bem enxuta, com poucas tabelas e telas.
Aqui entra uma questão importante, que se aprende só com o tempo: desenvolver seu próprio software é cansativo. Inicialmente você está empolgado, tem várias idéias e começa a desenvolver. Rapidamente vêm os problemas, as telas não funcionando 100%, os usuários reclamando, etc. Após seis meses de desenvolvimento, o software não está pronto, você está desanimado, e ainda não ganhou dinheiro com ele… Resumindo: fim do software.
Qual a solução? Construa software pequeno, com o básico do básico. Não faça do seu software um monstro, pelo menos até começar a ganhar dinheiro com ele! Lance ele assim e sinta o que os usuários querem mais. À medida que os usuários pedirem, dê a eles o que eles querem. Com isso você ganha mais adeptos ao software e não desanima. Aos poucos você cria um software que chega ao status de “Premium”, ou seja, você começa a ganhar com ele!
Então está a dada a dica: Software seu, crie-o pequeno e faça crescer ao longo do tempo, deixe que os usuários peçam mais requisitos.
Eu fui contratado
Quando você é contratado para desenvolver um software, você recebe por ele mesmo que não esteja pronto. As formas de recebimento são muitas e a pior delas é receber 100% após a conclusão do mesmo. Isso gera muita insatisfação para o desenvolvedor. Você pode combinar diversas formas de recebimento, defina algo que seja bom para você e seu cliente.
No desenvolvimento do software, estabeleça regras claras de interface. Nunca, nunca mesmo, faça extravagâncias tais como janelas pulando de um lugar para o outro ou mensagens de confirmação com alto grau de impacto (muito bonitas ou coloridas).
Seja simples e concentre-se principalmente na criação das telas com uma usabilidade suficiente para que o usuário do sistema não precise usar muito o mouse. Faça apenas o que o cliente pediu, nunca faça algo a mais. Não é preciso, por exemplo, criar uma aplicação multibanco, se o seu cliente nem sabe o que é banco de dados. Não é preciso ter suporte a temas ou internacionalização se você está fazendo o software da padaria da esquina. Concentre-se nos objetivos finais, que é terminar o software com tudo funcionando plenamente e com um certo grau de usabilidade e segurança. Termine rápido, entregue e parta para a próxima.
Definindo tecnologias
Telas do sistema
É preciso definir as tecnologias que serão usadas. Todos sabem, hoje em dia a web está “na moda”. Sem falar mal de ninguém, mas usar Delphi para criar uma aplicação é correr contra a correnteza.
Se Web está na moda, e você vai criar um sistema… você cria um “sistema web”. Ótimo….? Nem tanto. A Web nasceu com o objetivo de exibir informações e não trocar informações. Hoje, com a evolução da web, podemos ver milhares de programadores quebrando a cabeça (e perdendo dinheiro) criando sistemas HTML+JavaScript. Soluções foram criadas, como Ruby on Rails, ExtJS, CakePHP, etc. Mas todas elas caem no mesmo abismo chamado html e Javascript. Como criar um sistema que possui menos de 10 controles de interação (formulários)? Impossível e muito caro. De todo este pensamento surge o Flex, que estou convencido que é a melhor tecnologia para criar sistemas web. Sistemas e não sites, ok?! O Flex deu tão certo que a Microsoft corre atrás do prejuízo, com o Silverlight.
Então, definido, para criar todas as telas do seu sistema, vamos usar FLEX!
Servidor de aplicações
O Flex apenas cria as telas. É preciso algo a mais para fazer tudo funcionar. Um sistema não vive sem um banco de dados e sem uma linguagem de servidor. Dentre elas temos:
- PHP: Uma das mais famosas, muito fácil de usar e altamente “inflamável”. Digo isso porque projetos grandes sem um padrão de codificação (Leia-se Orientação a Objetos) pode sucumbir em uma aplicação com um alto custo de manutenção. Se o software for seu, e é pequeno, não pense duas vezes, use PHP.
- Java: Altamente recomendado para projetos “grandes” e para grandes corporações. Um tiro no pé para aplicações pequenas.
- .Net: Um meio termo entre o Java e o PHP. .Net é a linguagem da Microsoft, e é a linguagem que eu, Daniel, uso no meu dia a dia. O problema principal dela é que, quando você terminar a sua aplicação, terá que colocá-la em um servidor Windows, e isso pode sair caro… perto do preço de banana do PHP. Se sua aplicação crescer, terá que contratar mais banda, mais espaço no banco de dados e isso sempre será mais caro que o PHP.
Banco de dados
MySql para PHP, talvez um PostgreSQL ou Oracle para Java, e SQL Server para o .Net. Pronto!
Próximo Artigo
Iremos comentar melhor sobre a criação de sistemas contratados, ou seja, não é preciso investir muito tempo com design. Apenas criamos um ambiente similar ao “windows” e concentramos nossos esforços na criação de telas que atendem aos requisitos do software.







