Conteúdo organizado por Renato Cividini Matthiesen em 2022 dos artigos "Análise da abordagem LOW-CODE como facilitador da transformação digital em indústrias", "Desenvolvimento de aplicação móvel para submissão/revisão de despesas recorrendo a metodologias ágeis de desenvolvimento e à plataforma low-code OutSystems" e "Desenvolvimento rápido de aplicações – comparação de soluções em Outsystems e Mendix".
Modelos e metodologias de desenvolvimento de software
Para ajudá-lo a decidir quando controlar o acesso do usuário às informações, faça a si mesmo a seguinte pergunta: isso é uma sugestão ou uma imposição”.
Tomasi e Tilton (2021, p. 33)
Diversas são as abordagens, metodologias e modelos de desenvolvimento de sistemas de software, e a escolha de uma determinada abordagem deve levar em consideração a natureza do projeto, define Sommerville (2018).
Para projetos chamados de preditivos, que possuem definições de requisitos claros, escopo, tempo, qualidade bem definidos já na fase inicial do projeto o uso de modelos clássicos (ou tradicionais) para desenvolvimento de software pode ser uma boa escolha.
Para projetos de natureza adaptativa, onde os requisitos não são bem definidos no início do projeto e possuem desenvolvimento incremental e iterativo, o uso de métodos ágeis podem ser uma boa opção.
No contexto de Engenharia de Software e desenvolvimento de projetos de software existe a oportunidade de escolher uma melhor abordagem para conduzir o desenvolvimento e a gestão do projeto, ou ainda escolher ferramentas, métodos e metodologias que o façam de forma integrada, buscando em cada abordagem o que ela oferece de melhor para cada projeto. Aqui fazemos referência a projetos de maior porte, além de aplicações mais simples que podem ser desenvolvidas com ferramentas da abordagem Low Code.
Ao considerar a necessidade de desenvolvimento de projetos mais complexos de software, Sbrocco (2012, p. 18) defende que “nos últimos dez anos, as metodologias ágeis têm surgido pela necessidade de buscar alternativas para os modelos tradicionais de desenvolvimento de projetos”. Diferentes aspectos e um projeto diferenciam as metodologias tradicionais das ágeis no que diz respeito a estrutura da produção do software e no mindset da equipe de desenvolvimento.
E Coutinho (2019) nos ensina que a estratégia ágil para desenvolvimento de sistemas de software é vista como uma abordagem adaptativa que traz compatibilidade com mercados dinâmicos da atualidade, o que leva o ágil a maior adaptação a gestão de produtos e serviços em mercados em frequente mutação, com dinâmicas de revisão de produtos e serviços e intensidade de inovações, principalmente baseado em tecnologias.
Estas abordagens são importantes quando há necessidade de desenvolvimento de aplicações de software que transcendam a praticidade e simplicidade de pequenas aplicações, ainda que façam uso de ferramentas baseada no reuso de componentes e módulos para o desenvolvimento de sistemas de software.
As abordagens de desenvolvimento de software atuais são diversas devido a um período evolutivo das linguagens de programação, técnicas de desenvolvimento de sistemas, linguagens de modelagem de sistemas e softwares de apoio, que constituem atualmente plataformas e frameworks de apoio a automação de programação de sistemas e aplicativos de software.
As metodologias ágeis têm como ponto de partida o chamado Manifesto ágil, documento desenvolvido no ano de 2001 como saída de uma reunião entre 17 profissionais de desenvolvimento de sistemas de software que já utilizavam algumas metodologias como o XP, DSDM, Scrum dentre outras com uma reflexão sobre uma nova forma de desenvolvimento de sistemas e gestão de projetos de software.
As metodologias ágeis se baseiam em quatro princípios definidos no Manifesto Ágil.
São eles:
As metodologias ágeis na gestão de projetos de software vêm ganhando força nos últimos vinte anos considerando a maior complexidade de projetos de sistemas de software. Novas técnicas e ferramentas de gestão se unem às metodologias tradicionais e também às metodologias ágeis para maximizar a produtividade em projetos. Enquanto parte dos sistemas necessitam ser desenvolvidos por especialistas em tecnologia da informação, outras podem ser desenvolvidas por profissionais de outras áreas de forma colaborativa.
Os métodos ágeis permitem entregas incrementais, adaptação no projeto e forte interação com a integração do cliente e equipe de projeto e cooperação. Ao abordar os métodos ágeis disponíveis no mercado e já com razoável maturidade são enaltecidas filosofias de gestão como o Lean e metodologias de desenvolvimento de projetos como o Scrum, o eXtreme Programming.
Vejamos com um pouco mais de detalhes três metodologias ágeis para o desenvolvimento de sistemas de software mais complexos:
Aliadas do desenvolvimento de sistemas de software em diferentes abordagens (tradicional considerando o modelo em cascata, também chamada de waterfall, onde uma fase do projeto é iniciada quando a antecessora finalizar) ou ágil, desenvolvida de forma interativa e adaptativa por menores ciclos de desenvolvimento e entregas de versões ao cliente, ferramentas de gestão são utilizadas para auxiliar a gestão dos projetos. Estas ferramentas e abordagens também podem ser utilizadas para o desenvolvimento de aplicações com aplicações Low Code. Vejamos algumas delas:
Existem diversos sistemas de softwares e aplicativos úteis para a gestão de um projeto de software e podem ser utilizados de forma livre, outros com custo de licenciamento. Segue exemplos:
O desenvolvimento rápido de software deverá então fazer uso de uma nova abordagem de desenvolvimento de aplicações que transcendem os modelos ágeis de desenvolvimento, exemplificados pelo Scrum, eXtreme Programming dentre outras. A autora considera que as organizações que ainda não fazem uso de metodologias ágeis e adaptativas deverão conhecer e buscar adaptação ao chamado RAD (Rapid Application Development) para entrega mais acelerada e menos custosa de produtos de software, principalmente para clientes internos de uma organização empresarial.
Pinto (2021) nos lembra que as transformações tecnológicas e as mudanças rápidas das necessidades dos clientes têm pressionado as empresas a manterem modelos adaptativos de desenvolvimento de sistemas e mesmo de gestão, para conseguirem dar respostas aos seus clientes.
Como objeto de estudo para desenvolvimento rápido de softwares, vamos apresentar aqui uma metodologia ágil de desenvolvimento de sistemas de software criado pela empresa OutSystems.
De acordo com Karmali (2019), a OutSystems sugere uma abordagem diferente para organização e controle de projetos, baseando-se nas metodologias ágeis. A necessidade de entrega rápida e constante mudança é atendida, entregando assim aplicações que realmente correspondem às necessidades solicitadas pelo negócio.
A metodologia apresentada pela autora é um modelo de gestão ágil, com semelhanças relatadas junto a metodologia Scrum, mas adaptada de forma a serem adequados à natureza particular de projetos realizados dentro de plataformas de geração de aplicações através da abordagem Low Code.
A metodologia desenvolvida pela OutSystems utiliza-se dos Sprints do Scrum onde há uma demonstração da versão atual da aplicação desenvolvida para coleta e análise de feedback e gestão de requisitos para a organização dos próximos Sprints, com duração de uma ou duas semanas com fases de análise de requisitos, desenvolvimento do sistema e testes.
Os requisitos que não estão claros ou tiveram algum tipo de modificação são revisitados e reestruturados para adaptação do sistema e programação nos Sprints futuros. Karmali (2019) nos ensina que o OutSystems dá ênfase à relação de tempo e esforço e requisitos entregues, limitando o período do projeto e colocando foco especial na organização dos recursos para garantia de entrega nos prazos determinados e conforme orçamento estabelecido.
Por fim, na metodologia ágil criada pela OutSystems para desenvolvimento de aplicações em suas plataformas de Low Code, utiliza-se o conceito de training para recolher uma grande quantidade de feedback e realizar as devidas alterações que podem ser cruciais para o desenvolvimento iterativo do projeto antes da entrega de uma versão finalizada.
A metodologia Scrum busca gerenciar projetos adaptáveis com resultados rápidos, eficientes, flexíveis e com processos interativos. A estrutura da metodologia utilizada para esta iteração é o Sprint. Esta estrutura de gestão é um elemento Time boxed, pois possui restrição de tempo para garantir que os membros do Scrum desenvolvam as atividades de desenvolvimento dentro de períodos planejados.
Cada Sprint pode ser considerado com um subprojeto com período de tempo limitado a um mês de duração. De acordo com Sutherland e Sutherland (2019, p. 79), “o tempo é o maior limitador dos projetos humanos. Ele afeta tudo”.
As cerimônias são os rituais ou reuniões na metodologia Scrum, utilizadas para a gestão e acompanhamento do projeto. São atividades realizas em tempos definidos (timeboxing). São cerimônias no Scrum:
Figura 1 – Sprint no Scrum
Fonte: Shutterstock.
Nesta aula, você pode perceber que diversas são as abordagens, metodologias e modelos de desenvolvimento de sistemas de software, e a escolha de uma determinada abordagem deve levar em consideração a natureza do projeto. No contexto de Engenharia de Software e desenvolvimento de projetos de software existe a oportunidade de escolher uma melhor abordagem para conduzir o desenvolvimento e a gestão do projeto, ou ainda escolher ferramentas, métodos e metodologias que o façam de forma integrada, buscando em cada abordagem o que ela oferece de melhor para cada projeto. Aqui fazemos referência a projetos de maior porte, além de aplicações mais simples que podem ser desenvolvidas com ferramentas da abordagem Low Code. Os métodos ágeis permitem entregas incrementais, adaptação no projeto e forte interação com a integração do cliente e equipe de projeto e cooperação. Ao abordar os métodos ágeis disponíveis no mercado e já com razoável maturidade são enaltecidas filosofias de gestão como o Lean e metodologias de desenvolvimento de projetos como o Scrum, o eXtreme Programming. A OutSystems sugere uma abordagem diferente para organização e controle de projetos, baseando-se nas metodologias ágeis. A necessidade de entrega rápida e constante mudança é atendida, entregando assim aplicações que realmente correspondem às necessidades solicitadas pelo negócio. A metodologia desenvolvida pela OutSystems utiliza-se dos Sprints do Scrum onde há uma demonstração da versão atual da aplicação desenvolvida para coleta e análise de feedback e gestão de requisitos para a organização dos próximos Sprints, com duração de uma ou duas semanas com fases de análise de requisitos, desenvolvimento do sistema e testes.
Referências
Bibliográficas
Coutinho, Heitor. (2019). Da estratégia ágil aos resultados. São Paulo: Saraiva.
KarmalI, S. (2019). Desenvolvimento de aplicação móvel para submissão/revisão de despesas recorrendo a metodologias ágeis de desenvolvimento e à plataforma low-code OutSystems. [Departamento de Ciências e Tecnologias da Informação da ISCTE]. Instituto Universitário de Lisboa. Lisboa, PT.
Pinto, I. M. M. M. (2021). Desenvolvimento rápido de aplicações – comparação de soluções em Outsystems e Mendiz. [Instituto Superior de Engenharia do Produto]. Politécnica do Porto. Porto, PT.
Ries, Eric. (2019). A startup enxuta: como usar a inovação contínua para criar negócios radicalmente bem-sucedidos. Rio de Janeiro: Sextante.
Sbrocco, Jose. H. T. C.; Macedo, Paulo C. de. (2012). Metodologias ágeis: Engenharia de Software sob medida. São Paulo: Érica.
Sommerville, Ian. (2018). Engenharia de Software, 10 ed. Pearson. Ebook Pearson.
Sutherland, Jeff; Sutherland, J. J. (2019). Scrum: a arte de fazer o dobro do trabalho na metade do tempo. Rio de Janeiro: Sextante.
Tomasi, C.; Tilton, B. (2021). Low-code apps. Hoboken, NJ: John Wiley & Sons, Inc.
Artigos de referência:
Análise da abordagem LOW-CODE como facilitador da transformação digital em indústrias. [Revista e-TECH: Tecnologias para competitividade industrial, V. 15, n. 2]. E-TECH Tecnologias para competitividade Industrial. Florianópolis, BR - ALVES, F.; ALCALÁ, S. G. S. (2022). DOI: https://bit.ly/3S1UNpC.
Desenvolvimento de aplicação móvel para submissão/revisão de despesas recorrendo a metodologias ágeis de desenvolvimento e à plataforma low-code OutSystems. - [Departamento de Ciências e Tecnologias da Informação da ISCTE]. Instituto Universitário de Lisboa. Lisboa, PT - KARMALI, S. (2019).
Desenvolvimento rápido de aplicações – comparação de soluções m Outsystems e Mendiz. [Instituto Superior de Engenharia do Produto]. Politécnica do Porto. Porto, PT. PINTO, I. M. M. M. (2021).