domingo, 30 de agosto de 2020

Modelagem Ágil

A modelagem ágil pode ser definida como “um framework para o cotidiano”. Esta definição de modelagem ágil é uma realidade para as empresas que necessitam de desenvolvimento eficiente. A modelagem ágil estabelece um conjunto de práticas no desenvolvimento de software que está cada vez mais se tornando habitual. Mas, diferente do que muitos pensam, não existe um modelo predefinido ou um conjunto de regras a serem adotados. Na modelagem ágil, cada equipe, dentro de suas atribuições e características dos projetos da empresa, adota uma forma ágil mais adequada para atender suas demandas.

Modelagem ágil.

 

Por Karashaev / shutterstock.com

Isto quer dizer que, em modelagem ágil, apenas é mostrado o caminho e a equipe adota as práticas mais adequadas dentro do conceito ágil.

Se alguém lhe perguntasse qual a diferença entre lei e princípio, o que responderia?

Uma das respostas possíveis seria: “Leis são escritas em papéis enquanto princípios são escritos em nosso coração e passados de geração em geração por nossos familiares”. O mesmo se aplica à modelagem ágil: você não vai encontrar leis ou definições para o desenvolvimento em modelo ágil, mas encontrará as melhores práticas ou princípios que muitos adotam. Se estas práticas lhe serão úteis ou não, depende exclusivamente de você e de sua equipe de desenvolvimento. Portanto, não há leis preestabelecidas, apenas princípios adotados.

Na área de TI existem muitas regulamentações e recomendações. As regulamentações estão relacionadas às práticas que devem ser seguidas para se obter uma certificação, por exemplo. Já as recomendações são boas práticas que podemos ou não seguir, ou, ainda, seguir parcialmente. Isso não implicaria em uma certificação.

Uma das fases importantes da modelagem ágil são as histórias contadas, geralmente, pelo responsável por representar o cliente dentro da equipe de desenvolvimento. Estas histórias determinarão o caminho ideal a ser seguido na modelagem. Elas são apresentadas nos Story-Writing Workshops, oficinas das quais também costumam participar todos os envolvidos que contribuem para o entendimento do produto.

A modelagem ágil visa colocar em prática o conjunto de valores que o negócio já possui. Vamos imaginar um brainstorm em que todas as ideias são apresentadas e depois são colocadas em uma sequência desafiadora de ações e procedimentos. A modelagem ágil pode começar a ser aplicada desta forma.

Por Rawpixel.com / shutterstock.com.

Talvez neste ponto você esteja indagando: “até agora falamos de desenvolvimento, e nem sequer uma vez falamos de linguagem de programação, como isso é possível? E quando vamos falar deste assunto?”.

Vamos voltar a um conceito antigo relacionado à lógica de programação. Os mais experientes se lembram que, antes de começar a se desenvolver um programa, fazia-se um diagrama de fluxo de dados estruturado do sistema, desenhava-se o fluxograma e somente então é que se iniciava a programação em si. Estes profissionais mais experientes entendiam que, se você soubesse passar por estas fases antes da programação, a linguagem de programação era um detalhe. Poderia ser qualquer linguagem, pois a lógica de funcionamento do programa é a mesma. Na modelagem ágil ocorre o mesmo, a linguagem é um detalhe que pode ser pensado e adotado depois do entendimento dos requisitos que o software precisa atender.

Não se tem a intenção, com isso, de menosprezar linguagens eficientes de programação, mas apenas propor uma quebra de paradigma. Esta abordagem tenta voltar aos conceitos antigos, pelos quais o programador programava e o analista fazia a análise de dados. Mas não menospreza um ou valoriza muito o outro. A princípio, todos os profissionais têm condições de atuar com a modelagem ágil, mas devem se desvencilhar de conceitos equivocados que, eventualmente, o ambiente gráfico tenha imposto a eles.

sábado, 29 de agosto de 2020

