Feedbackme 6

Posted by Túlio Ornelas Mon, 27 Apr 2009 16:21:00 GMT

Desde que me conheço por gente entendo que para que uma determinada ação continue é necessário apoio, suporte, feedback. Uma pergunta muito comum em vários meios é “como avaliar?”, como podemos avaliar um produto? Uma pessoa? Um presente dado? Onde diabos ele quer chegar com isso? Vou explicar. Eu, por exemplo, tenho vários projetos pessoais, já dei aula, desenvolvi frameworks, estudei coisas novas, etc. Porém grande parte dos projetos que dei continuidade foi devido a uma pessoa olhando e dando suas opiniões, ou alguém precisando, outros usando, etc. Resumindo foram os projetos com algum feedback.

Bem, todos sabem disso, ou parte disso. A SEA já utilizou de vários artifícios para dar feedbacks, para motivar as pessoas a continuar com o bom trabalho. Mas como isso poderia funcionar? Os gerentes e coachs não passam o dia com as equipes, eles pegam coisas pontuais. Dessa forma quando alguém era avaliado ninguém mais se lembrava das ações daquela pessoa, com o que a pessoa havia contribuído, etc. Resumindo, as coisas ficavam em boa parte por conta do market share da pessoa.

Foi ai que surgiu uma idéia! Vamos dar medalhas, assim teremos um histórico das ações. As medalhas seguiam as seguintes regras: Uma medalha de Bronze era dada quando uma obrigação era bem feita, palestras, etc. Cinco medalhas de bronze equivaliam a uma de prata. A palavra chave das medalhas de bronze era obrigação. As medalhas de prata por sua vez eram dadas aqueles que conseguiam organizar as coisas por iniciativa própria. A palavra chave era iniciativa. As medalhas de ouro eram dadas paras pessoas que conseguissem gerar uma venda, etc. A palavra chave era resultado.

Qual o problema dessa idéia? Ela ainda era centralizada. Receber uma medalha era bem legal, o willi mandava um email para todos da empresa informando, todos reconheciam o feito, mas ainda existiam várias ações que mereciam medalhas e não eram vistas, não por descaso, mas por que é impossível acompanhar tudo que todos fazem em todos os projetos! Ora! Então deixa esse povo se dar feedback! O.o? Isso mesmo!

Foi ai que surgiu outra idéia! Em uma reunião bem conflituosa dos coachs, em um café próximo =], discutimos a forma como as medalhas eram dadas e etc. Alguns disseram que tinham medalhas para dar, mas não sabiam se podiam fazer, ou se eles deveriam ter o consenso de todos. Foi ai que o Bruno Pedroso disse a seguinte frase “…a gente tinha que criar um sistema em que a galera pudesse deixar feedback para qualquer um…”, ficamos discutindo a idéia, mas não chegamos a evoluí-la.

Algum tempo depois eu queria dar um feedback mas não me sentia a vontade em chegar e dar uma medalha, foi ai que, por baixo dos panos, comecei o feedbackme, a idéia era simples, mas eficiente. Uma semana depois mostrei pro Bruno uma versão bem 0.1 mesmo, e ele disse: “Coloca no ar!”, e o feedbackme nasceu.

O que é o feedbackme?

Um ambiente em que todos estão no mesmo nível, você escolhe uma pessoa e pode deixar um feedback positivo ou negativo. Simples assim! É claro que depois começamos a dar uma cara de 2.0 para o negócio.

A coisa começou assim:



E se encontra assim:



Publicando os feedbacks no twitter http://twitter.com/feedbackme, mandando emails, criando ranking, mantendo histórico, etc.

Não vou mostrar muito para que vocês “fucem” um pouco http://www.seatecnologia.com.br/feedbackme. Em menos de um mês tivemos 84 feedbacks, 5 versões, 28 novas idéias e todo mundo se expressando muito mais!


E você? Como avalia ou é avaliado na sua empresa? Qual foi o último feedback que você deu para um colega de trabalho? Qual foi o último feedback que recebeu? O que estão achando do seu trabalho?

Pensem nisso.

o/

Maré de Agilidade Swell Salvador/BA 5

Posted by Alê! Thu, 23 Apr 2009 09:00:00 GMT

Maré de Agilidade Swell Salvador Antes tarde do que nunca.



No segundo semestre de 2008, numa tentativa de realização de um evento em Brasília que fomentasse as tecnologias comercializadas pela SEA, acabamos realizando a primeira edição do Maré de Agilidade, evento exclusivamente voltado para discussão dos modelos ágeis de desenvolvimento de software e gestão de equipes. O evento nos abriu várias oportunidades de discussão sobre o assunto no governo e ganhou fama.

