É inegável que as ferramentas de desenvolvimento tornaram-se cada vez mais complexas ao longo dos anos. Nos anos 80 e início dos anos 90 uma pessoa sem muito conhecimento em programação de software podia usar uma ferramenta como o dBase, FoxPro, Visual Basic ou Access e criar uma solução razoável para seu problema de negócios. Hoje em dia ferramentas como o Visual Studio ou o Eclipse amedrontam até os profissionais, com tantos recursos e opções.

Isso é bom ou ruim? Existem duas escolas de pensamento.

A primeira é a seguinte: no fundo isso é bom. O desenvolvimento de software agora é feito por profissionais especializados e por isso conseguimos resolver problemas bem mais complexos. Podemos fazer paralelos com outras atividades humanas, por exemplo, a construção civil: enquanto no século dezenove um simples pedreiro poderia construir uma casa sem maiores dificuldades, os prédios de apartamento de hoje precisam ser construídos por profissionais bem mais qualificados como engenheiros civis e de produção, arquitetos, topógrafos, analistas de solo, administradores financeiros etc. Se deixarmos hoje apenas pedreiros a cargo da construção de prédios teremos um resultado demorado, caro e possivelmente inseguro.

Outra corrente diz essencialmente o contrário. A ideia é a seguinte: as ferramentas antigas tinham a capacidade de tornar pessoas que não eram altamente técnicas em desenvolvedores razoavelmente bem-sucedidos. Eles conseguiam resolver problemas reais de negócio, problemas esses que os “profissionais” só conseguiam resolver com custos maiores, prazos mais longos e uma burocracia insana. Os próprios microcomputadores ganharam espaço por causa disso: com ferramentas relativamente simples, eles podiam resolver rapidamente problemas que as equipes de desenvolvimento dos mainframes e seu engessado ciclo de desenvolvimento levaria anos para resolver. Segundo esta corrente, os desenvolvedores profissionais de hoje são iguais aos de mainframe da década de 80.

Eu pessoalmente penso que as duas verdades podem coexistir: por um lado existem problemas realmente complexos, um ERP, por exemplo, que só podem ser resolvidos com um enfoque mais “profissional”. Por outro lado, ainda existem muitos sistemas pequenos que poderiam ser desenvolvidos por pessoas que não são profissionais de desenvolvimento de software. O que se perde em “falta de profissionalismo” mais que se ganha em conhecimento do negócio, pouca burocracia e rapidez.

Acredito que oferecer simplicidade para pessoas com bons conhecimentos de negócio é o segredo do sucesso de ferramentas tecnicamente “ruins” como o PHP diante de ferramentas “superiores” como o Java ou o .NET. Aparentemente, as grandes empresas que criam ferramentas de software notaram isso. A IBM está obtendo algum sucesso com o “Rational Business Developer”. Já a Microsoft lançou recentemente o “Light Switch”. Ambas são ferramentas dirigidas a um público de negócios e prometem criar aplicativos de forma simples e rápida.

Outra coisa interessante destas ferramentas é que elas se propõem a capturar a informação de negócios de uma maneira que possa ser executada tanto em Web como em outros ambientes, como um desktop. Evidentemente, os desenvolvedores profissionais também podem resolver utilizá-las em situações mais simples, em que produtividade é importante. Essas ferramentas também podem ser facilmente estendidas com programação mais tradicional, integrando com linguagens como Java ou C#.

As minhas impressões iniciais com o Light Switch da Microsoft é que mesmo desenvolvedores profissionais devem dar uma olhada nela e considerar seu uso para situações mais simples e os desenvolvedores casuais pode fazer coisas bastante interessantes com pouco esforço