quinta-feira, 3 de abril de 2008

Funcionalidades não documentadas


Quando trabalhamos com desenvolvimento de software nos deparamos com situações complexas. Não é segredo para ninguém que softwares tenham sempre seus bugs e limitações, e muitas vezes nos frustramos ao instalar uma nova versão de algum programa que estamos acostumados a usar. Logo todos acusarão os desenvolvedores daquele programa de não terem testado adequadamente o produto antes de disponibilizá-lo no mercado, o que de fato pode ter acontecido, mas nem sempre é o caso. Nesse mundo dos programas de computador muitas vezes alguns bugs e falhas são tratados pelos consumidores como funcionalidades não documentadas e utilizados para resolver (acochambrar) problemas do dia a dia. Os desenvolvedores e testadores sem o conhecimento dos usos que a criatividade humana pode encontrar para os defeitos de um programa se empenham em corrigi-los para a próxima versão, e eis que ao lançar o novo programa se descobre que ele impede os usuários (CLIENTES) de continuarem fazendo o que estavam habituados a fazer, muitas vezes param de funcionar corretamente com outros programas assessórios que estes usuários usam. Isso é muito comum. Eu mesmo já vivi e essa situação dos dois lados, como usuário e como desenvolvedor.

É normal então ouvir algumas pessoas dizerem que o novo software está cheio de defeitos, o que no ponto de vista delas não é errado, de fato o novo software removendo falhas e defeitos antigos podem ter tornado mais difícil a vida dos usuários que se aproveitavam dessas brechas. Contornar esse problema deve ser muito mais difícil quando se trata de um sistema utilizado em escala global, como sistemas operacionais e browsers de navegação, nesses casos manter a participação no mercado será a decisão mais acertada mesmo que isso signifique manter funcionando os workarrounds feitos pelos usuários (clientes). Mas no caso de sistemas utilizados por usuários muito específicos em mercados pouco segmentados e com menor concorrência o mais sensato é entender as necessidades reais do seu usuário, desenvolver em novas versões verdadeiras soluções para seus problemas e aos poucos ir removendo completamente as “soluções engenhosas” sob pena de tornar inviável e extremamente custoso qualquer processo de desenvolvimento.

2 comentários:

Flávia disse...
Este comentário foi removido por um administrador do blog.
Flávia disse...

Talvez os "acochambramentos" sejam necessidades importantes para quem usa o sistema. Quem tem o contato com o cliente deveria ficar atento a esses detalhes para passar para o programador essa necessidade que se descobriu a partir de uma "falha", e estudar como resolve-la. Ou estou errada?