Arquitetos e Designers 

Feb/11
20

Você que é uma pessoa que gosta de java e visa torná-lo sua carreira almeja ser algum dia um Arquiteto . Sim ? Afinal existe até uma certificação para isso, certo ? Mas já alguma vez pensou em ser um Designer ?

A palavra “Design” refere-se √† moldagem de abstra√ß√Ķes para alcan√ßar um objetivo pr√°tico. Podem ser abstra√ß√Ķes de textura e cor da roupa (Fashion Designer), as abstra√ß√Ķes de formas de objetos (Car Designer) ou at√© de cabelos (Hair Designer) mas podem tamb√©m ser as abstra√ß√Ķes de constru√ß√Ķes mentais como aquelas usadas em Orienta√ß√£o a Objetos ou em c√≥digo de programa√ß√£o. A palavra √© de dif√≠cil tradu√ß√£o para o portugu√™s j√° que n√£o distinguimos desenho no sentido de “esbo√ßo” como “desenho animado” de desenho no sentido de plano ou proje√ß√£o. O ingl√™s e o espanhol s√£o mais ricos com duas palavras diferentes (design/drawing e dese√Īo/dibujo). √Č por isto que a express√£o “design pattern” √© em portugu√™s “padr√£o de projeto“. S√≥ que “projeto” pode significa outra coisa no mundo do software e se quisermos falar de “Project patterns” a tradu√ß√£o seria a mesma. Isto √© um problema para os linguistas, mas nos deixa com um problema tamb√©m: a falta de percep√ß√£o da diferen√ßa entre fazer esbo√ßos e planejar.

Comumente ouvimos falar de arquitetos de software. Um cognome popularizado por Gates nos seus √ļltimos momentos na microsoft e popularizado no mundo java pelo conceito de separa√ß√£o de papeis e com a famosa certifica√ß√£o. E por isso todos almejam ser arquitetos. E o que faz um arquiteto de software ?

Normalmente as pessoas ou dir√£o que um arquiteto faz diagramas (desenhos no sentido de esbo√ßos) ou que √© respons√°vel por decis√Ķes referentes a requisitos n√£o-funcionais como seguran√ßa e performance. Alguns dir√£o ainda que s√£o lideres ou respons√°veis por equipes, mas isso n√£o √© verdade j√° que arquitetos normalmente atual como especialistas que finda sua contribui√ß√£o ao projeto migram para outro. A vis√£o tradicional do arquiteto como algu√©m que faz esbo√ßos em papel daquilo que ser√° a realidade do software √© uma imagem bem presente. Ouvimos, at√©, falar de “software blueprints” ou “plantas de software” no sentido de desenhos imensos que estabelecem o como as coisas ser√£o. Esta compara√ß√£o entre o arquiteto civil e o arquiteto de software √© muito querida a aqueles que comparam fazer software com fazer pontes e edif√≠cios.

No lingo do software falamos de andares e nodos que podemos comparar com edif√≠cios , se realmente quisermos, mas essas abstra√ß√Ķes est√£o muito longe daquilo que os programadores fazem no dia a dia: escrever software. S√£o abstra√ß√Ķes importantes para transmitir ideias como distribui√ß√£o e organiza√ß√£o de responsabilidades, mas muito pouco uteis no dia a dia. Se formos usar a comparar com edif√≠cios temos que dizer que a planta √© algo bem longe do trabalho do pedreiro que dia ap√≥s dia ergue o edif√≠cio.

O Designer n√£o est√° preocupado com esbo√ßos e bonecos em papel, est√° procurando uma harmonia entre as partes constituintes os materiais que tem √† disposi√ß√£o e o objetivo ultimo do objeto que est√° desenhando. Est√° preocupado com um sentido est√©tico que n√£o apenas agrad√°vel √† vis√£o, mas principalmente √† capacidade humana de entender o abstrato, as rela√ß√Ķes, e se maravilhar pela simplicidade de uma boa ideia. O objetivo do designer √© que menos adi√ß√Ķes levem a mais efeitos. Em software isso significa menos c√≥digo, menos classes, menos conceitos, levem aos mesmos resultados , ou a melhores resultados.

