Terça-feira, 20 de Setembro de 2011

A rasoura de Occam, o meu ultimo projecto, e o "chefe" do dito

 

 

 

“entia non sunt multiplicanda praeter necessitatem”

ou, mais aproximadamente

“pluralitas non est ponenda sine necessitate”

William d'Ockham

 

 

 

Não sei bem porquê, deu-me para filosofar acerca desta minha extraordinária e frustrante última experiência de trabalho.

 

Julgo que, impotente para fazer outra coisa, só me restava filosofar para que não fosse inexoravelmente engolido pela irritação com o que me foi imposto e o inevitável desprezo por quem o estava a impor.

 

Note-se, não desprezo o homem pela sua óbvia estultícia relativamente a necessidades de facto reais do projecto, nem pelo facto de ser também óbvia a sua incompetência técnica, habilmente disfarçada com o recurso fácil a técnicas de rufia de escola secundária complementadas com esta ou aquela referencia a coisas que lera em livros e que de facto estavam certas – o que, portanto, poderia até comprovar a sua relativa capacidade e conhecimento.

 

Não quero mentir, fiquei enervado e até chocado daquela vez, logo ao principio, em que ele insistiu que o MQSeries da IBM conseguia manter os “clients” actualizados “automaticamente” sem que estes tivessem que “pedir” nada ao “servidor”. Tipo, o “cliente” na China e o “servidor” em Portugal, o “cliente” ia “saber” tudo o que o “servidor” quisesse, instantaneamente, sem esforço, sem pedir nada... Podemos simular isso, sim, mas será sempre uma abstracção, software que o faz “parecer” assim... Não maço com isto, não vou fazer nenhum ensaio técnico. (Para quem esteja interessado, farei em breve um debriefing mais técnico sobre este projecto no meu blog profissional: blog.serso.com)

 

Mas o argumento é simples: é cliente-servidor, estão separados fisicamente, portanto claro que o “cliente” tem que ir “ler” ao “servidor”, o qual é “passivo” (relativamente), pois limita-se a publicar uma mensagem que quem quer pode ir lá ler – ou quem souber onde está e como se lê. Não é pelo facto do Telejornal ir para o ar todos os dias à mesma hora, no mesmo canal que TODOS nós o vemos e ficamos instantaneamente cientes das notícias: apenas aqueles que o sintonizam, certo? Se lá estivéssemos no estúdio, sentados numa plateia a ver e ouvir os apresentadores, portanto dentro do “servidor”, talvez não tivéssemos remédio, mas estando em casa, só mesmo usando tecnologia, a TV e os televisores (não, não são a mesma coisa! ) e fazendo activamente algo por isso, tal como ligar e sintonizar o canal apropriado.

 

Logo nessa primeira discussão, eu devia ter ficado com a certeza: eu estava a lidar com um mentecapto :( Infelizmente, não era esse o caso. Era bem mais que isso. Era, vim a ter o desconforto de descobrir, um malcriado, sem educação e sem escrúpulos que se vissem, pelo menos sem aqueles que contam e que não são só para “mostrar” que se têm quando se torna conveniente à frente de terceiros. Um manipulador barato, um tipo cujo sucesso na empresa como "chefe de projecto" posso apenas atribuir a sua verdadeira capacidade de manipular as circunstancias e ao seu próprio Chefe. Este último, um personagem inteligente e humano, assoberbado de trabalho e correctamente a delegar quando pode e deve, e assim necessariamente confiante de que as “coisas” estão a andar bem.

 

Enfim, talento ao tipo não lhe falta, assim à moda do Sr. Ripley. Mais um dos tais, nesta rede corporativa que tenho tido o desprazer de ter que aturar desde que voltei a Portugal.

 

Felizmente, há excepções e eu encontrei vários chefes que não eram assim. O que me leva à questão, que me ponho a mim mesmo: porque que raio não faço eu mais posts sobre esses, os “bons”? Enfim, penso que porque os outros nos deixam sempre uma sensação mais pungente, assim tipo o cheiro das lixeiras ou das morgues. Leva-se o cheiro connosco, mesmo depois de já nem haver um átomo do dito no ar. Perdura por horas ou dias, quando é mesmo mauzinho, numa memória quase indistinta da sensação física real. No caso do tipo de que falo, como de alguns outros, não são apenas horas o tempo necessário para se dissipar o miasma. É muito mais tempo. Às vezes, fica e não passa. Neste caso, penso que passará e em breve será apenas uma memória desagradável.

 

Mas que tem isto a haver com a rasoura de Occam? (1) Diz-se que o frade postulou o principio de que “a explicação mais simples é provavelmente a correcta”. Pelo menos, essa é a ideia generalizada sobre o principio em causa, mas eu sei que não é bem assim, embora se aproxime. A ideia deve centrar-se mais à volta do conceito de que “não é necessário complicar, ENQUANTO a explicação mais simples servir”, ou, como eu extrapolo, numa ideia aliás cara aos engenheiros, de que geralmente a solução mais simples é a mais adequada, económica e duradoura.

 

A coisa pode, no entanto, desmultiplicar-se quase ad nauseam: se funciona, não tentes reparar; se está tudo ok, não faças ondas, etecetra :) Dá para ver imediatamente a quantidade de falácias que se podem construir e explorar à volta de uma ideia destas!

 

