Agilidade nas áreas de Desenvolvimento de Softwares e Infraestrutura de TI

Neste pequeno e resumido artigo, pretendo comentar um pouco do que estou presenciando com as mudanças nas áreas de Infraestrutura de TI e Desenvolvimento de Sofwares.

Para as empresas que desejam ser mais competitivas no segmento em que vem atuando, é preciso investir cada vez mais em tecnologia. Com a velocidade e o avanço que o mundo vem sofrendo é essencial que a entrega de seus produtos sejam cada vez mais rápidas e assertivas.

Já não é nenhum segredo que as margens apertadas e níveis de produção cada vez mais voláteis indicam que a entrega dos produtos precisam ser mais eficientes, e que por isso, os processos complexos precisam ser cada vez mais otimizados.

Com o cenário em constante mudança e cada vez mais dinâmico, surgiu então a necessidade do avanço nas áreas de Desenvolvimento e Infraestrutura.

scrum-board

Algumas mudanças que considero importantes…

Mudança para o time de Infraestrutura:

Durante muito tempo, as grandes empresas puderam se dar ao luxo de colocar em produção poucas atualizações de seus principais software. Ainda é comum que sistemas de alta importância recebam menos que 1 ou 2 grandes atualizações por um determinado período. Porém a pressão sobre os times de TI estão cada vez mais em alta pela busca da agilidade e inovação para o negócio.

Com o avanço dos smartfones e dos serviços Web (App ou Web Site), empresas inovadoras mudaram seu perfis de entregas (releases), ao invés de entregar 1 ou 2 vezes ao ano, hoje passaram a entregar muito mais, com um grau bem mais elevado na qualidade.

Pensando nisso, áreas como Desenvolvimento de Softwares e Infraestrutura de TI tiveram que mudar suas estratégias na entrega de seus serviços.

Com a mudança na forma de gerir a infraestrutura de uma organização, os analistas que antes trabalhavam gerindo seus Servidores dentro de um CPD ou Data Center, passaram a conhecer uma outra forma de gestão de seus servidores, serviços e sistemas.

Com o surgimento da “Nuvem” tudo aquilo que fica detrás dela: (conectividade, hardwares, espaço físico e etc), são postos a parte quando o negócio não é a própria infraestrutura de TI.

Para concretizar esse ideal a computação na nuvem compreende os seguintes recursos:

* Serviço Self-Service – O consumidor pode, unilateralmente, requerer ou dispensar capacidades de computação, tais como o tempo do servidor, a capacidade de armazenamento, ou outros, conforme necessário e de forma automática. Tudo, sem necessidade de interacção humana com o fornecedor de cada serviço.

* Acesso à rede em banda larga – Todas as funcionalidades estão disponíveis através da rede e são acessíveis por meio de mecanismos standard, que promovem o uso de plataformas-cliente heterogéneas (telefones móveis, laptops, PDAs, etc).

* Pool de recursos – Os recursos de computação de cada fornecedor são concebidos para servir vários clientes, num modelo multi-tenant, com diferentes recursos físicos e virtuais, distribuídos e alocados dinamicamente.

* Elasticidade – Os recursos podem ser rapidamente alocados e, em alguns casos, de forma automática, para aumentar as capacidades disponíveis ou para as libertar quando já não são necessárias. Para o cliente, os recursos de alocação têm inúmeras possibilidades, podendo ser adquiridos em qualquer quantidade e a qualquer momento.

* Mensurável – Os sistemas em cloud devem controlar e optimizar a utilização dos recursos de forma automática, efectuando a medição da utilização, de forma adequada ao tipo de serviço, como por exemplo, armazenamento utilizado, processamento efectuado, largura de banda utilizada ou contas de utilizadores activas. O uso dos recursos deve poder ser monitorizado e controlado de forma transparente, tanto para o fornecedor, como para o consumidor do serviço utilizado.

Mudança na entrega dos ambientes:

unnamed

A área de infraestrutura de TI está cada vez mais ágil, e cada vez mais o papel do Sysadmin esta se tornando fundamental na evolução do processo dessa mudança. É preciso adaptar-se, conhecer novas tecnologias, aproveitar os recursos que a “Nuvem” oferece nos dias de hoje.

