Skip to content

Aprender, desaprender e reaprender

Aprender, desaprender e reaprender

Geração Entenda
Baby Boomers (Explosão de Bebês) Valorizam um emprego fixo e estável, se importando mais com sua experiência do que com sua capacidade de inovação.
Preferência por qualidade e não quantidade.
Não é influenciado por terceiros;
Geração "X" Filhos dos Baby Boomers
Busca da individualidade sem a perda da convivência em grupo;
Maturidade e escolha de produtos de qualidade e inteligência;
Ruptura com as gerações anteriores e seus paradigmas;
Busca maior por seus direitos;
Procura de liberdade.
Geração "Y" (Milennials) Geração que desenvolveu-se em uma época marcada pelo avanço da tecnologia e prosperidade econômica.
Estão sempre conectados;
Procuram informação fácil e imediata;
Vivem em redes de relacionamento virtuais;
Compartilham tudo o que é seu: dados, fotos, hábitos. etc;
Tem um grande fluxo de informações diariamente.
Geração Z Nativas digitais , estando desde pequenos já familiarizadas com a internet e todas suas possibilidades, com o compartilhamento de arquivos constantes, com os smartphones, tablets, e principalmente estando sempre conectadas e ligadas ao que acontece em tempo real.
Desapegado das fronteiras geográficas;
Demasiados ansiosos;
Falta de intimidade e relação social;
Necessidade extrema de interação e exposição de opinião.
Geração Alpha vive um momento em que se preza a diversidade e a espontaneidade.
Hiperconectividade;
Novas configurações familiares;
Independência e autonomia;
Estímulos constantes;
Preocupação com a saúde mental;
Valorização das experiências;

Defina limites claros para ajudar você a manter o equilíbrio e permanecer atualizado e produtivo a longo prazo.

Ecologia pessoal

Conforme descrito pelo Rockwood Leadership Institute , envolve :

  • Manter equilíbrio, ritmo e eficiência para sustentar nossa energia ao longo da vida.
  • "Eu não conseguia me concentrar ou começar uma tarefa. Eu tinha falta de empatia pelos usuários".
  • Identifique suas motivações: Entender suas motivações pode ajudar a priorizar o trabalho de uma forma que o mantenha engajado e pronto para novos desafios;
  • Reflita sobre o que faz você ficar desequilibrado e estressado:
    • Falta de feedback positivo?
    • Não dizer 'não';
    • Trabalhando sozinho;
    • Pouco tempo ou recursos para a realização das atividades?
    • Demandas conflitantes;
  • Lista de verificação de esgotamento.

Seja feliz

  • Descanse e recarregue as energias;
  • Tire os fins de semana para relaxar e rejuvenescer;
  • Defina limites: Você não pode dizer sim a todas as solicitações.

Por que contribuir para o código aberto

Contribuir com o código aberto pode ser uma maneira gratificante de aprender, ensinar e adquirir experiência em praticamente qualquer habilidade que você possa imaginar.

  • Melhore as habilidades existentes;
  • Conheça pessoas interessadas em coisas semelhantes;
  • Encontre mentores e ensine outros;
  • Aprenda habilidades interpessoais;

Anatomia de um projeto

Um projeto típico tem os seguintes tipos de pessoas:

  • Autor: A pessoa/pessoas ou organização que criou o projeto
  • Proprietário: A(s) pessoa(s) que tem(têm) propriedade administrativa sobre a organização ou repositório (nem sempre o mesmo que o autor original)
  • Mantenedores: Colaboradores responsaveis por conduzir a visão e gerenciar os aspectos organizacionais do projeto (eles tambem podem ser autores ou proprietarios do projeto).
  • Colaboradores: Todos que contribuíram com algo para o projeto
  • Membros da Comunidade: Pessoas que usam o projeto. Eles podem ser ativos em conversas ou expressar sua opinião sobre a direção do projeto;

Documentação

