Existem dezenas de técnicas de se construir programas de software. Algumas destas formas se tornaram populares como o TDD ou DDD e tornaram populares os termos Driven Design e Driven Development.
Compartilho aqui alguns outras formas de se fazer desenho, implementação e testes com os acrônimo xDD. Algumas são populares (TDD). Outras são exóticas (KDD ou ZDD). Mas todas apresentam poderosos insights que podem servir a seu contexto em algum momento do tempo.
ADD/AMDD – Attribute Driven Design (para desenho arquitetural) e Agile Modeling Driven Development (para modelagem ágil de softwares)
BDD – Behavior Driven Development (para desenvolvimento centrado em cenários de negócio)
CDD – Community Driven Development (para suportar o desenvolvimento colaborativo aberto de software)
DDD – Domain Driven Design (para suportar modelos de domínio robustos)
EDD – Experiment Driven Design (para suportar o desenvolvimento de protótipos e ideias não acabadas)
FDD – Feature Driven Development (para suportar a construção disciplinada baseada em requisitos)
GDD – Goal Driven Development Process (um processo de software iterativo e incremental centrado em metas)
HDD – Hypothesis Driven Development (para suportar o desenvolvimento dirigido por hipóteses críticas para o sucesso de um software).
IDD – Issue Driven Development (para suportar a gestão de configuração)
KLL – Knowledge Driven Development Process (processo de desenvolvimento auto-governado)
LDD – Learning Driven Development (vídeo sobre técnica de desenvolvimento ágil orientado por aprendizado)
MDD – Model Driven Development (desenvolvimento centrado em modelagem de softwares)
NDD – Narrative Driven Development (testes de software baseados em narrativas)
PDD – Purpose Driven Development (desenvolvimento centrado em propósitos de software)
QDD – Quality Driven Development (desenvolvimento centrado na qualidade)
RDD – Responsibility Driven Design (desenvolvimento baseado em comportamentos e responsabilidades)
SDD – State Driven Design (desenvolvimento centrado em máquinas de estado)
TDD – Test Driven Development (desenvolvimento orientado por testes)
UDD – User Driven Development
(desenvolvimento ágil centrado em usuários finais)
YDD – Youth Driven Development (é um tipo CDD que estimula comunidades de jovens de 14 a 25 a desenvolverem software em conjunto)
ZDD – Zero Defect Development (técnica de qualidade extrema que busca eliminar defeitos em software)
A maior parte destas técnicas são complementares e podem ser usadas em conjunto, conforme o contexto do seu projeto e cultura do seu time.
E você? Usa algumas destas formas de se desenvolver software? Conhece algum outro acrônimo xDD?
Compartilhe aqui as suas experiências com o mundo xDD.