104
Câmara Municipal de Porto Alegre nos Trilhos Marcia Almeida e Henrique G. Testa Sunday, August 30, 2009

Câmara Municipal nos Trilhos

Embed Size (px)

DESCRIPTION

Trajetória do desenvolvimento de software da área de TI da Câmara Municipal de Porto Alegre (CMPA) e sua busca por tecnologias e metodologias mais produtivas e adequadas para uma pequena equipe com recursos limitados. A CMPA conta com mais de duas dezenas de aplicações desenvolvidas in-house e recebe visitas de inúmeros legislativos brasileiros interessados em seus sistemas. por Marcia Almeida e Henrique Testa no 1° RS on Rails

Citation preview

Page 1: Câmara Municipal nos Trilhos

Câmara Municipal de Porto Alegrenos Trilhos

Marcia Almeida e Henrique G. Testa

Sunday, August 30, 2009

Page 2: Câmara Municipal nos Trilhos

Quem somos?

Marcia AlmeidaCoordenadora do Setor de TI da CMPA

Henrique G. TestaConsultor e Colaborador da CMPA

Sunday, August 30, 2009

Page 3: Câmara Municipal nos Trilhos

Conhecendo a Câmara

Sunday, August 30, 2009

Page 4: Câmara Municipal nos Trilhos

36 vereadores

830 funcionários

120 setores, entre gabinetes, bancadas, comissões e áreas administrativas

Sunday, August 30, 2009

Page 5: Câmara Municipal nos Trilhos

A área de TI - o Início

• Criada em 1985 com o objetivo de desenvolver sistema de Folha de Pagamento

Cobra C - 21064k RAMDisquete de 8” sem HD

Sunday, August 30, 2009

Page 6: Câmara Municipal nos Trilhos

Número de Computadores

Sunday, August 30, 2009

Page 7: Câmara Municipal nos Trilhos

0

100

200

300

400

500

198519871989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009

Número de Computadores

480

Sunday, August 30, 2009

Page 8: Câmara Municipal nos Trilhos

Sistemas desenvolvidos por ano

Sunday, August 30, 2009

Page 9: Câmara Municipal nos Trilhos

0

4

8

12

1 1 1 1 1 12

12 2

5

9

12

198519871989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009

Sistemas desenvolvidos por ano

Sunday, August 30, 2009

Page 10: Câmara Municipal nos Trilhos

Por que será que desenvolvemos nos últimos 3 anos o dobro de

sistemas dos 20 anos anteriores?

Sunday, August 30, 2009

Page 11: Câmara Municipal nos Trilhos

1985 1993 2001 2002 2004 2006 2008 2009

... ...

Sunday, August 30, 2009

Page 12: Câmara Municipal nos Trilhos

1985 1993 2001 2002

Mumps

2004 2006 2008 2009

... ...

Sunday, August 30, 2009

Page 13: Câmara Municipal nos Trilhos

1985 1993 2001 2002

Mumps

2004 2006 2008

Fox

2009

... ...

Sunday, August 30, 2009

Page 14: Câmara Municipal nos Trilhos

1985 1993 2001 2002

Mumps PHP

2004 2006 2008

Fox

2009

... ...

Sunday, August 30, 2009

Page 15: Câmara Municipal nos Trilhos

1985 1993 2001 2002

Mumps PHP

2004 2006 2008

Fox

2009

Delphi

... ...

Sunday, August 30, 2009

Page 16: Câmara Municipal nos Trilhos

1985 1993 2001 2002

Mumps Ruby on RailsPHP

2004 2006 2008

Fox

2009

Delphi

... ...

Sunday, August 30, 2009

Page 17: Câmara Municipal nos Trilhos

Mumps Fox PHP Delphi Rails

Sunday, August 30, 2009

Page 18: Câmara Municipal nos Trilhos

0

4

8

12

198519871989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009

Mumps Fox PHP Delphi Rails

Sunday, August 30, 2009

Page 19: Câmara Municipal nos Trilhos