Esses arquivos geralmente são listados no nível superior de um repositório.

  • LICENÇA: Por definição, todo projeto de código aberto deve ter uma licença de código aberto . Se o projeto não tiver uma licença, ele não é de código aberto.
  • README: O README é o manual de instruções que dá as boas-vindas aos novos membros da comunidade no projeto. Ele explica por que o projeto é útil e como começar.
  • CONTRIBUTING: Enquanto os READMEs ajudam as pessoas a usar o projeto, os documentos de contribuição ajudam as pessoas a contribuir para o projeto. Ele explica quais tipos de contribuições são necessárias e como o processo funciona. Embora nem todo projeto tenha um arquivo CONTRIBUTING, sua presença sinaliza que este é um projeto acolhedor para contribuir. Um bom exemplo de um Guia de Contribuição eficaz seria o do repositório Docs da Codecademy .
  • CODE_OF_CONDUCT: O código de conduta define regras básicas para o comportamento dos participantes associados e ajuda a facilitar um ambiente amigável e acolhedor. Embora nem todo projeto tenha um arquivo CODE_OF_CONDUCT, sua presença sinaliza que este é um projeto acolhedor para contribuir.
  • Outra documentação: Pode haver documentação adicional, como tutoriais, orientações ou políticas de governança e etc.

Discussões

  • Solicitações de pull: Onde as pessoas discutem e revisam alterações que estão em andamento, seja para melhorar a linha de código de um colaborador, o uso da gramática, o uso de imagens, etc.
  • Fóruns de discussão ou listas de discussão: Podem usar esses canais para tópicos de conversação (por exemplo, "Como eu…" ou "O que você acha sobre…" em vez de relatórios de bugs ou solicitações de recursos).
  • Canal de bate-papo síncrono: Slack ou Teams.

Analise o Projeto

  • Ele tem uma licença? Normalmente, há um arquivo chamado LICENSE na raiz do repositório.
  • Quando foi o último commit?
  • Quantos colaboradores o projeto tem?
  • Com que frequência as pessoas fazem commits? (No GitHub, você pode encontrar isso clicando em "Commits" na barra superior.)

Quantas questões em aberto existem?

  • Os mantenedores respondem rapidamente aos problemas quando eles são abertos?
  • Há discussão ativa sobre as questões?
  • Os problemas são recentes?
  • Os problemas estão sendo fechados? (No GitHub, clique na aba "fechados" na página Problemas para ver os problemas fechados.)

Comunicando-se

Não importa se você é um colaborador ou está tentando ingressar em uma comunidade: "trabalhar com outras pessoas é uma das habilidades mais importantes que você desenvolverá no código aberto".

  • Dê contexto: Ajude outros a se atualizarem rapidamente.
  • Faça sua lição de casa antes: Antes de pedir ajuda, certifique-se de verificar o README, a documentação, os problemas (abertos ou fechados), a lista de discussão de um projeto e pesquise na internet por uma resposta.
  • Mantenha as solicitações curtas e diretas.
  • Não tem problema fazer perguntas (mas seja paciente!).
  • Acima de tudo, mantenha a classe.

Contribua com o guia.de.código.aberto

Gentileza gera Gentileza - José Datrino, também conhecido com o Profeta Gentileza.

Catalisando uma Revolução Cultural ("eu" para o "nós")

  • À medida que navegamos no cenário de TI, nesta rápida evolução, frequentemente nos encontramos na busca incessante de ficar à frente, com tecnologias de ponta e metodologias inovadoras (TRAM)
  • Não aprendemos a compartilhar, mas de fato, precisamos reajustar nossos instrumentos, e essa afinação exige uma mudança cultural que considero significativa, mas como?
  • Sair de apresentações solo para um concerto harmonizado;
  • Reuniões e discussões devem engrandecer assistência e a cooperação;
  • Talvez esta mudança de paradigma do "eu" para o "nós" possa revolucionar a cultura de trabalho, tornando-a mais inclusiva, solidária e bem-sucedida.

Como preconizado no Scrum

  • A formação de times e organizações multifuncionais e de alto desempenho, onde pessoas de várias funções, conhecimentos se envolvem umas com as outras em um espírito de ajuda e cooperação, ou seja, quando fomentamos o sucesso uns dos outros, inadvertidamente lançamos as bases para o nosso próprio sucesso.

