sábado, 23 de junho de 2012

Porque usuários querem aplicações que façam tudo?

Recentemente estive em uma reunião para discutir sobre o desenvolvimento de uma nova aplicação. A aplicação em si provavelmente será simples. Os usuários vão alimentá-la com informações, o programa armazena, efetua validações e algum processamento posterior usando as regras de negócio. Depois disso os usuários podem acessar estas informações ou exportá-las usando algum formato aberto para que possam ser usadas em outros programas.

Nós temos um programa simples que faz pouca coisa e que exporta as informações armazenadas em um formato aberto, como texto por exemplo. Esta é basicamente a filosofia unix de se escrever programas. Acho que esta forma de pensar leva a programas mais fáceis de serem entendidos, com menos erros e mais fáceis de serem alterados.

Voltando ao programa mencionado no início do texto, depois de definido o escopo principal o usuário começou a dar ideias de como programa deveria incluir um sistema de gerenciamento de compromissos. Marcar compromissos com data e hora, ter um calendário etc, tudo que estes sistemas de agendamento possuem. Vejam, ser um sistema de agendamento não é razão de existir deste novo programa, incluir um demandaria tempo de desenvolvimento. A princípio um sistema de agendamento não parece muito complicado de ser desenvolvido. Mas com alguns anos de experiência nesta indústria vital eu aprendi que nada é tão simples quanto parece a primeira vista quando se trata de desenvolvimento de software. Não é toa que muitos projetos de software demoram mais tempo para ser desenvolvidos e saem mais caros do que inicialmente previsto.

Eu imagino que para as pessoas leigas software é uma coisa simples de ser criada e principalmente alterada. Quando o contrário disso deve estar mais próximo da verdade. E soma-se a isso os inflados egos que permeiam o meio dos desenvolvedores de software. "É claro que podemos desenvolver um sistema de agendamento perfeitamente funcional dentro do prazo e custo esperado. Você acha que nós somos amadores?".

Quanto ao sistema que mencionei? Provavelmente ele vai exportar as informações no formato csv e diremos para o usuário usar o Google Calendar, que acredito que seja um excelente software e o melhor de tudo é grátis.