Subscrevo, porém, o princípio de que se pode começar por organizar entidades simples, na procura de uma solução, e “economizar” na complexidade sempre que tal complexidade não seja imediatamente necessária. Faz sentido? Para ilustrar, então é assim: se só precisas de 3 ovos e um quilo de farinha para um bolo para 2 pessoas, e não vais mesmo ter mais que duas pessoas a consumi-lo, porque irás por uma dúzia deles e adicionar mais 3 quilos de farinha? Se puseres, por exemplo, mais açúcar do que na receita, tal pode não ser necessário, mas contribui para uma solução personalizada - o excesso de farinha ou de ovos, não. Seria um desperdício e iria exigir mais esforço e energia para preparar o tal bolo. Provavelmente, iria consumir mais tempo, ainda que marginalmente.

 

Acho que a história do bolo ilustra de forma simples, mas conveniente e aproximada, a razão porque a rasoura de Occam tem a ver com o que estou a refilar desta vez. É que o indivíduo, ignorante de como se programa Java (era esse o caso, eu estava a desenvolver uma solução de Java), entregou-me inicialmente a mim o critério de encontrar a solução adequada ao modelo e necessidade do Cliente, com os recursos que dispunha (eu e um colega da empresa dele) e no prazo estrito que o orçamento permitia. Disse, astutamente, que era porque eu tinha experiencia e provavelmente sabia mais que ele. Cínico. Mas, como ele tinha lido umas coisas sobre o assunto, e até já tinha “vendido” uma arquitectura e tecnologia específica ao Cliente, havia também essas restrições ( mais conhecidas por “constrangimentos de projecto”, penso que por causa de tradução do inglês “project constraints” e por falta de “melhor” na nossa língua :-D )

 

Enfim, arregacei as mangas e, como o prazo era ESTRITO e éramos só dois a pegar naquilo, lá fomos (ou fui, pois assumi eu essa responsabilidade, como me pediram) aplicando a tal rasoura à nossa maneira. De um conceito que nos parecia "ingerível", tantas eram as premissas e complexidade aparente, lá racionalizámos aquilo e produzimos algo que funcionava eficientemente, cumpria as especificações à letra e produzia os resultados desejados – tudo isto a tempo e com os recursos existentes. Não ia haver deslize no prazo! Não ia haver desvio ou alterações às specs! Ia ser cumprida a arquitectura “vendida”, a solução esperada tanto pelo Cliente como pelo meu empregador.

 

Seria a primeira vez, desde que regressei a Portugal. Enfim, a novidade agora, realmente, é que quem estava “in charge” era mesmo eu, portanto eu tivera a possibilidade de o fazer, aplicando a minha experiencia e só competências reais (não inventadas!) e outras que adquiri para o efeito – claro que tive que estudar a tecnologia! Assim, pude fazer aquilo que sabia, como realmente sabia. Incluindo que aprendi algo novo, de novo, e apliquei-o. Isto aliado à competencia do meu colega e a sua tenacidade e capacidade de adicionar valor real e trabalho, resultou. E, como esperado, foramos bem sucedidos.

 

Mês e meio depois vieram as férias e já tínhamos o conceito a funcionar, na prática já com mais de 90% do trabalho feito. No regresso da recreação estival, iríamos ter apenas mais duas semanas para terminar, mas era claro que iríamos fazer um brilharete. Portanto, pela primeira vez em anos, fui de férias, e também pela primeira vez levei um sorriso de missão cumprida e alívio por ter um projecto a fechar a tempo e com sucesso.

 