Como gostamos de fluxos, podemos:

  • Objetivo: Promover uma cultura proativa e cooperativa pela a união da equipe, aumente a produtividade e impulsione o sucesso coletivo na organização.
  • Identificar a necessidade: Incentive discussões abertas e comunicação transparente dentro da equipe para entender melhor as funções e os desafios de cada um.
  • Ofereça ajuda: Ofereça sua experiência, tempo e recursos para ajudar a resolver o problema ou superar o obstáculo.
  • Colaboração Contínua(CC): Promover uma cultura de colaboração, envolvendo colegas com diversas habilidades e conhecimentos para contribuir na resolução do problema.
  • Compartilhe Conhecimento (CC): Compartilhe conhecimento e experiências abertamente para ajudar a equipe a crescer junto.
  • Reconhecimento e Esforços(RE): Reconheça e aprecie os esforços feitos pelos membros da equipe para serem úteis.
  • Melhoria Contínua (MC): Incentive cada membro da equipe a sugerir melhorias que possam tornar o fluxo de trabalho mais eficiente e benéfico.
  • Um ambiente é degradado, quando regras não são seguidas;
  • Os fins não justificam os meios: mais importante do que definir métricas de sucesso para a sua empresa é o que você coloca em prática pra atingir esses resultados.
  • Em algum lugar, há alguém fazendo algo totalmente novo e disruptivo que, potencialmente, pode mudar a vida de bilhões de pessoas, as tecnologias estão surgindo e se popularizando em uma velocidade estonteante, ou seja, pressão por inovação.

Transformação digital e inovação constante

  • Two Pizza Teams - Equipes pequenas e autônomas;
  • A tecnologia é uma ferramenta poderosa, mas o segredo é usá-la com inteligência e estratégia.
  • Experimentar e aprender: Errar faz parte do processo!
  • Tecnologia com propósito: A inovação deve estar alinhada com a visão da sua empresa.
  • Invista em conhecimento: Treinamentos e capacitação são essenciais para preparar sua equipe para o futuro.

Habilidades humanas e inteligência emocional

  • A criatividade, empatia, comunicação clara e a capacidade de lidar com ambiguidades se tornarão ativos de altíssimo valor para as empresas.
  • Como desenvolver e incentivar a inteligência emocional?
    • Feedback contínuo: positivo ou construtivo;
    • Empatia estruturada: compreender profundamente as necessidades de clientes e colaboradores (DevEx, Innersource);
  • Treinamentos focados em inteligência emocional: empatia, gestão de conflitos e autoconhecimento.

Sustentabilidade e Responsabilidade social

  • A Geração Z e os Millennials exercem influência cada vez maior, exigindo que as empresas não sejam apenas rentáveis, mas também ambiental e socialmente comprometidas.
  • Incorporar valores sustentáveis em todos os níveis — da cultura interna às políticas de fornecimento, comunicar com transparência, Equilibrar lucro e propósito.

Gestão de riscos e resiliência organizacional

  • Construção de uma verdadeira arquitetura da resiliência, com pilares como: Agilidade, Planos de continuidade e Diversificação.

Liderança Inclusiva e Diversidade

  • Capacitar para a inclusão (racismo, sexismo, homofobia, etarismo);
  • Dar voz, criando fóruns, comitês e espaços onde as pessoas se sintam à vontade para propor soluções e trazer visões diversas para a organização;

Aprendizado Contínuo e Desenvolvimento de talentos

  • As habilidades que possuímos hoje podem se tornar obsoletas em uma fração do tempo;
  • World Economic Forum, quase metade dos profissionais precisará se requalificar em 2025;
  • Amplie suas habilidades para cativar talentos a querer trabalhar contigo, exercita a mente e abre espaço para trabalhar a inovação em esferas diferentes e em ambientes cada vez mais competitivos.
  • Pensar fora da caixa precisará entender de perto as motivações individuais de cada pessoa de seu time, criando trilhas de desenvolvimento personalizadas, que alinhem aspirações pessoais às metas organizacionais.

Novas formas de trabalho e Equilíbrio entre vida profissional e pessoal

  • Quando os limites não estão bem estabelecidos, a chance de gerar um burnout é enorme;
  • Adotar estratégias que priorizem a flexibilidade sem perder a eficiência;
  • Flexibilidade responsável significa deixar bem claras as metas e resultados esperados;
  • Cultura de confiança ganha força e a avaliação passa a ser baseada no que é entregue, não nas horas "logadas" no computador;
  • Quando todo mundo está engajado, bem cuidado e focado no que realmente importa, a distância deixa de ser um problema e vira oportunidade.

