domingo, 26 de abril de 2009

Os heróis da produtividade (em TI)

Nesses anos de trabalho já vi tentarem ou eu mesmo tentei muitas formas de aumentar a produtividade minha e das equipes nas quais trabalhei. Algumas dessas formas foram mais eficientes que outras. Na minha empresa, a Pitang, já foi feita uma pesquisa sobre os "Vilões da produtividade", o que foi bem proveitoso e serviu para abrir o tema para a discussão de todos. Dessa pesquisa, me indaguei: e os heróis?

A busca pela produtividade – ou a otimização dos serviços – é constante em mercados competitivos. As pessoas, métodos e ferramentas mais produtivas geram mais faturamento, para o mesmo custo, ou para um custo ligeiramente maior (um investimento que compensa o aumento do faturamento). Percebe-se que equacionar os agentes da produtividade com a balança financeira definitivamente não é fácil. Mas podemos simplificar a busca, de modo a facilitar essa conta.

A parte mais complicada da vida, mas a mais fácil da equação são as pessoas. Melhorar a produtividade do indivíduo significa capacitar para a execução da tarefa a ele designada. Capacitar envolve a educação formal nas universidades e o treinamento nos métodos e ferramentas que serão utilizados no trabalho. Uma pessoa que não sabe usar uma ferramenta vai levar certo tempo para aprendê-la sozinho. Aprendendo sozinho vai criar vícios que não teria se houvesse uma capacitação adequada.

A produtividade do indivíduo pode ser arruinada por problemas pessoais ou pela falta de comprometimento, para citar alguns. Esses aspectos não entram na conta, é de cada indivíduo.

A segunda parte são as ferramentas. Chamo de ferramentas aquelas que são utilizadas para auxiliar o trabalho e aquelas que compõem o software, que fazem parte da infraestrutura do software. Daquelas que auxiliam, existem as que fazem o trabalho e as que fazem o trabalho de forma mais eficiente. Só pra citar, existem umas que disponibilizam formas de refactoring e existem outras que implementam vários níveis de refactoring. No dia-a-dia, aquelas que têm os vários níveis podem melhorar a produtividade, executando um determinado refactoring de forma mais rápida. E para aquelas ferramentas que compõem o software não é muito diferente. Mas considero as que fazem o trabalho e aquelas que fazem o trabalho de forma simples. Exemplo: uma ferramenta que implementa uma tabela e uma outra que implementa uma tabela associada a uma fonte de dados. A última já lida diretamente com os dados, independentemente da forma que gera a apresentação da tabela. A primeira deixa que o desenvolvedor se preocupe em como apresentar os dados, em detalhes executados de forma mecânica.

A terceira parte são os métodos. Considero métodos tanto a forma de trabalho – o processo de desenvolvimento do software – quanto a arquitetura para o desenvolvimento. O processo de software determina quão simples será a designação de atividade e a extração das métricas do desenvolvimento. Esses são os principais fatores que podem impactar na produtividade do desenvolvedor do software. Um processo simples no qual podem ser incluídas, alteradas e removidas atividades tenderá a ser mais produtivo, pois a produção do software sempre requer a absorção de mudanças de forma rápida. A arquitetura do software pode determinar o esforço necessário para criar pontos de função. No final, o que vai importar para o cliente é:

  • Que o software atenda ao principal propósito dele. Para quem desenvolve é melhor gastar mais esforço no básico, no que é mais importante, do que se preocupar em fazer a mais. Agradar ao cliente significa fazer bem o que ele pediu.
  • Que o software seja rápido. Ninguém gosta quando um clique demora vários segundos.
  • Que o código tenha certa ordem. Todo software deve evoluir com o tempo, seja por mudanças no processo do cliente, seja por melhorias na interface com o usuário. Enfim, sempre há espaço para melhorar. Um código desordenado vai dificultar essas modificações do software.

A arquitetura do software está relacionada com a performance e a organização do código.

Desses três aspectos de produtividade do software minha impressão e no que acredito fortemente é na capacitação das pessoas. O desenvolvimento de software é um trabalho criativo, não pode ser considerado uma produção mecanizada. As pessoas determinam tanto a qualidade quanto o custo que aquele software vai ter. As ferramentas e métodos são meios complementares para alcançar a melhor produtividade, mas o básico mesmo é investir em capacitação. Se toda empresa tivesse um planejamento financeiro e de tempo para capacitação o resultado final é que todo o conglomerado de empresas alcançaria uma produtividade mundialmente competitiva, independemente se o investimento feito em determinada pessoa seja perdido pela saída dela para uma outra empresa. Acho que devemos repensar de quem é mesmo a responsabilidade de treinar os funcionários. Os heróis não são as pessoas, mas sim a capacidade de cada uma delas.

2 comentários:

Juliana Didier disse...

Dé, amei este artigo do seu blog. Muito bem escrito, preciso e informativo. Vc está um verdadeiro gestor!

Marcely disse...

Ai Didier...muito massa!