Talvez por pura aplicação da lei de Hofstadter, já que eu estava tão contente com o prazo a ser cumprido, eis que o nosso personagem não perde tempo nas férias, contrariamente ao que eu e o meu colega fizéramos. Não foi à praia ou acampar. Ou se o foi, levara com ele um livro. Um livro técnico recentemente comprado e que ele devorou, um desses livros de 80 euros que incluem exemplos e código que se pode descarregar, com exemplos funcionais para cada capítulo. O tipo de facto, reconheço-o, fez o extraordinário esforço de ler aquilo mesmo, experimentar tudo e, talvez espicaçado pela minha atitude desafiadora anterior, “convertera-se” até a usar Linux, não fosse eu gozar com ele por causa disso. Foi como se ele se tivesse agarrado a algo para provar que de facto “sabia” e que não era nenhum mentecapto, mal grado o facto de que nada o livraria da dúvida se era ou não, pois o resto da atitude e postura jamais deixaria que tal realidade deixasse de existir.

 

À parte o mérito a dar ao esforço que fez o indivíduo, a história complicou-se mesmo foi quando ele me abordou, no final das férias e a 2 semanas do fim do projecto, e manifestou que queria mudar de tecnologia e de solução. Queria que aplicássemos a que ele “aprendera” no livro. Ele até achava que não tínhamos feito nada de jeito, pois fora capaz de fazer o “mesmo” que nós, com muito menos esforço e num dia, só com os exemplos do bendito livro! :)

 

Incapaz de refutar algo que na realidade eu ainda desconhecia, escutei-o. Bem, na verdade, escutei foi mesmo porque ele era o “chefe” e eu, externo, não ia poder dizer-lhe o que realmente pensava sem que isso tivesse alguma consequencia desagradável para a minha sobrevivência financeira e a da minha família.

 

Mesmo assim, lá perdi 3 preciosos dias a estudar a questão e a experimentar. Sem sucesso, alias: as premissas dele estavam erradas, eram falaciosas ou baseadas em assunções erradas ditadas pelo facto de que ele era um ignorante completo na linguagem. Ele assumira que a conversão para a nova tecnologia implicava apenas “copiar e colar” o nosso código dentro da estrutura providenciada lá por aquele livro, e assim as coisas iam funcionar. Infelizmente, claro que não ia ser assim, e se eu perdesse mais tempo, entao as horas iam-se e o produto jamais ia ser completado a tempo :(

 

Por isso, abandonei aquela ideia e voltei a por o meu esforço em acabar o que eu sabia que já funcionava. O tipo, com a arrogância habitual dos tipos como ele, simplesmente desapareceu e nem sequer tive oportunidade de o avisar disto. Nem tempo para o fazer, concentrado em fazer uma entrega real e que funcionasse, como eu estava. O produto, esse, ficou acabado e pronto para demonstração. A tempo. Da maneira que fora previsto e fechado.

 

Pois, o tipo ficou furioso. Incapaz de combater a realidade de que o que eu fizera era de facto funcional e adequado, optou por fazer aquilo que esse tipo desprezível de carácter faz melhor: manipular o respectivo Chefe. Mentir sobre o produto. Menosprezar o esforço feito, e por em causa a competência de quem o fizera...

 

Pois, conseguiu convencer o Chefe, usando apenas os exemplos do livro (que, claro!, nao funcionavam para a solução em causa!) de que aquela era a tecnologia que devíamos ter usado desde o inicio. E que era melhor para o cliente. E que ele era capaz de fazer aquilo numa tarde, apenas com os exemplos e copiando para lá partes do nosso código.

 

Infelizmente para ele, não conseguiu ludibriar inteiramente o Chefe quanto à sua afirmação de que não usáramos a tecnologia "pretendida" ou "ideal": ele próprio tinha EXIGIDO a outra, a que usáramos, por instruções dele, restringidos ao que “vendera” ao Cliente. Nem conseguiu convence-lo de que o nosso produto não funcionava: funcionou mesmo, ali a frente de toda a gente. Contra factos, dificilmente se pode argumentar. É o ónus da prova :)

 

Mas, conseguiu algo que eu admiro completamente e de que jamais eu seria capaz: convenceu o Chefe dele de que os exemplos do livro eram o “melhor” para o que o cliente queria e, pior, que seria capaz de o fazer com “copy & paste” de pequenas (poucas!) partes do codigo que ja produzíramos... mesmo que nada do que mostrou realmente tivesse algo a ver com o modelo de negócio que era para implementar. (2) Extraordinário!

 

