[quote=Impossivel][quote=adriano_si]
Achei sua definição perfeita… Nem é pra se focar só nisso, nem pra esquecer de vez. Por isso dá pra entender a preocupação do Yvga, pois se preocupar com manutenção de baixo custo e fácil escalabilidade é também pensar no seu cliente.[/quote]
Falando como se todo software fosse precisar escalar e sofrer manutenção constante…
[/quote]
Vc inclui o software pra pizzaria ou boteco do vizinho neste ‘todo’? Porque se sim, está correto, pois o software é muito simples e pequeno. Não compensaria investir tempo em arquitetar algo que vai ficar na mesma sempre. Mas em se tratado de softwares mais robustos, pensar em escalabilidade e manutenção de baixo custo é certíssimo. Um desenvolvedor Jr. (uns 3 anos de experiência no máximo) é capaz de determinar o contexto em que se encontra.
Mesmo falando de jogos, se tivermos falando de bubble witch (comparável a pizzaria ou boteco) ou War Thunder (toda semana recebo pelo menos uma atualização). i.e. vale a regra acima.
O cliente realmente não tá nem ai pro pattern que será utilizado pra desenvolver seu produto, mas existirem técnicas boas à serem escolhidas pra se fazer qualquer coisa e bem feita.
Em vários casos, quando o analista pega o programa pra desenvolver e entende o que deve ser executado, seu conhecimento, se bem propagado dentro da empresa, pode trazer melhora até para os processos internos dentro da empresa. e.g. quem trabalha com workflow, certamente já deve ter sentindo falta de algum processo ou encontrado algo desnecessário em alguma sequencia de eventos. Algo que quando informado dentro da empresa certamente traz valor.
Supondo que seja um desenvolvedor com experiência de pelo menos 5 ou 6 anos à desenvolver um software, creio que ele já deva conhecer os instrumentos e tecnicas basicas de desenvolvimento de softwares ao ponto de desenvolver com boa qualidade. Neste caso, para um software agregar valor, na maioria das vezes depende da idéia do cliente. Raramente o desenvolvedor é culpado do software não agregar valor. Desconsiderando os insumos da produção, a culpa de um software não agregar valor só é do desenvolvedor quando a usabilidade do software se torna muito complexa, não otimizada (lenta) ou pouco instintiva. Realmente, se a manutenção não melhorar a usabilidade ou corrigir bugs, pra que falar de ‘agregar valor’?