Você está na página 1de 5

Agilidade

Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.

Expandindo mtodos geis com DevOps


A parceria gil entre o desenvolvimento e operaes em busca da melhoria
contnua

Expandindo mtodos geis com DevOps: Neste contexto, o DevOps possibilita realizar
Os mtodos geis buscam diminuir o tempo de entregas mais rpidas e com qualidade pelo fato
entrega de produtos de software focando em uma dos envolvidos estarem alinhados com necessi-
maior aproximao com o cliente e no desenvolvi- dades e metas individuais e coletivas ao longo
mento do que realmente agrega mais valor para o dos processos.
cliente. Embora importante, esta preocupao mui- Este artigo apresenta conceitos para potencializar
tas vezes no suficiente para atender complexa a utilizao de metodologias geis no ciclo de vida
lgica do mercado. Por exemplo, durante a fase de de sistemas, expandindo sua aplicao para alm
operao da soluo, que ocorre aps sua implanta- do desenvolvimento, chegando at a operao do
o, tem-se equipes formadas por especialistas em aplicativo em ambientes de produo, aprimoran-
reas de infraestrutura, telecomunicaes, banco do assim a construo e entrega de produtos de
de dados e servidores fsicos ou virtuais. Este grupo qualidade.
totalmente diferente dos profissionais envolvidos
no desenvolvimento do projeto acaba entrando em Em que situao o tema til:
Daniel Paz de Arajo conflito com o restante da equipe, pois enquanto Organizaes voltadas para o desenvolvimento
daniel.paz@araujo.co o desenvolvimento possui grande necessidade de de aplicaes desktop, web ou mobile, podem
Atua como coordenador de desenvolvi- mudanas para atender constantes alteraes no aprimorar seus processos de desenvolvimento e
mento de sistemas na Atech Negcios em sistema e suportar melhorias e correes de erros, operaes com foco na qualidade e satisfao do
Tecnologia e como professor de ps-gradu- a equipe de operaes tende a evitar mudanas, cliente atravs da adoo de DevOps, agilizando
ao no Senac So Paulo. Realiza pesquisas
nas reas de tecnologia, arte e educao e
pois procuram manter condies estveis para que toda sua cadeia produtiva com a integrao de
autor de artigos tcnicos e palestrante os sistemas de produo se mantenham disponveis atividades, ferramentas e automatizao de tra-
nas reas. Possui formao de Bacharel em para os usurios finais. balho repetitivo.
Cincias da Computao pela Universidade
Jos do Rosrio Vellano em Minas Gerais;
Mestre em Processos Cognitivos e Ambien-

O
tes Digitais pelo curso de Tecnologias da
ciclo de vida de um sistema parcial ou completa. De forma simplista,
Inteligncia e Design Digital, da Pontifcia prev a aplicao de processos as fases de criao do sistema podem ser
Universidade Catlica de So Paulo; MBA envolvendo diferentes ativida- divididas em pr-construo, constru-
em Gesto da Tecnologia da Informao des realizadas por papis, ferramentas e o e operao. No primeiro momento
e Especializao em Docncia no Ensino tcnicas em fases bsicas sistematizadas ocorre o entendimento do objetivo da
Superior pela Fundao Getlio Vargas. Em
seu site http://www.araujo.co esto publi-
que percorrem desde a comunicao soluo, que na segunda fase cons-
cados contedos sobre temas diversos. com o cliente at a entrega da soluo truda e posteriormente implantada e

6 Engenharia de Software Magazine - Expandindo mtodos geis com DevOps


AgiLidAdE