Obviamente, os últimos dias foram passados por ele a tentar fazer isso mesmo. Quando não estava a exigir que outros o fizessem, era triste, patético, vê-lo a bufar ali ao computador a tentar copiar o código e não perceber mesmo para onde e como, e, ainda, sem que nada funcionasse, exigindo que fosse eu a fazer com que o seu conceito funcionasse - pois ele não dominava Java para isso, embora jamais o tivesse admitido nesse contexto. Na verdade, apesar de o ter dito várias vezes, repetidamente afirmava que aquilo não podia ser complicado, o Java, e que bastaria apenas suar o "Google" para aprender o suficiente. Uma óbvia manobra para ganhar controlo, menosprezando os outros... 

 

Era mais trágico do que cómico e eu não estava mesmo com muita disposição de me rir, ocupado que estava mentalmente com o autocontrolo necessário para não o mandar para... enfim, imaginem.

 

O lado de rufiazito de escolinha nesta altura veio à superfície, provocando-me, maldizendo o nosso código e resfolegando que estava tão mau que nós é que íamos ter que fazer a conversão – nunca admitindo a verdadeira causa, a sua total ignorância do que estava a fazer e o seu erro de avaliação. Nem raciocinando a falta de oportunidade de tudo isto. Nem se coibindo da sua total falta de educação. O tipo consegue mesmo ser ordinário e inconveniente, e pelo que me disseram, muitas outras pessoas na organização o detestam por isso, e não só.

 

Na prática, aquele projecto resvalou no final. As minhas horas acabaram e eu já não pude ajudar mais, o colega que la ficou esforçou-se a dobrar para satisfazer a obsessão do “chefe” ao mesmo tempo que terminava o produto que realmente funcionava, pois pelo menos haveria algo para entrega!

 

Quanto à "rasoura" de Occam, obviamente que, pelo principio postulado, o que eu fiz esta correcto. A decisão, como engenheiro, foi a correcta e produziu o resultado esperado – dentro do prazo e dos custos previstos. Em vez de complicar e ir procurar soluções mais complexas, fiz exactamente o que a "receita" mandava com espaço para expansão, para acomodar o crescimento que fosse necessário ou para adoptar complexidade à medida, de forma versátil. É deste tipo de coisa que me orgulho e que faz com que me sinta bem com o que faço e a forma como o faço.

 

Mas acho que foi inútil. Tal como se diz na Wikipedia, mostrando os meus prorios sentimentos sobre isto:

 

"

O trabalho de freelancer reserva surpresas tanto positivas quanto negativas. Dentre as positivas podemos citar a liberdade de horário, a flexibilidade de orçamentos e os desafios constantes, provocados pelas trocas sucessivas de ambiente de trabalho. No entanto, existem obstáculos algumas vezes grandiosos, como falta de liquidez financeira, pouco valor reconhecido e captação de novos projetos.

"

Nem mais! :-D

 

Entretanto, o personagem vai continuar a ser “chefe”, os seus complexos é que vão influenciar as suas decisões, o seu critério não é racional. Ele vai continuar a fazer isto :) Adicionará para sempre uma data de “complexidades” desnecessárias, extemporâneas aos projectos a que estará associado. E fá-lo-á sempre irracionalmente e conduzido pela sua necessidade de se afirmar ou, quiçá, de "pisar" os outros.

 

Pelo menos a mim não o fez. As horas esgotaram-se antes de eu ter que enfrentar a sério o meu desconforto, o que estava eminente. Mas mesmo assim, saí satisfeito porque fiz o meu trabalho, entreguei o produto a funcionar e não deixei mais um bully atazanar-me o juizo. O colega que trabalha com ele e que por lá vai ter que ficar, já não teve essa sorte...

 

Só posso dizer, ao Chefe do tal personagem: aplica lá a “Occam's razor” a esse gajo e simplifica a tua e a vida dos que aí estão mesmo a fazer coisas úteis. Esse tipo gera mais "entropia" do que progresso. Como? É simples, põe o gajo sozinho na sala da correspondência, onde é competente e pode ir lendo uns livros, ou mete-o como porteiro do prédio. (3) Aí, poderá mandar em algo, mas sem te lixar a ti com F grande e sem fazer o mesmo aos Clientes, colegas e chefes. Ou então, manda-o para a escola. Lá, no pátio, sempre deve haver mais pequenos que ele para ele poder fornicar o juízo.

 

No final, só me resta perguntar: como é que um espécime destes ainda por lá anda? Pior, como é que lhe dão a responsabilidade de ser “chefe de projectos” ?! Aqui, já não é a Rasoura de Occam que se aplica :) É o principio de Peter (3), a explicar o fenómeno. Mas disso, falarei em outro post.

 

