<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Rios</title>
    <description>The latest articles on DEV Community by Alex Rios (@alextrending).</description>
    <link>https://dev.to/alextrending</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F292200%2F7eed8d06-4c5c-45fb-9fab-a58d2c6c374c.jpg</url>
      <title>DEV Community: Alex Rios</title>
      <link>https://dev.to/alextrending</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alextrending"/>
    <language>en</language>
    <item>
      <title>Is Golang duck typed?</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Mon, 06 Jul 2020 12:03:48 +0000</pubDate>
      <link>https://dev.to/alextrending/golang-is-duck-typed-47e7</link>
      <guid>https://dev.to/alextrending/golang-is-duck-typed-47e7</guid>
      <description>&lt;p&gt;Hum... Not really!&lt;/p&gt;

&lt;p&gt;It's a common misunderstanding because in fact it can relate to the duck type mantra:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If it looks like a duck and quacks like a duck, it's a duck&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can achieve this effect &lt;a href="https://play.golang.org/p/lT3ArkRd--4"&gt;this way&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ok but what is the difference?
&lt;/h3&gt;

&lt;p&gt;Well, the duck typing is resolved in runtime (ruby, python) while in Go it occurs in compile time.&lt;/p&gt;

&lt;p&gt;Because of that, in Go it is called &lt;strong&gt;structural typing&lt;/strong&gt;&lt;br&gt;
(sometimes you'll find it named as signature-based polymorphism).&lt;/p&gt;

</description>
      <category>go</category>
      <category>ducktype</category>
      <category>tip</category>
    </item>
    <item>
      <title>O que é um Tech Leader em 2020?</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Thu, 05 Mar 2020 15:38:20 +0000</pubDate>
      <link>https://dev.to/alextrending/o-que-e-um-tech-leader-em-2020-b83</link>
      <guid>https://dev.to/alextrending/o-que-e-um-tech-leader-em-2020-b83</guid>
      <description>&lt;p&gt;O que tem ocorrido muito no cenário das empresas de tecnologia é querer contratar apenas desenvolvedores sêniors.&lt;/p&gt;

&lt;p&gt;Principalmente por estar contratando um conjunto de habilidades e experiências, acredita-se que essas pessoas já serão operacionais desde o dia 1 na empresa, economizando o famoso tempo de &lt;strong&gt;Ramp-Up&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ramp-up&lt;/em&gt; — etapa que define o ínicio da produção de uma indústria, com o objetivo de comercializar um produto novo&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Com isso, desenvolvedores com pouca ou nenhuma experiência ficam jogados de lado na atual guerra das contratações.&lt;br&gt;
Mas será que precisa mesmo ser assim?&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que ter um líder técnico?
&lt;/h2&gt;

&lt;p&gt;Quando a empresa contrata bons líderes, permite que seja possível contratar o time baseado em seu potencial, personalidade e atitude.&lt;/p&gt;

&lt;p&gt;Entendo que o papel de um líder técnico é &lt;strong&gt;continuamente&lt;/strong&gt; trabalhar no crescimento dos profissionais ao seu redor, sendo exemplo cultural e capacitando a equipe quando necessário.&lt;/p&gt;

&lt;p&gt;Times empolgados e bem cuidados cuidarão melhor do seu produto e consequentemente dos seus clientes.&lt;/p&gt;

&lt;p&gt;Interagir com as pessoas é o diferencial de uma posição de liderança. Inclusive, acredito ser um ponto de atenção quando o líder passa mais tempo em tarefas individuais do que interagindo com seus colegas de equipe.&lt;/p&gt;

&lt;p&gt;Faça a seguinte reflexão: O que é mais fácil, ensinar um desenvolvedor sênior com postura pouco profissional a ser comprometido ou ensinar hard skills para um profissional comprometido pouco experiente?&lt;/p&gt;

&lt;p&gt;Um diferencial gigante entre bons líderes e líderes em formação é a capacidade de identificar o momento da sua equipe para decidir a melhor forma de agir, e não apenas ter uma solução única que tenta atender a todos os cenários.&lt;/p&gt;

&lt;p&gt;Não é possível cobrar a tão aclamada autogestão em times que estão trabalhando 10 horas por dia e sempre correndo atrás da próxima entrega. Aliás, autogestão não é algo que o líder deva cobrar da equipe a qualquer momento. Sua equipe tem pessoas que sabem se autogerir? Se a resposta é não, você como líder deve ensinar isso no dia-a-dia.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ag5EOiaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2a464akwokxk5fhdrw3e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ag5EOiaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2a464akwokxk5fhdrw3e.jpg" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  A menos que você seja o Thanos, as coisas não vão mudar em um estalar de dedos.
&lt;/h4&gt;
&lt;/blockquote&gt;

&lt;p&gt;Não acredite que uma metodologia estabelecida ou um processo de desenvolvimento famoso vai resolver os problemas da sua equipe magicamente. Sim, eu estou falando com você, Scrum.&lt;/p&gt;

&lt;p&gt;O que funciona para sua equipe não vai funcionar para as outras e vice-versa. Construa seu próprio framework baseado no que funciona e em revisões constantes do processo.&lt;/p&gt;

&lt;h2&gt;
  
  
  O ciclo da loucura
&lt;/h2&gt;

&lt;p&gt;Sua equipe passa mais tempo corrigindo problemas do que entregando valor, seja ele em forma de melhorias ou novas features?&lt;/p&gt;

&lt;p&gt;Se a resposta é sim, então sua equipe está no &lt;strong&gt;ciclo sem fim da loucura&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Uma equipe ultra atarefada não tem tempo de evoluir. Pessoas desenvolvedoras que não têm tempo para estudar ou testar novas técnicas como, por exemplo, TDD (&lt;em&gt;Test Driven Development&lt;/em&gt;), não vão parar de gerar dívidas técnicas do dia para a noite.&lt;/p&gt;

&lt;p&gt;Seguindo esse raciocínio, se sua equipe não tem tempo de aprender a testar melhor o próprio software, vai estar apagando incêndios na maior parte do tempo.&lt;/p&gt;

&lt;p&gt;Se o líder técnico passa esse conhecimento ou consegue tempo para que a equipe aprenda mais a respeito, o efeito colateral será ter menos bugs e consequentemente mais tempo.&lt;/p&gt;

&lt;p&gt;Entende que é um ciclo vicioso de cada vez ter mais calma para tomar as decisões no caminho da evolução? Mais tempo para investir, mais frutos para colher.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  Seu papel como líder técnico em cenários que beiram o caos é criar tempo para sua equipe evoluir.
&lt;/h4&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Como identificar que o ciclo de loucura acabou?
&lt;/h2&gt;

&lt;p&gt;Basicamente com 2 pontos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Existe tempo para aprender.&lt;/li&gt;
&lt;li&gt;O tempo é &lt;strong&gt;usado&lt;/strong&gt; para aprender.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quando se tem apenas o item 1, na verdade sua equipe só está entregando menos sem nenhum motivo aparente para tal.&lt;/p&gt;

&lt;p&gt;Deve existir uma atenção constante para que aconteça o item 2.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como se manter nessa fase de forma saúdavel?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Traga desafio para quem desenvolve, para que se mantenham fora da zona de conforto técnica.&lt;/li&gt;
&lt;li&gt;Apenas um aprendizado por vez. Não queremos ninguém da equipe em um ciclo de loucura novamente, mas dessa vez de aprendizado. Lembre-se: antes elas não aprendiam nada, agora já aprendem. Vá com calma.&lt;/li&gt;
&lt;li&gt;Monitore! Números são importantes. Sem números suas avaliações serão subjetivas. O monitoramento não serve para gerar um ranking entre as pessoas ou estimular competição, mas para incentivar cada pessoa a ser melhor baseada nos números dela mesmo. Não consigo ver nenhuma boa intenção em comparar os números entre as pessoas.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  Nota: Não é para criar uma vida infernal para ninguém. Saúde mental é importante, desafie respeitando os limites individuais das pessoas.
&lt;/h4&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Acabou? Ser um líder técnico é só isso?
&lt;/h2&gt;

&lt;p&gt;Na verdade, não. Apenas temos uma forma de trabalhar mais racional e com pessoas melhorando seus skills técnicos. Agora chega o momento onde você como líder técnico realmente mostra um valor inestimável: &lt;strong&gt;construir novos líderes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A intenção é que as pessoas sejam líderes delas mesmas, antes de pensar em liderar outras pessoas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Equipes auto-gerenciáveis
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ensinar o time a resolver o seus próprios problemas.&lt;/li&gt;
&lt;li&gt;Ensinar o time a lidar com situações inesperadas.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sabe o que vai acontecer quando o time for capaz de fazer essas 2 coisas? Você vai ter a tão sonhada &lt;strong&gt;auto-gestão&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Entende como até chegar aqui temos um processo não trivial de construção da equipe?&lt;/p&gt;

&lt;p&gt;Nesse momento o trabalho do líder não envolve coaching técnico ou profissional, mas a manutenção do time no atual estágio de maturidade.&lt;/p&gt;

&lt;p&gt;Com isso já vai ser possível:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ter metas em vez de tarefas.&lt;/li&gt;
&lt;li&gt;Observar e monitorar o time para possíveis oscilações, para não termos uma regressão no modo da equipe trabalhar.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Bônus
&lt;/h2&gt;

&lt;h3&gt;
  
  
  OKR
&lt;/h3&gt;

&lt;p&gt;Não é sem motivos que os OKRs (&lt;em&gt;Objective &amp;amp; Key Results&lt;/em&gt;) não dão certo em todas as empresas. Equipes que não estão próximas da auto-gestão precisam ser informadas sobre o que fazer baseadas nas metas estabelecidas, pois justamente não desenvolveram a capacidade de escolher com qualidade por si próprias as ações para atingir as metas.&lt;/p&gt;

&lt;p&gt;Vou me fazer repetitivo aqui, mas não vai ser contratando mais sêniors que esse problema vai ser resolvido.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O líder técnico tem um papel chave para criação de equipes de alta performance e autogerenciáveis. Se o líder técnico não está formando profissionais melhores, talvez essa pessoa seja apenas uma referência técnica ou especialista em algum tema de tecnologia — e não um líder.&lt;/p&gt;

&lt;p&gt;Um bom líder forma outros líderes e guia o caminho para a tão falada equipe autogerenciada.&lt;/p&gt;

</description>
      <category>techleader</category>
      <category>lideranca</category>
      <category>lider</category>
      <category>tecnico</category>
    </item>
    <item>
      <title>How to use your private Go lib in Github Actions</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Thu, 30 Jan 2020 14:43:02 +0000</pubDate>
      <link>https://dev.to/alextrending/how-to-use-your-private-go-lib-in-github-actions-4lh9</link>
      <guid>https://dev.to/alextrending/how-to-use-your-private-go-lib-in-github-actions-4lh9</guid>
      <description>&lt;p&gt;In this tutorial I'll use the fictional private repository called &lt;code&gt;github.com/alexrios/superlib&lt;/code&gt; at the version &lt;code&gt;v1.1.0&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Backing story
&lt;/h3&gt;

&lt;p&gt;During the Continuous integration pipeline executing &lt;code&gt;go mod tidy&lt;/code&gt; I was getting this error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go: github.com/alexrios/superlib@v1.1.0: reading github.com/alexrios/superlib/go.mod at revision v1.1.0: unknown revision v1.1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;In order to understand how Go uses a VCS to handle dependencies I recommend this Go team blog post: &lt;a href="https://blog.golang.org/publishing-go-modules"&gt;https://blog.golang.org/publishing-go-modules&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Solution
&lt;/h3&gt;

&lt;p&gt;Generate a token with read permission on org or user repositories and setup a substitution in git global configurations.&lt;/p&gt;

&lt;p&gt;That way the authenticated form will always be used.&lt;/p&gt;

&lt;p&gt;I highly recommend you to use the repository secrets to avoid exposing sensible data, in this case, the token.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Granting private modules access&lt;/span&gt;
        &lt;span class="s"&gt;run&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/alexrios".insteadOf "https://github.com/alexrios"     &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;more on declaring and using secrets: &lt;a href="https://help.github.com/pt/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets"&gt;https://help.github.com/pt/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>github</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Using private Golang libs</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Sat, 21 Dec 2019 03:51:38 +0000</pubDate>
      <link>https://dev.to/alextrending/using-private-golang-libs-1h68</link>
      <guid>https://dev.to/alextrending/using-private-golang-libs-1h68</guid>
      <description>&lt;p&gt;1 - Configure GIT (~/.gitconfig)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[url "ssh://git@github.com/"]
    insteadOf = https://github.com/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2 - Add the private repository location in GOPRIVATE env var&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go env -w GOPRIVATE="github.com/&amp;lt;org&amp;gt;/&amp;lt;project&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.1 - You can add a whole organization accepting all projects with &lt;code&gt;*&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go env -w GOPRIVATE="github.com/&amp;lt;org&amp;gt;/*"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>go</category>
      <category>git</category>
      <category>github</category>
    </item>
    <item>
      <title>Tem certeza de que seu time pode usar micro serviços?</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Sat, 14 Dec 2019 04:21:54 +0000</pubDate>
      <link>https://dev.to/alextrending/tem-certeza-de-que-seu-time-pode-usar-micro-servicos-30i7</link>
      <guid>https://dev.to/alextrending/tem-certeza-de-que-seu-time-pode-usar-micro-servicos-30i7</guid>
      <description>&lt;p&gt;A maioria das empresas está mirando chegar no topo do nirvana arquitetural utilizando-se de tecnologias de ponta. Infelizmente, o que observo são movimentos desesperados de executar o que se lê em artigos de fonte, no mínimo, duvidosa. Isso quando a intenção não é simplesmente um desejo irresponsável de um grupo de desenvolvedores de mostrar (no LinkedIn? para amigos? para uma talk na conferência da esquina?) que consegue.&lt;/p&gt;

&lt;p&gt;Vamos imaginar que você tenha autonomia para adotar uma arquitetura de micro serviços em sua empresa. Antes de quebrar seu monolito em várias partes, na esperança de que magicamente isso transforme seu sistema atual em uma arquitetura de micro serviços, existe um conjunto de questionamentos que devem ser feitos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tem apoio organizacional?
&lt;/h2&gt;

&lt;p&gt;Após várias pesquisas você viu os benefícios que a Netflix, Spotify, entre outras empresas tiveram ao adotar o modelo arquitetural e agora tem certeza de que se funciona com eles, então obviamente funciona para você, certo?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ERRADO!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cada caso é um caso.&lt;/p&gt;

&lt;p&gt;Como sua empresa lida com uma falha ou um bug? Ela procura por culpados quando algo da errado em produção ou tenta aprender com as falhas?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Lembre-se de que a barreira cultural é a maior barreira a ser quebrada.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Um dos grandes alvos da adoção de micro serviços é a &lt;em&gt;independência no deploy&lt;/em&gt;. Então, se a cultura é ter janelas de deploy para produção, vocês já tem um grande trabalho cultural pela frente.&lt;/p&gt;

&lt;p&gt;Fazer um sistema distribuído não é fazer um blog com Rails. Existe uma grande quantidade de técnicas e tecnologias novas para além da famigerada arquitetura de 3 camadas que devem ser dominadas para a adoção da arquitetura de micro serviços.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meu time tem os skills necessários?
&lt;/h2&gt;

&lt;p&gt;Fundamental: colaboração, comunicação e conhecimento do negócio.&lt;/p&gt;

&lt;p&gt;Refatorar base de dados. Mensagens distribuídas. Teoria de filas. API Gateway. Protocolos de comunicação além do HTTP. Domain Driven Design. Teorema CAP. Profiling de aplicações. Service discovery SQL vs NoSQL. A importância dos logs em um modelo distribuído. Correlation ID. DevOps. Testes baseados em contrato. IaC. Linux containers. Swagger. Continuous Delivery. Stateful vs. Stateless. Graceful shutdowns.&lt;/p&gt;

&lt;p&gt;Se o seu time não entende no mínimo 80% do termos descritos, me parece que tem um GRANDE trabalho de estudo antes de se meter em apuros.&lt;/p&gt;

&lt;h2&gt;
  
  
  Seu time já sabe fazer um monolito?
&lt;/h2&gt;

&lt;p&gt;Se seu time ainda não sabe fazer um excelente monolito, o que te faz pensar que vocês conseguirão fazer a mesma coisa, dessa vez, de forma distribuída?&lt;/p&gt;

&lt;p&gt;Você já consegue olhar para o seu sistema monolítico e identificar as diversas áreas de negócio?&lt;/p&gt;

&lt;p&gt;O core business está coberto por testes descritivos o suficiente que sirvam de documentação? Estão cobertos também os casos conhecidos de exceção?&lt;/p&gt;

&lt;p&gt;O quão fácil é remover uma funcionalidade sem quebrar o sistema?&lt;/p&gt;

&lt;h2&gt;
  
  
  Que problemas serão resolvidos com essa arquitetura e que novos problemas serão assumidos?
&lt;/h2&gt;

&lt;p&gt;O que pode ser feito com essa arquitetura que não seria possível com a monolítica?&lt;/p&gt;

&lt;p&gt;O time já sabe a vazão do sistema atual para justificar a possível alta disponibilidade no modelo distribuído?&lt;/p&gt;

&lt;p&gt;Em troca da disponibilidade alta seu time já sabe lidar com transações distribuídas?&lt;/p&gt;

&lt;p&gt;Quando existe uma mudança, é fácil observar que sistemas ou clientes são afetados?&lt;/p&gt;

&lt;p&gt;Como eu garanto que o serviço que depende do sistema atual (que o time não tem domínio de como foi implementado) vai continuar funcionando após uma mudança?&lt;/p&gt;

&lt;p&gt;Ainda é preciso fazer um acesso via SSH para ver logs da aplicação?&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Sejam quais forem as respostas, tenha em mente que o seu time tem que conseguir ser mais eficiente na velocidade de entrega e nos custos mantendo o sistema altamente disponível.&lt;/p&gt;

&lt;p&gt;Nos próximos textos pretendo atacar essas perguntas e dissecar os temas para uma visão clara de como lidar com os desafios.&lt;/p&gt;

&lt;p&gt;Tem algum ponto que gostaria de discutir? Comente ou mande uma mensagem no twitter: &lt;a href="https://twitter.com/alextrending"&gt;@alextrending&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A normalização do desenvolvimento medíocre de software</title>
      <dc:creator>Alex Rios</dc:creator>
      <pubDate>Sat, 14 Dec 2019 04:14:50 +0000</pubDate>
      <link>https://dev.to/alextrending/a-normalizacao-do-desenvolvimento-mediocre-de-software-4801</link>
      <guid>https://dev.to/alextrending/a-normalizacao-do-desenvolvimento-mediocre-de-software-4801</guid>
      <description>&lt;p&gt;Há 19 anos a Microsoft já sabia como fazer interfaces melhores do que 90% dos sistemas que são criados hoje em dia.&lt;/p&gt;

&lt;p&gt;Inductive User Interface é relevante ate hoje, mas continua não sendo adotada pela desculpa mais comum entre empresas e profissionais da área de tecnologia: falta de tempo.&lt;/p&gt;

&lt;p&gt;Isso me faz pensar que uma coisa vai levando a outra; Modelagem anêmica e o pensamento que tudo seria um grande CRUD.&lt;/p&gt;

&lt;p&gt;Técnicas como Event Storming podem trazer para superfície a jornada do usuário no sistema. Essa jornada permite a utilização de task based actions na UI. Uma vez que as intenções do usuário são bem mapeadas, o sistema já esta um passo mais próximo de introduzir arquiteturas como CQRS e Event Sourcing.&lt;/p&gt;

&lt;p&gt;Sua empresa tem um churn grande, pois os usuários não entendem como usar o sistema?&lt;/p&gt;

&lt;p&gt;É possível obter um relatório de algum momento do passado do sistema?&lt;br&gt;
Quer fazer machine learning com os dados, mas o que se tem sempre o estado atual do seu domínio (ou seriam apenas DTOs serializados numa base SQL?)&lt;/p&gt;

&lt;p&gt;Enquanto fazer da melhor maneira possível for considerado “demorado”, “devaneio arquitetural” e “cerimônia hipster”, tempo continuará sendo o melhor argumento para entregas medíocres.&lt;/p&gt;

&lt;p&gt;Se liga: MVP não é para sempre!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
