Think SmartAgora que temos um pro­jecto para orça­men­tar, ter­e­mos de o anal­isar, medir e apre­sen­tar um orça­mento realista.

E é aqui que muita muita gente se espalha. Regra geral acabam por orça­men­tar por baixo. Fazem umas esti­ma­ti­vas muito cruas e não se dão ao tra­balho de par­tir o pro­jecto em pedaços.

Há uma maneira de chegar a um dimen­sion­a­mento cor­rec­ta­mente apli­cado a um pro­jecto, bem como o seu valor horário. O prob­lema depois é explicar ao cliente e arran­jar uma maneira con­fortável de o cliente não pen­sar que nós achamos que ele é a nossa gal­inha dos ovos de ouro. Mas isso expli­cou noutro artigo.

Agora vou explicar como dimen­sionar um pro­jecto cor­rec­ta­mente. Existe uma maneira, e eu vou relatar como.

Vamos con­sid­erar um exem­plo mais comum: um site web. Já sabe­mos quem é o cliente: o  sr. Amíl­car Sousa Bas­tos (fic­tí­cio) que pos­sui um stand de venda de automóveis. Para o site ele pre­tende o seguinte:

  • Um visual atrac­tivo e dinâmico, com um menu dinâmico e animado;
  • As opções estáti­cas: Quem somos, Con­tac­tos e Mapa do Site;
  • As opções dinâmi­cas: Listagem de Automóveis pra Venda, Detal­hes de um automóvel, Inserção de um con­tacto pelo uti­lizador a dizer que está inter­es­sado e com inputs para os contactos;
  • Um back­of­fice com área para poder gerir os automóveis para venda com Nome, descrição (para marca, mod­elo, extras, tudo em texto cor­rido),  preço e foto;
  • Uma área do back­of­fice para colo­car alguns automóveis em destaque;
  • A página prin­ci­pal, bem como a listagem têm de ter uma pesquisa para os automóveis;
  • A página prin­ci­pal tem uma área onde mostra os automóveis em destaque;
  • Os detal­hes do Automóvel tem de incluir um for­mulário com nome, telemóvel, email e obser­vações para o uti­lizador enviar o email ao nosso cliente;
  • O cliente não tem um web­host, pelo que nos pede para colo­car uma alter­na­tiva nossa;
  • O cliente quer que nós o ensinemos, ou à secretária, a mexer com o site;
  • O cliente não deseja manutenção;

Depois de ouvir isto, há quem pense que é fácil, out­ros que é difí­cil, mas ninguém de deu ao tra­balho de par­tir isto em boca­dos. Ora vamos anal­isar, para poder­mos dar uma resposta capaz.

Passo 1 — Iden­ti­ficar a com­plex­i­dade do Projecto

Para mel­hor estru­tu­rar­mos o que pre­tendemos fazer, vamos con­sid­erar a seguinte nomenclatura:

Pag­ina — Uma página web estática;
Matrix — Uma página web ou processo que inclui um ou mais coman­dos que geram um con­junto de dados  extraí­dos de uma única fonte;
Cri­te­ria — Uma página web ou processo que inclui um ou mais coman­dos que geram um con­junto de dados extraí­dos de uma ou mais fontes segundo um con­junto de cri­te­ria iden­ti­fi­cado;
Form — Uma página web ou processo que inclui um ou mais coman­dos que inter­ferem ou alteram os dados de uma ou mais fontes;
Guide — Um ou mais proces­sos especí­fi­cos ao site que tem a ver com o seu propósito ou fim, neste caso, ao ramo automóvel.

Assim podemos iden­ti­ficar Matrix como uma listagem, como os detal­hes do automóvel, etc tudo o que possa ser extraído de uma fonte de dados. Já o caso do Cri­te­ria seria o resul­tado de uma pesquisa com cruza­mento de vários dados e orde­na­dos por preço. O Form seria uma acção de edição, ou update, ou inserção. E o Guide seria, noutro exem­plo, a fun­cional­i­dade de iden­ti­ficar um uti­lizador provindo de fora de Por­tu­gal e apre­sen­tar o site em inglês, emb­ora não a con­sid­er­e­mos neste caso.

Assim, desta maneira, temos uma via efec­tiva de definir o nosso site em blo­cos, mas con­tin­u­amos sem saber a duração da cri­ação de um destes blo­cos. Bem, depen­dendo da tec­nolo­gia, da fer­ra­menta de cri­ação do site, podemos ter vários níveis e difi­cul­dade. Então vamos quan­tificar a difi­cul­dade do projecto.

Nor­mal­mente poder­e­mos assim­i­lar que, medianamente:

1 Página estática — 2 horas de tra­balho
1 Matrix — 4 horas de tra­balho
1 Cri­te­ria - 6 horas de tra­balho
1 Form — 5 horas de tra­balho
1 Guide — 3 horas de trabalho

Con­siderando 1 hora como tempo base, os niveis pode­riam ser algo semel­hante a:

Fácil (ou reuti­liza­ção de código já feito) — horas / 2

Sim­ples — Valor horário normal

Médio — Valor horário x 1.5

Tra­bal­hoso — Valor horário x 2

Com­plexo — Valor horário x 3

Assim, se tiver­mos uma pesquisa que exige vários encadea­men­tos e cerca de 20 opções de pesquisa, vamos con­sid­erar que se trata de uma Cri­te­ria (6 horas de tra­balho) de Nível Com­plexo, o que cor­re­sponde a 18 horas, ou 2.3 dias de tra­balho. Se avaliar­mos questões de bug­fix­ing e lay­out, facil­mente cheg­amos à con­clusão que será o tempo que gas­ta­mos a con­cluir esta pesquisa.

Se anal­is­arem um pro­jecto desta maneira, sem pon­derar as horas mas sim as analo­gias que fize­mos acima, vão chegar a val­ores sur­preen­dentes. Ten­tem com­parar com tra­bal­hos que já fiz­erem e ver­i­fiquem o vosso esforço pas­sado e passem o pro­jecto por este processo e digam-me se as con­clusões a que chegaram não se aprox­i­maram mais ao real do que ao vosso método anterior.

Na segunda parte, ire­mos fazer o exer­cí­cio prático com o site do Sr. Amíl­car e definir a exten­são do site.

Bons pro­jec­tos!

Um abraço e tudo de bom,

2 comments
Ricardo
Ricardo

Obrigado pelo incentivo. :)