No desenvolvimento de software freelance, que tipo de sanções as empresas devem ter quando perdem os prazos? [fechadas]

12

Eu estava conversando com um co-desenvolvedor.

Ele tem um cliente que queria ter certeza de que ele entregaria a tempo. O cliente quer repercussões por prazos perdidos.

Embora eu não trabalhe como freelancer, não pude dar uma resposta.

Então, minha pergunta é:

Que repercussões você (freelancers) concorda com seu cliente se você perder os prazos de entrega (além de ser demitido)?

Teej
fonte
2
Ele seria tolo em aceitar sanções, pelo menos sem uma cláusula de saída baseada em mudanças nos requisitos. A estimativa de tarefas é terrivelmente imprecisa na melhor das hipóteses, antes de levar em conta o gerenciamento de alterações. Basicamente. Executar
Matt D
4
Então, o cliente teria interesse financeiro em não cumprir o prazo? Não parece uma boa ideia. Isso só fará sentido se o cliente também tiver uma forte perda financeira quando você estiver atrasado (como no exemplo do MainMa).
quer
2
Isso parece perfeitamente aceitável para mim. Estou bastante surpreso com os comentários. Você espera que as pessoas paguem pelo trabalho, sem prazo e sem incentivo para cumprir o prazo? "A estimativa de tarefas é terrivelmente imprecisa" - não precisa ser.
NimChimpsky
@DocBrown, presumivelmente, o cliente tem um interesse financeiro muito maior em cumprir o prazo, pagando assim o trabalho com um prazo. Acho que os programadores não gostam de prazos e estrutura incrível às vezes. Imagine montar uma nova cozinha e a loja diz oooooo não, não podemos dizer quando será concluída, apenas cobraremos por hora. Eu corria uma milha a partir disso. A programação não é qualitativamente diferente de qualquer outro projeto.
NimChimpsky
5
Se você estiver montando uma nova cozinha, será cotado para a construção conforme especificado. Se você começar a mudar a superfície de corte, os ladrilhos, as torneiras e os materiais da pia, você será cobrado a mais pelos materiais desperdiçados e pelo tempo gasto. É fácil entender por que você é cobrado, neste caso, há um relacionamento físico. A alteração dos requisitos de software geralmente não vem com o mesmo entendimento, e qualquer contrato que exija que você entregue X por Y, onde X não está exatamente definido, está causando problemas. As coisas vão mudar, sendo incapaz de explicar isso é tolice.
Matt D

Respostas:

25

Um dos mais eficazes: penalidade por dia de atraso. Isso também é feito em grandes projetos, a penalidade às vezes é de milhares de dólares por dia.

Se um prazo exato for importante (por exemplo, se alguém desenvolver para os Jogos Olímpicos um aplicativo da web que administrará a transmissão do evento em 2014, o prazo seria o início dos Jogos Olímpicos em 2014), a medida efetiva seria a seguinte: um caso em que o projeto está atrasado, a empresa não é paga de todo e também deve pagar uma multa.

Se tais medidas drásticas não forem apropriadas, o único fato de que um cliente bem pago sairá se o projeto estiver atrasado pode fazer o truque.

Nota para o cliente:

  1. Muitos atrasos são culpa dos próprios clientes. As causas podem ser múltiplas:

    • Não há SRS, mas sim dois parágrafos que descrevem mal o que o cliente imagina serem suas necessidades (e, é claro, o cliente não quer pagar pela coleta de requisitos, considerando esta etapa uma perda de tempo).

    • Chegando duas semanas antes do prazo final e dizendo que não importa se o projeto foi feito em Java até agora e usou o Oracle: é imperativo que seja reescrito em Python e use o MySQL, porque o cliente leu uma revista ontem dizendo que essas tecnologias são o futuro.

    • Vindo com um novo conjunto de requisitos em todas as reuniões. Pontos de bônus quando esses requisitos contradizem quase todos os requisitos dados até agora.

  2. Uma boa comunicação é essencial para um bom projeto.

    Muitos outros atrasos são causados ​​pela falta de comunicação. Práticas em que o cliente não tem comunicação nenhuma por meses com a empresa e espera ser contatado apenas depois que o produto é finalizado e polido provocam um desastre.

  3. Você recebe o que você paga.

    Existem procedimentos específicos que ajudam a manter o projeto organizado e, na verdade, a programação deve levar apenas 10 a 15% do tempo para projetos grandes e 15% a 20% do tempo para projetos médios. Esses projetos também devem ser realizados por pessoas que sabem o que estão fazendo.

    Na prática, os clientes não estão dispostos a pagar US $ 800 / dia a um analista que criará arquitetura e design de software, e também não desejam pagar por outras etapas. Um programador albanês novato que está feliz em trabalhar por US $ 50 / dia parece muito mais vantajoso.

    Não reclame que o projeto é um desastre quando você está pronto para pagar por projetos desastrosos.

  4. Não negocie o tempo necessário para fazer o trabalho.

    Costumo encontrar discussões assim:

    Desenvolvedor: considerando os requisitos, posso entregá-lo em quatro meses.
    Cliente: é impossível. O projeto deve ser realizado em dois meses.
    Desenvolvedor: bem, a menos que você recorte alguns recursos ...
    Cliente: Não posso! Todos os recursos são necessários. Por que você não pode fazer o trabalho em dois meses? Entrei em contato com um programador indiano, um amigo meu, ele pode entregar isso em um mês e meio e pede apenas metade do preço!

    O tempo de negociação é uma receita para o desastre.

  5. Conheça suas prioridades.

    Leve em conta a regra de 90% de conclusão. Quando o projeto é gerenciado incorretamente, não é incomum ver os desenvolvedores dizendo que fizeram 90% do projeto um mês após o início do projeto. Então, um mês depois, ainda são 90%. E um mês depois.

    Isso pode ter duas causas:

    • Quando o projeto não é executado corretamente, ou seja, 100% do tempo é dedicado à programação, o que deixa 0% para a coleta de requisitos, arquitetura, design e teste, o que acontece é que os programadores não têm idéia do trabalho a realizar e descobrem novas tarefas durante toda a vida do projeto. A preparação do projeto ajudaria a compreender melhor todas as tarefas que deveriam ser realizadas.

    • Quando o cliente está com pressa, não é incomum que algumas empresas entreguem rapidamente uma porcaria e gastem uma quantidade enorme de tempo resolvendo bugs. Algumas empresas trabalham dessa maneira, o que as ajuda a permanecer competitivas e dizem que realizaram um determinado projeto em três semanas; mesmo depois, passaram três anos resolvendo a bagunça.

    Colocar as prioridades em ordem e exigir que o projeto seja executado corretamente ajuda a eliminar essas empresas da lista de candidatos.

Arseni Mourzenko
fonte
3
"Não reclame que o projeto é um desastre quando você está pronto para pagar por projetos desastrosos". Posso usar isso? Este é um ótimo post, e resume bem os riscos de ambos os lados.
Matt D
+1 muito bons pontos. Além disso, um prazer de ler :)
Radu Murzea
5
@MattD: as respostas no Stack Exchange estão licenciadas sob Creative Commons Attribution-ShareAlike 3.0 Unported, então sim, você pode. Além disso, fique à vontade para ler um post relacionado no meu blog: Quantificando tempo e custo: por que sempre entendemos errado? , Bem como as respostas para minha pergunta aqui: programmers.stackexchange.com/q/158640/6605
Arseni Mourzenko
Por que não há uma parte 4, 5, 6 etc. nessa publicação no blog?
Radu Murzea