Da primeira edição, derivaram várias apresentações gratuitas para empresas e órgãos interessados no assunto e, no início de 2009, o colega Serge Rehem, JUG leader do JavaBahia (blog), convidou-nos a realizar uma segunda edição do mesmo evento para o público baiano. Topamos, e nesse dia, o Maré de Agilidade deixou de ser um evento brasiliense e corporativo da SEA para se tornar um road show da comunidade ágil brasileira.

A primeira novidade do edição baiana foi a realização de mini-cursos pré e pós evento, assim distribuídos.

Gerenciamento Ágil de Projetos com Scrum



Workshop realizado por Manoel Pimentel, editor da revista eletrônica, Visão Ágil, com exercícios práticos para vencer os desafios da implantação da metodologia Scrum para o gerenciamento de projetos de software.  Tamanho foi o sucesso do treinamento que outras turmas já foram repetidas em Salvador/BA. Vejam as fotos do curso no site do Manoel.

Desenvolvimento web ágil com RubyOnRails


Quem me conhece sabe que tenho minha carreira toda construída no mundo Java mas, de uns tempos pra cá, motivado pelo Manifesto 2.0, tenho ampliado meus horizontes. Este mini-curso foi ministrado por mim mesmo, e foi um grande resumo de Ruby, JRuby e Rails para céticos de plantão que já ouviram falar mas nunca tiveram a chance de contato com essas tecnologias.

eXtreme Programming (XP) na Prática



Esta foi a terceira turma realizada por Bruno e Willi com o apoio de Túlio e Carol. Vejam depois os relatos das primeira e segunda turmas. O feedback tem sido fantástico. Em 8hs de treinamento, pessoas que nunca se viram unem-se em equipes de desenvolvimento e, seguindo iterações XP, trabalham para a entrega de um produto funcional para o cliente maluco. Temos várias turmas agendadas. Se tiver interesse em participar de alguma, entre em contato.

Gestão Ágil de Requisitos



Outro curso muito bem sucedido do Manoel Pimentel. Mais um com segunda turma realizada em Salvador.

CSM - Certified ScrumMaster

Por fim, também incluso dentro da grade do evento, mas realizado de forma independente pela AdaptWorks, empresa parceira do amigo Alexandre Magno, tivemos o treinamento oficial da Scrum Alliance para formação de ScrumMasters.

Palestras

Na sequência aos mini-cursos, tivemos um dia cheio de palestras. Para nossa surpresa, o auditório do Salvador Trade Center lotou e mais uma vez apresentamos nossos cases de sucesso de adoção de métodos ágeis na Força Aérea Brasileira.



Vou ser sincero. Cheguei um pouco tarde nesse dia porque fui surfar com o Brunão. Mas, do que vi, gostei muito. Perdi a palestra do Felipe Rodrigues, mas ainda peguei um pedaço da do Manoel sobre Gestão Lean. Seria bom que mais pessoas do mundo ágil se ligassem nesses princípios. Toyota e você, tudo a ver. Na sequência, Bruno e Willi apresentaram o já consagrado case da Aeronáutica. Depois, Victor Hugo, num estilo super dinâmico e didático, deu uma aula sobre a importância da integração contínua em desenvolvimento ágil, seguido de Fábio Rislton, que apresentou as iniciativas no SERPRO no processo de adoção de métodos ágeis (isso ainda vai dar muito o que falar). Por fim, Alexandre Magno, também com uma didática excepcional, apresentou as Armadilhas do Scrum e o evento foi então fechado com uma mesa redonda de discussão, no qual novamente caí de paraquedas.


Obrigado a todos que participaram do evento e da organização. Em especial, ao JavaBahia que, sem medo de ser feliz, arregaçou as mangas e provou mais uma vez que #botaprafazer. A maioria dos slides utilizados nos mini-cursos e nas palestras estão disponíveis no blog do evento. A fotos estão disponíveis ou no site do Manoel ou no meu ou no do próprio evento. Já temos próximas edições do Maré de Agilidade previstas para Vitória/ES, Fortaleza/CE e Florianópolis/SC.



Mais uma vez, gostaríamos de deixar o convite. Quer uma palestra gratuita sobre métodos ágeis na sua empresa? Tamo dentro. Quer realizar o Maré de Agilidade na sua cidade? Tamo dentro. Gostaria de organizar algum dos mini-cursos acima para sua equipe? Mais uma vez, estamos dentro. É só entrar em contato. Já existem os emails do Bruno e do Willi em outros posts. O meu é alexandre . gomes com o domínio seatecnologia.com.br. Acreditamos nessa bandeira e estamos dispostos a levá-la onde for necessário para a construção de um mundo melhor.

[s]

