<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog do Milfont</title>
	<atom:link href="https://www.milfont.org/tech/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.milfont.org/tech</link>
	<description>Blog de tecnologia e gestão do Milfont, Web, principalmente Javascript, Rails, Node.js, Java.</description>
	<lastBuildDate>Mon, 18 Mar 2019 11:37:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>
	<item>
		<title>Tendências sobre Frameworks Javascript em 2019</title>
		<link>https://www.milfont.org/tech/2019/03/18/tendencias-sobre-frameworks-javascript-em-2019/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 Mar 2019 11:37:48 +0000</pubDate>
				<category><![CDATA[]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2019/03/18/tendencias-sobre-frameworks-javascript-em-2019/</guid>

					<description><![CDATA[Preciso tomar decisões racionais em prol do negócio no papel de gestor que isentam gostos pessoais ou Feeling. Coordenar junto ao time de tecnologia a escolha de ferramentas na estratégia da empresa para orientar que essa decisão seja sensata, é uma delas. O mundo Front-end é o mais cruel, a cada dois ou três anos [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Preciso tomar decisões racionais em prol do negócio no papel de gestor que isentam gostos pessoais ou Feeling.</p>
<p>Coordenar junto ao time de tecnologia a escolha de ferramentas na estratégia da empresa para orientar que essa decisão seja sensata, é uma delas.</p>
<p>O mundo Front-end é o mais cruel, a cada dois ou três anos você praticamente precisa se programar pra reescrever tudo, sempre!</p>
<figure>
<p><img decoding="async" data-width="1912" data-height="687" src="https://cdn-images-1.medium.com/max/2560/1*71GUKJIlGMX33WlDNm3Www.png"><br />
</figure>
<h4>Como escolher corretamente para a organização?</h4>
<p>Entre os fatores que preciso orientar, estão: facilidade de contratação (oferta abundante de bons profissionais), produtividade na tecnologia (quantidade de materiais, tutoriais e libs), evolução da plataforma (qualidade do ecossistema).</p>
<p>Como o Front-end é extremament volátil, quando você começa a decidir qual plataforma será utilizada para a próxima meia década já está pelo menos um ano atrasado no mundo corporativo que é mais lento pelo próprio tamanho das empresas.</p>
<h4>Foco na entrega</h4>
<p>Dado um entregável em um intervalo de tempo e o planejamento de sua sustentação com seguida evolução, preciso estabelecer dados para me guiar nessa escolha.</p>
<p>Alguns indicadores famosos no mercado Javascript como <a href="https://2018.stateofjs.com/front-end-frameworks/overview/" target="_blank" rel="noopener noreferrer">State of Js</a>, <a href="https://www.jetbrains.com/research/devecosystem-2018/javascript/" target="_blank" rel="noopener noreferrer">The State of Developer Ecosystem (da Jetbrains)</a> e <a href="https://insights.stackoverflow.com/survey/2018" target="_blank" rel="noopener noreferrer">Developer Surveys (da Stackoverflow)</a> determinam que praticamente os 3 maiores na preferência e uso são Angular, React e Vuejs.</p>
<p>Coletando informações do Google Trends para essas 3 libs, temos:</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="1710" data-height="510" src="https://cdn-images-1.medium.com/max/1200/1*lW-EWbUWD28Hk7axVShblA.png"><figcaption class="wp-caption-text">Google Trends com filtro global <a href="https://trends.google.com/trends/explore?q=%2Fg%2F11c6w0ddw9,%2Fm%2F012l1vxv,Vuejs" target="_blank" rel="noopener noreferrer">https://trends.google.com/trends/explore?q=%2Fg%2F11c6w0ddw9,%2Fm%2F012l1vxv,Vuejs</a></figcaption></figure>
<p>Observo ainda uma constante busca na contínua preferência para o React que grandes players mundiais usam como o grupo Facebook (Facebook, Instagram e WhatsApp), AirBnb, Netflix, Twitter, Walmart (USA), etc.</p>
<h4>Tendências do mercado local</h4>
<figure class="wp-caption">
<p><img decoding="async" data-width="1708" data-height="602" src="https://cdn-images-1.medium.com/max/1200/1*Qga4YzLXbe7AQI8y_XtVQw.png"><figcaption class="wp-caption-text">Google Trends com filtro Brazil <a href="https://trends.google.com/trends/explore?geo=BR&amp;q=%2Fg%2F11c6w0ddw9,%2Fm%2F012l1vxv,Vuejs" target="_blank" rel="noopener noreferrer">https://trends.google.com/trends/explore?geo=BR&amp;q=%2Fg%2F11c6w0ddw9,%2Fm%2F012l1vxv,Vuejs</a></figcaption></figure>
<p>Vuejs parece ter um crescimento maior no Br do que no resto do mundo, apesar de menor em relação aos outros dois concorrentes, tem uma <a href="https://github.com/vuejs-br/empresas-que-usam-vue-no-brasil" target="_blank" rel="noopener noreferrer">lista de empresas que utilizam por aqui que você pode acompanhar nessa conta do Github</a>.</p>
<p>Não conferi a acurácia, mas a primeira grande empresa da lista que peguei pra conferir (O Boticário) não está em produção condizente com a lista.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="1909" data-height="776" src="https://cdn-images-1.medium.com/max/1200/1*WXBLq55uNfDToj53zDYwyw.png"><figcaption class="wp-caption-text">Boticário em produção usa React na Home</figcaption></figure>
<h4>Grandes Players no Brasil?</h4>
<p>Um ecossistema moderno requer SPA e Server Side Renderer. Um grande Player na gritante maioria das vezes precisa integrar ferramentas internas e produtos de terceiros, espere poucos que serão homogêneos.</p>
<p>Filtrando pelos maiores varejistas generalistas para estabelecer um grupo de controle nessas condições, temos Magazine Luiza, B2W (Americanas e Submarino), Mercado Livre, Carrefour e Walmart. Deixei o grupo Via Varejo de fora (Casas Bahia, Ponto Frio e Extra.com) dessa análise rápida.</p>
<p>Existe também uma <a href="https://github.com/react-brasil/empresas-que-usam-react-no-brasil" target="_blank" rel="noopener noreferrer">lista de empresas que usam React mantido pela comunidade de desenvolvedores nessa conta do Github.</a></p>
<p>Carrefour e Walmart Brasil não parecem ter algum desses 3 escolhidos, a não ser que seja apenas no SSR, não consegui identificar (foi muito superficial a análise). Magazine, B2W e Mercado Livre escolheram React seguindo essa tendência mundial e local.</p>
<p>Aqui não entrei no juízo de valores sobre o que é feito em casa ou de terceiros, afinal a contratação será de profissionais que entendam a tecnologia para construir ou no mínimo para integrar.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="1907" data-height="975" src="https://cdn-images-1.medium.com/max/800/1*TPwKkwqIh8BbQNh2waqzyA.png"><figcaption class="wp-caption-text">Magazine Luiza já tem alguns módulos e páginas construídos com React</figcaption></figure>
<figure class="wp-caption">
<p><img decoding="async" data-width="1524" data-height="601" src="https://cdn-images-1.medium.com/max/800/1*LiAiP0Kvq_dzjLMZ31yCTw.png"><figcaption class="wp-caption-text">Inclusive parece ter legado de estrutura feita em React</figcaption></figure>
<figure class="wp-caption">
<p><img decoding="async" data-width="1903" data-height="970" src="https://cdn-images-1.medium.com/max/800/1*uyq0gTe3wYjb_inLf3wBLg.png"><figcaption class="wp-caption-text">Americanas (B2W) também está em produção com React</figcaption></figure>
<figure class="wp-caption">
<p><img decoding="async" data-width="1918" data-height="888" src="https://cdn-images-1.medium.com/max/800/1*DYWYHI1bUBSH1_3FVI6A3A.png"><figcaption class="wp-caption-text">Submarino (B2W)</figcaption></figure>
<figure class="wp-caption">
<p><img decoding="async" data-width="1899" data-height="957" src="https://cdn-images-1.medium.com/max/800/1*OvXL_oUy3uM-Qve-qfT5wA.png"><figcaption class="wp-caption-text">Mercado Livre também</figcaption></figure>
<h4>Siga o Mestre e Apelo a autoridade</h4>
<p>Não se trata de falácia ao observar tendências, mas elementos óbvios que se o mercado onde você atua tem uma maior gama de profissionais em uma dada tecnologia, terá mais gente treinada disponível para contratação que por consequência deve impor um mercado de treinamento junto. Além de utilização de bibliotecas em comum que estarão mais maduras.</p>
<p>Se um número isolado fosse determinante, todo mundo seguiria com Angular por ter mais tempo e o que tem mais profissionais no mercado, é o cruzamento das informações.</p>
<p>Nesse contexto React tem uma maior procura e está na estratégia de um grupo considerável de grandes Players.</p>
<h4>Desenvolvimento profissional</h4>
<p>Nessa escolha alguns fatores sobre dados absolutos podem não fazer sentido, exemplo: “o sistema atual é em Angular e todos os profissionais são proeficientes nessa tecnologia”.</p>
<p>Contexto é tudo, dado o planejamento a médio e longo prazo, sai mais barato treinar todo mundo numa plataforma que faça sentido do que manter o Status Quo porque um número isolado indica um caminho cômodo.</p>
<h4>Alguns profissionais podem não se adaptarem</h4>
<p>Decisões racionais são necessárias pra empresa, não necessariamente para os profissionais, não vejo problema algum em um profissional se fixar em uma única tecnologia e determinar esse caminho pra sua carreira.</p>
<p>Como gestor você tem que saber que independente da escolha que fará, poderá perder alguns desses profissionais.</p>
<p>Como profissional você pode considerar conhecer e ser treinado na maior quantidade possível de ecossistemas que são tendências, sua expertise será aprimorada, mas como falei, vai da intenção de cada um.</p>
<h4>Então, não devo experimentar Vuejs?</h4>
<p><a href="https://medium.com/@milfont/radar-front-end-2018-51a185f4eb41" target="_blank" rel="noopener noreferrer">A análise que fiz no final de 2017 para o ano de 2018 ainda segue muito válida</a>.</p>
<p>React e Vuejs seguem diretrizes, princípios e valores muito próximos, o que os difere é na forma em pequenos detalhes. Se a estratégia de evolução contemplar um pensamento em Microfrontends e padrões que sigam a integração entre ambos, manter um time polivalente pode render uma inovação frente aos concorrentes e uma oportunidade de investir em uma frente caso a outra entre em obsolescência.</p>
<p>Mas o experimento de abrir o ambiente a várias tecnologias também trás o risco de pulverizar esforço. O Tradeoff aqui requer uma dose de coragem além da experiência.</p>
<h4>E o tl;dr?</h4>
<p>Em um grande resumo disso tudo é, o mercado tende a continuar investindo em React, se você tem gente experiente o suficiente, vale a pena abrir mais de uma trincheira. Mas como conselho geral, treine seu time, fortaleça e construa uma arquitetura sólida primeiro em React.</p>
<p>Pra finalizar eu creio que vale a pena rever (se ainda não viu) essa palestra curtinha que eu e a <a href="https://twitter.com/ketemr" target="_blank" rel="noopener noreferrer">Kete</a> fizemos no <a href="https://www.infoq.com/br/presentations/transformando-um-front-end-legado-em-uma-react-spa" target="_blank" rel="noopener noreferrer">React Brazil 2017</a> sobre evolução de plataformas javascript.</p>
<p><iframe class='youtube-player' type='text/html' width='450' height='254' src='https://www.youtube.com/embed/uR5oGnj0wYE?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>O que é Transformação Digital</title>
		<link>https://www.milfont.org/tech/2019/01/23/o-que-e-transformacao-digital/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 23 Jan 2019 17:57:38 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2019/01/23/o-que-e-transformacao-digital/</guid>

					<description><![CDATA[O segredo das grandes companhias na Era Digital se resume a ser uma plataforma de tecnologia self-service que integra o físico e o online com produtos que satisfazem insights capturados no comportamento dos clientes. Não existem mais empresas de serviços ou produtos Não existem mais empresas de varejo, viagens, hotelaria, comidas, aluguel ou transporte. Todas as [&#8230;]]]></description>
										<content:encoded><![CDATA[<figure>
<p><img decoding="async" data-width="799" data-height="261" src="https://cdn-images-1.medium.com/max/800/1*TgFO4CdYwMTvC-BGJn1eyQ.png"><br />
</figure>
<p>O segredo das grandes companhias na Era Digital se resume a ser uma plataforma de tecnologia self-service que integra o físico e o online com produtos que satisfazem insights capturados no comportamento dos clientes.</p>
<h3>Não existem mais empresas de serviços ou produtos</h3>
<p>Não existem mais empresas de varejo, viagens, hotelaria, comidas, aluguel ou transporte.</p>
<figure>
<p><img decoding="async" data-width="1080" data-height="541" src="https://cdn-images-1.medium.com/max/800/1*HiD9Jx46HG29b9rMTmdURg.png"><br />
</figure>
<p>Todas as compahias dessa nova era são empresas de tecnologias que entregam a melhor plataforma de varejo, viagens, hotelaria, comidas, aluguel ou transporte de forma transparente não importando qual canal o seu cliente acessa em busca do serviço ou produto.</p>
<h3>Este é o momento do ponto de virada</h3>
<p>O homem mais rico do Brasil, o bilionário Jorge Paulo Lemann, declarou no início de 2018 que era um <a href="https://epocanegocios.globo.com/Carreira/noticia/2018/05/lemann-diz-que-e-um-dinossauro-apavorado-mas-que-luta-para-se-reinventar.html" target="_blank" rel="noopener noreferrer">dinossauro apavorado</a> e acordou o mercado nacional de que a fórmula de atrair talentos, ter preços baixos e extrema eficiência na redução de custos não seriam mais suficientes.</p>
<p>O <a href="https://en.wikipedia.org/wiki/The_World_Is_Flat" target="_blank" rel="noopener noreferrer">mundo plano</a> dos negócios ainda entende essa fórmula como o modelo de atingir o sucesso mesmo enfrentando a mudança cultural tecnológica que chega pela concorrência.</p>
<p>Em um mundo de rápida inovação de produtos e diversos canais de vendas o diferencial é trazer a visão do consumidor para frente do negócio e entregar a melhor experiência Self-service.</p>
<h3>Permita seu cliente não precisar de você</h3>
<p>Antigamente você construía um serviço apoiado por tecnologias, agora você constrói tecnologias que entregam serviços.</p>
<p>As diretorias tradicionais sempre conduziram tecnologia como suporte de operações ou Core em apenas determinado ponto estratégico da empresa, isso está superado, as empresas não tem mais essa opção.</p>
<blockquote>
<p>Não tem opção de não serem empresas de tecnologia.</p>
</blockquote>
<figure class="wp-caption">
<p><img decoding="async" data-width="1220" data-height="813" src="https://cdn-images-1.medium.com/max/2560/1*K-kaxR_GvimWxOKKWPgmzw.jpeg"><figcaption class="wp-caption-text">Source: <a href="https://www.recode.net/2018/3/19/17139604/uber-self-driving-autonomous-accident-pedestrian-arizona" target="_blank" rel="noopener noreferrer">A self-driving Uber car has killed a pedestrian in Arizona</a></figcaption></figure>
<p>Você não pede comida falando com pessoas.</p>
<p>Você dá bom dia ou boa tarde por educação enquanto os carros não são ainda autoguiados quando pede um serviço particular de transporte.</p>
<p>Você se hospeda em uma residência particular sem precisar interagir com o proprietário e aluga um imóvel sem pisar em um cartório.</p>
<h3>Ao mudar seu processo de entrega, transforma as pessoas</h3>
<p>Você não muda as pessoas em uma transformação, você muda o processo para elas se adaptarem.</p>
<p>Para inverter o Mindset de criar serviços para apoiar operações precisamos automatizar todas as operações para as pessoas apoiarem as plataformas.</p>
<figure>
<p><img decoding="async" data-width="811" data-height="791" src="https://cdn-images-1.medium.com/max/800/1*2kzF4lokvyIKp9yEgNplzw.png"><br />
</figure>
<h4>Não se cria processo baseado em pessoas, se cria em pessoas apoiando o processo.</h4>
<p>Em vez de criar um processo baseado em serviços que pessoas executam, o processo automatizado precisa de pessoas na tomada final de decisão.</p>
<p>Além do fato das empresas tradicionais possuírem um legado que se apegam (como Mainframe) fragilizando a automação seja pelo preço ou na própria velocidade de entrega.</p>
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="pt" dir="ltr">Sim, transformamos a porta giratória em uma peça de museu. E, cá entre nós, o lugar dela sempre foi lá. Essa exibição foi única, mas você também pode se despedir dela pra sempre na agência bancária mais próxima e mandar pra gente uma foto aqui na thread <a href="https://twitter.com/hashtag/SouNu?src=hash&amp;ref_src=twsrc%5Etfw">#SouNu</a> <a href="https://t.co/weEApsj98R">pic.twitter.com/weEApsj98R</a></p>
<p>&mdash; Nubank (@nubank) <a href="https://twitter.com/nubank/status/1072573559074185217?ref_src=twsrc%5Etfw">December 11, 2018</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Olha como o Nubank nasceu com outra impressão digital, criou uma plataforma de auto-serviço pra seus clientes que desafoga a operação de atendimento.</p>
<p>Com um atendimento desafogado se torna muito mais humanizado, os atendentes podem ser especializados (porque diminui a vazão e pode contratar menos e melhor) que escrevem cartinhas de próprio punho aos clientes, além de resolver problemas no 1:1.</p>
<h4>Empatia</h4>
<p>Trazer a visão do consumidor pra frente num atendimento de auto-serviço torna os próprios funcionários nos maiores nos maiores influenciadores, quem se preocupa em atender bem e da melhor forma, cria empatia com todos os envolvidos.</p>
<p>Quem imaginaria que um dia amaríamos uma instituição financeira ao ponto de fazer <a href="https://www.youtube.com/results?search_query=unboxing+nubank" target="_blank" rel="noopener noreferrer">Unboxing no youtube</a> no recebimento do cartão?</p>
<p><iframe class='youtube-player' type='text/html' width='450' height='254' src='https://www.youtube.com/embed/tIWEDMOB13g?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></p>
<h4>3 Chaves da Transformação</h4>
<p>Em resumo:</p>
<ol>
<li>Trazer o cliente pra frente da missão, o segredo é como o atender automaticamente;</li>
<li>Criar plataformas modernas e ágeis guiadas por produtos que façam sentido pro sucesso do cliente;</li>
<li>Direcionar os produtos por dados.</li>
</ol>
<p>No próximo Post (esse já ficou grande) vou falar sobre a estratégia de como fazer isso.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Curso online de PWA</title>
		<link>https://www.milfont.org/tech/2018/05/02/curso-online-de-pwa/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 02 May 2018 18:20:34 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2018/05/02/curso-online-de-pwa/</guid>

					<description><![CDATA[Após um ano trabalhando e divulgando PWA, preparei um upgrade do BeerSwarm com mais fôlego, mesclando Server-side Rendering, conteúdo e otimizações de SEO e performance que construiremos juntos nesse Workshop. Qual o investimento? Apenas 200 reais, que você pode se inscrever nesse link. Quando vai ocorrer? Acontecerá nos dias 15, 16, 17, 18 de maio de [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Após um ano trabalhando e <a href="https://medium.com/@milfont/progressive-web-apps-a-palavra-chave-%C3%A9-progressive-n%C3%A3o-app-ou-web-dbfa25b1ebd2" target="_blank" rel="noopener noreferrer">divulgando PWA</a>, preparei um upgrade do <a href="https://beerswarm.com/" target="_blank" rel="noopener noreferrer">BeerSwarm</a> com mais fôlego, mesclando Server-side Rendering, conteúdo e otimizações de SEO e performance que construiremos juntos nesse Workshop.</p>
<p><iframe class='youtube-player' type='text/html' width='450' height='254' src='https://www.youtube.com/embed/bCgZZZL-9zk?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></p>
<h4>Qual o investimento?</h4>
<p><em>Apenas 200 reais, que você pode se </em><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=89E834ZYM73YA" target="_blank" rel="noopener noreferrer"><strong><em>inscrever nesse link</em></strong></a><em>.</em></p>
<h4>Quando vai ocorrer?</h4>
<p>Acontecerá nos dias 15, 16, 17, 18 de maio de 2018 iniciando todos esses dias as 19h até as 21:00h. Dia 19 de maio de 2019 das 9h as 18h, com intervalo de 12 as 14h.</p>
<p>GMT-3 (Horário de Fortaleza-CE ou <a href="http://tribunadoceara.uol.com.br/noticias/politica/morre-paes-de-andrade-o-cearense-que-transformou-mombaca-em-brasilia-por-um-dia/" target="_blank" rel="noopener noreferrer">Mombaça, ex-capital do Brasil</a>)</p>
<h4>Formato online?</h4>
<p>Utilizaremos o <a href="https://zoom.us/" target="_blank" rel="noopener noreferrer">https://zoom.us/</a> para as aulas, os vídeos será disponibilizados para os inscritos após o curso.</p>
<h4>Conteúdo</h4>
<ol>
<li>Experiência SPA e Content Centered<br />1.1 Criar estrutura no Heroku para Server-side Rendering<br />1.2 Setup e deploy com expressjs e Babel<br />1.3 Criar estrutura de views com create-react-app<br />1.4 Criar engine de template com react-dom/server no server side<br />1.5 Exemplo de código isomorfico usando redux<br />1.6 Criar estrutura de Hosting no Firebase para SPA</li>
<li>Mobile First e UX Design Patterns<br />2.1 Conceptual model<br />2.2 Complexion Reduction<br />2.3 User Journey Simplification<br />2.3.1 Linear User Flow com React Routes<br />2.4 Progressive Disclosure<br />2.5 Responsivo<br />2.5.1 Responsive Logos<br />2.5.2 Progressive Enhacement e Graceful degradation com Material Design</li>
<li>Offline First<br />3.1 Criando estrutura de dados no IndexedDB<br />3.2 Entendendo Service Workers, upgrade e migrate de versões<br />3.3 Criando Sagas (Middleware redux) para funcionar offline e online<br />3.4 <a href="https://www.humankode.com/asp-net-core/develop-locally-with-https-self-signed-certificates-and-asp-net-core" target="_blank" rel="noopener noreferrer">Configurar https local pra validação</a>
</li>
<li>Web Instalável<br />4.1 Manifest, tags e configurações<br />4.2 Usando usuario anonimo com Firebase<br />4.2.1 Aprendendo generators e redux-saga<br />4.3 Vinculando usuario anonimo com login OAuth do Google<br />4.4 Pedindo localização do usuário<br />4.5 Integrando GMaps, Leaflet no App<br />4.6 Acessando a câmera e salvando fotos<br />4.7 Processos de sincronização e notificação com Web Workers<br />4.8 Compartilhando itens com Web Share API</li>
<li>Integração Contínua sincrona com lightghouse-ci</li>
</ol>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Formato ideal para o time</title>
		<link>https://www.milfont.org/tech/2018/02/14/formato-ideal-para-o-time/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 14 Feb 2018 16:54:25 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2018/02/14/formato-ideal-para-o-time/</guid>

					<description><![CDATA[Montando equipes matadoras que você pode confiar tl;dr Não existe uma fórmula pra isso, mas tem como trabalhar. Disclaimer Não existem dois times iguais simplesmente porque não existem dois seres humanos iguais, cada mudança de um membro você tem um time completamente diferente. Portanto já saímos com o Mindset de que experiências passadas ou paralelas no [&#8230;]]]></description>
										<content:encoded><![CDATA[<h4>Montando equipes matadoras que você pode confiar</h4>
<figure>
<p><img decoding="async" data-width="1200" data-height="631" src="https://cdn-images-1.medium.com/max/2560/1*0WaGIDIU_PRRcAkNL6e2NA.jpeg"><br />
</figure>
<h3><a href="https://en.wikipedia.org/wiki/TL;DR" target="_blank" rel="noopener noreferrer">tl;dr</a></h3>
<p>Não existe uma fórmula pra isso, mas tem como trabalhar.</p>
<h3>Disclaimer</h3>
<p>Não existem dois times iguais simplesmente porque não existem dois seres humanos iguais, cada mudança de um membro você tem um time completamente diferente.</p>
<p>Portanto já saímos com o Mindset de que experiências passadas ou paralelas no máximo &#8220;ajudarão&#8221; a guiar o nosso instinto com tendências que deram certo ou errado.</p>
<p>Apelando para o bordão: &#8220;O todo é maior que a soma das partes&#8221;.</p>
<h3>Desespero-me?</h3>
<p>De maneira alguma, vamos aprender com a história, sobre o que deu certo e utilizar valores, princípios e práticas que garantam um monitoramento da saúde do coletivo e construa a cultura e motivação adequada a cada indivíduo.</p>
<h3>Como eram os projetos de produtos de software nos anos 70/80</h3>
<p>O formato que as equipes trabalhavam era a produção de um software seguindo um modelo tradicional de gerenciamento de projetos, uma equipe desenvolvia e outra recebia para manter.</p>
<figure>
<p><img decoding="async" data-width="757" data-height="167" src="https://cdn-images-1.medium.com/max/800/1*hDr1qdJRbc2B5DXJkZQgkw.png"><br />
</figure>
<p>O que se percebeu na época foi que esse modelo de &#8220;On-going&#8221; produzia diversos efeitos colaterais no produto final dado que o time que implementava não tinha o mesmo compromisso em qualidade de quem manteria pro resto do tempo em produção.</p>
<p>Além do fato de que projetos usavam times diferentes até na construção antes da ida pra produção, principalmente entre as fases de concepção e implementação.</p>
<p>Como a grande maioria dos projetos atrasavam e os testes ficavam como fase final, era comum serem relegados em prol da data de entrega.</p>
<p>Eram comuns também projetos demorarem 2 anos até serem colocados em produção, alguns levavam quase meia década (em off, eu trabalhei em um que levou uma década pra entrar em produção).</p>
<h3><a href="https://pt.wikipedia.org/wiki/A_Galinha_e_o_Porco" target="_blank" rel="noopener noreferrer">Fábula da galinho e do porco</a></h3>
<p>Vários profissionais experientes estavam desenvolvendo um modelo alternativo no início dos anos 90 (alguns iniciaram até um pouco antes), trocando informações entre si e por volta do final da década você tem algumas metodologias e métodos bem definidos e maduros.</p>
<p>Em 2001 nasce o famoso <a href="http://agilemanifesto.org/" target="_blank" rel="noopener noreferrer">Manifesto ágil</a>, que seria o contrato de valores fundamentais que definia o comum que esses modelos traziam para resolver os problemas na construção de Software.</p>
<p>Em resumo, daqui pra frente a abordagem de pensar em produto em vez de projeto e um time que deveria ter o compromisso na qualidade e ciclo de vida deste produto foi algo que deveria permeiar entre eles.</p>
<figure>
<p><img decoding="async" data-width="728" data-height="135" src="https://cdn-images-1.medium.com/max/800/1*zDVvX9UOqT3JB8oQA2TRdQ.png"><br />
</figure>
<p>Entre outras coisas, conceitos como trazer os testes pra frente, já sabemos que sempre vai atrasar algo, então que a qualidade não seja comprometida.</p>
<p>Ultimamente <a href="http://blog.rivendel.com.br/2017/11/27/explorando-devops-com-foco-em-cicd/" target="_blank" rel="noopener noreferrer">Deploy contínuo</a>, colocar em produção desde o primeiro dia pra ir ajustando a arquitetura com ferramental, monitoramento e <a href="http://blog.rivendel.com.br/2017/08/19/escrevendo-health-checks-efetivos-e-uma-matriz-de-resiliencia/" target="_blank" rel="noopener noreferrer">Status Check</a>.</p>
<blockquote>
<p>&#8220;Ultimamente&#8221; entre aspas duplas, isso já tem pelo menos uma década.</p>
</blockquote>
<h3>Quem falou primeiro em equipes multidisciplinares</h3>
<p>Vários autores da era Agile estavam referenciando times multidisciplinares e desenvolvimento de produtos.</p>
<p>Você tem um claro viés da transição nessa época no tópico &#8220;Production Support Team&#8221; no livro do Kent Beck, chamado <a href="https://www.amazon.com/Planning-Extreme-Programming-Kent-Beck/dp/0201710919" target="_blank" rel="noopener noreferrer">Planning Extreme Programming</a> de 2000.</p>
<p>Trecho desse tópico:</p>
<blockquote>
<p>Two or four programmers volunteer to focus on fixing bugs. Each programmer spends a couple of iterations in production support, then rotates back to development. Every iteration there is at least one devel- oper doing their first iteration and at least one doing the second. This works well in that there is a pair that has the responsibility for dealing with support issues and this (usually unpleasant) work is rotated around the team. Actually it’s not the rotation that is key, it is the fact that the team decides themselves how to handle it.</p>
</blockquote>
<p>Em tradução livre:</p>
<blockquote>
<p>Dois ou quatro (1) programadores voluntários para focar no conserto de bugs. Cada programador levaria um par de iterações no suporte em produção, então rotacionam (2) de volta ao desenvolvimento. Cada iteração tem pelo menos um dev fazendo sua primeira iteração e outro fazendo a sua segunda. Isso funciona bem quando um par tem a responsabilidade de lidar com questões de suporte e este (geralmente desagradável) trabalho é rotacionado em torno do time. Na verdade, não é a rotação que é a chave, é o fato de que o time decide por si só como lidar com isso.</p>
</blockquote>
<p>(1) Observe que número par, pra trabalhar no princípio de <em>Pair Programming</em> do XP.</p>
<p>(2) XP tem algumas práticas como <em>Move People Around</em> pra todos no time trabalharem em praticamente todos os requisitos e tecnologias.</p>
<p>Projeto tem começo, meio e fim. Mas um produto de software por ser maleável e evolutivo se difere do produto clássico das literaturas anteriores, dificilmente você vai matar um legado e na minha experiência nem faz sentido.</p>
<p>Afinal se aquela folha de pagamento está funcionando em Cobol, não temos tempo e dinheiro suficiente que demande uma mudança em vez de trabalhar em prol de novas abordagens de negócio.</p>
<h3>Modelo Squads e Guildas</h3>
<p>Não poderia deixar de citar o <a href="https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/" target="_blank" rel="noopener noreferrer">Spotify</a> que chamou a atenção ultimamente para seu modelo multidisciplinar em torno da abordagem de construção de produtos. Uma evolução do pensamento dessas últimas duas décadas no mínimo.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="800" data-height="466" src="https://cdn-images-1.medium.com/max/800/1*NVzvPHpyZY-YE-j1vdp4FQ.png"><figcaption class="wp-caption-text"><a href="https://medium.com/project-management-learnings/spotify-squad-framework-part-i-8f74bcfcd761" target="_blank" rel="noopener noreferrer">https://medium.com/project-management-learnings/spotify-squad-framework-part-i-8f74bcfcd761</a></figcaption></figure>
<p>Um episódio bem leve e bacana sobre isso você escuta no Hipsters em seguida.</p>
<p><a href="https://podtail.com/en/podcast/hipsters-ponto-tech/">https://podtail.com/en/podcast/hipsters-ponto-tech/</a></p>
<h3>Como selecionar o profissional certo?</h3>
<p>Existem 3 tipos de profissionais quando falamos sobre evolução de uma produto em relação a tecnologia com times multidisciplinares:</p>
<ol>
<li>Aqueles que por algum motivo se apegam a uma tecnologia e a defenderão com qualquer argumento para não haver mudança;</li>
<li>Aqueles que são Early Adopters e não querem trabalhar de forma alguma com legado;</li>
<li>Aqueles que entendem a necessidade e compromisso de ter que manter o legado, mas se sentem incomodados e gostariam de evoluir pra próxima tendência.</li>
</ol>
<p>Existem Trade-offs nas 3 abordagens na minha experiência, na média desses profissionais você tem as seguintes características respectivamente:</p>
<ol>
<li>São extremamente especialistas, conhecem a plataforma como ninguém e são mais aptos a solucionar problemas do presente, mas alimentam a ojeriza de qualquer mudança e até podem sabotar de forma inconsciente;</li>
<li>São especialistas em multi plataformas, estão preparados para o novo, mas contribuem pouco durante a evolução em relação a manutenção do legado, em contrapartida são os guiadores do processo de substituição;</li>
<li>São generalistas que podem atuar nas 11 posições (tomando analogia do futebol), não guiarão o processo de mudança, mas também não serão uma barreira de adoção.</li>
</ol>
<figure>
<p><img decoding="async" data-width="959" data-height="401" src="https://cdn-images-1.medium.com/max/800/1*v4RfZ_0vrldDgrOAmSEKMg.jpeg"><br />
</figure>
<p>Não quero &#8220;defecar&#8221; regra de qual tipo você deve dar atenção, acredito que é inevitável ter os 3 formatos no seu esquadrão, portanto é saber liderar e dosar o posicionamento correto de atuação entre os perfis.</p>
<p>Colocar o generalista ou o especialista do legado por exemplo pra puxar uma migração vai ser um tiro contra todos, vai conseguir desagradar a gregos e troianos.</p>
<p>Da mesma forma que colocar o Early Adopter pra manter legado e corrigir bugs vai só provocar ciúmes em quem ama a tecnologia e deveria ser o &#8220;dono&#8221;.</p>
<p>Mas claro, não são conselhos preditivos, existem graus entre os tipos e mais uma vez saber dosar requer um pouco de trabalho.</p>
<p>Além da diferença entre <a href="https://twitter.com/cmilfont/status/958572790227132421" target="_blank" rel="noopener noreferrer">especialidade vs generalidade</a>, você ainda enfrente a <a href="https://twitter.com/cmilfont/status/958756342038179841" target="_blank" rel="noopener noreferrer">senioridade do profissional</a>.</p>
<h3>Efeito Sávio, Romário e Edmundo</h3>
<figure class="wp-caption">
<p><img decoding="async" data-width="500" data-height="319" src="https://cdn-images-1.medium.com/max/800/1*MiUleJQQEaqAiYjnc8a6XQ.jpeg"><figcaption class="wp-caption-text">Montar um time de estrelas quase nunca funciona</figcaption></figure>
<p>A melhor seleção brasileira de futebol considerada pelos críticos foi a de 82/86 com craques do porte de Zico e Sócrates perdendo penalti.</p>
<p>Você tem vários experimentos que unir muitas estrelas com o ego inflado vai provocar mais danos na moral do time do que resultados, além do que você provavelmente tem o Budget apenas pra montar um time coeso e defensivo com um bom artilheiro na frente e ganhar o tetra.</p>
<h3>Feedback e Cultura</h3>
<p>Como citei antes, dificilmente você vai conseguir matar um legado inteiro, então ter um time que consiga atuar bem em torno dos objetivos do produto demanda <a href="https://medium.com/@milfont/criando-uma-cultura-de-sucesso-na-sua-empresa-4bc95a54f27f" target="_blank" rel="noopener noreferrer">cuidar da cultura</a> e um <a href="https://medium.com/@milfont/continuous-feedback-score-9270d16b4827" target="_blank" rel="noopener noreferrer">processo de Feedback</a> que consiga identificar que tipo de profissional trabalha com você e não confiar apenas no instinto na hora de delegar responsabilidades.</p>
<p>Muitas vezes você atribui que alguém está acomodado ou não gostaria de evoluir uma plataforma, mas a cultura do seu ambiente não privilegia ou piora o desenvolvimento pessoal.</p>
<p>Algumas vezes o sujeito só está na hora errada em relação as suas motivações pessoais ou no time errado para suas habilidades.</p>
<p>Mas não quero dizer que você não deve ter profissionais caros e bons, claro que precisa, só que não precisam e dificilmente serão todos ou ter que remontar o time inteiro (aqui existem dezenas de variáveis a se discutir).</p>
<h3>É fácil?</h3>
<p>De forma alguma, mas temos literatura suficiente já &#8220;antiga&#8221; pra utilizar.</p>
<figure>
<p><img decoding="async" data-width="839" data-height="577" src="https://cdn-images-1.medium.com/max/800/0*Pi3Ru4qZFFC8fnk4."><br />
</figure>
<p>Em resumo o formato que melhor funciona durante toda a história do desenvolvimento de software é um time multidisciplinar com multisenioridade construindo um produto com autonomia completa se preocupando com todas as práticas de engenharia em prol da entrega, mas pensando ciclicamente na evolução constante e qualidade total.</p>
<p>Então para montar esse time crie uma jornada interessante, convoque múltiplos perfis adequados para ela e os motive com o objetivo certo, que é construir um produto sem defeitos e que entregue valor adequado a quem tem o problema que ele se dispõe a resolver e está disposto a utilizar!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Workshop online para entender sobre Redux construindo seu Redux</title>
		<link>https://www.milfont.org/tech/2017/12/29/workshop-online-para-entender-sobre-redux-construindo-seu-redux/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 29 Dec 2017 14:13:00 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/12/29/workshop-online-para-entender-sobre-redux-construindo-seu-redux/</guid>

					<description><![CDATA[A maioria das empresas, principalmente no Brasil como podemos observar, utilizam o Redux como gerenciador do estado dos dados da aplicação. Se você vai trabalhar com React, vai se deparar com ele em algum momento. Chegam muitos testemunhos de que o React é fácil, mas o Redux ainda é um entrave. Eu já tinha visto [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A maioria das empresas, <a href="https://github.com/react-brasil/empresas-que-usam-react-no-brasil" target="_blank" rel="noopener noreferrer">principalmente no Brasil como podemos observar</a>, utilizam o <a href="http://redux.js.org/" target="_blank" rel="noopener noreferrer">Redux</a> como gerenciador do estado dos dados da aplicação.</p>
<p>Se você vai trabalhar com React, vai se deparar com ele em algum momento. Chegam muitos testemunhos de que o React é fácil, mas o Redux ainda é um entrave.</p>
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="pt" dir="ltr">Eu já tinha visto muita coisa feia e complicada no mundo Javascript. Mas nenhuma delas se compara ao Redux/React. Galera tá de parabéns.</p>
<p>&mdash; Robson de Araujo (@robsonaraujo) <a href="https://twitter.com/robsonaraujo/status/924624975415463938?ref_src=twsrc%5Etfw">October 29, 2017</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3>Mudança de Mindset</h3>
<p>Utilizar as melhores práticas com o Redux requer pensar de forma imutável e funcional com uma biblioteca e linguagem multi-paradigma, além disso a própria documentação do Redux não facilita, ela é pra quem já tem esse Mindset e confunde mais do que ajuda.</p>
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="pt" dir="ltr">Quem precisa daquele tutorial curto pra aprender definitivamente o Redux?</p>
<p>&mdash; Christiano Milfont (@cmilfont) <a href="https://twitter.com/cmilfont/status/920980341116096512?ref_src=twsrc%5Etfw">October 19, 2017</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3>Vamos pensar apenas em React</h3>
<p>Acredito que uma forma de entender um motor de estados é entender qual o problema que ele resolve primeiro, depois como ele funciona, para isso proponho nesse Workshop resolver essa compreensão puramente com React, lib da qual todo mundo me fala que entende fácil e é logo produtivo.</p>
<h3>Workshop Construindo seu próprio Redux</h3>
<p>Construiremos um <strong><em>Centralized State Management</em></strong> baseado no <a href="https://facebook.github.io/flux/" target="_blank" rel="noopener noreferrer">Pattern Flux</a> fortemente inspirado no Redux. Pré-requisito é entender um pouco de React, mas nada que numa manhã não aprenda, de qualquer forma revisitaremos alguns conceitos de funcionamento da árvore.</p>
<p>Todo o código já está disponível caso queira se aventurar sozinho nesse repositório, só acompanhar os commits <a href="https://github.com/cmilfont/learn-redux/commits/master" target="_blank" rel="noopener noreferrer">https://github.com/cmilfont/learn-redux/commits/master</a>. Provavelmente eu inclua mais algum detalhe até lá, revisite sempre.</p>
<h4>Qual o investimento?</h4>
<blockquote>
<p>Apenas 200 reais, que você pode se <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=QLD3PFMMFUQEN" target="_blank" rel="noopener noreferrer"><strong><em>inscrever aqui nesse link</em></strong></a>. [no futuro teremos uma versão bitcoin ;)]</p>
</blockquote>
<p>[update] O Workshop já aconteceu e você pode adquirir os vídeos das aulas comprando no <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=QLD3PFMMFUQEN" target="_blank" rel="noopener noreferrer"><strong><em>link anterior</em></strong></a>, mas não temos mais canal no slack pra novos participantes dessa turma.</p>
<h4>Quando vai ocorrer?</h4>
<p>Primeira turma será nos dias 15, 16, 17 e 18 de janeiro de 2018 iniciando todos esses dias as 19h até por volta de 21:00.</p>
<h4>Formato online?</h4>
<p>Utilizaremos o <a href="https://zoom.us/" target="_blank" rel="noopener noreferrer">https://zoom.us/</a> para as aulas, os vídeos será disponibilizados para os inscritos após o curso.</p>
<h4>Conteúdo</h4>
<ol>
<li>Implementando acesso a dados no ciclo de vida da árvore React</li>
<li>Utilizando banco de dados locais (IndexedDB) como fonte de dados</li>
<li>Diferença entre props e state para manipular os dados</li>
<li>Refatorando a centralização do estado de uma árvore</li>
<li>Utilizando Context para conectar os componentes na árvore a uma mesma fonte</li>
<li>Construindo o seu Redux: Store como provider do estado.</li>
<li>Construindo o seu Redux: padronizando dispatch de ações.</li>
<li>Isolando os componentes com Containers conectados ao Store</li>
<li>Mapeando trechos do estado para as Views.</li>
</ol>
<h4>Próximos Workshops</h4>
<p>Esse daqui servirá como pre-requisito a Workshops de Redux e Saga que serão disponibilizados em breve.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Radar Front-End 2018</title>
		<link>https://www.milfont.org/tech/2017/12/27/radar-front-end-2018/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 27 Dec 2017 19:22:51 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/12/27/radar-front-end-2018/</guid>

					<description><![CDATA[Esse post é uma compilação de experiências de 2017 (e nos últimos anos pra falar a verdade) como um guia de recomendações para o foco em 2018. Analisando as respostas do &#8220;State of JS&#8221; para validar nosso Feeling com dados. Linguagem Javascript se tornou uma linguagem madura com um ecossistema rico de recursos auxiliares que [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Esse post é uma compilação de experiências de 2017 (e nos últimos anos pra falar a verdade) como um guia de recomendações para o foco em 2018. Analisando as respostas do &#8220;<a href="https://stateofjs.com/2017/introduction/" target="_blank" rel="noopener noreferrer">State of JS</a>&#8221; para <a href="https://medium.freecodecamp.org/i-just-asked-23-000-developers-what-they-think-of-javascript-heres-what-i-learned-9a06b61998fa" target="_blank" rel="noopener noreferrer">validar</a> nosso Feeling com dados.</p>
<h4>Linguagem</h4>
<p>Javascript se tornou uma linguagem madura com um ecossistema rico de recursos auxiliares que a tornam presente no servidor, navegador e no seu celular.</p>
<p><a href="https://medium.com/@milfont/usaremos-babel-pra-sempre-f827604762fb" target="_blank" rel="noopener noreferrer">Babel</a> se tornou um padrão de fato para termos sempre as últimas novidades do JS, Typescript retornando com sucesso vencendo a concorrência contra o <a href="https://flow.org/" target="_blank" rel="noopener noreferrer">Flow</a> e <a href="https://webpack.js.org/" target="_blank" rel="noopener noreferrer">Webpack</a> como Module Bundler tem aos poucos tornado obsoleto os anteriores (Grunt, Browserify e Gulp).</p>
<figure>
<p><img decoding="async" data-width="1382" data-height="768" src="https://cdn-images-1.medium.com/max/2560/1*a0V5qYI8U8XLBJXakm5HCA.png"><br />
</figure>
<p>Indiferente da disputa histórica entre tipos dinâmicos e tipos estáticos, uma recomendação é sobre o <a href="https://medium.com/@dtinth/immutable-js-persistent-data-structures-and-structural-sharing-6d163fbd73d2" target="_blank" rel="noopener noreferrer">pensamento imutável</a> com <a href="http://facebook.github.io/immutable-js/" target="_blank" rel="noopener noreferrer">Immutablejs</a>.</p>
<h4>Design Patterns</h4>
<figure>
<p><img decoding="async" data-width="772" data-height="478" src="https://cdn-images-1.medium.com/max/800/1*mwP59Yo9SW_r2rybDTOvng.png"><br />
</figure>
<p><a href="http://dddcommunity.org/" target="_blank" rel="noopener noreferrer">Domain Driven Design</a> e outras coletâneas consagradas de padrões estão entrando na estante de livros do desenvolvedor Front agora com a maturidade do ecossistema e os <a href="https://micro-frontends.org/" target="_blank" rel="noopener noreferrer">Micro-frontends</a> se tornando possíveis com algumas tecnologias como Import Async, seja utilizando o <a href="https://webpack.js.org/api/module-methods/#import-" target="_blank" rel="noopener noreferrer">Webpack</a> ou diretamente do <a href="https://www.npmjs.com/package/babel-plugin-syntax-dynamic-import" target="_blank" rel="noopener noreferrer">Babel</a>.</p>
<figure>
<p><img decoding="async" data-width="1000" data-height="722" src="https://cdn-images-1.medium.com/max/1200/1*eVhB84D4alBM_53R3IKmOg.png"><br />
</figure>
<p>Sempre existiu uma grande necessidade do mercado em conservar código legado em vez de sempre reescrever tudo e agora a tecnologia nos permite uma evolução mais suave de como fazer isso.</p>
<p>Eu e a <a href="https://medium.com/u/22305afc282d" target="_blank" rel="noopener noreferrer">Kete Martins Rufino</a> apresentamos &#8220;<a href="https://www.infoq.com/br/presentations/transformando-um-front-end-legado-em-uma-react-spa" target="_blank" rel="noopener noreferrer">Transformando um front-end legado em uma React SPA</a>&#8221; no <a href="http://reactconfbr.com.br/" target="_blank" rel="noopener noreferrer">ReactConfBR</a> em outubro que traça algumas dicas e abordagens de como realizar essa evolução.</p>
<h4>Frameworks</h4>
<p>Falando em <a href="https://reactjs.org/" target="_blank" rel="noopener noreferrer">React</a>, junto com <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">Vue</a> são as abordagens mais indicadas para focar em 2018 devido a sua recepção e crescimento aliado a esse pensamento de construção em blocos na evolução de legados em vez de um Framework de propósito geral que tenta resolver tudo. Óbvio que a escolha de um ecossistema envolve diversos aspectos, inclusive opinião pessoal.</p>
<figure>
<p><img decoding="async" data-width="942" data-height="610" src="https://cdn-images-1.medium.com/max/800/1*VYjVzVx_MpT8tct4BJkzbg.png"><br />
</figure>
<p>Ouça o <a href="https://hipsters.tech/react-o-framework-onipresente-hipsters-66/" target="_blank" rel="noopener noreferrer">Hispters.tech sobre React</a> que tentamos explicar um mundo de coisas sem código.</p>
<p>Algumas tecnologias como <a href="https://reasonml.github.io/" target="_blank" rel="noopener noreferrer">Reason</a>, <a href="http://elm-lang.org/" target="_blank" rel="noopener noreferrer">Elm</a> e <a href="https://clojurescript.org/" target="_blank" rel="noopener noreferrer">Clojurescript</a> são interessantes, mas a realidade é que são relevantes apenas se você tem interesse especificamente em algumas poucas empresas que as utilizam.</p>
<h4>Redux e Vuex</h4>
<p>Se você abrir a lista de empresas que usam <a href="https://github.com/react-brasil/empresas-que-usam-react-no-brasil" target="_blank" rel="noopener noreferrer">React</a> ou <a href="https://github.com/vuejs-br/empresas-que-usam-vue-no-brasil" target="_blank" rel="noopener noreferrer">Vue</a> no BR e fizer um search vai perceber que praticamente 99,99% delas usam Redux e Vuex respectivamentes, que são um Centralized State Management.</p>
<figure>
<p><img decoding="async" data-width="701" data-height="551" src="https://cdn-images-1.medium.com/max/800/1*vmhxmp5jRp-4Rtfh3skrgQ.png"><br />
</figure>
<p>Em outras palavras isso significa isolar o código que transforma e manipula seus dados para evitar acoplar nas suas Views tornando a manutenção e evolução bem mais robusta pela organização dessa abordagem.</p>
<p>Em composição a esse Mindset de coesão e baixo acoplamento também é recomendado um Middleware/Plugin que manipula chamadas assíncronas chamado de Saga, seja <a href="https://redux-saga.js.org/" target="_blank" rel="noopener noreferrer">Redux</a> ou <a href="https://www.npmjs.com/package/vuex-redux-saga" target="_blank" rel="noopener noreferrer">Vuex</a>, para evitar código dentro das Views.</p>
<p>Um Centralized State Management ainda facilita o <a href="https://medium.com/rivendel-tecnologia/monitoramento-e-manipula%C3%A7%C3%A3o-de-erros-no-pwa-com-react-e-redux-3c9b41d1464b" target="_blank" rel="noopener noreferrer">Track e monitoramento de errors</a> para PWA.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="1409" data-height="802" src="https://cdn-images-1.medium.com/max/2560/1*I2-FrsFa1QHgcgPwxfeeGA.png"><figcaption class="wp-caption-text"><a href="https://m.uber.com/looking" target="_blank" rel="noopener noreferrer">https://m.uber.com/looking</a></figcaption></figure>
<h4>Progressive Web App</h4>
<p>PWA não é uma tecnologia, é uma abordagem para construir Mobile Apps com os padrões WEB. No artigo &#8220;<a href="https://medium.com/@milfont/progressive-web-apps-a-palavra-chave-%C3%A9-progressive-n%C3%A3o-app-ou-web-dbfa25b1ebd2" target="_blank" rel="noopener noreferrer">Progressive Web Apps: a palavra-chave é Progressive, não App ou Web</a>&#8221; tem links, audio, video e slides sobre o tema.</p>
<p>Uma série de Apps já tem sua versão PWA: Twitter, Telegram, Instagram, Uber, Pinterest,… até o <a href="https://medium.com/@addyosmani/a-tinder-progressive-web-app-performance-case-study-78919d98ece0" target="_blank" rel="noopener noreferrer">Tinder</a>.</p>
<h4>Middlewares</h4>
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="pt" dir="ltr">Qual conceito/tecnologia de Front você tem preferência em focar no ano da graça de nosso senhor de 2018?</p>
<p>&mdash; Christiano Milfont (@cmilfont) <a href="https://twitter.com/cmilfont/status/940589662619537409?ref_src=twsrc%5Etfw">December 12, 2017</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Com o lançamento do <a href="https://aws.amazon.com/pt/appsync/" target="_blank" rel="noopener noreferrer">AWS AppSync</a> agora no último re:Invent o <a href="http://graphql.org/" target="_blank" rel="noopener noreferrer">GraphQL</a> demonstrou que chamou a atenção e veio se consolidar como o Backend para o Frontend daqui pra frente.</p>
<p>É possível que <a href="https://firebase.google.com/" target="_blank" rel="noopener noreferrer">Firebase</a>, serverless campeão da atualidade, venha a oferecer GraphQL em breve.</p>
<figure>
<p><img decoding="async" data-width="849" data-height="567" src="https://cdn-images-1.medium.com/max/800/1*efQB4bKjHT7QV-ZLyWRo3g.png"><br />
</figure>
<p>Indiferente se você deseja continuar especialista em Front ou ganhar proeficiência no Backend pra se tornar um Full Stack, não vai poder ignorar Elasticsearch.</p>
<p>Esse motor de buscas é mais que uma DSL, hoje um mecanismo importante no Mindset imutável de construção dos seus Data Transfer Objects junto de Centralized State Management.</p>
<h4>Automatizado</h4>
<figure class="wp-caption">
<p><img decoding="async" data-width="1387" data-height="428" src="https://cdn-images-1.medium.com/max/2560/1*D7BxpNVK_9vlb8eejYXUMw.png"><figcaption class="wp-caption-text">Integração Contínua Assíncrona com Jenkins</figcaption></figure>
<p>Por fim e não menos importante, um Front-end moderno não pode deixar de ser totalmente automatizado, desde o boilerplate gerador de build como o <a href="https://github.com/facebookincubator/create-react-app" target="_blank" rel="noopener noreferrer">create-react-app</a>, passando pelo Pipeline de CI com Jenkins (ou o seu preferido) a uma publicação em CDN como <a href="https://aws.amazon.com/pt/cloudfront/" target="_blank" rel="noopener noreferrer">AWS Cloudfront</a>.</p>
<p>Espero que esse guia de recomendações seja útil para sua evolução, deixe suas dúvidas nos comentários para complementarmos.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Monitoramento e manipulação de erros no PWA com React e Redux</title>
		<link>https://www.milfont.org/tech/2017/11/06/monitoramento-e-manipulacao-de-erros-no-pwa-com-react-e-redux/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 06 Nov 2017 20:22:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/11/06/monitoramento-e-manipulacao-de-erros-no-pwa-com-react-e-redux/</guid>

					<description><![CDATA[Adendo: Não sabe bem o que é PWA? Leia o resumo. Colocou a App em produção? Vamos conversar. Você não conseguirá impedir erros em produção e principalmente lidar com isso na interação com o usuário mesmo que sua aplicação tenha uma cobertura de 100% com testes unitários, um bom ratio pra cada linha de código [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><em>Adendo: Não sabe bem o que é </em><strong><em>PWA</em></strong><em>? </em><a href="https://medium.com/@milfont/progressive-web-apps-a-palavra-chave-%C3%A9-progressive-n%C3%A3o-app-ou-web-dbfa25b1ebd2" target="_blank" rel="noopener noreferrer"><em>Leia o resumo</em></a><em>.</em></p>
<h4>Colocou a App em produção? Vamos conversar.</h4>
<p>Você não conseguirá impedir erros em produção e principalmente lidar com isso na interação com o usuário mesmo que sua aplicação tenha uma cobertura de 100% com testes unitários, um bom ratio pra cada linha de código e testes de aceitação/integração.</p>
<blockquote>
<p>Você está errado em todas as metodologias se não testa de forma automatizada.</p>
</blockquote>
<h4>Reagindo a erros não esperados</h4>
<p>A versão 16 do React trouxe um método excelente no ciclo de vida dos componentes, o <a href="https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html" target="_blank" rel="noopener noreferrer"><strong>componentDidCatch</strong></a>, que captura todas as exceções lançadas pelos nós abaixo na árvore do componente que manipula esse método.</p>
<p>Em outras palavras, todo erro que acontecer abaixo de <strong><em>ErrorBoundary</em></strong> (ver código seguinte) será capturado num único ponto sem a necessidade de espalhar try/catch pelo código de apresentação.</p>
<p>De qualquer forma, todas as transformações de estado devem ser concentradas no redux como o código a seguir.</p>
<p><a href="https://gist.github.com/cmilfont/e4fa20e1ced19a36fcdf948916184ade">https://gist.github.com/cmilfont/e4fa20e1ced19a36fcdf948916184ade</a></p>
<p>Independente de como mostrar a UI para o usuário ao acontecer um erro, essa informação virá exclusivamente de um ponto que é administrado por transações das sagas.</p>
<h3>Estado Centralizado</h3>
<p>Temos vários vantagens em centralizar a manipulação de erros no redux, a principal é que podemos concentrar o monitoramento em um único lugar com os dados trackeados pelo sua ferramenta, seja Airbreak, Logentries ou <a href="https://github.com/ngokevin/redux-raven-middleware" target="_blank" rel="noopener noreferrer">Sentry</a>.</p>
<p><a href="https://gist.github.com/cmilfont/a0009b8e0af3e4ce0eb1e23439324314">https://gist.github.com/cmilfont/a0009b8e0af3e4ce0eb1e23439324314</a></p>
<p>Qual a diferença entre colocar um window.onError?</p>
<p>Facilitar coordenar tipos de erros junto ao estado da aplicação, além de indicar um único ponto de manutenção porque esses tipos precisam de transformações e Tracking.</p>
<h3>Track dos erros</h3>
<p>Dado a centralização dos erros, agora partir para logar direto no seu serviço que provavelmente tem dezenas de métodos de notificações e habilitar a integração com seu Issue Tracking.</p>
<figure>
<p><img decoding="async" data-width="994" data-height="781" src="https://cdn-images-1.medium.com/max/600/1*pdkK6DIIEbFEZhJcenyJgw.png"><br />
</figure>
<figure class="wp-caption">
<p><img decoding="async" data-width="831" data-height="567" src="https://cdn-images-1.medium.com/max/600/1*8qZ0MqSDxuun89SFX5m3TA.png"><figcaption class="wp-caption-text">Tracking, notificação e resolução de erros.</figcaption></figure>
<h3>Offline</h3>
<p>O ecossistema Redux também agrega a vantagem de facilitar a persistência dos erros para tracking e análise futura ou evitar a submissão constante de notificações aproveitando para enviar em Batch num tempo determinado.</p>
<p>Em alguns casos extremos, principalmente em integração, você pode exportar o store na window para disparar um error que extrapola a aplicação com <strong><em>window.onError = error=&gt; (window.store.dispatch({ type: &#8216;GLOBAL_ERROR&#8217;, payload: error }));</em></strong></p>
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="en" dir="ltr">Unit tests: 100% coverage<br />Integration tests: n/a <a href="https://t.co/ptMkXTXZSV">pic.twitter.com/ptMkXTXZSV</a></p>
<p>&mdash; Daniel Martins (@danielfmt) <a href="https://twitter.com/danielfmt/status/892847112026701824?ref_src=twsrc%5Etfw">August 2, 2017</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Espero que essas dicas agreguem valor a sua App, porque é praticamente impossível evitar erros, é sempre melhor estar preparado pra agir quando eles surgem.</p>
<p>Comenta sobre algo que acontece(u) na sua App que essas dicas ainda não cobrem para eu melhorar o artigo.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Progressive Web Apps: a palavra-chave é Progressive, não App ou Web</title>
		<link>https://www.milfont.org/tech/2017/08/18/progressive-web-apps-a-palavra-chave-e-progressive-nao-app-ou-web/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 18 Aug 2017 20:15:10 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/08/18/progressive-web-apps-a-palavra-chave-e-progressive-nao-app-ou-web/</guid>

					<description><![CDATA[Não sabe o que é PWA ainda? Ouça um podcast que gravamos no DevNaEstrada sobre o tema. O Sérgio Lopes, ou Sergio Caelum, um dos maiores nomes do Front-end do Brasil e quiça do mundo escreveu um excelente artigo defendendo o ponto de vista que o mais importante no PWA é o fator Web. Discordo — e [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Não sabe o que é PWA ainda? Ouça um podcast que gravamos no <a href="http://devnaestrada.com.br/2017/06/22/pwa.html" target="_blank" rel="noopener noreferrer">DevNaEstrada</a> sobre o tema.</p>
<p>O Sérgio Lopes, ou <a href="https://twitter.com/sergio_caelum" target="_blank" rel="noopener noreferrer">Sergio Caelum</a>, um dos maiores nomes do Front-end do Brasil e quiça do mundo escreveu um excelente artigo defendendo o ponto de vista que <a href="https://imasters.com.br/desenvolvimento/progressive-web-apps-palavra-chave-e-web-nao-app/" target="_blank" rel="noopener noreferrer">o mais importante no PWA é o fator Web</a>.</p>
<p>Discordo — e já concordei — e acredito que o mais fantástico de PWA é unificar o desenvolvimento Front-end moderno em um único dispositivo.</p>
<p>Estamos desenvolvendo e aperfeiçoando o <a href="http://rivendel.com.br/" target="_blank" rel="noopener noreferrer"><strong>The Rivendel Way</strong></a> apostando pesadamente que no Capítulo Front-end o PWA vai ser a solução para unificar tudo.</p>
<h3>Front-end é o dispositivo que foi desenhado pra ser.</h3>
<p>A programação Front-end nasceu no primeiro terminal, se é que não dá pra considerar desde o cartão perfurado.</p>
<p>No Desktop a grande facilidade encontrada foi a padronização de um Toolkit fornecido pelo próprio SO, você não tinha que desenhar sua tela, apenas usar a UI fornecida, os <strong>Patterns</strong> vem desde os anos 70 — como MVC — e o estado da arte já estava encontrado ali nos anos 90.</p>
<h3>Temos que reescrever todo o código Mobile a cada 2 anos</h3>
<p>Todo mundo aceita, mesmo a contragosto, reescrever toda a aplicação a cada dois anos porque não tem o que fazer, os dispositivos nem existem mais e os novos provavelmente dão algum &#8220;probleminha&#8221; de compatibilidade desde o SO a libs específicas.</p>
<p>Alguém citou IOS? Eu que não.</p>
<p>Qual o porquê desse mesmo comportamento não ser aceito pra Front-end Web?</p>
<p>Os dispositivos, conhecidos como navegadores, demoram um pouco mais e mantém uma certa retrocompatibilidade com a sua receita de bolo na construção da UI artesanal que ele não oferece.</p>
<p>Resultado: um time Front Web, um time Front Android e um time Front Ios P-O-R P-R-O-D-U-T-O.</p>
<h3>Responsivo</h3>
<p>Um dos fatores mais importantes na minha opinião é começar ponto a ponto a partir do responsivo do seu produto/site.</p>
<p>Se tem um mínimo necessário, pra mim seria isso e acredito que todo mundo concorde com isso, sem &#8220;responsividade&#8221; não dá pra nem conversar?</p>
<blockquote>
<p>Mas Milfont, pra quê falar o óbvio em pleno 2107?</p>
</blockquote>
<p>Acredite, não é ainda, por incrível que pareça. Sigamos.</p>
<h3>Qual o Porquê de não esquecermos do aspecto App?</h3>
<p>Voltando ao Post do Sergio, Web é importante como plataforma, unificar esses times e ecossistema de tecnologias, além de fornecer a mesma experiência para o usuário sem o punir com instalação, entre outras coisas.</p>
<p>Mas só pensar em Web não faremos essa mudança, precisamos indexar na lista de Apps dos dispositivos móveis, ter uma responsividade ao acessar um link em um Push Notification (*) , compartilhar entre Apps, acessar com facilidade recursos do aparelho (ou no caso do IOS pelo menos acessar) e pequenos detalhes que só lembramos na hora de implementar.</p>
<p>(*) (quem está usando o Twitter no Android já deve ter percebido que tem vezes que não abre a App quando clica na mensagem)</p>
<h3>Progressivo</h3>
<p>Enquanto o PWA não fornecer o aspecto App completo, não será aceito.</p>
<p>Precisamos <strong>progressivamente</strong> entregar um valor ao usuário mais próximo do que ele já tem hoje, que no Mobile nativo já lembra muito aquele estado da arte que o Desktop entregou nos anos 90.</p>
<h3>Já estamos prontos?</h3>
<p>Semana que vem vou palestrar no <a href="https://braziljs.org/conf/" target="_blank" rel="noopener noreferrer">BrazilJS</a> sobre as vitórias alcançadas do CEJS (primeiro semestre) pra cá, enquanto isso fique com as derrotas:</p>
<p>Pra finalizar, se ouviu o podcast referenciado no início do texto, vai perceber que profetizei o PWA no IOS (que é o que falta) até 31 de dezembro, a Apple está correndo atrás pra não furar o prazo.</p>
<hr />
<div class="embed-twitter">
<blockquote class="twitter-tweet" data-width="450" data-dnt="true">
<p lang="en" dir="ltr">This day goes to <a href="https://twitter.com/hashtag/PWA?src=hash&amp;ref_src=twsrc%5Etfw">#PWA</a> history! Initial steps of <a href="https://twitter.com/hashtag/ServiceWorker?src=hash&amp;ref_src=twsrc%5Etfw">#ServiceWorker</a> in <a href="https://twitter.com/hashtag/Safari?src=hash&amp;ref_src=twsrc%5Etfw">#Safari</a>: <a href="https://t.co/WU4Uin6ZHP">https://t.co/WU4Uin6ZHP</a>. Kudos to <a href="https://twitter.com/bradeeoh?ref_src=twsrc%5Etfw">@bradeeoh</a> &amp; all <a href="https://twitter.com/webkit?ref_src=twsrc%5Etfw">@webkit</a> team! <a href="https://t.co/FFf95pDxde">pic.twitter.com/FFf95pDxde</a></p>
<p>&mdash; Maxim «PWAdvocate» Salnikov (@webmaxru) <a href="https://twitter.com/webmaxru/status/893027996659060738?ref_src=twsrc%5Etfw">August 3, 2017</a></p>
</blockquote>
<p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Criando uma cultura de sucesso na sua empresa</title>
		<link>https://www.milfont.org/tech/2017/07/25/criando-uma-cultura-de-sucesso-na-sua-empresa/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 25 Jul 2017 13:33:13 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/07/25/criando-uma-cultura-de-sucesso-na-sua-empresa/</guid>

					<description><![CDATA[Empresas e funcionários, vamos conversar sobre nossa relação? Quero demonstrar como criar uma cultura de sucesso mantendo e atraindo os melhores, os empolgando constantemente e instigando o crescimento junto ao negócio. Em primeiro lugar, entenda: na empresa somos todos mercenários, não membros da família como o DHH escreveu brilhantemente. Como? Pra explicar isso vamos precisar [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Empresas e funcionários, vamos conversar sobre nossa relação?</p>
<p>Quero demonstrar como criar uma cultura de sucesso mantendo e atraindo os melhores, os empolgando constantemente e instigando o crescimento junto ao negócio.</p>
<p>Em primeiro lugar, entenda: na empresa somos todos mercenários, <a href="https://m.signalvnoise.com/the-company-isnt-a-family-d24f26c3f3fe" target="_blank" rel="noopener noreferrer">não membros da família como o DHH</a> escreveu brilhantemente. Como? Pra explicar isso vamos precisar de um preâmbulo histórico.</p>
<p>Até a invenção do capitalismo, todas as relações de trabalho giravam em torno da terra, ou seja, você tem um <a href="https://pt.wikipedia.org/wiki/Suserania" target="_blank" rel="noopener noreferrer">suserano</a> que é dono da terra por direito religioso ou social e vassalos que devem respeito e obediência ao seu nobre. [1]</p>
<p>Existe uma diferença substancial entre vassalo e escravo, o primeiro pode ser outro nobre inclusive. Você trabalha por Honra e satisfação ao seu suserano, não por um salário, antigamente não existiam sequer forças armadas, eram os vassalos e nobres quem formavam o exército — com excessão do exército Romano em um curto período de tempo e com suas particularidades.</p>
<p>Em contrapartida o suserano tinha a obrigação de fornecer segurança, alimentação e todos os recursos necessários a subsistência de seus vassalos.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="2080" data-height="2052" src="https://cdn-images-1.medium.com/max/800/1*FCM9KoCjpz6gLL5vHcjJPQ.jpeg"><figcaption class="wp-caption-text">O motivo real para a invenção da agricultura</figcaption></figure>
<p><span>H</span><strong>omens livres</strong> eram basicamente <strong>mercenários</strong>, aqueles que trabalhavam apenas para quem pagava mais, não necessariamente apenas pelo dinheiro, a reputação de um bom trabalho valia mais que seu peso em ouro pra conquistar trabalhos futuros e satisfazer o ego entre seus pares, noções de valores marginais já disseminados.</p>
<p>Na transição entre o feudalismo e o capitalismo surgiram outros pequenos artesãos, ordens e sociedades de outras especialidades, mas todos girando em torno da guerra e discriminados como mercenários.</p>
<h3>Invenção do Capitalismo</h3>
<p>Fomos nos ajustando como sociedade pela mudança sócio-cultural das relações de trabalho a partir da invenção da indústria e dos serviços entre leis trabalhistas e teorias financeiras sobre essa difícil relação, no fim das contas <strong>somos homens livres</strong> que <strong>trabalham por dinheiro</strong> ou uma <strong>boa reputação</strong> como os antigos mercenários, mas o ranço do significado da palavra nos impede de enxergarmos como tais e nos submetermos na maioria das vezes como vassalos.</p>
<p>Ao mesmo ponto que o <strong>empreendedor</strong> é dono do novo conceito de terra e precisa entender que <strong>contrata mercenários</strong>, <strong>não é suserano</strong> de seus colaboradores. [2]</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="800" data-height="559" src="https://cdn-images-1.medium.com/max/800/1*xx3gWb9QL2qKY1DyTHytvA.jpeg"><figcaption class="wp-caption-text">source (fonte) <a href="https://www.linkedin.com/pulse/20140630194932-24818861-could-wild-capitalism-be-headed-to-extinction" target="_blank" rel="noopener noreferrer">https://www.linkedin.com/pulse/20140630194932-24818861-could-wild-capitalism-be-headed-to-extinction</a></figcaption></figure>
<h3>Invenção do termo Colaboradores</h3>
<figure>
<p><img decoding="async" data-width="670" data-height="345" src="https://cdn-images-1.medium.com/max/800/1*4-Tl2TEEQPQogBD_D9EvlA.png"><br />
</figure>
<p>Os departamentos de Recursos Humanos tentaram suavizar a visão entre um vassalo e um mercenário e inventaram o termo colaborador que incuta a noção que dinheiro não é envolvido, mas também não é descartado. Ou seja, não define na verdade o que você faz e nem quais responsabilidades são induzidas a quem é o dono do capital.</p>
<p>Colaborador pode ser tanto um fornecedor, quanto um funcionário ou um co-fundador. Mas na empresa existem os sócios e os funcionários apenas, estes divididos em hierarquias de chefia, seja técnica ou absolutamente burocrática.</p>
<h3>Conduza a carreira</h3>
<p>Vamos começar pelo dono do capital e da alta gestão, ao trabalhar o ego de seus funcionários vocês conseguem &#8220;<a href="http://www.revistapazes.com/voce-e-capaz-de-corrigir-sem-ofender-e-orientar-sem-humilhar/" target="_blank" rel="noopener noreferrer">corrigir sem ofender e orientar sem humilhar?</a>&#8220;.</p>
<p>Tem certeza? <a href="https://medium.com/@milfont/continuous-feedback-score-9270d16b4827" target="_blank" rel="noopener noreferrer">Que tal medir o nível de satisfação dos seus colaboradores</a>?</p>
<h4>Plano de Carreiras</h4>
<p>Não acredite em empresas horizontais, <a href="http://epocanegocios.globo.com/Revista/Common/0,,EMI282586-16366,00-A+UNIAO+PELA+DISPARIDADE.html" target="_blank" rel="noopener noreferrer">níveis de hierarquia e disparidade salarial são vistos como algo justo</a>. Tem <a href="http://opr.sagepub.com/content/1/1/32.full.pdf" target="_blank" rel="noopener noreferrer">trabalhos</a> <a href="http://www-bcf.usc.edu/~nathanaf/power_without_status.pdf" target="_blank" rel="noopener noreferrer">científicos</a> demonstrando isso. Um bom <strong>plano de carreiras</strong> com regras claras de como o funcionário crescerá na sua empresa.</p>
<h4>Harmonia no ambiente de trabalho</h4>
<p>Não ofereça puff e cadeiras confortáveis como diferencial, não está contratando crianças, <strong>um ambiente saudável é o que desafia sem explorar,</strong> não queira vender como um ambiente familiar que as pessoas viverão naquele panfleto da bíblia com leões e tigres convivendo entre seres humanos, lugar de trabalho é para a boa competição.</p>
<p><strong>A harmonia é atingida quando todos sabem seus papéis e possuem a autonomia necessária para desempenhar</strong>, os inaptos sairão normalmente, mas não causará o infortúnio de perder os melhores. Não <a href="http://content.usatoday.com/communities/gameon/post/2011/05/inside-espn-book-the-feuds-the-egos-and-lebron-james-decision/1" target="_blank" rel="noopener noreferrer">acredite em evitar choques de visões</a> e opiniões fortes, isso <a href="http://www.amazon.com/Those-Guys-Have-All-Fun/dp/0316043001" target="_blank" rel="noopener noreferrer">não evitará possíveis desentendimentos</a> e talvez surta o <a href="http://epocanegocios.globo.com/Revista/Common/0,,EMI262446-16363,00-O+ODIO+CRIATIVO.html" target="_blank" rel="noopener noreferrer">efeito contrário</a>.</p>
<h4>Networking e relacionamento</h4>
<p>Invista no seu funcionário, o desafie a <strong>apresentar palestras</strong>, participar de conferências e se tornar o <strong>mais apto</strong> naquele aspecto técnico — mas pague as despesas, ao demonstrar o trabalho que fez na sua empresa ele se esforçará pra <strong>coordenar e organizar da melhor forma possível,</strong> afinal ele vai provar seus méritos a seus pares que serão bem criteriosos. Tire do Budget de Marketing pra financiar.</p>
<p>Atrair os melhores (e principalmente os manter) ainda vai ajudar <a href="http://epocanegocios.globo.com/Revista/Common/0,,EMI277664-16366,00-QUEM+QUER+DIVERSIDADE.html" target="_blank" rel="noopener noreferrer">a atrair os pares</a>.</p>
<h4>Tamanho de Time</h4>
<p>Todo mundo quer fazer Cosplay da cultura de Squad do Spotify, mas você está tentando emular ou absorvendo os aspectos culturais?</p>
<p>O mais importante para o time é que você tem que preencher os papéis, não os transformar em cargos, isso é paralelo no plano de carreiras. Scrummaster não deve ser cargo (foi engano se já está na CBO).</p>
<h4>Invista no treinamento e especialização</h4>
<p>Queira o <a href="https://en.wikipedia.org/wiki/Landsknecht" target="_blank" rel="noopener noreferrer">melhor mercenário no time</a> que seu dinheiro pode pagar, se não dá pra bancar um salário gordo devido ao mercado e <strong>Market Share</strong> que possui, compre uma conta na <a href="https://www.alura.com.br/" target="_blank" rel="noopener noreferrer">Alura</a> e um pacote na <a href="https://www.casadocodigo.com.br/" target="_blank" rel="noopener noreferrer">Casa do Código</a> pra eles como complemento, alie com o tópico sobre palestras e Networking.</p>
<p>Coordene o que vão estudar, em vez de soltar 20% de horas pra pesquisa aleatória, promova ações sólidas como a resolução de um problema que seu produto/serviço atua e patrocine um Hackathon pra isso.</p>
<p>Os conselhos usam exemplos bem pontuais da área de desenvolvimento de software, <strong>porte e adapte para o seu segmento</strong>.</p>
<figure class="wp-caption">
<p><img decoding="async" data-width="1280" data-height="694" src="https://cdn-images-1.medium.com/max/2560/1*stUp9gi3dQcFDuytt_FC_A.jpeg"><figcaption class="wp-caption-text">Fonte: <a href="https://en.wikipedia.org/wiki/Landsknecht" target="_blank" rel="noopener noreferrer">https://en.wikipedia.org/wiki/Landsknecht</a></figcaption></figure>
<h3>Conselho para os colaboradores</h3>
<p>Você trabalha em uma empresa que hora extra é o normal e não recebe por isso?</p>
<p>Trabalha sob pressão e tem que se virar pra aprender seja lá o que for?</p>
<p>Ganha pouco e ainda por cima tem o risco constante de perder o emprego sob ameaças?</p>
<p>Não tem as conquistas valorizadas e quando erra isso é evidenciado?</p>
<p>Procure empresas que façam o aconselhado aqui e parem de trabalhar como vassalos, não acredite em empresas que se vendem como famílias ou vai viver sob mesada o resto da vida.</p>
<h4>Citações</h4>
<p>[1] Um livro excelente focado no entendimento entre as eras comerciais e termos a noção da cultura que girava em torno da terra.</p>
<figure>
<p><img decoding="async" data-width="200" data-height="295" src="https://cdn-images-1.medium.com/max/800/1*wgHP_dQaSgaMlkUR3-w--w.jpeg"><br />
</figure>
<p>[2] O melhor livro para entender sobre capitalismo.</p>
<div class="embed-amazon"><iframe loading="lazy" title="The Tycoons: How Andrew Carnegie, John D. Rockefeller, Jay Gould, and J. P. Morgan Invented the American Supereconomy (English Edition)" type="text/html" width="450" height="550" frameborder="0" allowfullscreen style="max-width:100%" src="https://ler.amazon.com.br/kp/card?preview=inline&#038;linkCode=kpd&#038;ref_=k4w_oembed_BgnTfDNnQYdFkX&#038;asin=B003JH86HU&#038;tag=kpembed-20"></iframe></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Continuous Feedback Score</title>
		<link>https://www.milfont.org/tech/2017/07/11/continuous-feedback-score/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 11 Jul 2017 16:40:22 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.milfont.org/tech/2017/07/11/continuous-feedback-score/</guid>

					<description><![CDATA[Há poucos dias houve um post d[x] Coraline Ada, um[x] dev que trabalhou no github e provocou mais uma longa discussão sobre a já sofrível relação de trabalho nos dias de hoje com o aumento da complexidade social e a divulgação imediata dos assédios. Não vou entrar no mérito das discussões e pular direto pra [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Há<a href="http://where.coraline.codes/blog/my-year-at-github/" target="_blank" rel="noopener noreferrer"> poucos dias houve um post</a> d[x] <a href="https://github.com/coralineada" target="_blank" rel="noopener noreferrer">Coraline Ada</a>, um[x] dev que trabalhou no github e provocou mais uma longa discussão sobre a já sofrível relação de trabalho nos dias de hoje com o aumento da complexidade social e a divulgação imediata dos assédios.</p>
<p><a href="https://www.theguardian.com/technology/2017/jul/09/silicon-valley-sexual-harassment-women-speak-up" target="_blank" rel="noopener noreferrer">Não vou entrar no mérito das discussões</a> e pular direto pra sugestões de como enfrentarmos os problemas. Negar que sempre houve assédio nas relações de trabalho não funciona, mesmo quando achávamos que não existia racismo, homofobia, machismo, entre outras coisas.</p>
<h4>Como se precaver?</h4>
<p>Como fica a empresa diante de todas essas denúncias e a exposição de sua marca?</p>
<p>Lembre que a marca (brand) perde valor, o humor dos funcionários (ou colaboradores, pra incluir todos os credos) cai e como consequência a produtividade, a cobrança dos clientes intensifica por uma expectativa de resolução e lá se sabe quais mais prejuízos em cada confusão instaurada.</p>
<p>Uma saída encontrada e praticada para as empresas é criarem programas de recuperação da situação, o mais famoso é um programa de contenção depois que aconteceram os problemas, o <a href="https://www.thebalance.com/performance-improvement-plan-contents-and-sample-form-1918850" target="_blank" rel="noopener noreferrer">Performance Improvement Plan</a> (doravante denominado PIP).</p>
<p>Mas um ponto que entendemos, se a pessoa entrou em PIP, algum prejuízo já aconteceu. Piora se quem for fazer coaching/acompanhamento for do mesmo time e estrutura, porque alguma carga pessoal já existe.</p>
<h4>Transparência</h4>
<p>Lembra do NPS?</p>
<p>Então, <a href="https://endeavor.org.br/nps/" target="_blank" rel="noopener noreferrer">se não lembra ou não conhece</a>, a grosso modo de explicar é uma métrica pra saber a lealdade dos seus cliente, existe uma versão pra medir a <a href="https://www.linkedin.com/pulse/employee-nps-golden-metric-performance-review-patrick-deglon" target="_blank" rel="noopener noreferrer">lealdade também dos funcionários</a>.</p>
<figure>
<p><img decoding="async" data-width="800" data-height="464" src="https://cdn-images-1.medium.com/max/800/1*_Hjiy4lR27BGWQik-eLkfA.png"><br />
</figure>
<p>É bacana pra acompanhar o gráfico de quem está tendencioso a entrar em PIP. O acompanhamento da variação do seu NPS já é um forte indicador do humor em relação a empresa e aos pares.</p>
<p>O ideal é que cada um saiba sua nota e os objetivos claros que estão sendo mensurados, pelo menos pra abrir uma rodada de 1 pra 1 com seus pares ou superiores antes que o problema aconteça.</p>
<p>Mas isso não é o suficiente para identificar possíveis problemas, quanto de carga emocional existe nas relações que não consigo pegar no eNPS?</p>
<h4>Processos subjetivos</h4>
<p>Já trabalhei em times que medíamos frequentemente e cometemos o deslize de não desligar quando ultrapassava o ponto de recuperação por ignoramos o gráfico de acompanhamento dos resultados, isso causa um problema de contaminação na equipe.</p>
<p>Basta um insatisfeito por longo tempo pra causar um descontentamento geral (citation needed).</p>
<p>Alguns pontos são urgentes e difíceis de medir num processo objetivo e, quando já viu, passou daquele ponto de chamar pra conversa e evitar o PIP.</p>
<h4>As vezes o time que é inadequado</h4>
<p>Já trabalhei em equipes que trocamos algumas pessoas com times diferentes e funcionaram muito bem com outros pares, acontece. Não tem como evitar o aspecto cultural que se forma e cobrar inclusão irrestrita é incorrer em outros erros (polêmica pra post próprio).</p>
<p>O ideal que a própria equipe tenha autonomia necessária para rodar o seu processo de acompanhamento, sem a necessidade da empresa se envolver, mas para isso os líderes e board de direção precisam garantir.</p>
<h4>Como meço o subjetivo?</h4>
<p>Pra abrir uma rodada de processo subjetivo ou pré-PIP, não precisa de muita coisa, um responsável por coordenar abre uma campanha de feedback ao menor sinal de insatisfação (<strong>Come on</strong> <strong>baby</strong>, você sabe do que estou falando, aquelas conversas no café).</p>
<p>Basta todos informarem 3 (magic number) pontos negativos que incomodam naquela pessoa mesmo que os indicadores objetivos estejam sinalizando uma normalidade com menos detratores.</p>
<figure>
<p><img decoding="async" data-width="1314" data-height="1732" src="https://cdn-images-1.medium.com/max/800/1*U5Uf5VQoksZ5ALCqLLQkRA.png"><br />
</figure>
<p>Computa-se os 3 mais relevantes e estabelece Keys objetivas ou claras para dar tempo de trabalhar a recuperação e esclarece o avaliado.</p>
<figure>
<p><img decoding="async" data-width="1206" data-height="1755" src="https://cdn-images-1.medium.com/max/600/1*FXOfDxDsFOwC4hjbWE9oAQ.png"><br />
</figure>
<figure>
<p><img decoding="async" data-width="1092" data-height="1281" src="https://cdn-images-1.medium.com/max/600/1*PlgGac4ScTXgFBktL6X3tA.png"><br />
</figure>
<p>Em uma segunda rodada de avaliação (um ou dois meses depois) se mede o resultado alcançado.</p>
<figure>
<p><img decoding="async" data-width="1499" data-height="1810" src="https://cdn-images-1.medium.com/max/800/1*AvQLrfAFFqufSgFofB8dZQ.png"><br />
</figure>
<p>Como escrevi anteriormente, existem pontos que são comportamentais e culturais que afetam as relações e nenhum dos dois lados estão dispostos a mudarem.</p>
<p>O que resta pra empresa é agir antes que aconteça o inevitável e blindar o time inteiro.</p>
<h4>Que momento é adequado pra rodar o Feedback subjetivo?</h4>
<p>Depende da estrutura da empresa, pode ser um líder técnico que identifica ou o próprio funcionário que sente algo diferente, aí depende.</p>
<p>Transparência e autonomia são as chaves, talvez só trabalhar isso já resolva o problema.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