Vosso, sempre,

 

-Sergio

 

 

(1) Na wikipedia em português, infelizmente a expressão "Occam's razor" está traduzida para "navalha de Occam", o que parece tornar essa tradução oficial; parece que de facto é essa a forma que se utiliza atualmente na nossa língua, e pela qual assim é referida nas faculdades, mas está errada. No caso, a palavra "razor" não se refere a uma "navalha" nem a uma "lâmina", pelo menos não com esse sentido literal e estrito. Refere-se antes a um instrumento de marcenaria que se chama "rasoura" em português e que serve para aferir se uma superfície está lisa e uniforme, ou para a corrigir até que assim fique, o que aliás é ilustrativo do princípio postulado por William d'Occam (ou William of Ockham). Quando muito, deveria chamar-se "plaina", o que seria mais aproximado à ideia do que "navalha". Por mim, eu prefiro usar "rasoura", mesmo :-D

 

(2) Na realidade, o produto proposto por ele tinha a ver com o modelo de comunicações e integração de sistemas, genérico, que tinhamos que usar. Tratava-se de uma ferramenta, uma “framework” em que o modelo de negócio podia ser implementado, numa aproximação diferente da que eu usara – em que eu tivera que programar a solução. Naquela “framework” seria possível usar conceitos de mais elevado nível, sem tanto recurso a programação, pelo menos aparentemente. Na realidade, isso não se veio a verificar, pois o modelo de negócio exigia na mesma que houvesse muita programação para o implementar. O código já feito para outra tecnologia, só marginalmente se aplicava a esta, sendo que na mesma teria que se dispender muito esforço na nova implementação. Por outro lado, e mais importante, o que ele mostrou de facto nada tinha a ver com a solução e não mostrou nenhuma solução concreta para o modelo do Cliente. Faz sentido? De qualquer forma, não é na última semana que se aparece com uma alteração tão profunda como esta, sem comprometer totalmente a viabilidade do projecto. Se ele não me tivesse restringido a uma tecnologia ou ferramenta logo de inicio, seria viável usar aquela nova solução. Na ultima semana, como se verificou, claro que não. Antes de mais, esta situação revelou grande imaturidade e falta de realismo como gestor, já para não falar da incapacidade e ignorância técnicas. Lá por onde andei, chama-se a isso ser “reckless”, entre outras coisas menos agradáveis.

 

 

(3) Tirando o meu sarcasmo aqui patente, de facto acho que o principio de Peter se aplica fenomenalmente neste caso. Não o recomendaria como porteiro ou office-boy, isso é ironia, mas ficou evidente que ou o individuo tem muito que aprender antes de lhe ser concedida uma função de chefia, ou esta simplesmente ultrapassa a sua competência. De resto, fiquei impressionado com a sua tenacidade como fiquei surpreendido com a sua falta de principios e educação. Maneiras não são necessárias para se ser um bom técnico, mas bom senso e bom relacionamento humano já são características desejáveis, até fundamentais, para se ser gestor bem sucedido a chefiar pessoas e equipas num ambiente de empresa e projecto.

 

sinto-me: aliviado
publicado por Sergio às 10:32
link do post | comentar | favorito
1 comentário:
De Carolina Santos Ferreira a 21 de Setembro de 2011 às 21:02
"Hoson zēs, phainou
Mēden holōs sy lypou;
Pros oligon esti to zēn
To telos ho chronos apaitei"

Comentar post

|| mais ...

pesquisar

 

Abril 2012

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
19
20
23
24
25
26
27
28
29
30

|| posts recentes

Desistir da Felicidade é ...

Havia uma luz...

All is forgotten...

Sem dormir, outra vez

Desculpem...

A rasoura de Occam, o meu...

Queres ser Escritor em Po...

Não é giro, mesmo, que fa...

Sera que vem aí o bom tem...

Fraude no paraíso das ant...

Praxe Administrativa

Estíolo

A doce calmaria

Acabei de notar...

Manifesto (de Janeiro...)

|| arquivos

Abril 2012

Março 2012

Outubro 2011

Setembro 2011

Agosto 2011

Março 2011

Fevereiro 2009

Setembro 2008

Fevereiro 2008

Junho 2007

Janeiro 2007

Dezembro 2006

Outubro 2006

Setembro 2006

Agosto 2006

Julho 2006

Maio 2006

Abril 2006

Março 2006

Dezembro 2005

|| tags

todas as tags

|| favoritos

Efeméride

Os velhos do restelo

|| links

|| imagens

blogs SAPO

subscrever feeds