Negociando Projetos de Metodologias Ágeis: contratos baseados em métricas 1

Posted by Willi Wed, 22 Apr 2009 12:51:00 GMT




Não entendeu?

:)

[]’s
Willi

Ser Ágil = Ser Voluntário 3

Posted by Germano Junior Fri, 17 Apr 2009 14:33:00 GMT

Sempre vejo com entusiasmo os posts que são escritos aqui, apesar de eu não entender 1/4 do que está escrito. Deve ser porque não sou da área técnica.=P

Trabalho na área Administrativo-financeira da SEA e sempre quando dá acompanho um pouco do que está acontecendo na área técnica sobre as novas tecnologias e tendências, mesmo sem entender muito bem. Digo isto pois assisti a uma palestra de 1 hora no evento Java Para Maiores, e no final tive que virar para a Carol que estava ao meu lado e perguntar do que o cara estava falando há 1hora. Me lembro só que ele falava do SunSpot. O que é e para quê serve, até hoje não sei responder direito.

 

 

Mas, não é para falar da minha quase total ignorância no campo de informática que eu estou aqui. E sim para partilhar um pensamento que acompanha-me já há algum tempo, e como estão acontecendo umas coisas bacanas na SEA, consegui unir algumas ideias.

 

 

Na verdade, irei utilizar parte do pensamento do Alê no post que ele falou sobre o “Manifesto 2.0” e o post Carol que fala “Como motivar uma equipe para trabalhar com metodologias ágeis”.

Como é a minha primeira vez, estou meio nervoso, mas bora lá e ver o que vai sair.

No post do Alê há uma comparação da TI 1.0 (Old School) e da TI 2.0 (New School). De todas as comparações uma em particular me chamou a atenção. Deve ser porque está ligada diretamente à minha área. No momento em que ele comenta sobre o Recurso Humano da empresa, ele diz: “…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.”

 

A Carol disse recentemente no seu post: “Por que eu, Carolina Mascarenhas, acordo todos os dias?? O que me motiva a acordar (mesmo que não tão cedo quanto deveria) e depois ir trabalhar feliz da vida?? Respondi que eu quero fazer diferença nessa vida! E diferença para mim é participar de coisas que realmente funcionam, que realmente agregam valor. E acho que não sou tão diferente da maioria das pessoas do planeta. Eu quero fazer parte de algo útil!”

Estou na SEA há 2 anos. E cada dia que passa vejo que ela tenta sempre suprir as carências existentes, por alguma coisa que agregue mais valor ao SEArence (vulgo, colaborador) e não necessariamente à conta bancária de cada um. Pois, já se sabe há tempos que salários altos não motivam ninguém, causam uma leve sensação de “ter” por algum tempo, pois, 2 a 3 meses depois, esse aumento não serve para mais nada, pois já entrou nas dívidas e você volta a ficar desanimado ou chateado, jamais desmotivado, pois você não foi motivado.

A SEA tenta criar esse ambiente que motiva a Carol e todos os outros SEArences. Na SEA não vemos o outro como uma máquina, mas como disse o Alê na comparação entre TI 1.0 e 2.0. Vemos que cada um tem um anseios e necessidades pessoais. Cada um tem necessidades específicas. Já ouviu falar sobre a hierarquia de necessidades de Maslow?

Falei dos post’s do Alê e da Carol só para mostrar que nós nos preocupamos com as necessidades de cada um para, assim, atender melhor o nosso cliente. Se fosse pegar uma palavra chave do post do Alê e da Carol, seriam as seguintes respectivamente: Motivação e Útil.

Explico:

A SEA está num processo bacana. Ainda é cedo para divulgar, pois ainda está sendo estruturado. De um modo bem resumido, estamos desenvolvendo um Projeto de Ação Social. Um projeto que visa a inclusão digital de crianças, jovens, adultos e idosos.

 

 

 

 

Podem pensar que já existem milhares de projetos como esse e coisas do gênero. Mas, não estamos nos preocupando em querer fazer bonito para os outros ou fazer quantidade. Estamos só tentando lidar com as motivações de cada um. Fazer o bem à outra pessoa e ouvir dela um muito obrigado por me ensinar algo ou você como instrutor vê a evolução de cada aluno, é algo que nem o Mastercard pagaria, pois não tem preço. Você trabalha melhor, você se dedica mais. A Carol ao dizer “quero fazer a diferença” mostra que a SEA já faz a diferença. Não por esse projeto social, mas o que a motivou.

Willi, conversando com alguns outros SEArences, disse o seguinte: “…nós mexemos com metodologias ágeis porque queremos fazer o melhor para o cliente. Queremos fazer algo que ele possa realmente usar e ser útil no final do projeto…” e prosseguiu falando: “…por esse motivo que