Um jogador que faz um time grande é mais valioso do que um grande jogador. Perder-se no grupo para o bem do grupo, isso é trabalho em equipe. John Wooden (ex-técnico de basquete do UCLA Bruins)

Princípios da InnerSource

Plataformas de gerenciamento de código-fonte desempenham um papel crítico no desenvolvimento de software moderno, fornecendo um repositório central para armazenar, gerenciar e versionar código-fonte e documentação, bem como colaborar com o desenvolvimento de aplicações.

Quem pode ver o quê?

A transparência desempenha um papel vital em promover a colaboração e encorajar a participação.

O projeto deve ser estruturado para permitir que o maior número possível de indivíduos contribuam, sendo assim, é importante reconhecer que certas restrições e considerações que podem impedir que tudo seja abertamente acessível dentro da empresa.

Isso pode envolver a configuração de diferentes repositórios ou controles de acesso com base na sensibilidade do código, tipo de projeto ou funções individuais dentro da organização.

Security-First

  • Código sensível é transmitido para fora da empresa;
  • Todos os repositórios devem ser seu próprio silo;
  • O acesso para saber que cada repositório existe é concedido apenas individualmente pela alta gerência;
  • Repositórios sensíveis: aqueles cujo lançamento tem impacto no mercado ou é uma infraestrutura central com implicações de segurança;

Lberte-se

Tipo Área
Aprendizagem, copiar e colar (exemplos, modelos) x
Alteração, correção, adição ou atualização de conteúdo (sites, documentação) x
Construir dentro do serviço interno de outra pessoa x
Deduplicação. Não construa a mesma coisa duas vezes, construa uma solução geral. x
Garantir o alinhamento entre projetos relacionados x
Não se deixe atrasar por quem é o dono x
Use ferramentas reutilizaveis criadas para as circuntancia da empresa. x

Veja o mundo

mindmap
  root((Document as</br>Code DAC))
    CSDM (Common Service Data Model)
      RFC (Request for Comments)
      MAPA (Mapeamentos)
      REL (Relacionamentos)
    ITAM (IT Asset Management)
      (Procurement</br>Contratos)
      (Gerenciamento</br>Licenças)
      (Gerenciamento</br>Certificados)
    DEV (Desenvolvimento)
      (Funcionais)
      ::icon(fa fa-book)
      (Não Funcionais)
      ::icon(fa fa-laptop-code)
    IS (InnerSource)
       FRM (Framework)
       PRJ (Projetos)
    DEVREL (Developer Relations)
       COM (Comunidades)
       LVC (Live Coding)
       TKS (Talks)
       MNT (Mentorias)
       BLG (Blogs)

Introdução ao InnerSource O InnerSource é uma metodologia que aplica os princípios e as práticas do desenvolvimento de software de código aberto dentro dos limites de uma organização. O conceito foi cunhado por Tim O'Reilly em 2000, refletindo uma adaptação de práticas de código aberto para código proprietário, acessível apenas dentro de uma empresa ou um grupo colaborativo restrito de empresas. Em essência, o InnerSource permite que desenvolvedores de software contribuam para os esforços de outras equipes, promovendo a transparência e a abertura.

Por que Adotar o InnerSource?

