Java programmer positions for foreign students / visiting professors

The ELSA-Brasil project (Longitudinal Study of Adult Health - Brazil) is a
multi-center cohort study now completing its baseline visit of 15 000
employees of public universities and research centers of southern,
southeastern and northeastern Brazil: FIOCRUZ, UFBA, UFES, UFMG, UFRGS and
USP). Its objective is to investigate the development of chronic diseases,
especially cardiovascular problems and diabetes. Part of the project´s
activities has been and will continue to be the development of a web-based
data management system and an accompanying PACS for image transmission.

The data system is based on Java technology and has been developed in Porto
Alegre - RS - Brazil
by a team using agile methods (Scrum+XP) in a
distributed architecture.

ELSA-Brasil is offering short term positions within the context of academic
interchange for Java software developers with experience in
building enterprise web applications. This will include coding, unit
testing, using design patterns, learning new technologies, and having
a lot of fun doing it.

We are looking for individuals in an academic setting
- with a bachelor´s degree in computer science or a related field or
- pursuing an undergraduate degree in computer science or a related course

Required Skills:
- OO design
- Java (J2EE)
- Unit Testing (JUnit)
- Fluency in English or Portuguese
- Teamwork and communication skills

Desired Skills:
- EJB
- JSF
- Selenium

We can offer financial support to cover plane flight and living expenses in
Porto Alegre.

If interested please submit a letter summarizing your circumstances and
explaining your interest, accompanied by your CV, in English or Portuguese,
to Emerson Hernandez in the address below.

ELSA no CBIS

De 18 a 22 de outubro vai acontecer em Porto de Galinhas, Pernambuco, o XII Congresso Brasileiro de Informática em Saúde (CBIS). O ELSA vai se fazer presente lá com um artigo explicando um pouco da arquitetura do sistema dentro do contexto de sistemas de informação na área de epidemiologia. Se você não puder ir até lá prestigiar a apresentação, ou quer entender um pouco do que a gente faz, segue abaixo o nosso resumo.

O projeto ELSA (Estudo Longitudinal de Saúde do Adulto) é um estudo de coorte multi-cêntrico que incluirá em sua totalidade 15 mil funcionários de instituições públicas de ensino superior das regiões sul, sudeste e nordeste do Brasil (FIOCRUZ, UFBA, UFES, UFMG, UFRGS e USP). Seu objetivo é investigar o desenvolvimento de doenças crônicas, principalmente problemas cardiovasculares e o diabetes. Dentro das atividades do projeto está incluído o desenvolvimento de um sistema de coleta de dados, cujo objetivo é dar suporte às atividades do projeto. Este sistema foi construído por uma equipe utilizando métodos ágeis em uma arquitetura distribuída. Esta arquitetura é dividida em módulos que compõem o sistema e foi sofrendo contínuas evoluções conforme as necessidades do usuário e da implementação. Com a evolução do sistema e da equipe, foi possível perceber como o desenvolvimento incremental e iterativo de software auxiliou na criação de uma arquitetura consistente.

Treinamento Java

Dos dias 12 a 27 de julho, dois membros da equipe tiveram a oportunidade de passar adiante um pedaço do conhecimento adquirido no desenvolvimento do sistema ELSA, ministrando um curso para a CR Sistemas e Web, de Taquara. O pessoal presente ao curso era composta de analistas, programadores e testadores, assim como pessoal de suporte. Os assuntos abordados incluiram tópicos desde as bases de Orientação a Objetos até JEE usando tecnologias como JBoss Seam.



Atividades de apresentações internas já foram usadas algumas vezes na equipe de desenvolvimento. Essa, porém, foi a primeira vez que a colocamos em um ambiente externo. A experiência foi extremamente gratificante e agora estamos na espera dos resultados práticos deste treinamento no dia-a-dia da equipe da CR.

Desenvolvimento ELSA no Agile Brazil 2010



Nos dias 24 e 25 de julho, Porto Alegre sediou o Agile Brazil 2010. É sempre muito interessante ter cabeças pensantes reunidas em um mesmo lugar para trocar experiências. Ainda mais com visitas ilustres como Martin Fowler, que fez o primeiro keynote do evento. Sendo em Porto Alegre, foi também uma ótima oportunidade de reencontrar alguns amigos que acabo vendo pouco.

