UML, vamos sentir sua falta A
Unified Modeling Language (UML) , desenvolvida pela Rational Software e adotada como padrão pelo Object Management Group (OMG) em 1997, pretendia padronizar muitos tipos diferentes de notações gráficas adotadas pela indústria de desenvolvimento de software .
Minha história de relacionamento com a UML começou há quase uma década, quando me tornei um evangelista dessa linguagem como uma ponte entre TI e negócios . Nunca estive totalmente convencido do valor da UML como uma notação para modelar produtos de software específicos; meu objetivo era usar UML para descrever as propriedades estruturais e comportamentais necessárias esperadas do sistema projetado.
A revelação para mim foi a semântica formal associada aos diagramas de atividades UML. Eu não suportava os diagramas informais do Visio por causa das muitas ambigüidades neles. Por exemplo, o que as duas setas saindo do retângulo significam: seleção ou divisão do fluxo em dois caminhos paralelos? Um exemplo semelhante: duas setas apontando para o mesmo retângulo significam que a ação começa imediatamente após o primeiro thread atingir o retângulo? Ou talvez seja OR, XOR ou AND? Em geral, você entendeu. A UML resolve esse problema introduzindo uma semântica clara e inequívoca.
O jogo foi injusto desde o início: não há uma resposta correta. Eu
realmente coloquei meu coração e minha alma na UML:
- Desenhei diagramas para minhas próprias soluções de 2004 a 2015 para sete empregadores e clientes diferentes usando quase exclusivamente UML.
- UML ( -) .
- , UML. Haskell GraphViz UML.
Alguns anos depois, por volta de 2015, percebi que havia praticamente parado de usar a UML, assim como o restante de meus colegas, bem como quase todos os clientes da Fortune 500 que consultei recentemente. O que aconteceu?
Eu sei que foi a morte de mil cortes. E não, a UML não matou a comunidade empresarial por causa de sua complexidade ou rigor. Em contraste, os empresários adoram a capacidade de se comunicar de forma clara e inequívoca com alguns novos símbolos. O pessoal de TI elevou a UML (eu fiz isso uma vez) e também fez com que ela caísse.
Mas a própria UML não foi a vítima. Francamente, a UML é apenas uma perda colateral. O verdadeiro massacre foi na área de desenvolvimento de requisitos, que inclui business intelligence e design. Agile se tornou o assassino, e as histórias de usuários eram suas flechas envenenadas.
No modelo, onde as histórias do usuário são colocadas na entrada e uma demonstração (ou lançamento de produção de recurso) é recebida na saída, não há mais espaço para análises estruturais significativas de tarefas.
No admirável mundo novo de hoje, a compreensão é diretamente cristalizada em código pronto para produção. Até mesmo a modelagem de negócios foi, de fato, eliminada por uma disciplina Agile relacionada: Domain Driven Design (DDD). Contextos limitados encapsulam (varrem para debaixo do tapete) a complexidade de forma que uma empresa possa escalar para "equipes de duas pizzas". As empresas que usam o BDD e exigem que suas equipes escrevam as especificações do Cucumber têm a vantagem aqui, mas muito poucas empresas o fazem.
O paradigma moderno é que ainda não seremos capazes de entender o problema. Os gurus da transformação digital nos dizem que precisamos implantar produtos na produção para que os próprios usuários possam saber quais são os requisitos de negócios, e não formulá-los a priori. Graças a isso, podemos fazer várias tentativas para acertar. Sim, neste paradigma, é preciso cometer erros com rapidez e frequência.
Você já deve ter percebido que isso não é uma falha da UML. Acabamos de desistir da análise de negócios e das especificações formais, então nos deparamos com uma nova questão: o que usar em vez de UML?
Um exemplo de diagrama masala
Embora alguns usem técnicas de modelagem leves como C4 , a maioria dos diagramas em uso hoje é do tipo que chamo de forma desdenhosa de "diagramas masala" . Afinal, por que não chamar os diagramas que eu mesmo faço? Por que Masala? Porque são informais; cobrem simultaneamente várias dimensões, podem ser estruturais e comportamentais, lógicas e físicas. Freqüentemente, são um amontoado de representações de um modelo arquitetônico 4 + 1 .
Como preparar um diagrama Masala
Os milhões de sistemas de dólares dos quais nossas vidas e finanças dependem são criados, financiados e implementados inteiramente a partir desses diagramas masala, que geralmente contêm nada mais do que alguns épicos e histórias de usuários.
"Autor, bem, a arquitetura do sistema de hipotecas do meu banco certamente não foi projetada com base nesses seus modelos masala horríveis!"
Não pode ser verdade, pode? Na verdade, se o seu banco não usa o CICS e a solução foi vendida no ano passado, há uma grande probabilidade de que ela foi construída com base nos próprios diagramas masala.
O mundo enlouqueceu? Não, nós apenas desistimos da engenharia de software. Agora é apenas uma aposta de código . Não estou dizendo que aqueles que escrevem software não são engenheiros; na maioria das vezes, não é. A questão é que, no nível organizacional, o software não é mais projetado , como é feito em outras áreas, por exemplo, na engenharia mecânica. A Boeing jamais encomendaria um motor a jato da Rolls Royce com base em um diagrama masala tão informal.
No entanto, os diagramas masala têm seu próprio propósito. Quando usados onde pertencem, eles são bonitos. Veja, essas não são especificações . Seu objetivo é evocar emoções. Os diagramas de Masala são valiosos quando você precisa levar alegria ao coração do líder a quem se destinam.
Não importa o quanto eu discuta com meus amigos do campo Agile, não posso permanecer cego para a felicidade das pessoas. Meus clientes e colegas não estão apenas pedindo mais diagramas masala , mas insistem que eu os torne ainda mais masala (para que eu combine mais dimensões arquitetônicas neles!). Por que resistir a isso?
A UML ainda permanece em meu coração e eu continuo estruturando soluções usando várias dimensões, mas na forma de dados / tabelas puros. E quando se trata de notação gráfica, pego meu liquidificador e minha frigideira de 5 litros e começo a fazer um gráfico de masala maravilhoso para meus clientes favoritos.
Propaganda
Os servidores da Epic são VDS para hospedar sites de uma pequena loja online na Opencart a projetos sérios com um grande público. Crie suas próprias configurações de servidor com apenas alguns cliques!
Junte-se ao nosso chat do Telegram .