Seria bom poder responder a essa pergunta em uma única linha também. Mas talvez seja necessário uma apostila e, ainda assim, vai ficar faltando alguma coisa.
Mas isso não é motivo para não tentar 🙂
A primeira tarefa para se atingir este objetivo, sem dúvida, é: bom senso.
Bom senso para compreender que não é possível montar uma estrutura infalível. E se for, provavelmente custa tão caro que não estará ao nosso alcance.
Bom senso para avaliar de forma imparcial as situações, especialmente aquelas relacionadas à ‘problemas’, sem a influência de paixões ou modismos.
Bom senso para compreender que as soluções simples não são do mundo real. No mundo real, aquele onde temos que trabalhar, as soluções que nos são exigidas são complexas. E quanto mais complexa a solução, mais oportunidades de problemas existem. A compensação é que, também, quanto mais complexa, mais valiosa é esta solução (aqui estou me referindo como ‘solução’ aos produtos/projetos/softwares que temos que criar).
Bom senso para compreender que existem muitas coisas envolvidas (sistema operacional, gerenciador de dados, hardware, infraestrutura de comunicação, ferramenta de desenvolvimento, bibliotecas de execução, componentes de terceiros, usuário, …), todas elas contribuindo diretamente para o sucesso ou não da solução. Se tudo estiver certo, não vai acontecer mais do que o esperado/devido. Mas basta um elo da cadeia falhar, e já ficamos devendo em termos de resultado. E não adianta querer justificar para o usuário, no caso o cliente, através de “tecniquês”. Ele está esperando receber o que foi comprado: uma solução que funciona. Os detalhes são nossos problemas.
Ok. Se já concordamos quanto ao bom senso, vamos prosseguir. Senão, como diria Chuck Norris: “Tecle ALT+F4!”.
Uma das coisas importantes que nós temos que fazer, nesta busca da solução ideal, é a escolha das ferramentas. E está no plural de propósito.
Existem muitas opções de ferramentas para criamos soluções. E a parte mais legal é: todas podem apresentar problemas.
Podemos enfrentar problemas em soluções criadas com Java (ver aqui).
Podemos enfrentar problemas em soluções criadas com Visual Studio/.NET (ver aqui).
Podemos enfrentar problemas também quando usamos RAD Studio (ver aqui).
(vou citar só estas três plataformas)
E é claro, podemos enfrentar problemas e soluções criados com as ferramentas da MSE (uniPaaS e/ou iBOLT) (ver aqui).
Agora, precisamos concordar em outra coisa (senão, já sabe): Como proceder diante dos problemas?
Podemos resumir em: localizar, corrigir e tentar evitá-los no futuro.
Ok. Até aqui, nenhuma novidade. Tudo óbvio. Mas como que a gente faz, e como que se consegue isso?
Não sabemos se conseguiremos, mas o nosso papel é tentar com todo o empenho.
Localizar
O primeiro passo. E aqui, precisamos muito do bom senso. Nunca vamos localizar nada se ficarmos só olhando para onde o nariz aponta. É preciso uma visão clara e procedimentos cuidadosos para se descobrir a verdade. E muito importante: sem ser tendencioso.
Só a título de ilustração, aconteceu duas vezes comigo: usava máquinas com Windows (em épocas diferentes), em casa e no trabalho, e elas simplesmente travavam (congelavam) sem motivo nenhum. Só desligando e religando (e perdendo parte do trabalho) para poder continuar. E não tinha nada que pudesse dar uma luz. Por meses fiquei xingando a Microsoft e o Windows (nem que fosse em pensamento). Para resumir a história: no trabalho, o problema era superaquecimento do processador (não lembro mais como isso foi descoberto). Resolveu trocando o cooler. Em casa, era desconfiguração do clock da CPU, que ocorria algumas (não sempre) vezes durante queda de energia. Resolveu trocando a pilha da placa-mãe.
(eles provavelmente não verão, mas registro aqui meu pedido de desculpas à turma do Windows, pelos meus maus pensamentos :)).
Historinhas à parte, uma coisa muito importante: imparcialidade na hora de se avaliar as situações (e isso não é fácil, já que desenvolvimento envolve paixão). Sem isso não conseguiremos dar este primeiro passo.
Corrigir
O segundo passo. E aqui, precisamos muito de conhecimento. É fato (não precisa confessar, mas também não precisa negar) que todos nós simplesmente embarcamos de ‘carona’ em muitas tecnologias (ou produtos), sem saber como que a coisa está funcionando, apenas esperando que no fim tudo dê certo.
A necessidade nos conduz a isso.
Mas temos, por obrigação, de nos esforçarmos para aprender e conhecer tudo aquilo com o que estamos lidando. Temos (equipe) que entender do sistema operacional que usamos, do banco de dados que usamos, da infraestrutura que usufruímos, das ferramentas que escolhemos para criar as soluções.
Senão, como vamos corrigir ou melhorar uma situação, sem conhecermos os recursos que dispomos ou o que devemos evitar?
Sem o conhecimento necessário, não temos como avançar.
E sem bom senso para entender isso, somos presas fáceis dos modismos. Sem conhecer a tecnologia em que estamos (e às vezes até o negócio), optamos por abandoná-la porque não sabemos como enfrentar e superar os desafios que aparecem. Vamos atrás dos produtos da moda, sempre na esperança de que eles sejam melhores (ou pelo menos tão bons quanto na propaganda). Mas eles também não têm os seus próprios problemas?
Quando somos seguidores da moda, não há bom senso. Quer saber se está tendo bom senso? Quando decidir abandonar alguma coisa, tente se lembrar dos motivos que o fizeram escolhê-la inicialmente.
Por isso, conhecimento também é essencial. E aqui, vamos tocar numa questão ligada diretamente ao mundo MAGIC: você conhece realmente o uniPaaS e/ou o iBOLT? Talvez você já tenha criado soluções com eles, mas, se preparou bem para isso?
Não diga que ‘sim’, porque a verdade é que ninguém está completamente ‘no ponto’. Tudo é muito dinâmico. É novidade todo o dia. As necessidades mudam, as tecnologias mudam, as ferramentas mudam. O uniPaaS e o iBOLT também mudam. Evoluem.
A necessidade de nós (e não pense que seria diferente com Java, Visual Studio ou Rad Studio) estarmos sempre aprendendo e melhorando é diária. Se não for assim, ficaremos para trás. Porque em algum momento não saberemos mais como corrigir um problema novo (até então desconhecido), evoluir uma funcionalidade ou atender uma nova demanda. Seremos atropelados. E por nossa culpa.
É preciso conhecer, para saber o que fazer.
Evitar o mesmo problema no futuro
Os próximos passos. Com bom senso, e conhecimento.
Se não aprendemos com os problemas, e com os erros, não houve bom senso.
Temos de ter bom senso para saber analisar as situações. E conhecimento, para não ficarmos ‘vendidos’ diante dos problemas.
Em termos de desenvolvimento de sistemas, que é o que fazemos, quantas e quantas vezes o insucesso da solução não estava associado a nossa inexperiência, a falta de conhecimento sobre tudo o que estava envolvido, sobre o negócio? Decisões erradas, conceitos ultrapassados, falta de atualização?
Não podemos ser preguiçosos quanto à aquisição de conhecimento. Isso é falta de bom senso.
E aquisição de conhecimento vem com a experiência, que vem com a repetição e perseverança.
Bom, mas o que tem tudo isso a ver com o título do ‘post’? (você esperou até aqui para ver uma grande dica e até agora nada 🙂)
Simples: quanto mais você conhecer do uniPaaS (ou do iBOLT), das tecnologias em que estamos envolvidos, dos negócios em que estamos atuando, melhores e mais robustas serão as soluções que criamos. Ou você acha que aquelas 150.000 configurações nos arquivos .INI não afetam em nada os sistemas que você cria?
Acredite: os que decidiram por investir no uniPaaS (ou iBOLT), com bom senso e buscando conhecimento, estão colhendo bons frutos.
Mas não fique frustrado. Continuaremos publicando mais dicas em “tecniquês” sobre os produtos, sempre com o intuito de levar mais conhecimento e ajudá-lo a enfrentar e vencer os seus desafios. Nós também aprendemos muito com isso.
E se ficar em situação complicada, peça ajuda. Você não está sozinho.
Busque sempre o conhecimento, e nunca perca o bom senso.
E não desperdice os recursos que estão disponíveis:
DevNET: http://devnet.magicsoftware.com/
Blog: http://blog.magicsoftware.com.br/
YouTube: http://www.youtube.com/MagicSoftwareBR
LinkedIn: http://www.linkedin.com/company/magic-software-brasil
facebook: https://www.facebook.com/magicsoftwarebr
Twitter: https://twitter.com/#!/magicsoftwareBR
Grupo de Usuários MAGIC Brasil: http://br.groups.yahoo.com/group/magicbrasil-l/
Grupo de Usuários MAGIC Internacional: http://tech.groups.yahoo.com/group/magicu-l/
Grupo de Usuários iBOLT Brasil: http://br.groups.yahoo.com/group/iboltbrasil-l/
Manoel Frederico Silva
Product Manager & MAGIC Evangelist / Magic Software Brasil