Software Futurista e Software de Futuro |
| Escrito por Geraldo Guerra |
|
Artigo abordando as tendências do desenvolvimento de software e a importância da linguagem COBOL no desenvolvimento e manutenção de software comercial. A História nos mostra o passado, a Ciência nos prepara para o futuro e o Trabalho nos faz viver o presente. O papel dos historiadores é de suma importância para a humanidade, uma vez que procuram pesquisar, analisar e registrar sucessos, fracassos ou apenas acontecimentos. Os cientistas, das mais diversas áreas, abrem caminhos no desconhecido, no inexplorado, caminhos que transformam sonhos em realidade. Com base nos registros históricos, nas teorias e nas pesquisas, podemos avançar, avaliando e tomando posição, nos orientando para o futuro. Mas é com aquilo que já sabemos, com o nosso conhecimento, que trabalhamos o presente. Desafios Ao analisarmos os fatores que determinam a evolução do software, vemos que a história se repete: ü maior poder de computação, com novas plataformas, periféricos e ambientes operacionais ü produtividade e automação de tarefas ü ambiente sistêmico da empresa/negócio, abrangendo governo, bancos, outras empresas, entre outros. ü A evolução constante do software cria outro grande desafio - a manutenção - e esta, aliada à necessidade de qualidade , carrega consigo uma grande necessidade de documentação. Além disso, existe o crescente volume de pesquisas e novas tecnologias que estão amadurecendo e ganhando mercado em um prazo cada vez mais curto: a TV demorou 13 anos para conquistar o mercado, a Internet 5 anos, os sistemas de mensagens instantâneas pouco mais de 2 anos... Alguns exemplos de desafios do nosso dia-a-dia: Ex. 1 - os bancos precisaram adquirir tecnologia para trabalhar em quiosques, com recursos reduzidos, fazendo as mesmas operações conseguidas nas agências, que por sua vez tiveram que substituir as operações tradicionais dos mainframes. Ex. 2 - qual software-house não gostaria de atender às exigências ( necessidades) de clientes que lhe garantem o faturamento e a conquista de novos mercados? Ex. 3 - qual o I.T. que não precisa atender as exigências do seu empregador quando esse se mostra disposto a pagar pela tecnologia ? Reflexões Em relação ao software, os projetos que dependem de tecnologia carregam um encargo extra, além do seu desafio principal. Não obstante a incerteza que todo novo negócio proporciona, da sua aceitação de mercado e da influência da concorrência, o software precisa ser construído em bases tecnológicas sólidas. Ou seja, tem que prever as tendências de mercado no que tange as novidades tecnológicas e aplicá-las de forma que propiciem o "amadurecimento" da aplicação. Um software nunca nasce pronto, pelo menos até hoje nunca vi um que pudesse ser considerado assim: desenvolvemos sempre baseados no projeto, mas sempre há ajustes quando colocado à prova. Haja visto que qualquer usuário hoje desconfia da Versão 1.0 de um aplicativo. Além disso, qualquer aplicativo colocado em produção já é um código legado e teremos que evoluí-lo para satisfazer a novos requisitos. Calculo que um software precisa de pelo menos 1 ano, após sua implantação, para satisfazer integralmente os requisitos do projeto. Dependendo das reais tendências tecnológicas, podemos concluir, após esse período, que determinada aplicação pode ter sido construída em bases tecnológicas erradas, e se isto acontecer, essa aplicação pode cair em desuso ou simplesmente perder ou deixar de ganhar mercado. Para empresas ou profissionais cujo negócio é software, a escolha certa da tecnologia a ser aplicada hoje deve prever uma longevidade de pelo menos 5 anos após a implantação. O desenvolvimento em um aplicativo de sucesso hoje não basta ter como base uma idéia inovadora, precisa prever e considerar alguns itens essenciais: ü Sistemas abertos: nesse conceito vamos analisar duas partes, o sistema operacional e a ferramenta de trabalho. O sistema operacional precisa fornecer o suporte para os requisitos do aplicativo, mas quando houver falha nesse suporte, sua arquitetura deverá ser aberta de forma a permitir a construção desse suporte. A ferramenta deve trabalhar afinada com o sistema operacional, além de permitir alto grau de adaptação ao desenvolvedor. É aconselhável também que venha a complementar e facilitar o suporte que o sistema operacional precisa fornecer ao aplicativo; ü Escalabilidade: muitos projetos de software já nascem grandes, baseados em recursos consideráveis. Outros nascem pequenos, mas podem crescer, tanto em necessidades de recursos como em requisitos. Tanto o grande quanto o pequeno podem ter necessidade de adaptação a requisitos maiores ou menores, portanto precisam ser escaláveis; ü Portabilidade: o sistema operacional deve estar preparado paras os novos lançamentos de hardware: fabricantes de processadores e periféricos (lançamentos, limitações, endereçamento), abrangendo o maior parque possível. A ferramenta deve estar disponível para o maior número de plataformas possíveis (S.O. , periféricos e equipamentos). Os aplicativos têm que ser portáveis ao máximo, exigindo cada vez menos esforço para adaptação a um novo desafio. ü Manutenção: o esforço deve ser canalizado em escala decrescente de ações: do usuário > do suporte > de instalação de objeto > de compilação > de desenvolvimento/manutenção. Conclusão O software futurista é aquele que está baseado na última tecnologia, que transforma de maneira radical, que não está preocupado com o legado. O software de futuro, aquele que precisamos e defendemos, deve aplicar as novas tecnologias em bases sólidas que vão lhe permitir o sucesso. A corrida para novas tecnologias está mais para fabricantes de sistema operacional e ferramentas do que para desenvolvedores de aplicativos comerciais. Como as ferramentas estão no meio dos outros dois, precisamos escolher aquela que oferece o melhor suporte aos requisitos de nossos aplicativos e em menor grau às novas tecnologias. Precisamos aprender também a conhecer o que está pronto: componentes e objetos. Nesse contexto, podemos dizer que: ü A informática é futuro porque reduz esforços ü Ambiente gráfico (Windows, OS/2, o KDE do Linux, etc.) é futuro, pois facilita a transposição das tarefas do mundo real para o computador, reduz significativamente o aprendizado e aumenta a produtividade com padrões implementados na interface ü A Internet é futuro porque facilita a comunicação, socializa a informação, otimiza o tempo e reduz custos consideravelmente ü Bases de dados são futuro pois armazenam a informação, abrangendo dados, imagem, som, etc. Hoje sem dúvida a informação é o maior patrimônio de qualquer empresa/negócio ü Padrões CORBA e COM/DCOM, componentes e objetos distribuídos são futuro porque permitem a reutilização. O software construído com o COBOL é de futuro porque a linguagem é aberta, escalável, portável, auto-documentável, possui várias ferramentas de produtividade e vários fornecedores, possui base de dados própria a custo zero, oferece suporte a ambiente gráfico, Internet e reutilização e mais uma infinidade de vantagens. |