Da minha experi√™ncia projetos precisam de designers, pessoas que t√™m na cabe√ßa como o software foi, √© e ser√° e como chegar l√°. Arquitetos s√£o apenas as pessoas de demonstram aos leigos como chegar l√°, e programadores s√£o quem chega l√°. Sem designers na equipe os programadores n√£o sabem que padr√Ķes seguir ou que c√≥digo escrever, nem que objetivo est√£o tentando alcan√ßar porque n√£o ha um desenho, no sentido de ‘n√£o ha um plano”. Por outro lado, muitos designers na mesma equipe pode ser problem√°tico. Seria como dois pintores pintando o mesmo quadro ou dois escultores esculpindo a mesma pedra. Funciona se eles estiverem em sincronismo, mas se n√£o, √© um desastre.

Hoje se inventou o papel de Lider Tecnico e ha algumas coisas que esta pessoa deve alcan√ßar, e muitas delas s√£o as mesmas das que um Designer teria que alcan√ßar, como derivar em termos tecnicos o significa dos requisitos e assegurar uma vis√£o t√©cnica clara do projeto , mas um Designer n√£o tem atribui√ß√Ķes de gerencia como ser respons√°vel pelo o que a equipe √© ou n√£o capaz de fazer. Lider Tecnico √© apenas uma express√£o para “Respons√°vel pelos resultados da equipe que sabe falar tecnik√™s com a equipe” e por isso √© normalmente uma pessoa diferente do Gerente. No mundo √°gil n√£o ha tanto este sentido mais burucr√°tico do termo, mas ainda fica a responsabilidade pelos resultados. Em termos √°geis o lider tecnico √© respons√°vel pelo d√©bito tecnico da sua equipe. Ser um bom designer pode ajudar muito um lider tecnico, mas nem todo o lider tecnico precisa ser um designer. Pode, por exemplo, apenas ajudar a equipe a concretizar a vis√£o do designer. Afinal estes s√£o todos papeis, de que estamos falando, e n√£o de pessoas. Portanto os papeis podem ser acumulados ou n√£o.

Se um Arquiteto est√° para o modelo tradicional de fazer software e para as F√°bricas de Software ( afinal s√≥ de pode produzir em massa o que est√° esquematizado em algum lugar) O Designer est√° para o modelo moderno de fazer software e para os Ateli√™s de Software. Talvez a analogia mais pr√≥xima seja a da fabrica√ß√£o de carros. Existe um fase de atelier onde o carro √© desenhado, no sentido de conceptualizado e planejado. Isso √© esquematizado em esbo√ßos e depois produzido em f√°bricas. A diferen√ßa √© que em software s√≥ temos a parte da concep√ß√£o porque o c√≥digo que escrevemos para idealizar algo, j√° √© o produto final e ‘produzir em massa” √© apenas gravar mais CDs ou publicar para download. Algo que o mundo tradicional ainda n√£o entendeu, j√° que continuam achando que fabricar software √© um processo semelhante a uma linha de produ√ß√£o. Pobres coitados.

Bom, agora que sabe o que √© um designer de software talvez queira reconsiderar se realmente voc√™ quer ser um arquiteto que fica escrevendo um monte de documentos e fazendo um monte de diagramas, ou se quer um de designer que sabe moldar o c√≥digo √† sua vontade. Afinal, a vantagem que o designer de software sobre os outros designers de outras √°reas √© que ele trabalha com material et√©reo que ele mesmo pode criar, como, quando e quanto quiser. √Č muita liberdade criativa …

Ao contrário que podem lhe dizer, e podem lhe ensinar nas faculdades por ai, software não se faz em fábricas nem se planeja no papel. Se visiona e se molda, como um estilista que mentaliza o resultado que quer obter e molda o pano até que o resultado físico seja igual ao que ele mentalizou.

Bons desenhos.

Comente

Artigos