Processo Unificado vs Ágil: Ser ou não ser, eis a questão!!

Quem não conhece a famosa frase Ser ou não ser, eis a questão (no original, To be or not to be, that’s the question) que vem da peça A tragédia de Hamlet, príncipe da Dinamarca, de William Shakespeare? Incrível como até nos dias de hoje muitas vezes somos assombrados por essa dúvida cruel, principalmente nós meros mortais da área de desenvolvimento de software.

Em conversas de bares regados a chopp e salgadinhos com meus estimados amigos de trabalho e até mesmo lendo seus blogues (Gustavo Serafim, Marcelo da Costa Araújo, Philip Calçado, GUJ) sobre metodologia, processo unificado, processo ágil, RUP, XP, Scrum e as várias outras combinações do alfabeto, percebi que em muitas vezes ficamos apertando a mesma tecla e nunca saímos do lugar. Sempre vejo grandes batalhas serem travadas para chegar à conclusão de qual metodologia/processo é a melhor. Uns dizem que ser ágil é que trará os melhores resultados para os projetos, de forma que para essas pessoas devemos jogar fora toda papelada e se ligar no que realmente traz agilidade que é codificar/testar/refatorar. Já outros defendem que um processo onde não exista documentação apropriada, não se pode ter um maior controle sobre o andamento do projeto e seus inevitáveis desvios de prazo e orçamento, seja quando a equipe é grande ou ela está particionada em diversos lugares ou o projeto envolve diversas tecnologias e blá, blá, blá.

Vejo nos blogues e em muitos lugares grandes entusiastas para não dizer “religiosos” que crêem veementemente que o processo utilizado por eles é melhor do que aquele que eles não usam e que uma determinada metodologia é melhor do que a outra e blá, blá, blá. Mas nunca vejo demonstrarem a verdadeira preocupação que devemos ter ao lidar com metodologia/processo de desenvolvimento de software que é o pilar Pessoas/Boas Práticas/Ferramentas, ou seja, ao invés de ficarmos dizendo que uma é melhor que a outra, devemos nos atentar que sem pessoas treinadas para conhecer, praticar e respirar o processo, sem pessoas que utilizam de boas práticas de desenvolvimento de software e sem uma equipe com ferramentas disponíveis que apóie o processo, não adiantará de nada e continuaremos a bater cabeça contra a parede em cada projeto. E com isso todos nós nos veremos fazendo a mesma pergunta de sempre: Processo Unificado ou Processo Ágil, RUP ou XP, fazer análise ou não, modelar ou não, ser ou não ser. Essa com certeza é a grande questão dos dias de hoje para nós desenvolvedores de software.

Pilar do Desenvolvimento de Software

Pilar do Desenvolvimento de Software

No nosso dia-a-dia podemos usar Use Case ou User Stories, ferramentas para UML ou rascunho no quadro, reuniões longas e chatas ou uma breve reunião diária (Standup Meeting), DDD, TDD, MDA, diagrama disso, diagrama daquilo, SOA, SCA, RUP, XP, AUP, EUP, Scrum e todas as várias outras combinações do alfabeto, que se não existir as premissas do pilar que mencionei, se as pessoas não aderirem às boas práticas de um processo de desenvolvimento, pode juntar tudo isso e jogar na lata de lixo. Eu sou uma pessoa que nos últimos anos vem tentando entender esse dilema que passamos e cheguei à conclusão que o melhor dos mundos não está em seguir somente um processo unificado ou somente um processo ágil, até mesmo porque podemos ser ágil sem usar XP ou Scrum e usando um RUP. Podemos tanto usar um RUP e customizá-lo para a necessidade de um projeto, podemos usar um XP/Scrum dependendo da situação, como também podemos usar um pouco de cada, utilizando as partes onde cada um é mais forte em determinadas situações. No final das contas o mais importante são as pessoas dentro do processo e as práticas utilizadas para chegar ao objetivo que é o software funcionando e o cliente feliz da vida.

Mas enquanto não aprendermos a usar o que realmente é necessário descartando o que não é essencial e abrir a mente para entendermos que cada situação requer estratégias diferentes e até processos diferentes, sempre estaremos nos perguntando: Ser ou não ser, eis a questão!

“Vida Longa e próspera.”