As empresas adotam o InnerSource por diversas razões, incluindo:

  • Quebrar silos e gargalos: O InnerSource ajuda a superar silos em grandes organizações, que muitas vezes se formam devido à especialização e à cultura de propriedade. A comunicação entre as equipes pode ser minimizada após a definição de interfaces, levando a uma alta especialização e uma atitude de "nós contra eles".
  • Aumento da mobilidade da equipe e padronização de processos: A padronização de ferramentas, como plataformas de desenvolvimento distribuídas (GitHub Enterprise, Bitbucket, etc.) facilita a integração de novos funcionários ou a transferência de colaboradores. O ambiente de desenvolvimento e os processos tornam-se mais padronizados.
  • Melhoria na documentação: O InnerSource promove a criação de documentação acionável, indexada e pesquisável, que facilita a integração de novos contribuidores. A comunicação é arquivada, o que suporta a documentação de forma gradual.
  • Aumento da velocidade devido à documentação: O InnerSource permite uma velocidade maior devido à acumulação de documentação útil.
  • Compreensão mais profunda: O InnerSource promove uma compreensão mais profunda de como modularizar e construir conhecimento completo (full-stack), pois os contribuidores tornam-se Trusted Committers (TCs).
  • Satisfação dos desenvolvedores: A implementação de InnerSource aumenta a satisfação dos desenvolvedores.
  • Inovação e melhoria da qualidade: O InnerSource fomenta a inovação e permite que os funcionários proponham novas ideias. A colaboração e a transparência melhoram a qualidade do código.

Como Implementar o InnerSource

A implementação de InnerSource não é um método definido como Scrum, mas sim um paradigma que precisa ser adaptado ao contexto específico de cada organização. O "Apache Way" é um modelo base para o InnerSource, com os seguintes fundamentos:

  • Comunicação aberta: Toda a comunicação relacionada ao projeto deve ser pública, arquivada e pesquisável.
  • Revisão de código: As contribuições devem ser revistas por alguém com conhecimento suficiente para garantir a qualidade e orientar o contribuinte.
  • Meritocracia: As contribuições devem ser valorizadas com base no mérito.
  • Transparência: Todas as decisões e discussões devem ser transparentes.

Checklist para InnerSource

Antes de iniciar um projeto InnerSource, é importante considerar um checklist. Este é um exemplo de checklist, adaptado de várias fontes:

  • Preparação Pessoal:
    • Acreditar na viabilidade da estratégia para a empresa.
    • Compreender as mudanças necessárias para o sucesso do InnerSource.
  • Comunidade:
    • Existência de um líder de projeto com habilidades técnicas e sociais.
    • Disponibilidade de mentores para guiar os contribuidores.
    • Disposição para participar em fóruns e responder a perguntas.
    • Disposição para fazer revisões de código.
    • Entendimento por parte dos desenvolvedores que podem contribuir para projetos InnerSource.
    • Entendimento por parte dos desenvolvedores do valor de contribuir para outros projetos.
    • Presença de um espírito meritocrático.
  • Processos e Ferramentas:
    • Processos claros para contribuições.
    • Uso de ferramentas de gestão de código que permitam acesso transparente (GitHub, GitLab, etc.).
    • Implementação de Integração Contínua (CI) e Desenvolvimento Orientado por Testes (TDD).
  • Documentação:
    • Documentação acessível e organizada.
    • Criação de arquivos CONTRIBUTING.md, README.md e COMMUNICATION.md para guiar contribuidores.
  • Recursos Humanos:
    • Recompensas e critérios de promoção com base nos valores do InnerSource.
    • Caminhos de progressão de carreira que respeitem o papel na comunidade.
  • Configuração Organizacional:
    • Equipe de coordenação central.
    • Processo para registro de projetos InnerSource.
    • Tempo e recursos para os funcionários contribuírem para projetos externos.
    • Capacidade de medir e demonstrar ganhos e perdas das equipes.
    • Possibilidade de os funcionários escolherem projetos com base na sua experiência e motivação.
  • Liderança e Coordenação
    • Identificação de "campeões" ou entusiastas do InnerSource.
    • Definição clara do papel do Trusted Committer.
    • Definição de regras da casa (etiqueta) para reduzir atritos.
  • Transparência:
    • Canais de comunicação abertos (chat, listas de e-mail, etc.).
    • Documentação das decisões em listas de e-mail.
    • Portal central que forneça informações sobre os recursos.
  • Métricas:
    • Definição de métricas para monitorar o progresso (linhas de código, histórias de InnerSource, etc.).
    • Monitoramento do uso dos componentes InnerSource.

Padrões de InnerSource