utilizada em um ambiente propcio para sua operao. Para analistas de qualidade, desenvolvedores e testadores en-
realizar este trabalho, normalmente so formadas equipes volvidos na construo do produto em si, at especialistas
de especialistas em cada atividade. Por exemplo, durante em redes, bancos de dados e servidores, responsveis por
o desenvolvimento pode existir uma equipe especfica de garantir a disponibilidade do sistema para seus clientes e
analistas escrevendo o cdigo do programa enquanto outros usurios por meio de uma abordagem gil. Atravs da me-
preparam e executam testes. lhoria integrada e contnua de processos geis, o DevOps
A operao da soluo ocorre aps sua implantao, e possibilita realizar entregas mais rpidas e com qualidade
para isso normalmente tm-se outras equipes formadas por pelo fato dos envolvidos estarem diretamente alinhados
especialistas, tais como analistas de infraestrutura, teleco- com necessidades e metas individuais e coletivas ao longo
municaes, banco de dados e servidores fsicos ou virtuais. dos processos.
Aparentemente, tal diviso beneficia a gesto, pois comum Em 2012, Httermann publicou um livro de DevOps
que cada equipe possua seu prprio gestor. Mas o que se per- voltado para desenvolvedores em que explica os inmeros
cebe na prtica que devido aos diferentes objetivos de cada aspectos envolvidos na engenharia de sistemas como, por
equipe acabam surgindo alguns conflitos, pois enquanto o exemplo: a cultura da empresa, atravs de seus processos,
desenvolvimento possui grande necessidade de mudanas ferramentas e pessoas, que so as responsveis por criar e
para atender constantes alteraes no sistema e suportar normalmente utilizar o software; a automao, importante
melhorias e correes de erros, a equipe de operaes tende para se reduzir trabalho repetitivo e ter rpido feedback; e sua
a evitar mudanas, pois procuram manter condies estveis medio, que possibilita identificar pontos para melhoria e
para que os sistemas de produo se mantenham disponveis incentivar de forma alinhada todos os envolvidos.
para os usurios finais. Atualmente, o uso de mtodos geis no est mais limi-
Os conceitos de melhoria contnua j existem h um bom tado a empresas pequenas ou voltadas para inovao, pois
tempo em processos de produo, inclusive de sistemas. Este passaram a ser os modelos mais utilizados pela indstria
modelo prope que a melhoria deve ser constante e infinita, de software devido aos ganhos em agilidade, eficincia e
no sentido de que sempre haver pontos a serem aprimorados. satisfao do cliente. Parte desta proliferao est relaciona-
A mesma ateno para a qualidade dada em mtodos geis, da com as necessidades de software da contemporaneidade,
que se baseiam em processos enxutos, comunicao e priori- fortemente voltadas para solues web e/ou mveis, que
dades para construir solues de qualidade em prazos ade- exigem velocidade e constante atualizao dos aplicativos.
quados. Tais mtodos so amplamente aplicados atualmente DevOps tambm pode ser muito til para empresas que tm
em desenvolvimento de sistemas e tm a vantagem receber a necessidade de atualizar a verso do sistema em dezenas,
feedback dinmico que permite a rpida identificao de pontos centenas ou at milhares de equipamentos, pois poder ser
de melhoria. Alm disso, tm auxiliado consideravelmente feito de forma automatizada, no momento mais adequado.
a aumentar a velocidade e qualidade dos produtos gerados Mesmo para aqueles que utilizam Plataforma como um
pelos analistas, programadores, testadores e gestores, fun- Servio (Platform as a Service PaaS) e aparentemente no
cionando como um fluxo constante de construo e reviso necessitam de uma equipe de operaes podem utilizar
de trabalho. DevOps como um mecanismo organizado para disponibili-
No outro lado, equipes de operaes tm sido tratadas na zar as novas verses de suas solues automaticamente.
prtica como grupos isolados, voltados para a disponibilidade Importantes conceitos de agilidade, tais como equipes
dos sistemas em ambientes de produo com foco na garantia multidisciplinares e entregas constantes, permitem reunir
pela estabilidade dos mesmos, criando assim mecanismos no DevOps diferentes especialistas no mesmo projeto. Estas
que tendem a evitar mudanas e instabilidades operacionais equipes podem envolver analistas de sistemas, desenvol-
para usurios e clientes. Esta diferena cria uma separao vedores, testadores e analistas de qualidade, todos com o
inadequada entre as equipes, que deveriam atuar em busca mesmo objetivo: entregar uma soluo funcional no fim do
do mesmo objetivo: entregar o melhor produto possvel. Para ciclo de desenvolvimento. Entretanto, evidente que a apli-
se alcanar este resultado, considerando a integrao das ati- cao de tais mtodos est focada na definio e construo
vidades de tais especialistas responsveis por criar e manter do software, na maioria das vezes terminando na fase de
os sistemas, inevitavelmente existir uma perspectiva melhor transio, momento em que o software foi verificado e va-
para que cada um faa seu trabalho com foco coletivo. Neste lidado para a operao do mesmo ao ser disponibilizado no
sentido, o objetivo do DevOps resolver o conflito entre as ambiente especfico para utilizao do usurio final.
equipes de desenvolvimento e operaes utilizando metodo- DevOps a extenso dos mtodos geis com o objetivo
logias geis, com metas voltadas para o negcio da empresa de disponibilizar o software em produo de forma rpida
como um todo, e no apenas em uma rea especfica. e estvel, atravs da integrao de processos e ferramentas
para automatizar processos e potencializar o ciclo total do
Ampliando a agilidade com DevOps desenvolvimento de sistemas.
DevOps abrange diversos papis e processos dentro do A cultura de confiana e companheirismo entre as equipes
conjunto de processos da engenharia de sistemas, desde de desenvolvimento e operaes so a base para um DevOps