Com a evolução da infraestrutura como um todo, será necessário garantir cada vez mais um suporte eficiente às operações de TI e desenvolvimento de software, tendo como base a qualidade e a garantia no negócio.

A Automação na área de infraestrutura é um dos processos mais fundamentais para o futuro. Os Sysadmin’s do futuro, terão que aprender a desenvolver pequenas e grandes ferramentas sejam elas por script’s ou por softwares. Criar maneiras e procedimentos de instalação de um sistema operacional até a instalação e configuração de seus serviços será uma tarefa primordial para entrega de ambientes.

O processo de gerenciamento de configuração, que abrange três sistemas principais: controle de modificações, controle de versões e controle de gerenciamento de construção, esta cada vez mais em prática no mercado de trabalho.

A automatização e implementação de gerenciamento dos ambientes, reduz-se os riscos de erros de execução em um processo de deploy ou mudança, além de garantir a padronização de todo o ambiente.

Seguindo a premissa de que nada será modificado em produção a menos que seja através de um sistema de orquestração e que tudo esteja versionado, podemos dizer que o caminho único (pipeline de entrega) até chegar a produção, certamente toda essa gestão estará padronizada e menos sujeita a novos riscos.

Com o controle de versão é possível registrar as mudanças feitas em um arquivo ou em um conjunto de arquivos ao longo do tempo. Desta forma além de você possuir todo o histórico de mudança, é possível também ter mais de um Sysadmin interagindo no código da orquestração.

Mudanças para o time desenvolvimento:

images

O Manifesto Ágil reconhece que a utilização de processos, ferramentas, documentação, contratos e planos pode ser importante para o sucesso do projeto, mas são ainda mais importantes os chamados valores Ágeis: os indivíduos e interações entre eles, software (ou produto) em funcionamento, colaboração com o cliente e responder a mudanças.

Manifesto para Desenvolvimento Ágil de software

Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Por meio deste trabalho, passamos a valorizar:

Indivíduos e interações mais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor aos itens à direita, valorizamos mais os itens à esquerda.

Scrum-Process1

Scrum é uma metodologia ágil para gestão e planejamento de projetos de software.

No Scrum, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints. O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado.

Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum.

As funcionalidades a serem implementadas em um projeto são mantidas em uma lista que é conhecida como Product Backlog. No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma reunião de planejamento na qual o Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se inicia. As tarefas alocadas em um Sprint são transferidas do Product Backlog para o Sprint Backlog.

A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia.

Ao final de um Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento do próximo Sprint.

scrum

Enfim…

Esse será cada vez mais o futuro das áreas de Desenvolvimento de Softwares e Infraestrutura de TI. Se você é um profissional de uma dessas áreas, fique esperto, corra atrás enquanto tudo isso ainda está em fase de mudança.

Um outro estudo, publicado no início de 2016 pela C.A Technologies, mostra que o Brasil já é a quarta maior referência em DevOps em todo o mundo. Cerca de 16% das empresas nacionais já obtiveram sucesso na implementação dessa abordagem, o que nos coloca logo atrás de Estados Unidos e Índia (25%) e da Suíça (23%). E mais: apenas 24% dos executivos consultados disseram que estão atuando em companhias que ainda não estão maduras o suficiente para iniciar um processo de implementação dessa inovadora estratégia.

Fonte: http://e-tinet.com/carreira/devops-profissional-sucesso/

O mercado de trabalho precisa cada vez mais de profissionais focados nessas mudanças, porém a falta de mão de obra ainda é um fator agressivo para todo o processo.

Fontes da pesquisa:

http://computerworld.com.br/novas-tecnologias-demandam-agilidade-extra-voce-sabe-se-manter-competitivo
http://www.csc.com/pt/offerings/63346-o_que_%C3%A9_o_cloud_computing
http://www.knowledge21.com.br/sobreagilidade/agilidade/o-manifesto-agil/
http://www.desenvolvimentoagil.com.br/scrum/

Agilidade nas áreas de Desenvolvimento de Softwares e Infraestrutura de TI
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: