Início > Artigo > Desenvolvimento baseado no conhecimento
Desenvolvimento baseado no conhecimento
Por luiz_garcia@sicredi.com.br
Criado em 30/07/2008 - 00:00
Em que linguagem programar? Qual me dará melhor produtividade? Qual me possibilita estar tecnicamente avançado e ter vantagens competitivas?
Através dessas perguntas decisões muito importantes são tomadas, gerentes determinam o futuro de empresas, profissionais traçam suas carreiras e geram expectativas. Portanto, acredito que são decisões extremamente cautelosas e devem ser tomadas com base em uma análise bem estruturada.
A intenção desse artigo não é informar qual é a linguagem do momento e nem definir qual a linguagem que uma empresa ou profissional deve adotar. Não tenho essa pretensão nem arrogância. Busco passar uma visão da evolução das linguagens e tendências que vejo acontecer ao longo dos anos.
As linguagens de programação são criadas e mudam muito rapidamente. As causas vinculadas a esses acontecimentos são as necessidades de mercado, cada vez mais exigente, e oportunidades para o desenvolvimento de novas formas que são gerados por determinados nichos de empresas.
Mesmo com um gama enorme de linguagens, a sobreposição de conceitos comuns é muito grande. Podemos perceber que nos últimos dez anos existe pouquíssima evolução no que diz respeito à estrutura e conceitos das linguagens. Como exemplo, podemos citar o PHP, Java, C, C++, C# e Delphi, que apresentam diferenças mínimas entre si. Para compensar essa semelhança, o foco de desenvolvimento parece ter mudado atualmente para a criação de metodologias que empregam melhor as linguagens já existentes.
Extreme Programming e UML são exemplos dessa tendência. São técnicas que se encaixam em praticamente qualquer tipo de linguagem de programação, mas não alteram fundamentalmente as mesmas. Essas metodologias auxiliam no processo de desenvolvimento, e acredito que sua utilidade e aplicabilidade são fundamentais para bons resultados, mas não resolve o problema de produtividade e evolução tecnológica das empresas. Se o foco nas linguagens mais utilizadas ou mais recentes e metodologias bem elaboradas não resolvem o problema, em que devemos apostar?
Novo paradigma: descrever ao invés de programar
Seguimos analisando o passado da TI. Nos últimos 40 anos, a complexidade dos sistemas aumentou em 2000% enquanto que a produtividade das linguagens de programação aumentou em 150%. Além disso, a produtividade das linguagens de programação chegou, a algum tempo já, a estabilização. Muitas empresas chegaram a uma situação insustentável para os negócios, os custos crescem de maneira descontrolada em busca de tecnologia e não se consegue produzir com eficácia.
Como conseguir o aumento de produtividade que desejamos? A resposta talvez seja: Construir softwares baseado em conhecimento e não em programação. Focar no conhecimento ao invés de na linguagem propriamente dita, descrever ao invés de programar! Bem isso é o que aposta a multinacional Artech que tem como principal produto o software GeneXus, plataforma para desenvolvimento, gerenciamento e manutenção de aplicativos.
A essência da ferramenta é tratar de forma automática o conhecimento dos sistemas de negócio. Para isso GeneXus possui ao seu redor uma série de recursos, tais como: Projeto, geração e manutenção automáticos da base de dados e programas de aplicação necessários para a empresa; Geração, a partir de um mesmo conhecimento, para múltiplas plataformas (.Net, Java, etc.); Integração do conhecimento de diversas fontes para atender necessidades muito complexas com custo em tempo e dinheiro muito inferiores aos habituais.
Uma das características mais interessantes da ferramenta é a atualização ou a evolução dos softwares construídos através da mesma, que, pelo fato de trabalhar com o conhecimento puro, torna-se independente das tecnologias da moda, podendo ser sempre aproveitado para tecnologias futuras. Por que evoluir tecnologicamente aproveitando o mesmo conhecimento?
Indústria de automóvel
Analisando o setor da indústria de automóvel, podemos fazer uma analogia com a situação atual da TI. A evolução dos carros pode nos ajudar bastante a entender essa nova tendência que estamos presenciando. Ao longo dos anos os carros foram sofrendo alterações ou seja, evoluindo. O carburador deixou de existir dando espaço para a injeção eletrônica, assim como outras partes do carro evoluíram: design, embreagem, freios (ABS), direção hidráulica, vidros elétricos, ar condicionado, sistema de segurança (airbag), câmbio automático, sinalizadores sonoros (para estacionar), motores flex, entre outros. Todas essas inovações vieram através de um processo de evolução muito parecido com a da TI, necessidade do mercado e oportunidade de determinados nichos de empresas.
A pergunta é: A forma de dirigir mudou? O conhecimento foi posto fora e teve que se reaprender a dirigir a cada novo carro? A resposta para ambas as perguntas é “não”. Continuamos dirigindo da mesma forma, aproveitamos nosso conhecimento e usufruímos das novas tecnologias. O tempo que gastamos com a adaptação ou aprendizado dos novos recursos é enormemente inferior ao tempo de se aprender a dirigir.
Vantagem competitiva
A metodologia utilizada pelo GeneXus, o desenvolvimento baseado em conhecimento, possibilita uma redução muito grande em termos de custos, tanto em valor monetário quanto em tempo. Esta é uma abordagem não muito recente, porém acredito que somente hoje temos informações e maturidade suficiente para o entendimento e avaliação dessa forma de pensar, dessa nova visão de desenvolvimento de software, dessa quebra de paradigma.
É um fato interessante notar que empresas que utilizam dessa metodologia mantêm em segredo e utilizam da produtividade das mesmas para manter vantagens competitivas. Dentro desse cenário, me pergunto: Estaria o futuro do desenvolvimento de softwares em um forte investimento comercial dessa ferramenta ou metodologia?
Luiz Felipe Possebom Garcia é analista de sistemas na Administração de Dados e Objetos do Sicredi Porto Alegre
Olho:
Em que linguagem programar? Qual me dará melhor produtividade? Qual me possibilita estar tecnicamente avançado e ter vantagens competitivas?
Através dessas perguntas decisões muito importantes são tomadas, gerentes determinam o futuro de empresas, profissionais traçam suas carreiras e geram expectativas. Portanto, acredito que são decisões extremamente cautelosas e devem ser tomadas com base em uma análise bem estruturada.