Tecnologias que dão mais agilidade ao desenvolvimento ágil

UX, Frontend, frameworks Javascript, microservices, APIs, Backend… São termos que estão em evidência em diversos fóruns tecnológicos e que estão ganhando a pauta nos roadmaps tecnológicos.

Como eles podem ser colocados todos juntos e qual a contribuição de cada uma dessas peças para o processo de desenvolvimento de software? Como eles podem potencializar ainda mais a produtividade e as práticas ágeis, como por exemplo o Scrum?

UX permite que toda a arquitetura da informação de um sistema seja definida de forma independente e ao término desse trabalho já será possível disparar as diversas frentes de trabalho para a implementação do software em questão.

Logo no início do projeto já temos uma grande contribuição para o processo de desenvolvimento ágil onde as equipes poderão subdividir uma funcionalidade em atividades menores (paralelas e autônomas) que ficarão disponíveis no backlog da sprint.

O time de desenvolvimento do Frontend fica focado na implementação das telas dos sistema seguindo as diretrizes que foram dadas pelo time de UX nos aspectos de look&feel e de fluxo das informações.

Já o time de implementação dos serviços (ou micro-serviços) se preocupa em atender as necessidades do time de Frontend em termos de manipulação dos dados (consulta / atualização).

E o Backend tem como papel fornecer a sustentação necessária para a persistência dos dados que são demandados pela camada de serviços, garantindo escalabilidade, alta-performance e resiliência.

Mas atenção: “Ágil não significa Desgovernado”!!!

Para que as diversas frentes de desenvolvimento paralelas e autônomas sejam convergentes para um entregável íntegro e consistente, alguns cuidados devem ser tomados:

  • defina as APIs (ou contratos) entre as diversas camadas, garanta que todos os responsáveis tem o perfeito entendimento do funcionamento esperado de cada uma das APIs, e se durante o projeto houver a necessidade de modificação de algum aspecto da API o plano de comunicação dessa alteração tem que ser eficaz e envolver os diversos times impactados pela mudança;
  • para reforçar a independência no desenvolvimento crie Mocks, eles servirão para testar o funcionamento da implementação feita não importando em qual camada o desenvolvimento está ocorrendo, podendo ser Frontend, Serviços ou Backend;
  • testes funcionais automatizados são fundamentais para garantir a consistência do sistema que está em desenvolvimento;
  • tenha um responsável com o conhecimento do todo e que possa interagir com os diversos times para facilitar a solução de problemas técnicos; fazer o alinhamento e resolução de conflitos nas diversas frentes de desenvolvimento; e que tenha como objetivo garantir que os diversos ‘pedaços’ de software se integrarão ao final do projeto.

Os frameworks Javascript ajudam bastante nesse processo de fragmentação do processo de desenvolvimento, e qual seria um bom framework? Abaixo seguem algumas referências podem apoiar na tomada de decisão:

Por GIULIANO AVILA

Analista de sistemas desde o século XX :-) Curtindo muito o momento de transição que estamos vivendo e procurando contribuir com a era da revolução digital!

Postado em: 20 de maio de 2015

Confira outros artigos do nosso blog

Como a comunicação influencia em times ágeis?

15 de junho de 2018

Ariane Ferreira Izac

Vamos falar sobre métricas Kanban?

21 de maio de 2018

Ricardo Augusto Shikota

Método Kanban: primeiros passos

10 de maio de 2018

João Paulo Grabosque

Afinal, o que é Scrum Master?

20 de abril de 2018

Fernanda Rogge Barbosa

Deixe seu comentário