O Inner Source surgiu a partir do conceito de Open Source, conhecido como “software de código aberto”, mas adaptado ao ambiente empresarial. A Gartner, prevê que 40% das empresas de engenharia de software adotarão o Inner Source até 2026.
Ganhando relevância no nicho de tecnologia e entre pessoas desenvolvedoras, a metodologia possui benefícios e boas práticas a serem seguidas, além de desafios, que iremos aprofundar neste artigo. Acompanhe!
O que é Inner Source?
O conceito de Inner Source compartilha dos mesmos princípios do Open Source, só que pensando em ambientes em empresas.
Cada time e repositório tem suas próprias regras, boas práticas e guias de contribuição, isso não irá mudar. Porém, os variados times de uma organização podem contribuir em projetos de colegas, facilitando a colaboração e comunicação entre equipes.
Ao colaborar com o código de outros times, é possível aumentar a velocidade das entregas, adicionar novas funcionalidades e corrigir bugs, grandes ganhos para o ciclo de desenvolvimento.
A atitude participativa oferece o espaço e a oportunidade das pessoas desenvolvedoras estarem envolvidas mais ativamente nas decisões técnicas da empresa, uma mudança de paradigma para empresas de tecnologia.
Como funciona o Inner Source?
Por exemplo, em uma empresa que aplica as práticas de Inner Source, o time A disponibiliza componentes reutilizáveis para outras equipes, como o time B. Assim, este time não precisa criar uma funcionalidade similar à já existente, ele pode apoiar e contribuir diretamente no componente do time A.
Além disso, em vez de somente relatar erros encontrados para o time A, como aconteceria em uma empresa com práticas tradicionais, o time B pode corrigir os erros por conta própria.
Dessa forma, os times otimizam seu tempo e esforço, com componentes mais versáteis e reutilizáveis. O resultado é a redução da carga cognitiva, otimizando esforços, proporcionando mais produtividade e evitando a sobrecarga de trabalho de devs.
O que não é Inner Source?
Vale ressaltar também o que não contempla o conceito de Inner Source:
- As ferramentas disponibilizadas para gerenciar repositórios possibilitam o processo, mas não necessariamente que a colaboração aconteça.
- O desenvolvimento não é aberto para contribuições externas, o Inner Source é um compartilhamento dentro da própria empresa.
Antes de tudo, o Inner Source fomenta a prática de desenvolvimento de software dentro de uma empresa com empoderamento das pessoas colaboradoras, transparência e senso de comunidade. Por isso, não existe só uma forma de implementar a prática, cada empresa terá um cenário diferente.
E o que é Open Source?
Open Source é um movimento tecnológico a favor da descentralização e colaboração na produção de software e na forma que é disponibilizado ao público.
Nos projetos Open Source, qualquer pessoa visualiza, modifica, contribui e distribui o código-fonte, ou seja, a comunidade participa da solução de problemas e do processo de inovação do software ativamente
Inclusive, a ideia de colaboração faz parte da essência da internet: estima-se que 90% da internet rode no sistema operacional Linux e que de 65% a 95% dos códigos sejam de terceiros. Quando se fala em linguagem não é diferente: as mais populares do mundo são Open Source.
Isso implica em um grande impacto na engenharia de software e no desenvolvimento, afinal as principais linguagens, ferramentas ou banco de dados são Open Source.
Por que estabelecer práticas de Inner Source?
A pesquisa State of Inner Source – respondida por devs, profissionais de engenharia de software, especialistas em Inner Source, além de pessoas executivas – traz um panorama interessante sobre como a prática está sendo adotada ao redor do mundo:
- Do ponto de vista da empresa incentivar práticas Inner Source, 76% consideram que a empresa busca o compartilhamento de conhecimento entre pares. 74% também consideram que a empresa busca remover gargalos e silos que atrapalham o dia a dia do desenvolvimento. Já 69% consideram o reuso como motivação para colocar o Inner Source em prática.
- Do ponto de vista do time, 54% observa que as práticas ajudaram a conhecer mais pessoas na empresa. 49% sentiram mais satisfação no trabalho, e 39% identificou mais novos recursos que não tinham percebido antes e a mesma porcentagem também percebeu a melhora na qualidade do software.
Portanto, podemos concluir que práticas de Inner Source incentivam um ambiente colaborativo de desenvolvimento de software com as seguintes características:
- enriquece a troca de conhecimento e formação de autoridades técnicas;
- incentiva uma cultura de contribuições, críticas e opiniões;
- proporciona mais satisfação para as pessoas colaboradoras.
Esse conjunto de aspectos leva a códigos de mais qualidade e, consequentemente, softwares melhores, garantindo resultados melhores para as empresas, além de maior satisfação de clientes.
Por que implementar o Inner Source?
Após conhecer mais detalhes sobre os conceitos, quais são as maiores vantagens de implementar o Inner Source em uma empresa? Acompanhe abaixo:
Melhor comunicação
As práticas do Inner Source derrubam as barreiras entre times da mesma empresa, aproximando profissionais de desenvolvimento, facilitando a comunicação e incentivando a colaboração.
Além disso, é possível quebrar silos e diminuir gargalos, criando uma cultura saudável de cooperação e transparência, permitindo uma comunicação mais clara e objetiva.
Incentivo ao reuso
Com práticas de reuso, times de tecnologia otimizam tempo e esforço para se dedicarem a atividades mais estratégicas. Aliás, o próprio onboarding de novas pessoas pode se tornar mais rápido e menos custoso com o uso de práticas de Inner Source.
Aliás, uma das principais vantagens do Inner Source é o aumento do reuso do código. Afinal, a falta de transparência e de colaboração é um dos motivos que impede a reutilização de códigos e componentes dentro da empresa.
Além de não saber da existência de códigos em outros times, muitas vezes o próprio ambiente dificulta o compartilhamento. Pois isso, a importância de estabelecer práticas de compartilhamento reflete em mais transparência sobre o que outros times estão produzindo.
Incentivo à inovação
Uma empresa que implementa práticas de compartilhamento de conhecimento e estimula a autonomia incentiva a criatividade, tanto para criar novas funcionalidades quanto resolver problemas de formas inovadoras. Afinal, novas perspectivas sob diferentes ângulos proporcionam mais inovação para o software.
Mais qualidade no código
Em empresas que praticam Inner Source, o código é revisado por várias pessoas desenvolvedoras, o que facilita a identificação de falhas e na sua rápida solução.
Além disso, existe outro fator: a visibilidade. Devs mostram suas soluções criativas e inovadoras para toda a empresa buscando reconhecimento, mas, ao mesmo tempo, os seus erros são apontados em público – por isso, tendem a tomar cuidado redobrado.
O resultado são códigos melhores e mais seguros, pois a comunidade também pode identificar vulnerabilidades mais cedo e encaminhá-las para o time de segurança.
Documentação robusta
O grande volume de acesso ao código exige uma documentação técnica mais completa e atualizada, auxiliando todas as pessoas usuárias desse software. Uma documentação robusta facilita a compreensão das regras de negócio e das decisões técnicas e padrões das aplicações.
Desafios da implementação do Inner Source
Um dos desafios tanto do Inner Source quanto do Open Source é lidar com diversos componentes, estratégias e ferramentas, mas podemos destacar outros mais:
Cobrança por resultados, não entregas
Inner Source exige uma mudança de cultura dentro de uma empresa, principalmente das pessoas gestoras. Se antes o foco era na entrega de resultados, agora o objetivo é no valor das entregas.
Além de mudar o foco do volume de código entregue, é preciso repensar como as responsabilidades serão divididas. Afinal, o grande destaque dessa prática é justamente a descentralização e o trabalho colaborativo, visando a qualidade e não a quantidade.
Relação entre pessoas colaboradoras
Quando trabalhamos com um time específico, com pessoas já conhecidas, pode ser mais fácil coordenar um projeto. A inclusão de indivíduos de times diferentes pode causar algum atrito, principalmente porque essas pessoas que não se conhecem tão bem estarão trabalhando juntas.
Por isso, o alinhamento e o foco no objetivo final – a construção de um código melhor – precisam estar ainda mais claros.
Dificuldade com o sistema legado
Os sistemas legados são defasados e de manutenção complexa. Por isso, práticas de Inner Source são difíceis de adotar neste cenário, afinal são poucas as pessoas desenvolvedoras com conhecimento suficiente para contribuir.
Por exemplo, o legado pode ter um fluxo de trabalho que não facilita a contribuição e até mesmo não possuir as ferramentas que garantem transparência para o processo.
Porém, quando a empresa resolve fazer a modernização de sistemas legados, pode ganhar muito ao adotar o Inner Source na nova plataforma.
Maturidade cultural
Nem sempre na prática iremos encontrar um ambiente maduro o suficiente para as pessoas desenvolvedoras contribuírem por conta própria ou valorizarem o senso de comunidade dentro da empresa.
A cultura da empresa também deve oferecer o suporte para receber as práticas de Inner Source. O incentivo à colaboração entre times e criação de guildas técnicas para discussões podem ser bons primeiros passos para uma cultura mais alinhada à metodologia.
Priorização de outras tarefas
Já para devs, o grande desafio é justamente não ter tempo para se dedicar à colaboração que o Inner Source exige. Como as demandas diárias são a prioridade, acaba restando pouco tempo para devs contribuírem e a iniciativa acaba sendo despriorizada.
Além de incentivar, o Inner Source deve estar no DNA da empresa e das pessoas desenvolvedoras, que estão juntas colaborando para entregas de maior qualidade.
Boas práticas para implementação do Inner Source
O Inner Source importou práticas e metodologias do Open Source, que já foram testadas e consagradas. Confira algumas delas:
- Code Review (Revisão de código): pessoas revisoras avaliam o código e possuem a missão de encontrar e corrigir erros, com o objetivo de melhorar a legibilidade e a uniformidade.
- Visibilidade: o código está disponível para todas as pessoas da empresa, por isso é preciso ter ferramentas que possibilitem essa visibilidade, como plataformas de desenvolvimento.
- Testes: são feitos de forma mais abrangente e por mais pessoas, tornando o código ainda mais testado e refinado.
- Documentação de software: para ser consultado por tantas pessoas, é primordial uma documentação completa e atualizada, acompanhando as atualizações do software.
- CI/CD: a adoção de abordagens ágeis tem como objetivo automatizar o desenvolvimento de software, como testes, construção e entrega de software.
- Issue Tracker: a prática de manter o registro de erros e reclamações de pessoas usuárias facilita a correção das falhas do código.
Inner Source no Brasil
No Brasil, o Itaú Unibanco e a Zup Innovation colocam em prática o conceito de Inner Source buscando auxiliar nos desafios do dia a dia dos times de desenvolvimento e impactar positivamente a experiência de clientes.
Ao permitir que o código cresça e seja aprimorado de forma colaborativa, o Inner Source resulta em soluções mais ágeis e eficazes para os desafios do desenvolvimento.
Acompanhe o podcast onde discutimos sobre a experiência:
Em relação ao mundo, existem inúmeras iniciativas de Inner Source bem-sucedidas. Na comunidade InnerSource Commons estão disponíveis casos de implementações em grandes empresas como Microsoft, Adobe, American Airlines, dentre outras, além de boas práticas para implementar o Inner Source.
Como plataformas de desenvolvimento fomentam o Inner Source
A StackSpot é uma plataforma de desenvolvimento IA-first com foco na modernização de sistemas legados. A plataforma agiliza a criação, distribuição e reutilização de padrões técnicos, criando um software confiável com uma arquitetura executável.
Alinhada ao conceito de Inner Source, a StackSpot possui funcionalidades que incentivam o reuso e a colaboração, como o uso do Workspace para os times trabalharem de forma colaborativa durante o ciclo de desenvolvimento.
Conheça mais detalhes sobre a plataforma de desenvolvimento no vídeo.
Conclusão
A prática do Inner Source usa da metodologia do Open Source para incentivar o reuso para elevar a qualidade técnica dos times de uma empresa. Enquanto isso, o tempo das pessoas desenvolvedoras é otimizado, permitindo o foco em atividades de maior impacto e inovação.
Ao disponibilizar o código para todas as pessoas da empresa, é possível entender que muito além de um conjunto de práticas, o Inner Source fomenta uma mudança cultural voltada para o senso de comunidade e colaboração entre os times.
Mesmo enfrentando resistência cultural, sistemas legados e volume de entregas exigidas de times de desenvolvimento, o Inner Source é capaz de melhorar a qualidade de software com uma comunicação clara, documentação atualizada, incentivo ao reuso e foco na inovação.
Quer conhecer mais sobre como uma plataforma de desenvolvimento, como a StackSpot, promove o Inner Source? Entre em contato com nosso time de especialistas para saber mais.
Referências
- 2024 Platform engineering predictions
- Como implementar o InnerSource na sua empresa: benefícios, desafios e melhores práticas.
- Entenda de uma vez o que é open source e como funciona
- Inner Source: eficiência e qualidade do open source no mundo corporativo – Zup Innovation
- O que é Inner Source e por que você deveria implementá-lo dentro de sua empresa?
- Open source e Inner source