O InnerSource Commons cataloga padrões para ajudar a implementar o InnerSource de forma eficaz. Alguns exemplos incluem:

  • Ferramentas de comunicação: Utilização de ferramentas de comunicação assíncrona.
  • Contribuidores Contratados: Envolvimento de colaboradores com um acordo de contribuição formal.
  • Líder de comunidade dedicado: Seleção de pessoas com habilidades de comunicação e técnicas.
  • Documentação dos princípios: Documentação e publicação dos princípios do InnerSource.
  • Extensões para crescimento sustentável: Oferecer mecanismos de extensão fora do projeto principal.
  • Mercado de "gigs": Criação de um mercado interno para anunciar necessidades de projetos InnerSource.
  • Suporte de grupo: Formação de um grupo de indivíduos interessados para manter um projeto.
  • Licença InnerSource: Criação de uma licença para partilhar código dentro da organização.
  • Portal InnerSource: Criação de um site para descobrir projetos InnerSource.
  • Modelo de Maturidade: Modelo para as equipes fazerem um auto-check e descobrirem padrões.
  • Elogiar participantes: Agradecer os contribuidores pelo seu tempo e esforço.
  • Comitê de revisão: Estabelecer um comitê para dar suporte à iniciativa e familiarizar gestores.
  • Serviço vs. Biblioteca: Definir se um projeto InnerSource é um serviço ou uma biblioteca.
  • Documentação base: Fornecer documentação em arquivos padrão.
  • Processo de lançamento padrão: Publicação consistente de notas de lançamento.
  • Começar como um experimento: Iniciar como um experimento com tempo limitado.
  • Decisão transparente usando RFCs: Utilização de Requests for Comments (RFCs).
  • Pontuação de atividade do repositório: Criação de pontuação para mostrar projetos ativos.

Considerações Finais

  • O InnerSource é um meio, não um fim, e deve estar alinhado com os objetivos de longo prazo da organização.
  • É importante monitorar o processo para identificar áreas de melhoria.
  • A implementação do InnerSource requer tempo, paciência e persistência.
  • O InnerSource pode coexistir com outras iniciativas como Agile.
  • O InnerSource Commons é um recurso valioso para quem procura implementar o InnerSource.

Este resumo oferece uma visão geral dos principais conceitos e etapas envolvidas na implementação do InnerSource. Para um estudo mais aprofundado, é aconselhável consultar as fontes originais e outros materiais de referência disponíveis.

=== "Não seja um Grande Líder"

    Um líder geralmente se foca em inspirar e guiar as pessoas, enquanto um chefe se concentra mais em exercer autoridade e gerenciar resultados.

    Muitas vezes, as pessoas podem ser boas em ambos os aspectos, mas a forma como lideram pode variar.

    | Grande Lider                        | Entenda |
    | ----------                           | ----------- |
    | Micromanager | O gerente micromanager tende a supervisionar cada detalhe do trabalho de sua equipe, controlando até mesmo as tarefas mais simples. Ele tem dificuldade em delegar responsabilidades e confia pouco na capacidade de seus colaboradores para tomar decisões. |
    | Credit Hog   | O gerente "credit hog" é aquele que busca assumir para si o crédito pelo trabalho e pelas conquistas de sua equipe, em vez de reconhecer o esforço coletivo. |
    | Blame Shifter | O gerente "blame shifter" é aquele que nunca assume a responsabilidade pelos erros, preferindo transferir a culpa para os outros. |
    | Inconsistent Leader | O líder inconsistente altera suas decisões e expectativas com frequência, criando confusão e incerteza na equipe.  |
    | The Bully Boss | O gerente agressivo ou "bully boss" utiliza a intimidação e o abuso de poder para controlar a equipe.  |
    | Plays Favorites | O gerente que favorece alguns membros da equipe em detrimento de outros cria um ambiente de trabalho desigual e divisivo.  |
    | Overly Critical |  Um líder excessivamente crítico foca demais nos erros e falhas, muitas vezes deixando de reconhecer os acertos e sucessos. |
    | Disconnected Leader | O gerente desconectado é aquele que está distante das necessidades e da realidade de sua equipe. |
    | Ego-Centric Leader | O líder centrado no próprio ego coloca suas próprias necessidades e ambições à frente das da equipe e da organização. |
    | Unethical Leader   |  O líder antiético adota comportamentos e práticas que não seguem princípios morais ou legais, como enganar, manipular ou tomar decisões baseadas em interesses pessoais. |