terça-feira, 16 de setembro de 2008

Requisitos: A Disciplina "Ágil" Esquecida I

Ser Ágil é fantástico.

Eu também quero ser ágil.

Sendo ágil vou conseguir aquele emprego bala na DELL ou na HP. Sendo ágil vou ter um monte de assunto para postar na minha lista de discussão. Sendo ágil vou ter assunto para blogar ad nauseam toneladas de non-sense magicamente validadas pela prefixação ou posfixação do adjetivo "Agile".

Sim. Estamos vivendo um hype. Mais um. A maior vítima deste hype acredito que seja o famoso Joe Six-pack (o nosso "Zé povinho"). O desenvolvedor, o testador e o analista medianos sem muito acesso a informação de qualidade ou mesmo sem muito embasamento crítico para separar o joio do trigo. E como, se isto já não bastasse, afogado em um mar de blogs, mail-lists, revistas técnicas e consultores. Ou seja a maioria de nós. E, ia me esquecendo, as organizações que pagam nossos salários.

É um problema razoavelmente complicado de se lidar. Como já falei anteriormente é muito fácil expressar uma opinião (e atingir seus 15 acessos únicos de fama) . Basta se logar no blogger e fazer um post do gênero testei-uma-feature-duca-da-metodologia-ágil-X-e-funcionou-que-uma-beleza-portanto-todos-deveriam-estar-utilizando-aliás-li-no-blog-do-fulaninho-que-o-RUP-é-cascata-e-não-sei-como-alguém-pode-usar-esta-naba. Ponho um bait no visão ágil ou no java free e pronto: estou a um passo do estrelato blogosférico. Quero dizer com isto que temos que ser mais criteriosos ao conteúdo que lemos na web.

Alguns anos atrás quando passávamos por um movimento em um extremo do ciclo, fomos brindados com o XP. Em paralelo à introdução deste movimento, estávamos vivendo o hype do RUP. E a semente para a mixórdia dos métodos ágeis estava plantada. Várias práticas se tornaram magicamente ágeis aos ventos do hype: desenvolvimento iterativo, integração contínua, refatoração contínua e design emergente, TDD, Pair Programming sem comprovação alguma que não seja a palavra do consultor "ágil". Mesmo que boa parte destas já tenha sido desenvolvida anos antes, mesmo que outras atualmente já não se mantenham em pé por si só à luz de provas empíricas.

No pico deste hype práticas foram condenadas a priori. Jogadas na vala comum junto com outros conceitos "novos obsoletos" também engolidos pela onda "ágil". Eliminar uma disciplina da Engenharia de Software das práticas de desenvolvimento por falta de conhecimento não significa que o problema deixou de existir. Substituir as funções desempenhadas pelas práticas previstas por esta disciplina pelo seu simulacro não quer dizer que se atingiu a maestria no desenvolvimento de software.

Chego ao ponto. Nesta mixórdia toda sobre métodos ágeis, venho dizer qual prática efetivamente ágil foi esquecida: Engenharia de Requisitos.

Esta é a deixa dos zelotes ágeis: "Mas como?!? Desde quando?!? Requisitos!??!?! Pilotar Word não pode!!!! E o manifesto ágil?!?".

Bom, este post já ficou grande demais. Fiquei só na síntese do contexto histórico. Continuo na seqüência.

Hasta.

quinta-feira, 11 de setembro de 2008

Sim Estamos no meio de um Hype

Definitivamente estamos vivendo mais um hype em TI.

Apenas mais uma evidência fortíssima: artigo no InfoQ sobre métodos ágeis na escrita de livros. Segue:



O Per Kroll (do OpenUP) fez um processo de interação semelhante com os co-autores, revisores e editores e não o chamou Agile Writing.

Qualquer livro sobre escrita de textos técnicos diria para se partir de uma tese principal (a resposta ao problema que o livro pretende resolver), fazer um outline dos argumentos principais e depois escrever o conteúdo. Abaixo tem algumas referências sobre o método.

segunda-feira, 25 de agosto de 2008

The Agile Ostrich Development Method Development Method

Como Andy Warhol preconizou, todos têm direito a seus 15 minutos de fama. Hoje, através da blogosfera, conseguimos atingir a institucionalização dos 15 minutos para as massas.

Não que eu considere Warhol. Para mim, contestação pseudo-aforística baseada apenas em devaneios pessoais, sem embasamento (não necessariamente empíricos, mas também racionalistas) valem tanto quanto um churrio intelectual. A blogosfera é um ambiente propício para isso, onde pálidos arremedos de empirismo são declarados como verdade prontamente generalizável.

Um filósofo brasileiro, talvez o único legítimo na nossa atualidade diz que as pessoas não deveriam esperar ser ouvidas sobre um determinado assunto por mais tempo que se dedicaram a estudar ou refletir sobre o tema. É um argumento objetivo, apesar do caos mental em que as pessoas andam imersas atualmente onde referenciais, se muito, entram em obsolescência em uma velocidade maior do que a maioria das pessoas consegue lidar.

Técnicos (bem como profissionais em alguma pos) gostam de ouvir a própria voz. É uma questão de Ego (um dia exponho a Teoria do Hamsterismo em Profissionais de TI, desenvolvida por um camarada meu desenvolvedor e dublê de psicólogo). Teorias são prontamente formadas baseadas em crenças, medos, preconceitos e observação enviesada do micro-ambiente circundante ao observador.

