Olá pessoal,
Segue o meu primeiro artigo sobre desenvolvimento de aplicações, e minha visão na pequena experiência que tenho na parte de análise e desenvolvimento. O objetivo dele é demonstrar
o “caminho das pedras” para um desenvolvimento sem perder tempo e com o máximo aproveitamento. Não vai haver nenhuma linha de código neste artigo, ele é objetivado para demonstrar o pensamento antes de começar um projeto, para um
desenvolvimento mais proveitoso.
Por onde começar?
A primeira coisa que devemos nos perguntar sempre é por onde começar. Ora, é
simples, não se cria um projeto do nada, não se desenvolve um projeto do ar,
existe sempre alguma coisa que motiva o desenvolvimento, e o que seria? Uma idéia?
Pode até ser, mas se formos analisar, no fim das contas, é sempre a mesma
coisa que nos leva ao desenvolvimento: uma necessidade.
Pode ser uma
necessidade de um cliente, uma visão de mercado que temos, uma proposta para
nossa Software House, mas é, invariavelmente a mesma coisa, uma necessidade que
veio de uma situação no mundo real.
Vejamos o
exemplo de um cliente que é veterinário. Imagine a seguinte situação hipotética:
- João, um
veterinário conhecido e dono de uma clínica para animais e três pet shop,
descobre que você é um desenvolvedor e resolve apostar em você para fazer o
sistema da clínica, talvez ele tenha ouvido falar de você através de um
amigo, ou conheça sua Software House, ou outro motivo qualquer, o importante é
que decidiu que você seria a pessoa. E agora? O que você vai fazer? Aceitar o
projeto? Como você vai dar o seu preço? Isso tudo é importante, mas veja o
que aconteceu, o Sr. João, POR UMA NECESSIDADE, decidiu criar um sistema para a
clínica dele, e procurou você.
Agora que você
viu a necessidade do cliente, vamos ao próximo passo.</o:p>
ANÁLISE –
As 7 letras do poder!
Em uma conversa informal com o Sr. João, ele te pediu um sistema simples, ele
somente queria cadastrar os animais que ele atende, colocar o que gastou com
cada um, cadastrar os clientes e ver o faturamento por animal e por cliente.
Isso parece
simples pra você? Espero que não, pois nunca é simples. Por isso a regra básica
da análise de sistemas, o seu cliente sabe o que quer, mas não vai conseguir
te explicar exatamente isso, a menos que ele também seja um desenvolvedor. Por
quê? Bem simples, por que ele sabe quais resultados ele quer, ele não sabe
quais os processos, e o que você vai “informatizar” (eita palavrinha horrível
hein?!) são os processos, para gerar os resultados que ele deseja.
Para os já
familiarizados com o desenvolvimento de sistema, podem pensar o seguinte, poxa
mas isso é “chover no molhado”, mas continuem comigo e vocês vão entender
o ponto da questão.
Voltando ao
problema do Sr. João.
Ele sabe que
precisa de um sistema rápido, pois o sistema que ele possui atualmente não está
resolvendo as necessidades dele, então ele te pergunta quanto tempo você vai
gastar pra fazer o sistema. Somente alguém extremamente sem preocupação com o
cliente iria dar uma previsão sem conhecer a necessidade real e o que existe
para ser desenvolvido. Então o que fazer? Análise!
Peça ao Sr.
João, uns 4 dias para dar a resposta do preço e do tempo para desenvolvimento,
temos de concordar que 4 dias é muito pouco tempo e diga a ele que durante este
tempo você poderá fazer uma pesquisa melhor e responder o que ele pergunta com
mais precisão. Feito o acordo, vamos aos processos.
Visite o
local da clínica do Sr. João, e converse com algumas pessoas. Veja como os
clientes são atendidos, e comece a imaginar o que acontece desde que o cliente
chega na loja até ele pegar o seu animal de volta. Pense no seguinte:
“Tudo bem,
eu sou um cliente, o que acontece se eu trouxer o meu cachorro aqui?!” E veja
como o cliente é atendido, os papéis preenchidos, se existe algum comprovante
e como o cliente recebe a previsão de quando o serviço estará concluído.
Veja a lógica que existe atrás do processo todo.
Acabou o
acompanhamento do cliente, vá para o próximo processo, veja como a atendente
lida com as informações recebidas, quais informações são importantes, para
onde vai o animal, se existem várias salas com várias finalidades, quais
informações adicionais a atendente liga àquele animal e para qual veterinário
ele é encaminhado.
Terminou mais
um processo? Ótimo! Faça anotações de tudo. Siga o processo do veterinário,
veja o que ele faz, quanto tempo demora, o que gasta, como gasta e como anota o
que gastou. Veja também como ele retira algo de algum estoque, como ele anota
na ficha do animal o que foi gasto e como ele faz algum diagnóstico em que seja
necessária a aprovação do cliente.
Terminou com
o veterinário? Volte ao animal, veja as alterações das informações de
quando saiu da atendente até quando saiu do veterinário. Concluiu as alterações?
Tudo perfeitamente anotado? Proceda para o próximo processo e continue indo,
processo a processo até acabar tudo.
Pegue uma cópia
de cada relatório que o seu cliente possuir e leve com você, desde relatórios
financeiros até relatórios técnicos, e explique para o Sr. João que você
precisa destes relatórios para entender melhor o que ele deseja.
Volte para
sua área de desenvolvimento e coloque os papéis em ordem. Chegou a hora boa...
BRAINSTORM
– Acertando os dados que você possui.
Veja o que
você possui e pense em várias linhas:
- Como
cliente
- Como
atendente
- Como
veterinário
- Como gestor
- Como
proprietário</o:p>
Veja as
informações importantes e a prioridade das mesmas, faça um esboço de tudo
que você conseguiu e de informações que você ainda precisa e não conseguiu.
Reserve um dia inteiro para essa análise, pense nas possibilidades e tente ver
além do que você precisa.
Volte no
terceiro dia até a clínica e reveja o processo, agora com as suas anotações
e pergunte para as pessoas o que elas precisam para fazer melhor ainda o serviço
que já fazem, o que poderia melhorar e o que deveria ser feito para agilizar as
coisas dentro de determinado departamento, como os veterinários, por exemplo.
No final do
terceiro dia, volte a sua área de desenvolvimento e reveja os seus processos,
tenho certeza que haverão mudanças. É importante saber que esses processos não
são os processos de desenvolvimento de sistema ainda, são os processos da
informação, para saber quem faz o que e de que forma. Assim, você terá uma
idéia macro do que terá de desenvolver para chegar ao seu objetivo final, que
é, resolver e atender a NECESSIDADE do seu cliente.
Tire o quarto
dia para rever o processo todo, com mais calma e para fazer um paralelo de
quanto tempo você vai gastar para fazer cada parte. Veja também o que você
terá de fazer até começar a fazer o projeto, pense nas classes, no que você
terá de desenvolver e nos recursos que deverão ser empregados. Com tudo isso
em mente, você terá duas importantes informações na mão:
- Quanto você
vai gastar de tempo para fazer o que precisa ser feito;
- Quando você
poderá entregar o que precisa ser entregue.
Ora, com
esses dados, você pode estimar melhor suas horas de desenvolvimento, a
tecnologia melhor aplicável a situação e quanto de seu tempo você terá de
dispor para completar o seu projeto.
RESULTADOS
– Apresentação do que existe
Posto isso
tudo converse com o seu cliente ou vá até ele, com dados nas mãos. Mostre
para ele o que ele possui hoje, o que pode ser melhorado, o que PRECISA ser
melhorado e o que ele quer como resultado final, e como ele vai conseguir isso.
Pegue os
relatórios que ele quer hoje, veja os que podem servir de base e os que
precisam ser alterados, para demonstrar ao Sr. João o que ele pode conseguir
com o seu sistema.
Diga a ele
quanto tempo você precisa, e de quanto em quanto tempo você pode dar uma posição
sobre o sistema. E depois disso tudo, diga a conclusão do preço que você acha
justo para o desenvolvimento da aplicação que ele quer.
Considerando
que você gastou quatro dias para analisar a situação, você já saberá o que
é viável e o que pode ser negociado com o seu cliente, e mais importante, você
saberá exatamente onde está pisando, assim, você terá ainda mais confiança
no seu desenvolvimento.
Se o seu
cliente conseguir ver o que você se propõe a fazer, ele perceberá que você
gastou um bom tempo para ver melhor a situação e poderá também visualizar
que você mostrou a ele pontos que ele não conhecia, assim o seu projeto tem
muito mais chances de ser aceito e completado. E o mais importante, você será
remunerado pelo que acha justo.
Existe algo
mais frustrante que um projeto que era para ser pequeno e vai aumentando,
aumentando, aumentando, sem parar? E você não vê o lucro dele? Parece que seu
esforço está todo indo por água a baixo? Então, procedendo como foi exposto
acima, você se livra disso, fecha um acordo com o cliente e chega em um ponto
simples: O que está acordado é o que será feito.
Além do que,
procedendo da forma acima, você poderá surpreender o seu cliente e superar as
expectativas dele, assim, você terá ainda mais respeito e respaldo quando
tiver de discutir, durante o desenvolvimento, uma situação que não é agradável
ou que o cliente insiste em manter, mesmo que esteja errado no processo.
Lembre-se,
você não está desenvolvendo um “programa de computador” para o seu
cliente, você está resolvendo uma NECESSIDADE que ele tem, e as duas coisas são
bem diferentes.
Espero que
este artigo ajude vocês a lidarem melhor com os seus clientes e que vocês
possam desenvolver softwares mais produtivos, para os seus clientes e para vocês.
Um abraço,
CPD
Observação: Por : Willian A. Rabelo - cpd@anapolis.go.gov.br
|