eu acho interessante a ideia do projeto social, pois queremos fazer o melhor para o cliente. E por que não fazer o melhor para as pessoas que precisam?”

O discurso quando se refere às metodologias ágeis é sempre o mesmo: fazer o cliente gastar o necessário para ele ter algo que realmente vá utilizar. Ou seja, fazer o bem sem importar a quem. Já vi diversas vezes projetos que começam, duram 2 anos e no final, aquilo não tem mais tanta utilidade quanto teria no início. Não podia alterar, pois cada alteração significaria reuniões e mais reuniões, mudança do escopo do projeto e vários documentos para autorização da mudança e com a mudança do escopo o preço aumentaria e, por consequência, o prazo seria prorrogado.

Por isso digo: fazer o bem sem importar a quem significa que a partir do momento que você como empresa, ou melhor ainda, você como Profissional Ético oferece ao seu cliente a forma mais rápida, prática, eficaz para resolver o problema dele, você está fazendo um bem para ele. Pelo pouco conhecimento que tenho, acredito que não estou falando tanta besteira sobre as metodologias ágeis.

Com esse ponto de vista, a SEA expande a aplicabilidade da filosofia ágil.

Voltando na palavra-chave “Recurso Humano”. Acredito que você já tenha ouvido ou deve ter se questionado sobre qual a sua importância no mundo. O que você faz de bom para ajudar as pessoas? Se a sua resposta foi: “Eu compro açúcar União, pois eles doam parte do dinheiro para a Fundação Ayrton Senna” ou “como no McDonalds no Mc Dia Feliz só para ajudar o Instituto” e por ai vai, pô, bacana, a sua postura. Se você paga R$ 0,20 ou R$ 0,30 a mais por um produto para ajudar as pessoas e sua consciência fica satisfeita com isto, ótimo.

Acho pouco. Comparado com o que você já teve e tem na vida, com certeza esses R$ 0,30 não fazem falta alguma.

 

 

 

Por outro lado, quando você decide fazer algo real, por exemplo, dar uma aula para pessoas carentes, sem acesso e que vão te chamar de Senhor porque são tão humildes que acham uma falta de respeito lhe chamar de você, mesmo que você tenha a metade da idade dela, você pode contribuir com bem mais que R$ 0,30! Na verdade você não vai gastar nada.

Olha que maravilha! Falar que você irá economizar nesses tempos de crise. Ajudar alguém e nem vou precisar mais comprar o açúcar União para ficar com a minha consciência mais tranquila. Faça o seguinte: tire 1 hora do seu dia de trabalho ou da sua semana e dê uma aula em alguma ONG, cuide de idosos no asilo, ajude a servir sopa para os carentes ou simplesmente seja gentil com as pessoas que estão à sua volta. Ouça alguém que precisa falar e que está angustiado e pensa em se matar, como fazem os Voluntários do Centro de Valorização a Vida - CVV.

Faça a diferença! Faça um mundo melhor, dando um pouco mais de esperança a quem nunca teve nada. Vamos sair do nosso comodismo e egoísmo, onde o que importa é ganhar dinheiro e pronto.

Acredito que a SEA (quando falo SEA, são todos os SEArences que aqui trabalham) está fazendo a parte dela. Fazendo ou pelo menos tentando fazer com que a Carol tenha a motivação para levantar cedo; agora, por dois motivos. A certeza que a empresa em que ela trabalha se preocupa com ela. Tanto no lado profissional como no pessoal. Pois ela tem a motivação de fazer algo que realmente funcione para o cliente e algo que realmente agrega valor. E assim, fazendo um mundo melhor, dando um pouco mais de esperança àqueles que não tiveram a mesma sorte que você, leitor desse post.

Faça a diferença você também. Não passe a sua vida no anonimato. Não seja mais um que goza de perfeita saúde e prefere ficar o tempo livre, vendo tv, mexendo no computador. Falando nisso, porque você ainda está lendo esse texto?!?! Levanta, vai ajudar alguém. Faça a sua vida aqui nesse mundo valer a pena. Faça alguém feliz, dê esperança a quem já não tem mais motivação para sorrir.

Finalizo com um texto de um autor desconhecido que diz:

“O valor de um sorriso

Não custa nada e rende muito;

Enriquece quem o recebe; sem empobrecer quem o dá;

Dura somente um instante, mas seus efeitos perduram para sempre;

Ninguém é tão pobre que não possa dar a todos;

Ninguém é tão rico que dele não precise;

Leva felicidade a toda parte;

Não se compra e nem se empresta, nenhuma moeda do mundo pode pagar o seu valor.

Não há ninguém que não precise tanto de um sorriso, de um amor verdadeiro, como aquele que só Deus pode dar.”

 

