Profile picture for user Marcelo Celebroni

Como agilizar a engenharia de software, diminuindo custos e ganhando qualidade?

  Está confirmado, não sabemos mais viver sem tecnologia! Até parece que ela sempre esteve aqui da forma como é hoje e que nunca precisamos de uma ficha telefônica ou de uma máquina de escrever ou de um Telégrafo. É difícil pensar que a menos de 20 anos, não tínhamos todas as possibilidades de comunicação e de informação que temos hoje, a velocidade com que são despejados, no mercado, produtos cada vez mais sofisticados, do ponto de vista tecnológico, é impressionante. Você já parou pra pensar que na década de 80 tínhamos que enfrentar uma fila enorme nas agências bancárias pra pagar uma simples conta de água? E o pior de tudo era saber que o Office-boy que estava na sua frente, só de contas de água, tinha pelo menos umas 10, sem contar todos os outros pagamentos que ele tinha que fazer! Pois é, hoje em dia pagamos contas de água, telefone e tudo mais que for necessário através da internet sem nenhum esforço e na comodidade do lar. Mas pra chegar até aqui foi um caminho longo com muitas idas e vindas, com muita tentativa e erro, mas tudo isso se tornou experiência, e chegamos até aqui. Por mais que muita gente diga ser capaz de sobreviver sem as tecnologias atuais, constata-se que a nossa dependência é maior, principalmente nas novas gerações que surgem, pois nascem com um computador no colo e um telefone celular na mão.

As tecnologias, por mais supérfluas que sejam, são fatores econômicos e de desenvolvimento de uma região ou país, porque um maior estado de progresso tecnológico de um país torna-o mais reconhecido, uma vez que o acesso às tecnologias implica em poder de compra e investimentos. Quanto mais avançado for à tecnologia, mais cara ela é, por isso, apesar de já existir inúmeras tecnologias de ponta, esta está limitada a um grupo restrito de pessoas. A idéia principal é que a tecnologia de fato existe, e está em evolução, talvez como Darwin disse, para estar mais apta ao novo meio, que neste caso é o futuro. Mas como se faz o futuro hoje? Criar tecnologia não é mais como era antigamente, sim, porque antigamente também tínhamos tecnologia, é claro que ela era um pouco diferente, mas ela sempre existiu.

Percebemos que a evolução tecnológica, cada vez mais, imprime mais e mais velocidade, dependendo do produto ou serviço relacionado à tecnologia, o que antes demoravam anos para ter uma nova versão ou um substituto melhorado agora pode demorar meses, ou dias, ou até horas. E o que mudou, porque conseguimos ser mais velozes? A resposta é simples, aprendemos com os próprios erros e isso fez com que nos organizássemos padronizadamente, reutilizando componentes como se fossem peças de um brinquedo de montar. Isto tudo lhes parece familiar? Por traz de tanta tecnologia estão os sistemas complexos criados para suportar o homem em tarefas que precisam ser executadas em milisengundos e que demorariam meses se tivessem que ser executadas manualmente. Estamos falando de software e como eles auxiliam a vida moderna. Já pensaram o que seria de nós sem o “Google”, sem o internet banking ou sem os sistemas ERP? Seríamos os mesmos, mas fazendo muito menos volume de negócios e sabemos que isso não é bom pra ninguém, não é verdade? Deixar de utilizar a tecnologia da informação hoje é um suicídio empresarial pois não há mais como sobreviver no mercado sem ser competitivo, sem proporcionar ao cliente mais conforto, mas agilidade, mais segurança, mais tudo. E se você deixar de oferecer, o seu concorrente vai e conseqüentemente você terá que se adequar, se não quiser “morrer” é lógico, e isso pode custar muito mais caro. Falando em custo, sabemos que o desenvolvimento de software realmente não é barato, mas é um investimento que sem sombra de dúvidas vale a pena, mas como fazer para desenvolver software reduzindo os custos de desenvolvimento e ainda aumentado a qualidade? A engenharia de software atualmente, envolve o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software aplicando práticas de gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade. Mas nem sempre só isso garante que o cliente receba aquilo que ele realmente precisa ou pediu. Entender os processos de negócio que utilizam softwares como suporte a sua execução é essencial para que seja entregue ao cliente exatamente aquilo que ele precisa. E são através dos processos de negócio, ou melhor, da forma como eles são modelados que se pode integrar as metodológias de gestão de processos de negócio e engenharia de software e fazê-las convergir para um único objetivo, suportar o negócio e alavancá-lo. Existem técnicas que podem ser utilizadas no mapeamento e modelagem de processos que irão melhorar o entendimento do processo por parte do desenvolvedor de software fazendo com que, por exemplo, diminua-se o número de reuniões necessárias para especificação de requisitos, e isso não é nada comparado ao que se pode melhorar. Esta é uma fase difícil e demorada, pois de um lado temos o usuário, aquele que opera, que executa o processo como ele é, no sistema em que ele está acostumado e de outro lado o desenvolvedor, com toda a sua bagagem técnica, sua lógica, disciplina e missão de entender o “como é hoje” e já visualizar o “como vai ser amanhã”. Mas esse não é o papel dele, ou pelo menos não deveria. O papel dele é receber as informações necessárias para desenvolver o novo sistema ou manter o sistema atual. Para que o entendimento do processo seja feito entra em cena o analista de processos que tem como missão documentar os processos de negócio, para que ele possa ser utilizado em qualquer iniciativa ou finalidade, inclusive a de melhorar a vida do desenvolvedor de software. O ganho de tempo relacionado ao prazo de um projeto de software é considerável, podendo chegar em ¼ do total do projeto. Estamos falando de 25% menos prazo, menos custo, menos idas e vindas, menos tentativas e erros e principalmente menos ajustes pós-implementação, sendo este último item um dos princípais fatores geradores de conflitos entre as empresas desenvolvedoras de software e seus clientes.

 

Featured achievement

Question Solver
Share your expertise and have your answer accepted as best reply.
Recent Unlocks
  • CR
  • BH
  • Profile picture for user Ivan.Ivanov.softwareag.com
  • Profile picture for user mscheid
  • MS
  • PacMan

Leaderboard

|
icon-arrow-down icon-arrow-cerulean-left icon-arrow-cerulean-right icon-arrow-down icon-arrow-left icon-arrow-right icon-arrow icon-back icon-close icon-comments icon-correct-answer icon-tick icon-download icon-facebook icon-flag icon-google-plus icon-hamburger icon-in icon-info icon-instagram icon-login-true icon-login icon-mail-notification icon-mail icon-mortarboard icon-newsletter icon-notification icon-pinterest icon-plus icon-rss icon-search icon-share icon-shield icon-snapchat icon-star icon-tutorials icon-twitter icon-universities icon-videos icon-views icon-whatsapp icon-xing icon-youtube icon-jobs icon-heart icon-heart2 aris-express bpm-glossary help-intro help-design Process_Mining_Icon help-publishing help-administration help-dashboarding help-archive help-risk icon-knowledge icon-question icon-events icon-message icon-more icon-pencil forum-icon icon-lock