Fundamentos das Metodologias Ágeis

 O termo “ágil” faz referência à capacidade de adaptação às mudanças de contexto e às modificações de especificações que acontecem durante o processo de desenvolvimento. Quando entendemos a importância da aplicação de um modelo ágil, passamos a ter um comportamento mais profissional, buscando aplicar técnicas de desenvolvimento visando garantir o sucesso do projeto. Apresentaremos os conceitos que fundamentam as metodologias ágeis de desenvolvimento.

Definição de métodos ágeis

Visando melhor entendimento deste tópico, vamos comparar o modelo tradicional de desenvolvimento a um arqueiro que necessita atingir um alvo. Ele tem a relativa tranquilidade de preparar seu arco e flecha, tempo para identificar o alvo e tempo para buscar a concentração necessária para um tiro certeiro.

Por Helder Almeida / shutterstock.com.

No desenvolvimento com modelos ágeis a complexidade, comparada ao arqueiro, aumenta. Identificamos os seguintes componentes: o alvo, que agora é uma maçã posicionada sobre a cabeça de alguém, e um cronômetro, fazendo uma contagem regressiva acusando o tempo que falta para cumprir a tarefa. O sucesso do negócio pode depender exclusivamente do fato de que os desenvolvedores precisam usar métodos ágeis e eficientes, pois os clientes e o mercado precisam ver seu produto/serviço antes que veja os da concorrência. Querer um prazo mais dilatado ou uma segunda oportunidade para o acerto nem sempre é uma opção aceitável. Nesta situação, o uso de modelos ágeis pode ser a única opção aceitável na busca do sucesso.

Segundo o Standish Group, os principais fatores para um número ainda tão alto de projetos que não alcançam seu objetivo estão relacionados a projetos de software que não têm informações claras sobre o papel das pessoas (equipe envolvida no projeto), suas responsabilidades, requisitos e, também, por inabilidade para acompanhar o que ocorre em cada um dos diferentes passos do ciclo de vida da aplicação. (INFOQ.com, 2015)

Para vencer esta inabilidade, o modelo ágil mostra a possibilidade de superação de trauma com a sugestão de quebra de paradigmas. Assim, podemos dizer que os modelos ágeis têm como objetivo vencer as dificuldades enfrentadas no desenvolvimento de aplicativos eficientes dentro de um prazo aceitável. É um conceito associado a formas de desenvolver aplicativos que atendam aos requisitos do negócio. Significa quebrar paradigmas e contribuir para um procedimento eficiente.

O aperfeiçoamento contínuo de técnicas, processos, estratégias e metodologias para o desenvolvimento de projetos em ambientes de extrema incerteza levou o gerenciamento de projetos a um novo patamar, em que é possível encontrar uma solução que eleve o valor de cada iniciativa para a empresa e reduza o tempo de espera pela solução.

Essas soluções são chamadas de Métodos Ágeis, conjuntos de melhores práticas que auxiliam no desenvolvimento de projetos de todos os portes e níveis de complexidade, contribuindo para que se obtenha maior sucesso ao final de cada empreitada.

Conhecer esses Métodos Ágeis e o que eles podem fazer pela sua empresa é fundamental para manter a competitividade e alcançar melhores oportunidades de negócios (MASSIMUS.com, 2016).

sexta-feira, 28 de agosto de 2020

Controle e Monitoramento

Como já vimos, nesta fase nosso gerente de projetos estará envolvido em atividades de monitoramento e controle, verificando se o trabalho do projeto está sendo executado de acordo com o planejamento elaborado e atualizando os documentos gerados nos grupos anteriores. Aqui, o gerente de projetos:

  • Mede o desempenho do projeto;
  • Toma ações corretivas em algum desvio ocorrido;
  • Realiza auditoria; e
  • Administra contratos, entre outras atividades.

Encerramento