Não sei se fui claro. Não sei se depois que você leu tudo isto, entendeu o que eu quis dizer. Peço desculpas se lhe prendi até o final dessas linhas para você parar e se questionar: “O que ele quer dizer? Não entendi nada.” hehehe

Mas, tá ai.

Aproveita e assista ao vídeo Miniature Earth. São menos de 4 min:

 

 

[]’s

Germano Júnior

 

 

Conheça o Django 3

Posted by Pedro Augusto Dias Vasconselos Wed, 15 Apr 2009 14:25:00 GMT

Hoje temos uma safra de exelentes frameworks que pregam o desenvolvimento rápido de aplicações para Web. Em se falando de Python, o framework que mais se destaca com certeza é o Django.

Python

Para quem não sabe, Python é uma linguagem de proposito geral de alto nível, orientada a objetos. Sua tipagem é forte e dinâmica, a sintaxe da linguagem foi projetada com ênfase na legibilidade do código. Possui uma baixa curva de aprendizado. Python é interpretada e é suportada por diversos sistemas operacionais (Windows, Linux, Mac OS, …) e diferentes plataformas como Java e .Net.

Django - O Framework

O Django é um framework web, open-source escrito em Python que segue o padrão de arquitetura MVC. Ele nos ajuda a desenvolver aplicações web de forma rápida e com modelagem limpa e pragmática. Seu nome foi inspirado no nome de um guitarrista de jazz chamado Django Reinhardt. Django.

O framework nos oferece recursos como os listados abaixo, dos quais alguns serão abordados neste tutorial:

  • Mapeamento Objeto Relacional.

  • Interface Automática de Administração de conteúdo

  • Configurações de URLs elegantes

  • Sistema de Template

  • Internacionalização

Instalando o Python e o Django

Neste turorial utilizaremos a versão 2.5.2 do Python e a versão 1.0 do Django. Para ter acesso as instruções de instalação do Python e do Django acesse: http://docs.djangoproject.com/en/dev/intro/install/

É um passo a passo completo com todos os procedimentos necessários para poder desenvolver aplicações com Django.

Criando um projeto

Para criar um projeto do Django acesse a linha de comando do seu sistema operacional, entre no diretório onde você gostaria de armazenar o projeto e rode o comando:

django-admin.py startproject nome_do_projeto

O comando acima cria um diretório com o nome do projeto e arquivos que compõem a estrutura básica para um projeto feito em Django.

nome_do_projeto/

__init__.py

manage.py

settings.py

urls.py

Os arquivos gerados têm as seguintes finalidades:

  • __init__.py

  • manage.py

    • Um pequeno programa escrito em python que permite realizar operações com o nosso projeto Django.

  • urls.py

    • Um arquivo que contém mapeamentos das URLs do projeto. Nele podemos dizer quais URLs serão tratadas por quais métodos.

  • settings.py

    • Um arquivo que contém as configurações básicas de um projeto Django.

O servidor de desenvolvimento

O framework vem com um servidor de desenvolvimento que usaremos para rodar a nossa aplicação enquanto ainda ela ainda não está em produção. Para subir o servidor, rode o seguinte comando no diretório do projeto:

python manage.py runserver

No seu browser acesse a URL http://localhost:8000 e verifique que o servidor subiu com sucesso.
 

Por padrão o servidor escuta a porta 8000 mas você pode muda-la facilmente passando outra porta, por exemplo a porta 80, por parâmetro ao rodar o comando:

python manage.py runserver 80

Configurando o projeto

Como foi dito acima o arquivo settings.py contém as configurações básicas de um projeto Django. Para fazermos o nosso exemplo só precisamos configurar o acesso ao banco de dados. Adiante adicionaremos algumas outras configurações pertinentes aos assuntos tratados.

O python 2.5.2 já vem com um banco de dados embarcado chamado SQLite. É um recurso muio interessante que aumenta a portabilidade de softwares escritos em python. No nosso caso vai nos poupar algumas configurações.

Para ter a nossa aplicação rodando com o SQLite, basta dizer o SGBD e o caminho do arquivo que vai armazenar os nossos dados no arquivo settings.py.

Agora que as configurações mínimas do projeto foram satisfeitas vamos iniciar a nossa aplicação.

A aplicação

A aplicação deste tutorial consiste em um simples sistema de controle de bandas. Vale ressaltar que no contexto do Django uma aplicação é um sistema web que faz algo específico (controle de nóticias, enquetes, etc…). Um projeto é um conjunto de aplicações e configurações para um Web site em particular. Um projeto pode conter várias aplicações e uma aplicação pode estar em vários projetos. A idéia é que possamos empacotar e distribuir aplicações para uso em diferentes projetos.

