Preferência por código descartável em vez de documentos de design
(softwaredoug.com)-
Imaginamos que o desenvolvimento de software siga um fluxo limpo e organizado
- Escrevemos um documento de design e implementamos funcionalidades liberando pequenas mudanças via PR
- O histórico do Git parece limpo e bem organizado
- Mas a realidade é diferente
-
A diferença entre o documento de design e a implementação real
- Implementar exatamente o que está no documento de design é uma ilusão
- Quando começamos a programar, acabamos alterando o conteúdo do documento de design
- Planos não sobrevivem ao contato com o inimigo
-
Nova metodologia de design: imersão em código
- Usar PRs em rascunho para implementar protótipos
- Receber feedback cedo e ajustar a abordagem
- Documentar PRs em rascunho como registros históricos das ideias de design
- Estar preparado para descartar completamente um PR em rascunho
- A partir do PR em rascunho, avançar gradualmente com PRs em etapas
- Testar cada PR por etapas e reforçar sua robustez
-
A importância da maturidade
- É importante ter a capacidade de descartar ideias que você já codificou
- O mais importante não é a quantidade de linhas de código, mas a transmissão do conhecimento organizacional
- Alinhar cedo os pontos importantes para que o trabalho de prototipagem não seja desperdiçado
-
Como usar PRs como documentação
- PRs são uma das melhores formas de documentação para desenvolvedores
- PRs são artefatos históricos que refletem o estado de um momento específico
- Documentos de design frequentemente fornecem informações diferentes da realidade
-
A importância dos protótipos
- Um protótipo vale mais do que 1.000 documentos de design
- Para impulsionar mudanças, é preciso fazer isso com código, não com documentos
- A organização deve enxergar protótipos não como respostas, mas como perguntas
-
A utilidade dos documentos de design
- São úteis para organizar e arquivar feedback de diferentes partes interessadas
- São úteis quando a ideia é conceitual demais ou de longo prazo
- São úteis quando expressar a ideia por escrito é mais eficiente do que codificando
- São úteis quando a organização não tem a disciplina de descartar a primeira solução
- Oferecem um ambiente em que profissionais juniores podem questionar com segurança as ideias de desenvolvedores seniores
-
Uso inadequado dos documentos de design
- São usados para desacelerar o processo para desenvolvedores menos experientes
- São usados como documentação, mas rapidamente ficam desatualizados
- Tentam resolver todos os problemas de design, mas os problemas reais são descobertos ao programar
-
Se a equipe tiver disciplina, hackear é muito mais eficiente do que projetar
- Recomenda-se criar essa disciplina dentro da organização
- No fim, o código tem muito mais força do que as palavras
1 comentários
Opiniões do Hacker News
Prototipagem é uma parte importante do processo de design, e é necessário definir o problema e deixar clara a solução
Escrever é útil para explorar o problema, e houve a experiência de achar que o problema estava entendido, mas novas perguntas surgirem durante a escrita
Houve experiência em usar soluções temporárias para concluir um projeto dentro do prazo
O maior problema dos documentos de design é que ninguém os lê
A diferença entre feedback sobre código e sobre design é grande
Se a descrição do trabalho é escrever muito código para ver o que funciona, o GPT pode substituir isso de forma mais rápida e barata
Quase ninguém imagina que o desenvolvimento de software siga um fluxo limpo e organizado
Já houve casos em que o código ficou empilhado como um Jenga, de modo que ninguém quer mexer nele
Há preferência por um processo que documenta decisões de design usando uma thread contínua de comentários
Ainda há reflexão sobre essa abordagem, e no pior caso muito tempo pode ser desperdiçado