Edio 60 - Engenharia de Software Magazine 7


de sucesso, onde todos podem compartilhar problemas, ideias, produo para a equipe de desenvolvimento. O objetivo
incentivos, processos, experincias, ferramentas e objetivos simplificar a identificao de problemas, verificar a correo
em comum. Por este motivo, o ponto principal est na comu- de erros em uma verso j em execuo e consequentemente
nicao entre as equipes de desenvolvimento e operaes. A buscar melhoria nos processos de desenvolvimento;
partir da ser possvel implementar processos e ferramentas 3. Incorporar o desenvolvimento na operao, focando no
de automao para apoiar as atividades de cada um. Como que responsabilidade da operao. Consiste no alinha-
ambas as equipes possuem o mesmo objetivo genrico que mento das metas da soluo entre as equipes. Normalmente
entregar o sistema com qualidade em um ambiente estvel o desenvolvimento est focado com requisitos funcionais
no prazo adequado, a colaborao entre os envolvidos comea e menos prioritariamente nos requisitos no funcionais,
bem antes da implantao do software. tais como estabilidade e capacidade, sentidos durante a
Para uma boa interao entre as equipes, todos devem ter operao. Pode ser feito atravs da definio de metas de
visibilidade sobre quais so os processos a serem seguidos, qualidade para o produto final entre as partes interessadas,
a medio do processo, considerando prazos e qualidade desenvolvimento e operaes. O objetivo que a soluo
esperada, e as tcnicas empregadas. Por objetivar, de forma como um todo no ambiente de produo atenda aos requi-
gil, a integrao de equipes, processos e ferramentas, o sitos funcionais e no funcionais, e para tal fundamental
DevOps no deve ser pesado. Isso significa que deve haver que haja um alinhamento das necessidades entre as reas;
certa coerncia, definindo claramente os papis e respon- 4. Incorporar a operao no desenvolvimento, envolvendo
sabilidades entre todos os relacionados, mas ainda possibi- as operaes no processo de desenvolvimento. Consiste
litando mudanas com foco na qualidade do produto final. no feedback antecipado da equipe de operao para o de-
Deve estar claro para todos os envolvidos que DevOps no senvolvimento e desta forma ambas estaro trabalhando
um novo departamento ou equipe, e que no possibilita em um sistema com foco na qualidade geral de maneira
que desenvolvedores atuem na produo, ou vice-versa. proativa. Pode ser feito utilizando um ambiente mantido
Tambm deve estar claro que utilizar DevOps no apenas em produo que simule da forma mais prxima possvel a
implantar uma ferramenta para a automao de verses. situao final em que o sistema ser implantado, reduzindo
As ferramentas so menos importantes que o processo que as possibilidades de encontrarem surpresas desagradveis
por sua vez menos importante que as pessoas. Por este no ambiente final. O objetivo permitir que a equipe de
motivo, o mais importante a integrao entre as equipes desenvolvimento verifique antecipadamente a viabilidade
para que possam ser definidos os processos mais adequados do que est sendo construdo.
e consequentemente chegar s ferramentas que precisam
para realizar suas atividades individuais. Atravs destes itens possvel se trabalhar na implantao
da abordagem DevOps.
Adoo de DevOps
Para que a troca de conhecimentos e feedback entre as reas Gesto de DevOps atravs do Kanban
seja rpido e assertivo, cada equipe deve enfatizar interaes A origem da palavra Kanban japonesa, e significa carto ou
em ambas as direes. Patrick Debois [2] sugere implementar sinal. Existem algumas formas de se utilizar o Kanban como
DevOps da seguinte forma: o uso de painis de papel com post-its ou digitais. O Kanban
1. Estender o desenvolvimento at a operao para que co- diretamente influenciado pela Teoria das Restries, que
laborem em tudo que est relacionado entrega do sistema diz que uma corrente no mais forte que seu elo mais fraco.
para a produo. Consiste em utilizar itens de produo an- Alm disso, sua abordagem est baseada no controle puxado,
tecipadamente como parte do processo de desenvolvimento. o que significa que a movimentao de uma atividade puxa
Pode ser realizado atravs da utilizao de ferramentas de outras atividades, em outras palavras, ao terminar uma tarefa
gerenciamento de configurao de infraestrutura. Desta criada a disponibilidade para se trabalhar em outra. Um
forma, possvel ter rpido feedback atravs da automao, exemplo simples de atividade puxada o reabastecimento de
reutilizar cdigo e ferramentas e ter maior confiabilidade automveis, que s pode ser realizado quando h espao para
do processo de entrega e provisionamento. Artefatos de in- mais combustvel no tanque.
fraestrutura passam a fazer parte da estrutura do software Sistemas Kanban vm sendo bastante utilizados em mtodos
e por isso so colocados em baselines, dentro do controle geis de desenvolvimento de software como o framework
de verses. O objetivo evitar a configurao manual de Scrum. O Kanban utilizado para que haja organizao na
ambientes, tornando este trabalho automtico; realizao de atividades de forma contnua, incremental e
2. Estender a operao at o desenvolvimento para que evolutiva. As atividades podem ainda ser categorizadas e
colaborem no feedback de operaes para o desenvolvi- selecionadas para execuo pela prpria equipe, identificando
mento. Consiste em compartilhar informaes a respeito do claramente o trabalho em andamento ou Work In Progress (WIP).
sistema em ambiente de produo. Pode ser realizado atravs A forma simplificada e clara para representar atividades e seu
do compartilhamento constante e integrado de arquivos de estado de execuo auxilia na identificao imediata do anda-
logs ou outros mecanismos de monitoramento do sistema em mento do trabalho, alm de outras atividades de planejamento