O nosso projeto já foi criado, agora precisamos criar a nossa aplicação. Para isso rode o comando abaixo a partir do diretório do nosso projeto:

python manage.py startapp bandas

Similar ao startproject, o comando startapp cria um diretório com o nome da aplicação e cria os seguintes arquivos:

bandarchive/

__init__.py

models.py

views.py

 

  • __init__.py

    • Como foi explicado anteriormente, o arquivo __init__.py serve para informar que este diretório é um pacote.

  • models.py

    • O arquivo models.py irá conter os modelos da nossa aplicação. Modelos são classes que representam o domínio do sistema.

  • views.py

    • O arquivo views.py irá conter os métodos que realizam operações quando uma determinada url for acessada (salvar/deletar banda, votar em uma musica, etc).

Os modelos da aplicação

A aplicação de bandas terá 2 modelos, Banda que ira representar bandas, cantores, e Album que representa os lançamentos daquela banda. Os modelos são subclasses de Models, uma classe do Django que nos auxilia a realizar operações em bancos de dados (Mapeamento objeto relacional ou ORM) sem utilizar SQL.

Na imagem acima temos os dois modelos que iremos utilizar. Cada subclasse de Model tera uma tabela e cada atributo se transformará em uma coluna daquela tabela que será do mesmo tipo usado para inicializar o atributo.

Depois de criar nossos modelos devemos adicionar a aplicação à configuração do projeto no arquivo settings.py para que ela seja enxergada pelo nosso projeto.

Feito isso, rodamos o comando syncdb na linha de comando para que as tabelas sejam criadas no nosso banco de dados.

python manage.py syncdb

Podemos brincar com a API de banco de dados do Django e aproveitamos para popular o banco com dados para os próximos passos deste documento. Faremos isso pelo próprio interpretador do python, chamando pelo manage.py que sobe o contexto do projeto todo para nós.

python manage.py shell

Pronto, agora estamos prontos para escrever as funcionalidades de verdade!

Views – Processando requisições

Para o Django, uma view é uma função que processa a requisição de um padrão de url previamente mapeado, gerando uma resposta. Para quem programa em java ela seria correspondente a uma servlet ou comparando com outros frameworks seria algo como uma action.

Vamos começar mapeando as URLs e as views que irão processar uma requisição específica no arquivo urls.py na pasta do projeto.

As views devem ficar no arquivo views.py da pasta tutorial_django/bandas/. No mapeamento acima relacionamos padrões de URLs através de expressões regulares simples com as views. A view index é executada quando acessamos uma url como http://localhost:8000/bandas/.

A view detalhar por sua vez, é executada quando uma url to tipo http://localhost:8000/bandas/1/ é acessada, no lugar de 1 pode haver qualquer outro valor numerico.

Para não darmos de cara com um erro, devemos, antes de tentar acessar alguma URL, implementar as views no arquivo views.py

Acima temos um exemplo de implementação para as views index e detalhar. Na view index nos recuperamos todas as bandas persistidas iterando-as e os seus albums. Na view detalhar, além do request, é passado o atributo banda_id. A partir deste atributo recuperamos a banda específica e iteramos os albums dela.

Veja que nas duas views precisamos montar o texto que vai ser exibido armazenando os dados em uma variável chamada output. Depois que ela tiver todo o conteúdo retornamos um HttpResponse com o texto a ser exibido.

O problema da implementação acima é que o design da página esta todo escrito em python, o que dificulta a manutenção além de ser uma forma complicada de escrever telas. Por esse motivo o Django dispõe de um sistema de templates que nos a ajuda a criar telas de forma fácil e organizada.

Templates

Você logo verá como um template funciona com django. Para isso, primeiramente crie uma pasta onde você gostaria de guardar os seus templates e coloque o caminho dela no arquivo settings.py

Crie uma pasta abaixo do seu diretório de templates com o nome da aplicação, no nosso caso bandas, e dentro dela crie os arquivos index.html e detalhar.html. Abaixo segue um exemplo de como podem ficar nossos templates:

Para que os templates funcionem adequadamente temos que modificar as nossas views:



 

Agora a implementação das views ficou mais mais limpa e objetiva, deixando a camada de apresentação devidamente separada do controle.
Note que tivemos algumas novidades. O atalho render_to_response() que recebe uma string que diz qual o template que vai ser renderizado e um dicionario com as variáveis que vão ser acessadas no template. Outra novidade é o uso da exceção Http404. Na view detalhar tentamos recuperar uma banda pelo id, se a banda não existir lançamos a exceção Http404 que nos encaminha para a página padrão do servidor de página não encontrada.

Submetendo dados de um formulário


