Desenvolvimento de Software é Criativo

Este post não tem tags.

Compartilhe:

Em 1973, Peter Drucker [1] identificou uma categoria de trabalho na qual as pessoas passaram a ser chamadas de “trabalhadores do conhecimento”. Diferente de outros trabalhadores, o principal material de trabalho é algo intangível: o intelecto próprio de cada um. Os desenvolvedores de software certamente estão classificados como tal e, conforme os demais trabalhadores do conhecimento, seu trabalho inclui inovação, aprendizado contínuo e geração de informação.

Um trabalhador braçal, diferente do trabalhador do conhecimento, tem como característica a repetição. Por exemplo, numa linha de montagem, o mesmo movimento é repetido inúmera vezes. Em outro exemplo, o pedreiro repete o procedimento de colocação de um tijolo, um após o outro. Em especial, o desenvolvimento de software é não repetitivo na sua essência. O computador é justamente uma ferramenta criada para evitar repetições de cálculos. Em código não existe “copiar e colar”, quando um programador faz isso, é porque está programando errado. De fato, a criação do software é sempre um processo único a cada produto.

Quando ensinamos programação a alguém que está aprendendo pela primeira vez, uma das dificuldades do aluno está na percepção sobre o processo criativo que existe ao programar. Cada vez que um problema é exposto, não existe solução única, o resultado vai depender da criatividade de quem implementa. Não basta esse aluno ter feito todos os cem exercícios da lista, pois na prova sempre haverá uma questão nova que depende da sua criatividade para propor uma solução. Ao corrigir, não existem duas provas iguais (a não ser em caso de cola), mesmo que esses alunos só saibam comandos básicos. Cada um dará nomes diferentes às variáveis, a condição do loop varia, em uns a atribuição vem antes, em outros a condição é que vem primeiro, etc.

O trabalho de um programador pode ser comparado ao de um artesão. Cada programador, usando ferramentas conhecidas, desenvolve um produto que é único. Esse produto é bastante maleável, talvez comparável ao da argila molhada. O manifesto ágil [2] também reflete essa ideia ao afirmar que “indivíduos e suas interações estão acima de processos e ferramentas”. Estendendo essa linha, foi criado até o manifesto do software artesanal [3].

Idee

CONCLUSÃO

O desenvolvimento de software traz algumas características inerentes a todo trabalhador do conhecimento: processo criativo, intangibilidade em boa parte desse processo, complexidade intelectual, alta variabilidade e imprevisibilidade, e múltiplas soluções corretas para o mesmo problema (por isso não deveria ser comparado à Engenharia Civil). Quando o movimento ágil surgiu, as pessoas estavam tomando consciência dessas características da nossa área e resolveram ir contra a ideia de um processo unificado para todo o desenvolvimento de software, que era a onda vigente naquela época. Era o início do surgimento de uma sequência de quebras de paradigmas, tais como: entrega em iterações curtas; times auto-organizados; e escopo flexível.

Nos próximos posts pretendo abordar alguns desses pontos.

[1]  Drucker, Peter F, 1973. Management: Tasks, Responsibilities, Practices. Harper & Row, New York
[2] https://agilemanifesto.org/
[3] http://manifesto.softwarecraftsmanship.org

Sobre o autor(a)

Consultor, Trainer e Cofundador da K21

Rodrigo de Toledo é co-fundador da K21, Certified Scrum Trainer (CST) pela Scrum Alliance, Kanban Coaching Professional (KCP) e Accredited Kanban Trainer (AKT) pela Kanban University, além de Licensed Management 3.0 Facilitator. Com Ph.D na França, possui diversos artigos internacionais e lecionou por doze anos na PUC-Rio e na UFRJ, duas das principais universidades da América do Sul.

No headers found for the table of contents.

Artigos relacionados

Após terminar de ler o livro Ruído de Daniel Kahneman, decidi reler alguns clássicos que não olhava há algum tempo. Dentre eles, Rápido e Devagar do mesmo autor e Pensando em Sistemas de Daniela Meadows. Não pude deixar de perceber…

O Guia do Scrum fala sobre o refinamento do Product Backlog: “O Product Backlog é refinado conforme necessário” (p. 9). Todavia ele não descreve exatamente o que é o refinamento. Uma reunião, uma atividade, um processo. Neste artigo vamos jogar…

Marcos Garrido, Sócio-fundador e Trainer na K21

Existem muitas formas de organizar as métricas de seu produto / empresa. Aqui neste blog já escrevemos sobre as Métricas do Pirata, Fit For Purpose (F4P) e Métricas nas Quatro Áreas de Domínio da Agilidade. Todavia, agora, queremos falar sobre…

Após alguns anos desenvolvendo produtos e ajudando outras empresas a fazer tal, gostaria de listar com vocês alguns erros comuns que percebi ao longo dessa jornada. Olhando para as 4 Áreas de Domínio da Agilidade (Negócio, Cultural, Organizacional e Técnica)…