Sistemas em Ruby on Rails

Sunday, August 30, 2009

Page 20: Câmara Municipal nos Trilhos

Sistemas em Ruby on Rails

• Sisprot Web

• Controle de Acessos

• PDF Converter

• Processo Eletrônico

• Controle de Visitantes

• Movimentação de Pessoal

• Portal Transparência

• Gerenciamento de Impressoras

• Central de Transportes

• Ouvidoria

• Normas

• Solicitações de Serviços

• Notícias

• Newsletter

• SMS

• Banco de Imagens

• RH

• Telefonia

• Efetividade

• Helpdesk

• Inscrições

• Pesquisas

• Agenda

• Legislativo

• Controle Patrimonial

• Gerenciamento de Setores

• Convênios e Estágios

Sunday, August 30, 2009

Page 21: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 22: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 23: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 24: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 25: Câmara Municipal nos Trilhos

Mas quantas pessoas integram a equipe de desenvolvimento?

Sunday, August 30, 2009

Page 26: Câmara Municipal nos Trilhos

Equipe de Desenvolvimento

• 1 + ½ + ½ Funcionários

• 3 Estagiários

Sunday, August 30, 2009

Page 27: Câmara Municipal nos Trilhos

Nosso Projeto Atual

Sunday, August 30, 2009

Page 28: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 29: Câmara Municipal nos Trilhos

Novo Site da Câmara

Sunday, August 30, 2009

Page 30: Câmara Municipal nos Trilhos

Novo Site da Câmara

?Sunday, August 30, 2009

Page 31: Câmara Municipal nos Trilhos

Primeira Lei do Novo Site

Sunday, August 30, 2009

Page 32: Câmara Municipal nos Trilhos

Ninguém deve se preocupar em atualizar o site.

Seu conteúdo deve ser reflexo das atividades desenvolvidas por cada setor da Casa.

Sunday, August 30, 2009

Page 33: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 34: Câmara Municipal nos Trilhos

Segunda Lei do Novo Site

Sunday, August 30, 2009

Page 35: Câmara Municipal nos Trilhos

Todo conteúdo deve ser facilmente encontrado no menor tempo possível.

Sunday, August 30, 2009

Page 36: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 37: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 38: Câmara Municipal nos Trilhos

• Google

• CouchDB

Sunday, August 30, 2009

Page 39: Câmara Municipal nos Trilhos

Terceira Lei do Novo Site

Sunday, August 30, 2009

Page 40: Câmara Municipal nos Trilhos

A navegação deve ser uma experiência prazerosa e confortável para os visitantes.

Sunday, August 30, 2009

Page 41: Câmara Municipal nos Trilhos

Design e Usabilidade

Sunday, August 30, 2009

Page 42: Câmara Municipal nos Trilhos

Design? Que Design?

Sunday, August 30, 2009

Page 43: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 44: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 45: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 46: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 47: Câmara Municipal nos Trilhos

Design - Problemas Recorrentes

• Design é subestimado

• Ausência de designer

• Ausência de especialista em usabilidade

• Inércia de outros sites de legislativos

• Falta de liberdade para inovar

Sunday, August 30, 2009

Page 48: Câmara Municipal nos Trilhos

Ambiente de Desenvolvimento

Sunday, August 30, 2009

Page 49: Câmara Municipal nos Trilhos

Windows

Ah, Windows... Botões e Janelas... tudo o que você quiser com o clicar de um botão

Sunday, August 30, 2009

Page 50: Câmara Municipal nos Trilhos

Nós já sabíamos ...

Sunday, August 30, 2009

Page 51: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 52: Câmara Municipal nos Trilhos

Windows

Dificuldades para Desenvolvimento

• Shell deficiente

• Lento

• Seguidamente ocorrem problemas com extensões nativas de gems

Sunday, August 30, 2009

Page 53: Câmara Municipal nos Trilhos

e-texteditor

Sunday, August 30, 2009

Page 54: Câmara Municipal nos Trilhos