Agora vamos construir alguns formulários para que possamos entrar com dados no nosso sistema. Primeiramente vamos fazer a tela para inserir uma nova banda.


 

Vamos utilizar o formulário acima para submeter os dados de uma banda mas para acessa-lo devemos mapear a url que carrega o form e repare que a action do form aponta para outra url que deve também deve ser mapeada no urls.py.
    (r’^bandas/nova/$’, ‘views.carregarNova’)
    (r’^bandas/salvar/$’, ‘views.salvar’)
Depois de mapear a url devemos implementar a view que salva os dados de uma nova banda e a view que renderiza o formulário de entrada de dados.


A view carregarNova apenas renderiza o template com o formulário. A view salvar instância uma nova banda, salva e redireciona para a view já existente detalhar.

Com isso vimos os recursos básicos de Django, o que nos deu a possibilidade de produzir um exemplo funcional de como desenvolver uma aplicação. Vale lembrar que o Django possui muitos recursos além daqueles que vimos aqui a documentação do framework é bem completa. Para saber mais acesse: http://www.djangoproject.com/.

O Movimento Agil 2

Posted by Alê! Mon, 13 Apr 2009 16:29:00 GMT

Agilidade em Ilheus Hoje pela manhã eu estava conversando com o colega Paulo Merson e, a certa altura da conversa, ele disse:

“If you’re not having fun, you’re not doing it right.”


Esse dito é perfeito e dá continuidade ao post da Carol. Afinal, por que estava eu, em meio às minhas férias, em plena Itacaré/BA, falando de tecnologia com amigos? Por prazer. Simples assim. E é com este mesmo prazer, que mais logo, também em plenas férias, conversarei sobre tecnologia com os alunos da Universidade Estadual de Santa Cruz, em Ilhéus/BA.



“Faça algo que ame e nunca mais trabalhe na vida.”

Como motivar uma equipe para trabalhar com metodologias ágeis? 5

Posted by Carol Mascarenhas Sat, 04 Apr 2009 23:29:00 GMT

Durante o painel que finalizou o evento Maré de agilidade Swell Salvador no último final de semana, o Alê Gomes direcionou uma pergunta da platéia para que eu e Túlio respondêssemos. A questão era sobre como motivar uma equipe para trabalhar com metodologias ágeis ou o que pode manter uma equipe trabalhando sempre motivada dentro desse contexto. Ele considerou que poderíamos passar um ponto de vista mais real, já que nós fazemos parte de uma equipe ágil aqui na Sea.



Na hora, sem pensar muito, respondi de forma bastante pessoal. E depois fiquei pensando a respeito da repercussão da resposta e também em outras coisas que poderia ter falado naquele momento. Porque eu, Carolina Mascarenhas, acordo todos os dias?? O que me motiva a acordar (mesmo que não tão cedo quanto deveria) e depois ir trabalhar feliz da vida??

Respondi que eu quero fazer diferença nessa vida! E diferença para mim é participar de coisas que realmente funcionam, que realmente agregam valor. E acho que não sou tão diferente da maioria das pessoas do planeta. Eu quero fazer parte de algo útil!

Como programadora, romanticamente posso dizer, que quero trabalhar na construção de um software que resolva o problema do cliente. Quero trabalhar naquela funcionalidade que realmente importa. E não na digitação de centenas de linhas de código que nunca chegarão a entrar em produção.

Como pessoa, citei a oportunidade que temos de melhorar a cada dia! Como é interessante identificar tudo aquilo que precisamos melhorar e poder melhorar cada uma dessas coisas aos poucos e constantemente. E lá na frente poder olhar e refletir a respeito do nosso progresso. “Como aprendemos nesse último projeto!”, “Como evoluímos nossas técnicas nesse último semestre!”, “Como, hoje, nossos problemas são de ordens totalmente diferentes daqueles que vencemos no ano passado!”

O Túlio completou lembrando do reconhecimento. Não apenas queremos participar de todas essas coisas como queremos ser reconhecidos por aquilo que fazemos. Como é motivador que as pessoas reconheçam que estamos fazendo um excelente trabalho, e que estamos nos esforçando. Esse feedback é muitíssimo importante para nossa motivação!

Outro ponto que também me motiva, mas que não lembrei naquele momento, é a autonomia. Quantas pessoas hoje em dia podem dispor de total autonomia para realizar suas funções? Nós podemos decidir TODAS as coisas que nos competem, temos autonomia para tomar todas as decisões. Estudamos para isso, e estamos apoiados por nossa experiência portanto cabe a nós propor as soluções que iremos implementar, estimar nossas próprias atividades, e até mesmo errar o caminho e poder voltar atrás. E quando eu digo nós, estou falando da nossa equipe.