A equipe do desenvolvimento estava presente quase que em sua totalidade. Números oficiais do evento informavam cerca de 800 inscritos, fazendo com que o ELSA representasse 1% de todo mundo. Na foto ao lado, metade do time em um pequeno registro feito pelo @flaviosteffens: Émerson, Nadjia, Daniel e Diego.

Passado algum tempo do evento, acho que o principal efeito que ficou na comunidade que participou das atividades foi a vontade de fazer. Todos com muitas ideias e empolgação. Acho que até por isso a expectativa de que o do próximo seja ainda melhor que esse, principalmente nas trilhas praticante/experiente.

Animação sobre Motivação

Em agosto do ano passado escrevi um post sobre um vídeo que havia assistido sobre Autonomia, Domínio e Propósito. Agora descobri uma nova versão, em animação, que vale muito a pena: "RSA Animate - Drive: The surprising truth about what motivates us".

Foco nas Pessoas

O Chaos Report do ano passado mostrou que apenas 32% dos projetos em TI são bem-sucedidos. Segundo a tabela comparativa (e aqui embaixo reproduzida em apenas uma linha) retirada de uma entrada do site Project Smart, houve um decréscimo em relação a 2006 (de 35% para 32%), mas uma melhora significativa em relação à década passada (de 16% para 32%).

As explicações são muitas. O post de onde essa tabela foi retirada aponta como uma das grandes vantagens o aumento de profissionais certificados. Esse argumento é base pra uma briga boa que encontra como principal confrontador o Uncle Bob. Ninguém tem dúvida que existe muita gente a favor das letrinhas mágicas (uma rápida olhada nos seus contatos do LinkedIn prova isso). Mas, será que são as certificações que fazem diferença?

O sucesso de nosso último release foi, para mim, baseado em dois aspectos. Primeiramente, diferente de algumas outras vezes a iteração foi bem-definida e executada. Adicionalmente, criamos o desafio de mudar algumas tecnologias para outras que já havíamos avaliado como melhores do que as que estavamos usando. Depois de muito tempo de "nessa iteração não temos tempo para migrar", definimos em conjunto pela mudança. Esse motivador surgiu da equipe. Resultado final: software entregue no prazo, com todas as funcionalidades e com melhora no processo de desenvolvimento, através de novas práticas e tecnologias. O que será que mudou? Ninguém foi certificado em nada de um release para o outro...

Para mim, a resposta para o sucesso está em uma das bases do Manifesto Ágil foi cumprida: "valorizar: 1. Indivíduos e interação entre eles mais que processos e ferramentas". A equipe tinha uma clara ideia do que deveria ser feito, sem pendências de requisitos. As funcionalidades foram entregues para teste em tempo hábil e está sendo colocado a campo para gerar feedback em situações reais. A comunicação entre essas duas "equipes" e o trabalho que elas devem executar para garantir um bom software foi valorizado acima de tempo ou prazo. Mesmo havendo troca de ferramenta, ela foi feita como desafio para os desenvolvedores, ou seja, foi encaminhada como motivador da curiosidade natural de quem trabalha com programação, ao invés de imposição de alguém. Ou seja, independente de como é feito, de qual tecnologia é usada, os sistemas sempre serão baseados em pessoas e elas são o verdadeiro kernel de qualquer projeto.

Acentos no século XXI

É incrível como alguns serviços ainda não conseguem trabalhar com acentos. Minha surpresa, hoje, foi descobrir que eu baguncei a vida do SVN para todos os arquivos que fiz upload. Assim, para você, que como eu, acabou colocando acento e tem de voltar atrás para trocar o seu nome na integração Eclipse + SVNKit a dica é a seguinte:

apague o arquivo .keyring que fica no diretório ECLIPSE_HOME/configuration/org.eclipse.core.runtime/

Outras alternativas como eclipse.exe -vmargs -Duser.name=”usuario” NÃO vão funcionar. Ele até troca o valor do @author, mas não atualiza a conexão com o servidor.

Burj Al Arab e a casa do cachorro