• Lightweight [Textmate]

• Block Selection [Textmate]

• Bundles [Textmate]

• Personal Revision Control

• Selective Undo

e-texteditor

Sunday, August 30, 2009

Page 55: Câmara Municipal nos Trilhos

Git

• Menos intuitivo do que Subversion

• Curva de aprendizado mais acentuada

• Mais rápido

• Mais seguro

• Grande adoção na comunidade Rails

Sunday, August 30, 2009

Page 56: Câmara Municipal nos Trilhos

Ruby on Rails

Sunday, August 30, 2009

Page 57: Câmara Municipal nos Trilhos

Arquitetura Antiga

Portal Intranet

Pessoa

Setor

Processo

Lotacao

Classes Comuns Controllers

Normas::Pessoa

Normas::Setor

Acessos::Pessoa

Acessos::Setor

Acessos::Lotacao

Helpdesk::Pessoa

Helpdesk::Setor

Helpdesk::Chamado

Banco de Dados Único

Sunday, August 30, 2009

Page 58: Câmara Municipal nos Trilhos

Problema

Como reutilizar classes comuns entre diversos sistemas diferentes?

Sunday, August 30, 2009

Page 59: Câmara Municipal nos Trilhos

Arquitetura Nova

Banco de Dados Único

Normas

Helpdesk

Portal IntranetPessoa

Engine Acesso

Engine Acesso

Pessoa Setor

Engine Acesso

Pessoa Setor Chamado

Sunday, August 30, 2009

Page 60: Câmara Municipal nos Trilhos

Engines

• São plugins que contêm uma aplicação Rails

• Arquivos nas pastas models, controllers, views são tratadas como uma aplicação Rails normal

Sunday, August 30, 2009

Page 61: Câmara Municipal nos Trilhos

Outro Problema

Como compartilhar acessos?

Sunday, August 30, 2009

Page 62: Câmara Municipal nos Trilhos

Compartilhamento de sessão

• Mesmo session id

• Mesmo secret

• Mesmo domínio

Sunday, August 30, 2009

Page 63: Câmara Municipal nos Trilhos

Plugins

• Delocalize & Formatted Date

• JQuery

• Will Paginate

• Paperclip

• Searchlogic

• Haml

Sunday, August 30, 2009

Page 64: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 65: Câmara Municipal nos Trilhos

# do que não abrimos mão

Sunday, August 30, 2009

Page 66: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 67: Câmara Municipal nos Trilhos

Refactoring

Sunday, August 30, 2009

Page 68: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 69: Câmara Municipal nos Trilhos

Controle de Versões

Sunday, August 30, 2009

Page 70: Câmara Municipal nos Trilhos

class NoticiasController < ApplicationController

def index...

def show...

def new...

def edit...

def create...

def destroy...

def associate...

def disassociate...

def publish...

Sunday, August 30, 2009

Page 71: Câmara Municipal nos Trilhos

class NoticiasController < ApplicationController

def index...

def show...

def new...

def edit...

def create...

def destroy...

def associate...

def disassociate...

def publish...

Code Smell

Sunday, August 30, 2009

Page 72: Câmara Municipal nos Trilhos

class NoticiasController < ApplicationController

def index...

def show...

def new...

def edit...

def create...

def destroy...

def associate...

def disassociate...

def publish...

Code Smell

RESTNEEDED

Sunday, August 30, 2009

Page 73: Câmara Municipal nos Trilhos

Deployment

Sunday, August 30, 2009

Page 74: Câmara Municipal nos Trilhos

Banco de Dados

SQL Server

• Parte Boa

• Ferramentas

• Parte Ruim

• ~$~

• Pouca documentação

• Problemas com datas

• Problemas com adapter

Sunday, August 30, 2009

Page 75: Câmara Municipal nos Trilhos

Windows

Dificuldades no Servidor

• Sem mod_rails (Passenger)(solução: utilizar Mongrel Services)

• Gerenciamento remoto via SSH deficiente

• Pouca documentação (erros, gems, bds...)

