Essa pergunta é tão antiga como a propria programação.
Basicamente há dois tipos de projecto:
Projectos fechados (PF) - que têm um custo fechado
Projectos por hora (PH) - onde são contabilizadas as horas utilizadas
ambos são válidos com prós e contras. Deixa-me explicar um pouco melhor.
PF
Na minha experiência (e atenção que não é opinião, é o que me cruza mais o meu caminho profissional) são os mais frequentes. Há uma série de encontros (quer pessoalmente, quer por e-mail, telefone, msn, <põe o teu método de conversa aqui>) entre as partes envolvidas onde se chega a um documento aceite por todos sobre o que vai ser o projecto. Esse documento depois transita para o programador (se só houver uma pessoa ou para o analista de sistemas ou arquitecto de sistemas) que vai escrever tudo o que é preciso para cada ponto do documento estar cumprido. Depois, começa a escrever quantas horas/dias/semanas demora para cada tarefa. Tipicamente nenhuma tarefa tem mais de 2 dias. Se tiver é porque pode ser ainda mais partida em várias sub-tarefas. Depois disto feito, tens uma noção no tempo quando irá terminar o projecto.
Atenção que é uma noção. Há atrasos, por isso aconselho no minimo de 10% de tempo em cima disto. Contas ao tempo, começas a pensar em dinheiros. Um profissional sénior cobra entre os 3,125 e os 6,25 por hora de trabalho efectivo. Contas as horas que vais levar (menos os 10% de margem de "cagaço"). E dás como tempo o tempo total (tempo estimado + "cagaço").
O cliente pode achar muito dinheiro, então decidem cortar ou alterar alguns pontos da planificação. Até se chegar a um acordo final, fechado. Daí o nome. Acorda-se o pagamento (há quem receba parte à cabeça, há quem receba por módulo entregue, há quem discuta isto projecto a projecto).
Então fecha-se o acordo. A partir deste momento, todas as alterações têm de ser reflectidas no plano e podem custar mais. Todos os atrasos são por conta do programador (daí a margem de cagaço). Pode haver casos até que se negoceia, caso atrase, o programador paga uma "multa". Todas estas hipoteses estão na mesa. Obriga a quem faz o plano a pensar bem e com seriedade no trabalho que está envolvido a fazer cada tarefa e a ter uma ideia concreta do trabalho envolvido.
PH
Tipicamente projectos muito pequenos ou onde o cliente não sabe bem o que quer. Tenho alguns acordos com pessoas que sempre que precisam de mim, agendam-se alterações e pequenas coisas contabilizadas à hora. Tenho também casos de pessoas que contratam horas mensais. Principalmente na área dos conteúdos. Sei que por mês, tenho de entregar 10 ou 15 horas de trabalho, pagas por avença.
Pronto.. desculpa lá o testamento. Se tiveres alguma pergunta, xuta
// Zen