FoxyProxy 1

Posted by Fernando Mon, 19 Jan 2009 20:35:00 GMT

Olá, pessoal que acompanha o Blog da SEA. Como o Bruno fez a gentileza de criar um usuário para mim no Blog pensei em retribuir colaborando com algo que vai ser útil não só para os que trabalham na SEA, mas para todos que precisam usar um proxy.

Trata-se do FoxyProxy, um add-on do Firefox. Ele pode ser baixado no site http://foxyproxy.mozdev.org/downloads.html.

Depois de fazer o download e instalar, basta configurá-lo (o próprio FoxyProxy mostra algumas dicas). O mais importante, é que os wildcards (caracteres como *) podem ser utilizado. Por exemplo, o padrão de inclusão whitelist (todos os domínios que conformarem com o padrão serão passados para o proxy) www.seatecnologia.com.br/* fará com que todos os sistemas que fazem parte da SEA sejam repassados para o servdor proxy.

É isso. Espero ter ajudado de alguma forma.

Fernando Machado Mendonça

Apresentações ágeis

Posted by BrunoPedroso Mon, 19 Jan 2009 17:06:00 GMT

Quarta feira passada fizemos (eu e o Willi) uma tarde inteira de apresentações ágeis na EAI Brasil. Apresentamos as palestras ”o pensamento ágil” e “scrum” (depois posto os slides).

O pessoal foi bem receptivo, e acho que conseguimos contagia-los um pouco. Aproveitamos para agradecer a oportunidade e dizer que estamos às ordens caso precisem de qq ajuda!

Essa é uma boa oportunidade pra ampliarmos o convite: se alguém mais quiser marcar uma apresentação na sua empresa ou organização sobre Agile, XP, Scrum, estamos à disposição! Basta mandar email para bruno (ponto) pedroso ou renato (ponto) willi arroba seatecnologia ponto com ponto br e combinar!

Projeto Super Máquina 9

Posted by Alê! Thu, 15 Jan 2009 19:04:00 GMT

Procura-se

Procuramos pessoas 2.0,
fartas da programação de CRUDs corporativos,
 para um projeto de pesquisa e desenvolvimento de
serviços computacionais embarcados em um carro inteligente.
Pra saber mais, leia o restante do post.

 

Super Máquina

Super Máquina (Knight Rider) foi um seriado dos anos 80 protagonizado por KITT e Michael Knight. Na série, KITT é um Pontiac Preto, dotado de inteligência artificial e capaz de controlar todas as suas funções automotivas, atendendo prontamente às instruções de seu parceiro, comandadas por voz através de seu relógio de pulso.

 

Há 20 anos atrás, um carro com tais características seria ficção científica. Mas não para um pesquisador americano que, de tanto acreditar na possibilidade de existência de máquinas inteligentes como KITT,  já esboçava, na mesma época, as primeiras formalizações conceituais do que viria a ser a 3a. grande era computacional, segundo suas próprias palavras.

Ubiquitous Computing

Inspirado por cientistas sociais, filósofos e antropólogos, em 1988, Mark Weiser e demais colaboradores dos laboratórios do Xerox PARC sintetizaram o que a computação deveria se tornar no futuro: algo invisível. Esta idéia foi formalizada em seu artigo de 1991 quando a comunidade acadêmica viu nascer uma linha de pesquisa até então inexplorada, a computação ubíqua (Ubiquitious Computing), ou simplesmente ubicomp. Neste novo contexto, a computação é imersa no cotidiano da sociedade de tal forma a prover a colaboração transparente entre dispositivos do meio para o fornecimento de serviços a seus usuários e proporcionar um novo cenário de simbiose entre a vida social e a tecnológica.
 
Também conhecida como computação invisível, Mark Weiser define a computação ubíqua como sendo o terceiro grande paradigma computacional, precedido pelo império dos mainframes e pela onda da computação pessoal. Marcante no passado e hoje presente em cenários específicos, os computadores de grande porte foram definidos sobre uma arquitetura na qual poucas máquinas de imenso poder de processamento eram compartilhadas simultaneamente por inúmeros usuários. Hoje, com o domínio dos micro-computadores, observamos a máquina como peça íntima de uso pessoal e exclusivo. Já na computação ubíqua, veremos a tecnologia discretamente nos envolvendo e agindo nos bastidores de nossas vidas, formando uma malha de dispositivos inteligentes em torno de cada indivíduo, sem trazer impactos visíveis em nosso modo de viver. A tabela a seguir resume as 3 eras computacionais propostas por Weiser.

Era Computacional Características
Mainframe Uma máquina para vários usuários
Computação Pessoal (PC) Uma máquina para cada usuário
Computação Ubíqua Várias máquinas para cada usuário

Tabela - Eras computacionais propostas por Mark Weiser


Ainda que muitas vezes tratadas sem distinção, a computação pervasiva (Pervasive Computing) e a computação ubíqua referem-se a segmentos distintos de pesquisa e desenvolvimento tecnológico. A computação ubíqua integra os avanços da computação móvel e da computação pervasiva. Enquanto a computação móvel busca o incremento das possibilidades de locomoção de serviços entre ambientes, a computação pervasiva trata da capacidade de dispositivos computacionais serem embutidos no universo físico para a obtenção de informações do meio para a construção dinâmica de novos modelos computacionais. Em síntese, a computação pervasiva busca maior integração entre a computação e o ambiente físico no qual ela está imersa. A figura abaixo, ilustra estas dimensões, relacionando computação ubíqua, computação pervasiva e computação móvel.

Dimensões da Computação Ubíqua


Assim, o grande desafio da ubicomp é a constante busca pela fusão da mobilidade da computação móvel com a capacidade de interação com o meio agregada pela computação pervasiva. Em um contexto prático, na computação ubíqua, o computador, independente de sua forma, desloca-se com o usuário e comunica-se com os recursos computacionais do ambiente em que se encontra para configuração dinâmica de novos serviços de tal forma que as necessidades do usuário sejam satisfeitas de maneira natural e transparente.

A ubicomp define então uma realidade na qual o computador se integra, em um modelo de alta mobilidade, a ambientes físicos para a constituição de espaços inteligentes, smart-spaces, nos quais atividades do dia a dia são facilitadas com recursos e serviços computacionais. Nestes cenários, é mister a manutenção de premissas básicas que caracterizam a ubicomp, como a invisibilidade, que garante que toda orquestração entre serviços e dispositivos do meio seja regida sem a intervenção, e mesmo a ciência, do usuário, e a pró-atividade que, dentro das possibilidades de um conjunto de informações de contexto do ambiente, antecipa as necessidades do usuário, surpreendendo-o com a prestação otimizada de serviços.

Em outro artigo, entitulado "The world is not a desktop", Weiser tenta quebrar um paradigma comum da sociedade que define a computação puramente como a arte de lidar com computadores, sejam eles desktops ou laptops. É preciso que os profissionais deste mundo entendam que computação não diz respeito apenas a computadores, mas a todo e qualquer dispositivo com poder computacional, e há uma diferença muito grande nisso. Computador é aquilo que você compra na loja, coloca sobre sua mesa e usa para fins genéricos. Dispositivo com poder computacional, por outro lado, pode ser qualquer coisa que hospede um micro-processador, como carros, aviões, celulares, handhelds e até alguns eletrodomésticos.

Assim, se os profissionais da computação entenderem que a economia atual da informática é apenas uma minúscula parcela do verdadeiro ecossistema computacional existente no munto, haverá mais espaço para 100 Googles, 200 Microsofts, 300 Apples e 400 Suns.

O tema é tão interessante, ao menos sob meu ponto de vista, que sobre ele desenvolvi minha pesquisa de mestrado, criando o UbiquitOS sobre o qual foi fundado o grupo UnBiquitous.

Projeto

Por carregar essa veia científica, não apenas por mim, mas também por outros colegas da empresa, já faz parte da cultura SEArence, além da tradicional prestração de serviços para o governo, o trabalho com projetos de Pesquisa e Desenvolvimento (P&D).

Ao longo de seus anos de vida, a SEA vem desenvolvendo vários projetos de pesquisa em parceria com as principais universidades e agências financiadoras do país. O último aprovado, de certa forma relacionado com o tema da minha dissertação, diz respeito ao desenvolvimento de uma série de serviços computacionais dentro de veículos automotores. Tecnicamente falando, vamos criar um smart-space dentro de um carro, coletando a todo tempo informações, processando-as, integrando-as com dados de outras fontes e agindo em prol da segurança e conforto de seus usuários.

Neste exato momento, estamos finalizando a montagem da equipe. Se você é simpatizante da filosofia new-school de TI e do desenvolvimento de projetos alternativos, marginal à recorrente construção de CRUDs corporativos, permita-nos conhecer-te enviando um email para rh (lá na) seatecnologia (ponto) com (ponto) br com um subject muito específico, para correto roteamento da mensagem: "Sou new-school e não gosto de CRUDs". Mas, perceba. Não estamos atrás de arquitetos interplanetários ou gerentes PMPs e blablabla. É de hacker para hacker. Uma boa coleção de linguagens e colaborações interessantes para o mundo da computação são mais efetivos que grandes cargos, sem ofensas.

Hacker Ethic


[]s

Manifesto 2.0 38

Posted by Alê! Mon, 12 Jan 2009 11:36:00 GMT

 

Li certa feita em algum canto que esse papo de virada de ano nada mais é que invenção humana para se dar novas chances de recomeçar. Astronomia a parte, até que faz sentido. Então, em meio a votos de sucesso e promessas de vida mais saudável, trago a minha mensagem de feliz ano novo.

Acho que este ano será o ano da consolidação de um fenômeno que temos observado nos últimos tempos, mais intensamente, em 2008. É a chegada de uma nova escola de pensamento, já referenciada aqui no blog como a new-school. Mais recentemente, aqui na SEA, começamos a chamá-la de TI 2.0. Tudo porque estávamos buscando ações para nos tornarmos uma Empresa 2.0.

Vemos então dois momentos históricos bem distintos, dois modelos de pensamento bem claros ou, como temos dito, duas escolas bem definidas. E o melhor (ou pior) é que não se trata de um evento exclusivo da TI. Pelo visto, é algo de dimensões ainda não muito definidas pra nós, também presente em outras áreas do conhecimento. Especulamos que chamarão isso no futuro de algum nome. Talvez pós-moderninade, realismo-moderno, whatever. Não vale a pena tentar definir um nome pra isso agora. Melhor observar, aprender e ter a sobriedade para colher seus melhores frutos.

Como toda época de transição entre estilos de pensamento, haverá muitos conflitos. E pode aténem haver a predominância desta nova filosofia. Pode ser que ela se torne um modelo marginal, alternativo ao mainstream do sistema. Pode ser.Como pode ser também que toda esta reflexão seja uma grande e inócua divagação.

Enfim, esta é a minha impressão, compartilhada por alguns outros da SEA. Estejam de acordo ou não. Discutamos a respeito. De fato, o atual modelo sócio-político-econômico não tem se demonstrado tão sustentável e talvez seja mesmo a hora de acreditar em algo novo. Sem esperança, não temos nada. Absolutamente, nada.

Em especial, toda esta nova escola de pensamento tem estado muito presente na TI. Por isso temos chamado este novo momento da computação de o momento 2.0, ou a TI 2.0, ou o pensamento 2.0. Dizemos 2.0 apenas para contrapor com um modelo passado, sobre o qual construímos nossas carreiras e sob o qual escondem-se diversas de nossas frustrações profissionais.

Deixa eu tentar ser mais claro sobre o que vem a ser a TI 2.0, IMHO. E, por favor, contribuam para a expansão desta lista.

 

TI 1.0

 

TI 2.0

   
Fábrica de Software

Uma das raízes de diversos problemas atuais da TI foi tê-la equiparado ao modelo de produção em série de Ford. Daí surgiu o termo fábrica de software e inúmeros processos de desenvolvimento baseados na dinâmica de artefatos de entrada auto-contidos que devem ser processados por um perfil de alta especialização e transformados em artefatos de saída que servirão de entrada para outra etapa do fluxo. 
x
Ateliê de Software 

Na nova escola de pensamento, a produção de software não é comparada à produção de um carro, mas à construção de uma escultura. Por isso, é preferível falar de Ateliê de Software em lugar às tradicionais Fábricas. Nenhum software é idêntico a outro e, por isso, não faz sentido sua produção em linhas de montagem. Destarte, software feito a mão, artesanalmente e sob medida, deveria ser mais bem vistos que aqueles construídos por fábricas, genéricos, em linhas de montagem seguindo processos inflexíveis.
   
Recursos Humanos

Na visão tradicionalista, profissionais são vistos como máquinas, com comportamentos determinísticos, produtividade contínua e de fácil substituição.
x
Pessoas

A nova visão, felizmente, já compreendeu que profissionais não são máquinas, mas pessoas que sofrem de alegria, tristeza, motivação, depressão, cansaço, empatia e vários outros aspectos que influenciam em seu trabalho.  Por isso, é tão complexo extrair métricas precisas de sua produtividade. Afinal, cada dia é um dia, cada projeto é um projeto e cada equipe é uma equipe. Na mesma linha, a substituição de profissionais também não é matemática. A sinergia entre os membros de uma equipe são fatores ímpares para sua motivação e produtividade. Trocar seis por meia dúzia pode por toda a dinâmica do grupo abaixo.
   
Produtividade

Por ver pessoas como recursos humanos, busca-se acima de qualquer coisa o aumento de produtividade individual. Email? Fora. Orkut? Fora. MSN/ICQ/AIM/GTalk? Fora. Almoço de 2hs? Desnecessário.  Não raramente, vemos números absurdos sendo usados para tal medição, como número de linhas de código/classes/métodos/casos de uso.
x
Sustentabilidade

Entendeu-se aqui que o grande desafio da boa dinâmica de produção é a montagem e manutenção de uma equipe em constante alto astral. Alternativas imperativas para forçar a produtividade imediata, apesar de eficientes em curtíssimo prazo, não se sustentam e ocasionam a rotatividade constante dos envolvidos e a difícil consolidação de uma cultura e harmonia corporativa.
   
Ociosidade

Sob a mesma luz do item anterior, patrões 1.0 entendem toda ação do profissional fora da atividade prevista como ociosidade ou fuga da responsabilidade.
x
Ócio Criativo

Empresários 2.0 compreenderam que, por não se tratar de linhas de montagem, mas produção artesanal, por não se tratar com máquinas, mas seres humanos e por não se tratar de um processo repetitivo, mas de atividades criativas, momentos lúdicos e sociais são absolutamente necessários para a manutenção de um ambiente fértil para a cultura de valores que sustentem o alto astral, a alta criatividade e produtividade das equipes.
   
Especialistas

Na visão da fábrica, cada indivíduo deve possuir responsabilidades muito específicas cuja complexidade é de seu total domínio. São os chamados especialistas. Nesta filosofia, atribuições de atividades incompatíveis à especialização do profissional, ainda que para o bem comum, não são admissíveis. Por isso, é necessário envolver vários perfis para a realização de qualquer iniciativa.
x
Especialistas Generalistas

No novo mundo, profissionais alienados e indispostos a atividades extras às suas rotinas de especialidade não são bem vindos. Empresas neste modelo não estão mais atrás de analistas de requisitos, projetistas de software ou programadores Java. Parece que o senso comum da nova escola tem sido em favor de profissionais multi-disciplinares, antenados a tudo o que ocorre, e dispostos a se aprofundarem em assuntos específicos quando necessário.
   
Exclusividade

Como consequência da alta especialização, profissionais 1.0 são radicais quanto ao uso de uma única tecnologia e por ela estabelecem profunda relação de afeto.
x
Diversidade

Aqui, vale o princípio da melhor solução. Geralmente, aquela solução que produzirá o melhor retorno do investimento aplicado. Por isso que empresas 2.0, ao contratarem, buscam profissionais com um bom repertório tecnológico sob a manga, e não xiitas apaixonados.
   
Mudanças são do mal

Nesta cultura, mudanças são sinais de retrabalho e retrabalho é sinal de dinheiro perdido. Por isso, grande esforço é despendido nas fases iniciais dos projetos a fim de se antecipar ao máximo qualquer decisão crítica capaz de gerar a necessidade de alteração nos planos originais.
x
Mudanças são do bem

Defende-se que nada é mais certo no desenvolvimento de um software que sua mudança. Logo, o verdadeiro desperdício de energia está na tentativa de evitá-las. A nova escola incentiva mudanças para adequação constante dos trabalhos à necessidade do cliente e propõe ferramentas para encorajamento e sua realização sem riscos. 
   
Treine-me

A escola tradicional é baseada no treinamento de funcionários antes da execução de qualquer trabalho. Mais uma cultura vinda do modelo fabril. Não é a toa que a quantidade de treinamentos oferecidos pela empresa tornou-se métrica de cadidatos para avaliação de seus empregadores.
x
Motive-me

Na nova escola, muito mais importante que o treinamento de funcionários é a criação deum ambiente fértil de aprendizado construtivista, espontâneo e permanente. Dessa forma, naturalmente distinguem-se aqueles interessados no crescimento pessoal e coletivo daqueles que apenas pegam carona e se esquivam de responsabilidades sob o mote da falta de capacitação.
   
Título

Não é por acaso que o indivíduo 1.0 é tão fascinado em treinamentos. Afinal, os títulos obtidos de processos de capacitação formal são a moeda do mercado para qualificação da riqueza técnica de seus profissionais. O maior legado desta cultura é a indústria da certificação.
x
Mérito

Mais importante que o resultado de uma prova é o mérito social que o profissional construiu ao longo de sua carreira técnica. Bons profissionais naturalmente são respeitados em sua comunidade de atuação e não há livros, macetes ou dinheiro que compre este critério. É fruto de trabalho duro e desenvolvimento não apenas de habilidades técnicas, mas também de soft skills, absurdamente importantes pro mercado de trabalho mas timidamente tratada na escola tradicional de formação profissional. O @BrunoPedroso conta uma história interessante sobre a medida de riqueza dos povos africanos antigos. A riqueza do indivíduo naquela cultura não era medida pelo dinheiro possuído, mas pelo número de seguidores que naturalmente acumulava ao longo da vida. A comundiade de software livre sabe muito bem disso.
   
Processo

Na cultura 1.0, a qualidade do processo de produção é argumento exclusivo para avaliação da qualidade dos trabalhos prestados. Deste pensamento surgem os modelos de qualidade de processo, como ISO, CMMi, MPS.br.
x
Produto

Na cultura 2.0, acredita-se que um bom processo não necessariamente produz um bom resultado. Por isso, o principal critério de avaliação de sucesso é o produto final do trabalho, e não o processo em si.
   
Processo Cartesiano

Sob a luz do item anterior, busca-se a maior repetitividade possível entre execuções de um processo. Por isso, os processos são extremamente bem definidos e teoricamente determinísticos.
x
Processo Orgânico

Na nova era, entende-se o processo de trabalho como um aprendizado contínuo de toda a equipe. Assim, prima-se pela experimentação e adequação constantes com base na percepção do time sobre sua eficiência.
   
Planejamento

Nos processos tradicionais, planejamentos são essenciais. Além de se definir o destino a ser alcançado, estabelece-se a rota a ser traçada até aquele destino, e o bom o mau andamento do projeto é medido com base na obediência ou não do plano traçado originalmente.
x
Planejar

A nova escola, por outro lado, acredita que o ato de planejar em si é muito mais importante que um bom plano. Dessa forma, a meta futura também é bem definida, mas o caminho a ser percorrido não. E, em se valorizando a avaliação constante do fluxo dos trabalhos, adequa-se a rota a todo momento, conforme características da equipe, do cliente e do projeto naquele instante.
   
Cascata

A Engenharia de Software 1.0, por sofrer de todo o legado fabril, não consegue se desvincular do estilo cascata. Cascatão ou cascatinha, mas
sempre cascata.
x
Agile

A Engenharia de Software 2.0, muito maior que os modismos do XP e Scrum, acredita nos valores do Manifesto Ágil, nos modelos Lean e orgânicos.
   
Gauss

"A média pensa em Gauss."
x
Pareto

"Inovadores pensam em Pareto."
   
Gerente

O gerente tradicional, é o chefe da indústria que a tudo vê, a tudo comanda e a tudo controla.
x
Líder

Em times 2.0, não existem chefes. Existem líderes cuja principal atribuição é servir a seus liderados.
   
Poder

O gerente 1.0 assim o é ou por título ou por tempo de casa. Grandes engenheiros e programadores de software tornam-se gerentes pela falta de possibilidade de crescimento em sua carreira original. Como dito por aí, geralmente perde-se um grande técnico e ganha-se um péssimo gerente. De qualquer forma, ao tornar-se gerente, o indivíduo torna-se também um grande apreciador do poder que lhe é conferido pela função. Com este poder, ele ameaça, amedronta e consegue tudo o que deseja para satisfação da alta chefia, independente da sustentabilidade. Não gostou? Fired!
x
Autoridade

O líder da era 2.0 não precisa gritar e ordenar. Sua liderança foi conquistada por mérito e não título. Este mérito é orgânico e nascido de sua própria comunidade de convívio. Assim, suas orientações não são seguidas pela força do poder, mas pelo respeito que ele naturalmente conquistou entre os seus. Neste modelo, líderes não são outorgados, mas nascem espontaneamente.
   
Centralização

Gerentes gostam da centralização de todas as decisões e não admitem o compartilhamento de soluções com seus subordinados. 
x
Colaboração

Líderes sempre ouvem seu time, principalmente quando a equipe for a mais impactada pela decisão em pauta.
   
Complexidade

A cultura aqui relembra os tempos Barrocos, amante da rebuscação e da  supervalorização da emoção sobre a racionalidade. Mais importante que a obra em si é o orgulho por ela gerado. A maior autoridade deste mundo são os arquitetos de software. Seres divinos capazes de projetar modelos genéricos e flexíveis o bastante para contemplar o céu e a terra.
x
Simplicidade

Talvez, pode-se comparar o momento 2.0 com o Realismo. O foco aqui é o objeto em criação. Pra isso, abdica-se do sentimentalismo e busca-se a maior racionalidade possível, a fim de não se permitir que impulsos de ego atrapalhem a razão do trabalho em si, a satisfação do cliente.
   
Foco no eu

O profissional 1.0 é, por essência, orgulhoso. É prática comum entre indivíduos desta comunidade a discussão calorosa de padrões e ferramentas aplicados na solução. Em geral, antes de satisfazerem seus clientes, buscam a satisfação própria.
x
Foco no cliente

O profissional 2.0 tende a ser prático, e não mais que isso. Para ele, a obra é mais importante que seu processo de construção. Por isso, busca-se ao máximo a tomada de decisões automática. Seu prazer não é a discussão do belo, mas a criação de mais e mais inovações criativas e lucrativas para o mundo.
   
Configuração

Como a arquitetura da obra é mais importante que a própria obra, seu desenho deve refletir a identidade de seu criador. Para isso, é preciso que as ferramentas utilizadas possibilitem os mais altos níveis de customização possíveis. Como resultado, não há limite para a criação de camadas, voltas e outros detalhes.
x
Convenção

Por estar o foco no resultado final, o máximo de decisões intermediárias são evitadas através do estabelecimento de convenções. Assim, garante-se a padronização da grande maioria das soluções e agiliza-se a disponibilização do produto final.
   
Palestra

Até a forma de se apresentar conteúdo da escola 1.0 parece obsoleta. Tradicionalmente, usa-se 1 apresentador ativo e onisciente e N espectadores passivos e ignorantes. 
x
Discussão

Na escola 2.0, busca muito mais a discussão NxN que a apresentação unilateral 1xN. Prova disso são alguns modelos emergentes (talvez nem tanto assim) de organização de eventos e reuniões, como The World Cafe, Open Space, Unconference e Birds of a Feather.
   
PowerPoint Style

Mesmo a forma do conteúdo apresentado tem mudado. A velha cultura estabeleceu estruturas hierárquicas para a apresentações de toda sorte. Basta olhar os modelos de slides disponíveis no PowerPoint, todos baseados em tópicos.
x
Presentation Zen Style

Uma outra forma, muito mais simpática e efetiva, de se apresentar conteúdo tem sido aquela defendida pela filosofia Presentation Zen. Nos últimos eventos que fui, me pareceu bem clara a relação entre o estilo dos slides com a escola de pensamento do apresentador.

Não considerem este texto como a sistematização de um novo termo. Trata-se apenas da compilação de uma série de impressões que estávamos tendo e que a todo tempo fazíamos referência.  Tentem depois traçar paralelos deste modelo 2.0 com outras áreas do conhecimento. Esse papo de sustentabilidade, simplicidade praticidade, organicidade também está presente na administração, economia, publicidade e mesmo política (num nível beeeem amplo. Não me refiro ao Congresso Nacional). Pensem a respeito e discutam sobre para qual lado sua empresa está
tendendo.

[]s