POP-Relato

De CCSL
Ir para navegação Ir para pesquisar

A experiência de trabalho no laboratório XP – um depoimento

A experiência de trabalho no laboratório XP é uma oportunidade única de aprendizado, um processo desafiador e criativo de parte a parte, para cliente e desenvolvedores.

Na maioria dos casos o objeto de desenvolvimento é algo difuso, seja pelo fato de tratar-se de algo inovador ou simplesmente pelo fato do “cliente” desconhecer todas as implicações da tradução de uma ideia em serviço, e quando muito em código. O processo de desenvolvimento de software, por outro lado, é um caminho lógico e sistemático. Nesse embate ocorre um processo de tradução bastante peculiar.

O processo tem início com o cliente apresentando um objeto para desenvolvimento, certo de que sua descrição é lógica, objetiva e razoavelmente completa. O programador, então, faz uma primeira pergunta sobre esse objeto e aborda um aspecto singular que você nem imaginava existir, pois você vê sempre “o todo”, que nada mais é do que uma totalidade limitada, circunscrita pela sua própria expectativa. Desse lugar, então, responde explanando sobre o aspecto questionado em toda sua riqueza, retomando sua relação com a totalidade do objeto e/ou serviços a serem desenvolvidos. O programador responde, então, “certo, considerando que temos tempo e recursos limitados, o que vamos fazer primeiro? O que é prioritário, afinal?” e elenca algumas opções, todas igual e absolutamente fundamentais para o funcionamento do seu software. É preciso priorizar e sequenciar, criar uma história, ainda que você como cliente não o saiba. Inicia-se assim a experiência da metodologia ágil, técnica pela qual vivenciaremos o processo de tradução de uma ideia em código.

Aos poucos percebemos que, partindo de um campo de possibilidades bastante difuso, a cada passo tomamos decisões que delineiam e estruturam o objeto e/ou serviço e que cada uma delas é estratégica, uma vez que tem implicações futuras. Também percebemos que esse processo, por sua vez, responde a uma lógica narrativa, e que na verdade estamos contando a história da relação entre usuários com outros usuários, por meio de entidades abstratas de mediação.

Por exemplo: suponhamos que estejamos fazendo um aplicativo de desenho e que queremos que o usuário ponha seu dedo na tela, arraste-o até outro lugar da superfície, suspenda-o, e pronto, voilá, desenhe uma linha reta!

Bem para isso, você vai ter que criar uma entidade chamada usuário, uma outra que é um espaço de intervenção virtual dotado de coordenadas, uma terceira que é a coordenada em si, uma quarta que são os eixos ordinais dessas ordenadas, determinar se serão um, dois ou N eixos, e depois determinar que arranjos de coordenadas estabelecem uma outra entidade que você chamará de ponto, e que uma linha é a menor distância entre dois pontos. Aí você irá determinar que existe um plano abstrato que é o lugar onde estará a tela, e determinar a posição dessa tela em relação aos eixos ordinais e seu comportamento em relação ao toque, e que isso será representado nessa superfície por um ponto luminoso, afinal, você precisa de uma interface de representação dessas relações. Assim pensa um programador: “como contar essa história? De onde começar? O que vem antes? Como apresentar essa (dura) realidade ao cliente? Será que é isso que ele quer? Será que é isso que ele deseja?“, pensa. Para o cliente, por sua vez, isso significa enfrentar o novo.

Essa construção, por sua vez, implica numa relação próxima. A cada momento deverão compartilhar e construir uma visão conjunta do que está sendo desenvolvido. É um trabalho colaborativo, horizontal, onde um ajuda o outro a dar forma naquilo que está sendo programado.

Importante perceber, contanto, que código é escrita, é texto. O que é feito, portanto, é um texto em diversas mãos, cujo efeito é uma representação de um processo que pode ter ou não paridade com a realidade. Mas programar é contar uma história. Por exemplo: fazer um deposito bancário via aplicativo é a representação de um processo de depósito como o conhecemos antes de existir esse serviço via celular. Ao faze-lo vivenciamos esta história, e se correr tudo bem, a transação bancária ocorre e o depósito é feito.

Este vídeo é uma boa metáfora para esse processo

O artista é o cliente, e o programador são os artesãos. Cada linha de bambu é uma linha de código. A trama é a linguagem de programação. Muitas soluções são possíveis desse arranjo. O que vemos aqui resulta da interação entre todos esses elementos.

Andre Leirner, 13/05/2017