8 Engenharia de Software Magazine - Expandindo mtodos geis com DevOps


AgiLidAdE

tais como priorizao e alocao de recursos. Em sua obra a requisitos especficos. Os requisitos especficos devem ser a
respeito do Kanban, David Anderson apresenta cinco funda- base para a deciso de qual ferramenta utilizar;
mentos que tm sido identificados em implementaes bem Colocar os itens de configurao, incluindo arquivos fontes,
sucedidas com este mtodo: scripts de banco de dados, middleware, infraestrutura, arqui-
1. A visualizao do trabalho fundamental para entender vos de configurao, de forma flexvel no controle de verso.
sua realizao. Sem este entendimento a tomada de decises Desta maneira, a atualizao de tais itens nos ambientes se
sobre mudanas se torna ainda mais difcil; torna mais rpida;
2. Limitar o trabalho em andamento, de acordo com as pos- Aplicar integrao contnua que sincroniza continuamente
sibilidades de realiz-lo. Alm de categorizar o trabalho, esta o trabalho da equipe;
forma mais realista para a identificao da produtividade Identificar e manter de forma independente os sistemas de
da equipe e assim a previso para trmino das atividades se apoio, tais como gerenciadores de verses do cdigo fonte e
torna mais evidente; repositrios de componentes que sero utilizados para o de-
3. Gerenciamento de fluxos de trabalho em diferentes esta- senvolvimento e disponibilizao do produto final;
dos como, por exemplo, os no iniciados, em andamento ou Realizar e evidenciar testes para buscar garantir que a im-
finalizados. Desta forma, possibilitada a avaliao contnua plantao do sistema foi correta;
de mudanas evolutivas ou corretivas com foco na qualidade Manter ambientes semelhantes entre desenvolvimento e
do produto; operaes;
4. Explicitao do trabalho para que as atividades sejam rea- Cobrir tarefas repetitivas e demoradas atravs da automao;
lizadas de acordo com um conjunto de processos definidos e Certificar que o software entregue apenas construdo pelo
assim mantendo-os sob o controle dos gestores; servidor de compilao.
5. Melhoria colaborativa atravs do entendimento compar-
tilhado de teorias sobre o trabalho, fluxo, processo e risco, Observe que estes so apenas alguns itens comumente iden-
permitindo que a prpria equipe sugira e entre em consenso tificados como importantes. Dessa forma, situaes especficas
a respeito das melhores aes a serem realizadas. podem levar necessidade de considerar outras prticas ao
implementar a liberao automtica de verses.
Para DevOps, a utilizao de um sistema Kanban, seja ele
fsico ou digital, extremamente til, pois permitir uma
viso clara e direta sobre as atividades que envolvero as
equipes de desenvolvimento e operaes, e ser percebida a
integrao atravs da conexo de atividades entre as equipes.
Equipes de desenvolvimento gil tm adotado com sucesso o
Kanban em seu trabalho, o que pode ser estendido tambm
para a integrao com a operao, aprimorando o fluxo de
atividades.

