Desenvolvimento de Software é Criativo

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

Textos sobre esse tema:

Sobre o autor(a)

Co-fundador da K21, Nower e Wbrain

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.

Sumário

Artigos relacionados

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Gostaria de abordar um tema que comentamos muito pouco na gestão de fluxo de trabalho, a dependência entre os itens de trabalho. Já escrevi sobre a dependência entre fluxo e times, porém creio que nunca tratei o caso de dependência…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Uma das práticas mais conhecidas do Método de gestão de fluxo de trabalho Kanban é a definição do limite de WIP. Portanto, neste artigo escrevo porque você deve utilizá-lo, o que ele é e como você pode defini-lo. O limite…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

O Kanban possui um guia de práticas muito interessante, que facilita a gestão do fluxo de uma equipe ou empresa. O nome dele é Kanban Maturity Model (Modelo de Maturidade do Kanban) ou KMM para os íntimos. Ele é um…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Imagine que você resolveu tirar um dia para dar aquela geral na casa. Você decidiu que vai varrer e limpar todos os cômodos, dar aquela embelezada no carro e arrumar o jardim. A princípio tudo faz parte do grande serviço:…