Não sei se isso é muito abstrato, mas é muito diferente trabalhar no desenvolvimento de um software e dispor de autonomia para utilizar técnicas, abordagens, práticas, tecnologias, etc. A autonomia tem nos motivado bastante à contribuir com os projetos, e com nossa própria evolução. Por outro lado a autonomia exige muitíssima responsabilidade. Temos que nos organizar, e não podemos esquecer que a qualidade daquilo que produzimos é de nossa inteira responsabilidade. 

A pergunta, então, estaria respondida! Esses são os motivos pelos quais eu e Túlio Ornelas, e provavelmente todas as equipes ágeis da Sea e de inúmeros locais do Brasil e do Mundo, nos sentimos motivados!


Mas voltando ao ponto e repensando de forma mais profunda a respeito da questão. O que as pessoas querem de fato saber a respeito disso? Como podemos motivar aqueles que trabalham conosco? Como podemos motivar uma equipe a começar a contribuir da forma como deveria? Como podemos motivar as pessoas a se comunicarem mais e melhor? … a escreverem melhores testes automáticos? … ou a continuarem a jornada de escrita de testes? Como motivar as pessoas a não acumularem débitos técnicos em seus projetos? Como motivar as pessoas a limparem a bagunça sempre e aos pouquinhos… refatorando seus códigos? Como motivar as pessoas a serem mais responsáveis por aquilo que elas produzem?



Na minha opinião, a motivação é algo que vem de dentro pra fora e não é uma coisa que alguém pode fazer por um outro alguém. Com as metodologias ágeis nós buscamos que nosso ambiente considere a importância da humanidade de nossas interações, que proporcione efetividade em nossa comunicação, que seja um ambiente livre com feedback para incentivar nossa melhoria contínua, e também incentivar a simplicidade daquilo que a gente produz.

Mas nós não podemos motivar as pessoas!!! Ou elas alinham suas próprias motivações à forma como trabalhamos ou não teremos uma equipe motivada a ser ágil. Se a equipe não internalizar os valores e princípios por trás de cada uma das práticas e não se motivarem a buscar o ideal todos os dias nunca teremos uma equipe ágil.


O que podemos fazer então???


Trabalhe para lhes proporcionar esse ambiente que eu citei acima. Não tente controlar o processo! Ensinar, sentar junto, chamar pelo braço pode funcionar por um curto espaço de tempo e é até importante no início. Mas se permanecer por muito tempo pode levar apenas à dependência. E o processo vai ficar muito pesado para quem coordena. Dê-lhes autonomia! Deixe eles se virarem e descobrirem por si mesmos o que deve ser feito. E o que deve ser melhorado. Eles vão achar as respostas! Mas claro, esteja sempre próximo e os ajude com aquelas coisas que talvez os impeçam de continuar. Mas deixe que eles assumam a responsabilidade e se auto-motivem! Pode parecer arriscado, mas acredito que pode ser um bom caminho.


O Evento em Salvador foi bastante interessante e proveitoso. Eu acredito que muitas pessoas saíram dos mini-cursos, palestras e do debate muitíssimo motivados a estudar e entender mais sobre agilidade. Acredito que tivemos um excelente aproveitamento e para mim ter participado foi uma ótima experiência. Parabéns a todos os envolvidos na organização do Maré!

Beijokas da Carol.

Minicurso XP na prática - turma 2 1

Posted by BrunoPedroso Wed, 01 Apr 2009 15:30:00 GMT

Um pouco atrasado, mas aqui vai… Foi um prazer enorme rever grandes amigos durante a segunda turma do mini-curso XP na prática, que aconeceu no dia 14/mar, aqui na SEA.

O resultado foi excelente! Dessa vez o projeto foi "quebrado" em mais turmas, como se tivéssemos 3 pares programando (o primeiro foi feito em apenas duas máquinas). Comparando com a turma1, a diferença foi que a equipe implementou mais funcionalidades, mas chegou no final do dia com alguns testes quebrados e o cliente acabou achando um bug no sistema :-P. Apesar disso, entregamos o sistema funcionando e o nosso cliente (Muhamed Willi) terminou bastante satisfeito.

A retrospectiva levantou um monte de coisas legais e aprendizados que tenho certeza que o pessoal levou pra casa com muito orgulho! No final, estouramos um pouco nosso timeBox, e acabamos a retrospectiva da release e do curso já eram mais de 19:00 da noite… E num sabado! O mais legal é ver o espírito de equipe e a motivação que se cria com o desafio.

Mais uma vez, só temos a agradecer a todos e mantemos nossa promessa de realizar mais turmas até que a demanda se esgote. Basta um pouquinho de paciência para que consigamos organizar as coisas… Fiquem ligados!