• Sem Capistrano, God, Monit, etc.

Sunday, August 30, 2009

Page 76: Câmara Municipal nos Trilhos

Mongrel Windows Service

• Necessita configuração de novo serviço para cada aplicação

• Lento

• Pouca Documentação

• Não há o mongrel_cluster

Sunday, August 30, 2009

Page 77: Câmara Municipal nos Trilhos

Windows Linux

Desempenho - Request / Second

Sunday, August 30, 2009

Page 78: Câmara Municipal nos Trilhos

0

15.00

30.00

45.00

60.00

7.50

60.00Windows Linux

Desempenho - Request / Second

Sunday, August 30, 2009

Page 79: Câmara Municipal nos Trilhos

Conclusão:

Sunday, August 30, 2009

Page 80: Câmara Municipal nos Trilhos

Use Linux.

Sunday, August 30, 2009

Page 81: Câmara Municipal nos Trilhos

Faça o que puder para usar Linux !

Sunday, August 30, 2009

Page 82: Câmara Municipal nos Trilhos

Convença o Papa se for preciso !

Sunday, August 30, 2009

Page 83: Câmara Municipal nos Trilhos

Mas se não for possível...

Sunday, August 30, 2009

Page 84: Câmara Municipal nos Trilhos

Luis Lavena pode te ajudar!

Luis Lavena

Sunday, August 30, 2009

Page 85: Câmara Municipal nos Trilhos

rubyinstaller.org

Sunday, August 30, 2009

Page 86: Câmara Municipal nos Trilhos

Referência Recomendada

Capítulo 8

Deploying on Windows

Sunday, August 30, 2009

Page 87: Câmara Municipal nos Trilhos

Infraestrutura

Sunday, August 30, 2009

Page 88: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 89: Câmara Municipal nos Trilhos

Benefícios• Desempenho • Monitoramento• SSH

Windows Linux• mod_rails• PostgreSQL• Capistrano

Sunday, August 30, 2009

Page 90: Câmara Municipal nos Trilhos

Consequências da adoção do Rails

• Usuários satisfeitos & exigentes

• Área de TI como setor chave da instituição

• Reconhecimento por outros órgãos públicos

• Seminário de Inovação

• Visitas e convites de órgãos diversos

• Solicitações de abertura de código

Sunday, August 30, 2009

Page 91: Câmara Municipal nos Trilhos

Consequências da adoção do Rails

• Usuários satisfeitos & exigentes

• Área de TI como setor chave da instituição

• Reconhecimento por outros órgãos públicos

• Seminário de Inovação

• Visitas e convites de órgãos diversos

• Solicitações de abertura de código

• Felicidade :)

Sunday, August 30, 2009

Page 92: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 93: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 94: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 95: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 96: Câmara Municipal nos Trilhos

Conselhos

• Não se atenha a tecnologias e linguagens, mas sim a princípios

• Ouça conselhos de pessoas de confiança, com as quais você se identifique

• Dê preferência a plugins ou extensões que possuam uma boa adoção

Sunday, August 30, 2009

Page 97: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 98: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 99: Câmara Municipal nos Trilhos

Referências Recomendadas

• Advanced Rails Recipes

• The Rails Way

• Agile Web Development with Rails

• Railscasts

Sunday, August 30, 2009

Page 100: Câmara Municipal nos Trilhos

Uma mensagem dos vereadores...

Sunday, August 30, 2009

Page 101: Câmara Municipal nos Trilhos

Sunday, August 30, 2009

Page 102: Câmara Municipal nos Trilhos

Ruby on Rails

Perguntas?

na Câmara Municipal de Porto Alegre

Sunday, August 30, 2009

Page 103: Câmara Municipal nos Trilhos

Contato

Sunday, August 30, 2009

Page 104: Câmara Municipal nos Trilhos

Contato

Henrique G. Testa

http://[email protected]/hiquepedia

Marcia Almeida

http://[email protected]/chuvisco

Sunday, August 30, 2009