A fusão do desenvolvedor com a área de negóciosUm estudo recente sobre mercado de trabalho indicou que houve uma mudança no perfil do profissional de TI, claro, incluindo os desenvolvedores. Essa mudança contempla a visão estratégica do profissional na área de negócios das empresas, bem como a capacidade em contribuir com os resultados. A propósito, você sabe por que a função de “Analista Programador” surgiu?

Continue lendo

Contato com a Ci&T

A principal proposta da empresa Ci&T é buscar inovação, rapidez, flexibilidade e valor nos negócios direcionados aos clientes. Seguidores de métodos ágeis e dos conceitos de Lean TI, a Ci&T é fortemente conceituada em competências técnicas e responsáveis pelo sucesso de grandes empresas nacionais, como a Coca-Cola, Pernambucanas, Nestlé e Rede Globo. Anderson Silveira é arquiteto de software da empresa e encarregado por realizar o coaching na disseminação de práticas de engenharia ágil, tais como TDD, one click build e integração contínua.

Apesar de ser um evangelista, eu sou um pouco cético em dizer que nem todas as empresas se encaixam na forma como as metodologias ágeis tratam alguns pontos dentro da corporação, sendo isso uma das primeiras barreiras na adoção de práticas e gerando um conflito cultural dentro das empresas. Diante disso surgem algumas “anomalias” sobre uma má interpretação ou falta de discernimento do que realmente é necessário para sua realidade, caindo em um total descumprimento da essência para que uma determinada prática se originou. O fato de quando nós falamos que as metodologias ágeis são adaptadas, elas não se apoiam na forma como as distorcemos. De modo geral, antes de tudo precisamos conhecer a fundo a cultura da empresa e avaliar se ela esta realmente disposta a passar por tal transformação.

Outro ponto bastante pertinente é a situação do mercado atual, em relação aos clientes e o quanto os mesmos estão dispostos a atuar em um papel de extremo comprometimento com os projetos de software, bem ao controverso do que tradicionalmente era estipulado. No modelo tradicional, toda a informação de levantamento de funcionalidades do software é realizada no início no projeto, então tudo que o cliente precisa fazer é expor todas as suas necessidades. A partir de então, entram em uma fase onde a responsabilidade é passada para a equipe e toda informação/problemas encontrados no caminho é acumulada para a próxima fase, se transformando em um verdadeiro big bang de problemas devido à falta de comunicação constante. No modelo ágil as duas pontas funcionam como uma engrenagem e é fundamental para o sucesso de um projeto. Para isso o cliente precisa estar alinhado com a expectativa de como se espera que ele atue no processo de desenvolvimento.

O fato de funcionar ou não em projetos complexos depende do quão o time está apto para ser ágil. Fazendo a analogia com um jogo de xadrez, fica a critério de como você mexe com as peças durante a sua estratégia de jogo – com o desenvolvimento ágil é a mesma ideia. Vale ressaltar que não existe um roteiro ou uma sequência de passos a serem seguidas no desenvolvimento de software, ou seja, tudo depende de como “jogar” com as praticas ágeis (TDD, IC, Pair Programming, Refactoring, Daily Planning, entre outras) durante o todo desenvolvimento baseado em um time box, conhecida como iteração. A cada iteração você precisa melhorar continuamente o desempenho diante de inspeções e adaptações, sempre baseado em feedbacks constantes eliminando ruídos de comunicação e aprimorando cada vez mais o modelo de coesão da equipe. Parece fácil, mas na prática surgem alguns imprevistos que criam gargalos e impedimentos, que são ainda maiores dentro de uma equipe imatura ou de um coach inadequado.

Sempre é recomendável usar o bom senso ao adotar uma técnica relativamente nova, visto que é muito fácil criar uma grande distorção em cima do assunto. Na minha opinião,  o mercado está evoluindo nesse sentido. No entanto, precisamos ter cautela ao enxergar o quanto isso é viável para o projeto, não com uma visão de riscos internos, mas sim como isso pode abalar a cultura das pessoas envolvidas, afinal os softwares são desenvolvidos por pessoas.

 

Anderson Silveira
Arquiteto de Software – Ci&T

< Voltar para a pesquisa


 

Contato com a SEA Tecnologia

A empresa SEA Tecnologia atua no mercado de desenvolvimento de sistemas desde 2003, quando ainda utilizavam o RUP como método de engenharia de software. Na intenção de aprimorar o conhecimento das equipes e investir na maximização de retornos, a empresa procurou especializar-se em metodologias ágeis, mais especificamente Scrum e XP.

Nossa equipe de desenvolvimento notou que estávamos tendo dificuldades na conclusão de alguns projetos e eu, como gerente de projetos, estava encontrando anormalidades na estimativa de custos. Portanto, optamos por alterar o nosso método de desenvolvimento e utilizar o Desenvolvimento Ágil. Em curto prazo, ficamos animados com a melhoria dos resultados nos projetos e isso nos motivou a divulgar o Desenvolvimento Ágil em outras áreas.

