Um guia ilustrado de 8 hábitos de Especialistas em Design de Software
Tags: ptbr, webdev, career, softwaredesign
Published: 2019-11-01 04:45:24

_Experiência e habilidade inata não são os únicos caminhos para o sucesso. Ilustração: Yen Quach_

> Os melhores designers de software empregam hábitos específicos, práticas aprendidas e princípios que observaram empregados nos seus trabalhos. Aqui estão alguns deles.

O que faz um designer de software ser um especialista? A resposta típica: experiência e habilidade inata - isso é menos do que satisfatório. Essa observação carrega alguns elementos verdadeiros, mas chega a oferecer pouco do que podemos realmente aprender e generalizar. Os especialistas claramente não abordam seu trabalho aleatoriamente. Muito pelo contrário, eles têm hábitos específicos, práticas aprendidas e princípios que observaram empregados nos seus trabalhos, deliberadamente durante a fase de design.

Alguns podem estar familiarizados com eles, outros não. Alguns são facilmente colocados em prática, outros não. Alguns têm impacto imediato, outros não. Uma constante, no entanto, é que os especialistas em designers de software estão profundamente cientes de todas essas práticas e as recorrem quando a situação exige.

Enraizado em muitos anos estudando designers de software profissionais e suas maneiras de trabalhar, nosso livro ["Software Design Decoded"](https://www.amazon.com/Software-Design-Decoded-Experts-Think/dp/0262035189) ilustra 66 desses hábitos, práticas e princípios, vários dos quais são apresentados abaixo. Eles foram confirmados por nós várias vezes, principalmente por aqueles que trabalham no campo e cada um deles pode ser rastreado até a literatura acadêmica que documenta esse comportamento. [O site complementar do livro](https://softwaredesigndecoded.wordpress.com/annotated-bibliography/) fornece uma bibliografia anotada que compila a literatura principal, bem como a oportunidade de sugerir idéias adicionais.

Hoje, o software não é mais limitado pela tecnologia, mas pela imaginação. No entanto, o software que transforma o imaginado em realidade pode ser complexo, e o contexto em que essa transformação deve ocorrer pode ser ainda mais complexo. Isso impõe demandas extraordinárias aos designers de software, demandas que só podem ser atendidas se, em conjunto, "intensificamos" a excelência do design. Esperamos que essas ilustrações possam ter um pequeno papel no seu aprendizado.

# 1. Os especialistas envolvem o usuário

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/4-involve-the-user-final-1-700x495.png)
_Baseado em [botões apropriados para cães](http://www.open.ac.uk/blogs/ACI/?author=1), projeto por Clara Mancini._

Os especialistas estão cientes dos usuários. Eles envolvem deliberadamente usuários no processo de design, estudando-os, conversando com eles, engajando-os no teste de designs intermediários e até perguntando para eles desempenharem um papel ativo na fase de design.

No entanto, os especialistas não aceitam tudo o que os usuários dizem. Eles percebem as limitações potenciais, pois o pensamento dos usuários é frequentemente colorido pelas experiências atuais. Os especialistas analisam além do que os usuários solicitam e do que os usuários realmente precisam.

# 2. Especialistas projetam abstrações elegantes

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/5-design-elegant-abstractions-final-test-700x348.png)

Enquanto todos os desenvolvedores criam abstrações, os especialistas as projetam. Uma boa abstração torna evidente o que é importante, tanto no que faz como no como faz. Através de uma única lente, comunica o problema que resolve e os detalhes de sua solução.

Os especialistas não estão satisfeitos com qualquer abstração, procuram deliberadamente abstrações elegantes através das quais estruturas complexas podem ser introduzidas, entendidas e referenciadas com eficiência.

# 3. Especialistas focam na essência

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/1-focus-on-the-essence-final-copy-700x495.png)

Todo problema de design tem uma essência, um conjunto principal de considerações que devem ser entendidas e "pregadas" na solução para resolver o problema com êxito. Essa essência pode ser perturbadora: as mudanças na parte principal alteram drasticamente as decisões externas que precisam ser tomadas. Os especialistas concentram seus esforços na essência primeiro e deixam para depois os esforços para projetar a parte externa.

# 4. Especialistas simulam continuamente

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/simulate-700x495.png)

Os especialistas imaginam como um design funcionará - simulando aspectos do software e como as diferentes partes do design suportam uma variedade de cenários. Ao trabalhar com outras pessoas, os especialistas analisam regularmente um projeto verbalizando sua operação passo a passo. Quando sozinhos, eles simulam mentalmente, exercitando o design repetidamente ao longo do tempo.

# 5. Especialistas olham em volta

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/2-look-around-final-copy-700x495.png)

Da mesma forma que os arquitetos percorrem as cidades para examinar e inspirar-se em edifícios existentes, os especialistas em software examinam os projetos de outros softwares para "ver como eles fizeram isso". Eles costumam fazer isso em resposta a um desafio específico que enfrentam, mas geralmente também gastam tempo olhando em volta, apenas para adicionar ao seu repertório de possíveis soluções de design para usar no futuro.

# 6. Especialistas remodelam o espaço do problema

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/2-reshape-the-problem-space-final-1-700x401.png)

Os especialistas geralmente se afastam do problema declarado e consideram o espaço do problema de maneira mais ampla, procurando maneiras alternativas de entender “qual é o problema”. Eles podem mudar de direção ao reconhecer o espaço do problema ou abordar um problema diferente no mesmo espaço. Eles escolhem intencionalmente objetivos um pouco diferentes do problema do design original, pois isso leva a "insights" sobre onde está o problema real ou sobre como superar os principais obstáculos.

# 7. Os especialistas veem o erro como uma oportunidade

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/3-see-error-as-opportunity-final-copy-700x495.png)

O design envolve regularmente erros: coisas que “dão errado”, mal-entendidas, obstáculos, desvios errados, questões emergentes. Ao invés de temer o erro, os especialistas adotam o erro como uma oportunidade. Eles a aceitam como parte inerente do design e levam tempo para explorar tanto a falha quanto o contexto ao seu redor. A compreensão do que aconteceu geralmente revela informações sobre o problema - ou sobre a solução - como suposições, conceitos errados, desalinhamentos e propriedades emergentes.

# 8. Os especialistas pensam sobre o que não estão projetando

![](https://thereader.mitpress.mit.edu/wp-content/uploads/2019/09/not-design.jpg)

Embora seja natural se concentrar no que um projeto deve realizar, os especialistas também gastam tempo pensando no que um projeto não se destina a fazer. Ao articular e considerar os limites, eles descobrem onde estão super ou sub-projetando.

---

# Créditos

- [Eight Habits of Expert Software Designers: An Illustrated Guide](https://thereader.mitpress.mit.edu/habits-of-expert-software-designers/), escrito originalmente por [Marian Petre & André van der Hoek](https://thereader.mitpress.mit.edu/habits-of-expert-software-designers/)