10 respostas para Processo Unificado vs Ágil: Ser ou não ser, eis a questão!!

  1. Danielle Albuquerque disse:

    Oi Vinicius,
    Através do blog do Marcelo cheguei ao seu.
    O RUP ficou mesmo estigmatizado como algo longo, complexo, burocrático, é a idéia que o RUP Clássico dá… As pessoas achavam que trabalhar com RUP era sinônimo de segui-lo à risca.
    O RUP 7.0 veio justamente das cabecinhas pensantes que, acima de tudo, usaram o bom senso que você citou em seu texto: Pessoas/Boas Práticas/Ferramentas. O necessário da UML, o necessário das disciplinas, o necessário das iterações, dos princípios. O necessário é justamente aquilo que atende perfeitamente às particularidades da sua aplicação: ferramentas (ou falta delas), linguagem, prazo… O que é necessário pra desenvolver uma aplicação em Java estimada em 3 mil PPFs é diferente do necessário para uma aplicação também em Java em que 90% é CRUDE.
    Agora é preciso que as pessoas conheçam, porque usar o RUP como base para um processo de desenvolvimento, curto ou longo, aumenta muito as chances de sucesso e, comprovadamente, reduz muito as chances de retrabalho e de POGs da vida…rs
    Gostei muito dos textos seu e do Marcelo.
    Abs.

  2. Parabéns!

    Para ilustrar seus textos, não esquece dos seus conhecimentos em: Terra-Média; Klingons; Krypton; Atlântida.

    Abs.

  3. Vinicius Lourenço de Sousa disse:

    Olá Danielle,
    Quero agradecer por seu comentário e dizer que concordo inteiramente com você. Hoje em dia as pessoas ficam falando tanto em agilidade que não percebem que ser ágil está nos pilares que mencionei e tanto faz usar um processo unificado quanto um ágil que terão os mesmos resultados.
    Abs.

  4. Vinicius Lourenço de Sousa disse:

    Grande Gustavo,

    Pode deixar que idéia central do blog é mostrar minhas opiniões com muito humor e dose filosófica.
    Abs.

  5. [...] inserir uma metodologia ágil em um ambiente despreparado que não irá rolar e as pessoas ficarão discutindo a validade de ser ou não ser ágil. Isso significa que podemos utilizar qualquer processo de desenvolvimento de software iterativo e [...]

  6. Áthila Rocha disse:

    Olá Vinícius, gostei também dos teus textos.

    Vinícius, quero uma opinião a respeito de um assunto: na sua opinião, qual a diferença quando falamos de Processo de desenvolvimento de software e Metodologia de desenvolvimento de software. As definições dos termos Processo e Metodologia são às vezes próximos.

    Abraços

  7. Vinicius Lourenço de Sousa disse:

    Olá Áthila, obrigado pelo seu comentário.

    Sobre sua dúvida vamos lá. Por mais que os dois termos possam parecer idênticos à primeira vista, eles não são.
    Processo de desenvolvimento de software é um conjunto de atividades e tarefas (passos da atividade) onde sabemos quem executa a atividade, quando ela é executada e o que é gerado ao final dessa atividade (artefato). Já a metodologia está ligado ao “como executar” o processo, ou seja, é um conjunto de práticas (modelagem, análise, reuniões diárias entre a equipe e o cliente e etc.) que visa a dar forma ao processo.
    Você pode ter o mesmo processo e utilizar de metodologias diferentes para executá-lo.

    Abs.

  8. [...] lendo alguns blogs, entre eles o do Vinicuis Teles, da ImproveIt, Vinicus Lourenço, The Developers Conference e Agile Modeling para me atualizar e ver a opinião de outras pessoas. [...]

  9. Julio Rodrigues disse:

    Boa Tarde.
    Achei muito interessante a postagem do BLOG. A ideia principal de PESSOAS/BOAS PRATICAS/FERRAMENTAS, é muito interessante.
    Gostaria de saber se essa questão dos pilares da programação, foi voce quem desenvolveu baseado na sua esperiencia ou se isso ja é defendido por algum autor.

    Parabens e muito grato.

    Julio Rodrigues

    • Vinicius Lourenço de Sousa disse:

      Olá Julio, obrigado pelo seu comentário e desculpa pela demora na resposta.

      Esse pilar em específico foi eu mesmo aue desenvolvi baseado em minha experiência. Na verdade ele é uma adaptação de um pilar muito descrito em livros que no lugar de boas práticas temos é processo. Esse pilar é defendido por todos os que são a favor das metodologias ágeis. Mas para mim, o conjunto de pessoas utilizando de boas práticas e de ferramentas que os apoiem formam o processo de desenvolvimento de software. Espero ter ajudado.

      Abs.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.