Liberao automtica de verses


Liberao o processo de disponibilizar ao usurio as altera-
es ou novas funcionalidades em um sistema. Este processo
fundamental para o bom funcionamento de DevOps, pois
atravs da liberao que o usurio toma conhecimento de uma
nova verso do sistema para uso. Para ele, pode ser apenas
um comunicado, mas na prtica a liberao vai alm, estando
relacionada com a gesto da infraestrutura, instalao correta
da verso correta e configurao do sistema neste ambiente
especfico. Devido grande quantidade de atividades, ferra-
mentas e pessoas envolvidas neste processo, a automatizao
deve ser aplicada ao mximo possvel, buscando garantir velo-
cidade, integridade e segurana pela reduo de aes manuais
repetitivas e passiveis de erros humanos. Os pr-requisitos de
um processo de liberao automtica podem incluir:
Promover o comprometimento da equipe em ambientes de
trabalho colaborativos;
Usar um conjunto de ferramentas altamente integradas, por
exemplo, Jenkins, Sonar, Maven, que podem ser escolhidas e
orquestradas, conforme necessrio, e que esto alinhadas com

Edio 60 - Engenharia de Software Magazine 9


Concluso mitigando riscos de segurana e mantendo o controle de
O atual contexto do desenvolvimento de solues de software verses ainda mais refinado.
exige, alm de qualidade e melhoria contnua, maior agilidade Considerando as possibilidades de ganhos na adoo de
na implementao de novas funcionalidades e correes de DevOps por meio de processos enxutos e integrao de equipes,
erros, otimizando recursos e buscando a total eficincia dos alm do baixo custo para implant-lo, esta alternativa torna-se
processos envolvidos. Os modelos atuais de comercializao vivel para grande parte dos negcios que envolvem engenharia
de sistemas via web e mobile necessitam ainda mais de agi- de sistemas. Sua adaptao para processos especficos de cada
lidade em toda a cadeia produtiva para atender prontamente empresa ou projeto potencializa sua aplicao atendendo s mais
demanda dos clientes ou simplesmente disponibilizar uma diferentes necessidades tecnolgicas. Neste sentido, a extenso
verso com nova esttica ou funcionalidade para manter o dos mtodos geis de desenvolvimento para operaes tende a
interesse dos usurios. Porm, os constantes conflitos entre aumentar a eficincia dos processos como um todo, mantendo
equipes de desenvolvimento e operaes causam impactos o foco das equipes no mesmo objetivo: entregar ao cliente o
na entrega do produto final ao cliente devido ao simples fato melhor produto da melhor forma possvel.
de tais grupos possurem objetivos e processos que no esto
alinhados de maneira geral. Referncias:
Neste sentido, o DevOps surge como uma evoluo dos
modelos geis de desenvolvimento de sistemas ao expandi- ANDERSON, David. Kanban: Successful Evolutionary Change in Your Software Business. Blue Hole
los para processos de operao que at ento no tinham a Press: 2010.
devida valorizao. Atravs de mudanas culturais envolvendo
HTTERMAN, Michael. DevOps for Developers. Apress: 2012.
processos e alinhamento de metas e atividades entre equipes
de desenvolvimento e operao, podem-se criar mecanismos SWARTOUT, Paul. Continuous Delivery and DevOps: A Quickstart Guide. Continuous delivery and
para propiciar a construo e disponibilizao eficiente de DevOps explained. Packt Publishing: 2012.
novas verses de um sistema. Ao integrar as equipes por meio
da expanso de suas atividades, possvel potencializar a en-
trega de um produto de qualidade atravs da antecipao na Voc gostou deste artigo?
identificao de problemas, no planejamento para a transio
de ambientes, e no atendimento de requisitos no-funcionais. D seu voto em www.devmedia.com.br/esmag/feedback
A automatizao de processos de implantao reduz a quan-
Ajude-nos a manter a qualidade da revista!
tidade de esforo necessrio para realizar as atividades,

10 Engenharia de Software Magazine - Expandindo mtodos geis com DevOps

Você também pode gostar