Marcelo Celebroni's picture

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.