Entre as melhorias proporcionadas pelo Desenvolvimento Ágil, podemos citar: preservação da qualidade de vida dos profissionais, qualidade no código, sustentabilidade dos sistemas, compartilhamento do conhecimento, satisfação dos clientes e motivação da equipe. Eu poderia citar inúmeras vantagens aqui, mas a minha reposta ficaria muito extensa.

O processo de adaptação da equipe foi através de Baby Steps. Ou seja, um passo após o outro, uma prática de cada vez, de dentro pra fora das equipes até chegar aos ouvidos da alta direção. Houve resistência, mas resultados consistentes foram ótimos argumentos para que continuássemos utilizando o Desenvolvimento Ágil.

 

Renato Willi
Gerente de Projetos – SEA Tecnologia

< Voltar para a pesquisa


 

Contato com o TRE do Rio de Janeiro

 O Tribunal Regional Eleitoral do Rio de Janeiro também consiste em profissionais de TI para manter o funcionamento e a disponibilidade dos sistemas para acessos externos. Carlos Eduardo Nunes é Gerente de Projetos no TRE, e possui uma grande experiência com Desenvolvimento Ágil baseado em toda a carreira dedicada ao desenvolvimento de sistemas.

O mundo ágil foi o fator de sucesso em minha vida profissional. Tenho paixão por liderança de gerenciamento de projetos de software e considero o modelo ágil, de todos, o que apresenta maior efetividade. Se atualmente podemos considerar que as ferramentas estão boas e o hardware cada vez melhor, então a falha só pode estar no processo. Portanto, a solução é rever os conceitos e prestar foco nas pessoas, pois são elas o sucesso dos projetos. Trabalhando motivadas, energizadas e usando algum modelo que preconiza tudo isso, não há premissa que venha a levar à falha de um projeto.

Nos processos anteriores a 1990, comparavam a Engenharia de Software, que é uma das atividades mais complexas do ser humano, à Engenharia Civil. O Método em cascata, por mais que chegue numa solução, provou-se ao longo dos anos ser extremamente engessado, desmotivador e responsável por documentação irrelevante e ineficiente. Os projetos em sua maioria sofriam atrasos ou perda de recursos. O programador de software jamais pode ser comparado a um ajudante de obras. Desenvolvimento de sistemas exige criatividade contínua e sem limites, diferente da Engenharia Civil, que não precisa dispor de criatividade para atividades repetitivas.

Assim, para mim foi muito fácil se aproximar pela visão ágil. Considero o Manifesto Ágil como a verdadeira bússola no processo de gerenciamento e desenvolvimento de software. Aposto todas as minhas fichas no Modelo Ágil para que as empresas de software alcancem maior produtividade, assim como agregarem maior valor aos produtos para os seus clientes. Um método que prega metas de curto prazo, com integração de equipe e entregas geradas de forma interativa e incremental, sem dúvida ganha mercado.

 

Carlos Eduardo Nunes
Gerente e Líder de Projetos – TRE-RJ

< Voltar para a pesquisa


 

Contato com a Caelum

A empresa Caelum atua no ramo de desenvolvimento de sistemas e consultoria desde 2002, e vem desde então utilizando o Desenvolvimento Ágil como método de engenharia de software na produção de sistemas com linguagem de programação Java.

A Caelum nasceu ágil. Desde o princípio, desenvolvemos software entregando desde cedo e com frequência, colhendo feedback dos usuários o mais rápido possível e prezando pelo bem-estar de quem trabalha aqui.  A nomenclatura de “ágil” veio mais tarde, mas já seguíamos o manifesto e os princípios intuitivamente.

Dada a resposta anterior, a empresa em si não teve um processo de adaptação: apenas seguimos com a cultura local. As pessoas que entravam rapidamente se acostumavam com nossa forma de trabalho, em contato constante com o cliente, mais liberdade e mais responsabilidade.

Na parte de processos não houve grandes mudanças pelos motivos apresentados na primeira pergunta.  Na parte de práticas ágeis, contudo, sentimos que a programação pareada faz uma boa diferença na difusão de conhecimento. Testes automatizados e integração contínua dão confiança aos desenvolvedores. As revisões de software melhoram o design dos sistemas desenvolvidos e a refatoração constante evita que nossos códigos se transformem em grandes emaranhados de comandos desnecessários. As retrospectivas também são importantes, já que auxiliam na manutenção do bem-estar e do relacionamento, tanto dentro das equipes, quanto com os clientes.

 

Cecília Fernandes
Instrutora e Desenvolvedora – Caelum

< Voltar para a pesquisa