Esse é um assunto que está batendo na minha cabeça faz algum tempo e acho que agora consegui dar uma certa forma, encontrando a metáfora correta: Burj Al Arab e a casa do cachorro.




O Burj Al Arab é um dos pináculos da engenharia. Belo, sofisticado, bem planejado, robusto, seguro e pensado para satisfazer aos mais exigentes. Enfim, um pedaço do paraíso (para os que acreditam).

E a casa de cachorro? Bom, é aquela singela construção que lembra uma casa mas que, bem, só serve ao cachorro e não imagino agradar nem a ele.



Mas porque trazer essas duas imagens? Porque quero abordar desenvolvimento de programas e sistemas que muitas vezes oscilam entre o Burj Al Arab e a casa de cachorro. Nos falta (me refiro aos desenvolvedores) uma melhor organização e (agora para pânico de muitos) regulamentação. Por que temos tanto preconceito com a regulamentação da profissão? Alguém já imaginou comprar uma casa (ou mesmo morar numa) que não tenha uma planta baixa? Que não tenha um engenheiro responsável? Alguém aceitaria ser operado por um pedreiro (infelizmente sim com as inúmeras cirurgias espirituais, mas estou digredindo)? A resposta, para a maioria das pessoas, seria não para ambas as perguntas. Todos querem que alguém assuma as responsabilidades e que os profissionais tenham sido aprovados por um órgão regulamentador. Então por que se aceita que alguém não cientista da computação faça o sistema web da sua empresa?

A razão é simples, o cliente quer um Burj Al Arab mas para isso pagar como se fosse uma casa de cachorro.

Outro ponto em que esta metáfora se aplica é quanto ao processo de desenvolvimento. É razoável que se espere o concreto secar para se iniciar os trabalhos de interiores. Ninguém, em sã consciência, aceitaria que se levantassem paredes sem que as fundações estejam prontas e devidamente verificadas. Não se coloca o telhado antes das paredes. Não se assume que: "bom, se não ficar de pé tentamos mais uma vez" seja uma metodologia aceitável. Posso mandar o meu "faz-tudo" de plantão montar uma casa para o meu cachorro e se não der certo, bom, faz-se outra. Se a entrada ficar pequena para o cachorro? Desgaste-se a entrada até ele passar. Se na primeira chuva a casinha se enterrar na lama do quintal? Azar, amanhã colocamos umas pedras para ver se resolve.

Acho que ficou claro o paralelo. Hoje vemos sistemas sendo construídos como se fossem casa de cachorro: sem planejamento, sem uma visão de vida útil, sem responsabilidade. O que é nosso é de ninguém. Qualquer um que sabe um pouco de estrutura de dados se julga desenvolvedor de programas. O mercado está tão saturado de "faz-tudo" que ninguém está prestando atenção nos verdadeiros engenheiros. Mas o que observo é que todos esperam um Burj Al Arab. Ainda não se entendeu que isso só é possível quando o profissional é capacitado e experiente e que custa caro, MUITO caro. Qualquer um faz uma casinha de cachorro. Basta ver as atrocidades cometidas em JavaScript, PHP, Java EE, etc.

Para mim é uma aberração escutar que site X e Y foram vitimas de SQL Injection. A reação que tenho é a mesma que tive quando soube do caso do Palace I e II no Rio de Janeiro. Como é que pode um sistema sofre com um ataque tão ridículo? É o mesmo que um prédio cair por erro de cálculo estrutural (o B-A-BA do engenheiro civil). É como um médico amputar a perna errada de um paciente.

Isso deveria ser visto como uma aberração e o profissional ser afastado pelo resto de sua vida de suas funções.

Não acho natural aceitar que se desenvolva sistemas como se fossem casas de cachorro. O que parece ser a prática comum, principalmente com prazos no mínimo otimistas que gerentes de projeto impõem. Este normalmente são dotados de um total desprendimento ou mesmo noção da realidade do que é desenvolvimento de software.

A realidade está batendo na porta: 1.000.000 de "faz-tudo" não irão construir um Burj Al Arab e os melhores engenheiros do mundo tampouco o farão em 2 anos. No final das contas não existe mágica: o teu sistema será tão bom quanto os profissionais que se tem a disposição e que condições se aplica ao desenvolvimento.

Abraços,

Gustavo