Neste sentido, deixo uma proposta anedótica de um meta-metodologia para desenvolvimento de software (não tão desenvolvida quanto o Glacial Methodology) ágil. Baseada unicamente na minha experiência ao analisar o comportamento das pessoas. Ela é absurdamente simples. É baseada unicamente pelo amálgama do buzzword oriented development com o comportamento clássico de pessoas avessas a mudanças (ou não muito dadas ao rompimento com o cordão umbilical de sua zona de conforto).

Eu chamo de Meta Agile Ostrich Development (MAOD). Segue:

  1. Devemos analisar nosso ambiente;
  2. Devemos ignorar completamente 40 anos de avanços em Engenharia de Software;
  3. Empiricamente ("" como diria Dr. Evil) devemos analisar o ambiente sócio-técnico de estudo;
  4. Formulamos uma hipótese pseudo-aforística, por exemplo: "vamos queimar a documentação de requisitos do software e elevar testes de software ao status de especificação" que aparentemente elimine a necessidade de tal burocracia passe a ser lei;
  5. Indo de encontra todos os fundamentos da honestidade intelectual, elevamos a hipótese unicamente baseada em nossas crenças ao nível de imperativo categórico;
  6. Insituimos a generalização e aplicabilidade do nosso modelo de forma ampla e irrestrita;
  7. Criamos um post no blog;
  8. Ficamos a espera de um feedback da comunidade que corrobore nosso sentimento auto-indulgente e rebatemos críticas ao estilo Groucho Marx: "Em quem você vai acreditar: em mim ou nos seus olhos?".
Este método de raciocínio orientado ao umbigo é parecido tem um modelo paralelo encontrado na natureza: é o comportamento do avestruz (ostrich). Para fazer uma análise adequada e rigorosa do ambiente basta enfiarmos a cabeça na areia (Ok, é um mito, mas vale como metáfora).

A buzzword do momento definitivamente é Agile. Concordo com meu camarada Diego Pacheco. Basta complementarmos uma série de princípios baseados no comportamento padrão das pessoas (tanto em stand alone como em organizações). Esta é a cereja no topo do bolo (se fosse uns 3 anos atrás era só trocar por Spring ou Hibernate).

Voilá! Temos uma metodologia de desenvolvimento com sex appeal. Com apelo às massas.

É só postar e esperar nossos 15 minutos profetizados por Andy Warhol.

segunda-feira, 18 de agosto de 2008

Enquanto a água não baixa do pescoço

Bom, estou aqui no mestrado, até o pescoço com a minha dissertação. Vou relaxar um pouco com algumas divagações. Assim que eu me livrar dessa naba vou escrever algo um pouco mais decente.

No mais, como posso descrever a sensação de se ter chegado ao mestrado... uma realização. Como posso descrever a sensação de ter chegado ao último semestre do mestrado... um terror. Não nasci para escrever textos com mais de cinco laudas.

Até eu escrever alguma coisa que preste na minha proposta, não tenho muita coisa a desenvolver por aqui, portanto vamos para o básico. Crenças:

  • A tentativa de enquadrar a Ciência da Computação no ramo das Ciências Naturais... falhou;
  • A metáfora das demais Engenharias aplicada à Ciência da Computação... também falhou.
Em relação à primeira crença, achei uma base interesante para minhas digressões, talvez não seja novidade para alguns acadêmicos. Vou tentar esclarecer (também pra mim) um pouco este imbróglio, sobre ombros de gigantes, em um segundo momento.

Em relação à segunda, bom esta acredito que seja mais tangível para nós na vanguarda (no sentido "infante"da palavra) da TI. Estamos vivendo um momento onde a Crise de Software que originou a própria Engenharia de Software como disciplina simplesmente não encontrou uma solução definitiva.

Isso mesmo, se construíssemos pontes, elas ruiriam, se construíssemos modelos teóricos (for real) rigorosos talvez ainda não tenhamos conseguido a lâmpada elétrica (sendo que Thomas Edison era um baita 171, vi no History Channel). Certo, não temos o corpo de conhecimento formado tal outras áreas, mas dada a devida proporção talvez pudéssemos ficar tranqüilos.

O problema é que nós somos ourives, ferreiros ou marceneiros (enfim, ponha seu "*smith" aqui). Vivemos do nosso (amado, espero) trabalho e nossos clientes são insaciáveis na demanda por novas ferramentas, novas estruturas, novos mecanismos. Seguindo uma analogia artesanal poderíamos até fazer anéis, braceletes ou pulseiras.

A má notícia é que a confecção da coroa ainda está longe do alcance da maioria de nós. Uma notícia pior ainda: muitos reis querem novas coroas e tantos outros querem manter e melhorar os adornos de suas coroas.

Só conseguiremos atender a novos reis se, com humildade e questionamento constantes (ok, um pouco de competição ajuda muito a azeitar a máquina), resolvermos honestamente melhorar nossa arte.

Aqui vai a notícia péssima. Quem está realmente disposto a encarar o desafio?

Claro que não estou falando da construção da coroa.

sábado, 16 de agosto de 2008

Som... 1... 2...3...

Este blog está em Beta.