Neste grupo, o gerente de projetos estará formalizando o final das atividades, obtendo o aceite formal do cliente com o produto ou serviço entregue. O gerente finaliza os relatórios de desempenho, arquiva a documentação do projeto, libera os recursos e encerra, formalmente, o projeto ou parte dele por meio de um termo de encerramento de um projeto, como o mostrado na Figura.

Exemplo de termo de encerramento do projeto.

quinta-feira, 27 de agosto de 2020

Execução

No grupo de processos de Execução, o gerente de projetos coloca em execução as atividades desenvolvidas no grupo de Planejamento. Aqui, basicamente, o gerente de projetos segue os passos ilustrados na Figura e atualiza as documentações durante a execução do projeto.

Exemplo de atividades a serem desenvolvidas no grupo de Execução.

quarta-feira, 26 de agosto de 2020

Planejamento de Aquisições do Projeto

Enquanto nosso gerente de projetos planeja o projeto, ele faz uma análise prévia para saber se o projeto será desenvolvido internamente (na própria empresa) ou se será desenvolvido externamente (fornecedor). Normalmente, existe um departamento específico para controle de aquisições em uma organização (Compras, Jurídico etc.) e se o gerente chegar à conclusão que é melhor desenvolver o projeto (total ou parcialmente) por terceiros, esse departamento deve ser envolvido no projeto para administrar os contratos. Este processo varia de acordo com o tipo de empresa em que se atua.

Nesta etapa, o gerente de projetos deve auxiliar o departamento responsável pelas aquisições detalhando o trabalho do que deve ser adquirido por um fornecedor em um documento chamado Declaração de Trabalho da Aquisição. Outros documentos usados em aquisições são a RFQ – Request for Quotation e a RFP – Request for Proposal.

Um exemplo de ciclo de atividades que pode ser seguido, nesta etapa, está ilustrado na Figura.

Exemplo de fluxo no planejamento de aquisições.

terça-feira, 25 de agosto de 2020

Planejamento de Riscos do Projeto

Nosso gerente também sabe que o projeto está sujeito a riscos que impactam no seu sucesso, portanto, a elaboração de um planejamento de riscos, impactos e possíveis soluções são essenciais. Isso garante uma ação proativa por parte do gerente de projetos.

Em conjunto com stakeholders ou até mesmo utilizando opinião especializada (consultorias, por exemplo), o planejamento dos riscos do projeto é uma arma eficiente de contornar possíveis problemas.

A Figura mostra um exemplo de um plano de gerenciamento de riscos do projeto.

Exemplo de Plano de Gerenciamento de Riscos.

segunda-feira, 24 de agosto de 2020

Matriz de Responsabilidades – RACI

Outro ponto importante no trabalho deste gerente de projetos é a definição dos papéis e responsabilidades dos recursos em cada atividade. Para isso, o gerente elabora a matriz RACI que é uma importante ferramenta de apoio no gerenciamento dos recursos humanos e das comunicações.

A matriz RACI é usada para formalizar os papéis e responsabilidades durante um projeto e uma forma de delegação de responsabilidades aos integrantes da equipe de projeto. A Figura ilustra um exemplo de matriz RACI.

Detalhadamente, na matriz RACI definem-se:

[R]esponsible – responsável pela execução da tarefa.

[A]ccountable – prestador de contas, responsável pela aprovação.

[C]onsulted – consultor da tarefa e responsáveis por fornecerem informações úteis para a conclusão da tarefa.

[I]nformed – pessoas informadas sobre o progresso e status da tarefa.

Exemplo de matriz de responsabilidades do projeto.
Gráfico RACI Indivíduo
Atividade Ana João Carlos Cláudia Sueli
Criar termo de abertura A R I I I
Coletor os requisitos I A R C C
Apresentar solicitação de mudança I A R R C
Desenvolver plano de testes A C I I R
R = Responsável / A = Responsável pela aprovação / C = Consultar / I = Informar Fonte: PMI (2013, p. 262).