Câmara Municipal nos Trilhos

Preview:

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

Câmara Municipal de Porto Alegrenos Trilhos

Marcia Almeida e Henrique G. Testa

Sunday, August 30, 2009

Quem somos?

Marcia AlmeidaCoordenadora do Setor de TI da CMPA

Henrique G. TestaConsultor e Colaborador da CMPA

Sunday, August 30, 2009

Conhecendo a Câmara

Sunday, August 30, 2009

36 vereadores

830 funcionários

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

Sunday, August 30, 2009

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

Número de Computadores

Sunday, August 30, 2009

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

Sistemas desenvolvidos por ano

Sunday, August 30, 2009

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

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

sistemas dos 20 anos anteriores?

Sunday, August 30, 2009

1985 1993 2001 2002 2004 2006 2008 2009

... ...

Sunday, August 30, 2009

1985 1993 2001 2002

Mumps

2004 2006 2008 2009

... ...

Sunday, August 30, 2009

1985 1993 2001 2002

Mumps

2004 2006 2008

Fox

2009

... ...

Sunday, August 30, 2009

1985 1993 2001 2002

Mumps PHP

2004 2006 2008

Fox

2009

... ...

Sunday, August 30, 2009

1985 1993 2001 2002

Mumps PHP

2004 2006 2008

Fox

2009

Delphi

... ...

Sunday, August 30, 2009

1985 1993 2001 2002

Mumps Ruby on RailsPHP

2004 2006 2008

Fox

2009

Delphi

... ...

Sunday, August 30, 2009

Mumps Fox PHP Delphi Rails

Sunday, August 30, 2009

0

4

8

12

198519871989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009

Mumps Fox PHP Delphi Rails

Sunday, August 30, 2009

Sistemas em Ruby on Rails

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

Mas quantas pessoas integram a equipe de desenvolvimento?

Sunday, August 30, 2009

Equipe de Desenvolvimento

• 1 + ½ + ½ Funcionários

• 3 Estagiários

Sunday, August 30, 2009

Nosso Projeto Atual

Sunday, August 30, 2009

Sunday, August 30, 2009

Novo Site da Câmara

Sunday, August 30, 2009

Novo Site da Câmara

?Sunday, August 30, 2009

Primeira Lei do Novo Site

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Segunda Lei do Novo Site

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

• Google

• CouchDB

Sunday, August 30, 2009

Terceira Lei do Novo Site

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Design e Usabilidade

Sunday, August 30, 2009

Design? Que Design?

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

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

Ambiente de Desenvolvimento

Sunday, August 30, 2009

Windows

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

Sunday, August 30, 2009

Nós já sabíamos ...

Sunday, August 30, 2009

Sunday, August 30, 2009

Windows

Dificuldades para Desenvolvimento

• Shell deficiente

• Lento

• Seguidamente ocorrem problemas com extensões nativas de gems

Sunday, August 30, 2009

e-texteditor

Sunday, August 30, 2009

• Lightweight [Textmate]

• Block Selection [Textmate]

• Bundles [Textmate]

• Personal Revision Control

• Selective Undo

e-texteditor

Sunday, August 30, 2009

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

Ruby on Rails

Sunday, August 30, 2009

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

Problema

Como reutilizar classes comuns entre diversos sistemas diferentes?

Sunday, August 30, 2009

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

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

Outro Problema

Como compartilhar acessos?

Sunday, August 30, 2009

Compartilhamento de sessão

• Mesmo session id

• Mesmo secret

• Mesmo domínio

Sunday, August 30, 2009

Plugins

• Delocalize & Formatted Date

• JQuery

• Will Paginate

• Paperclip

• Searchlogic

• Haml

Sunday, August 30, 2009

Sunday, August 30, 2009

# do que não abrimos mão

Sunday, August 30, 2009

Sunday, August 30, 2009

Refactoring

Sunday, August 30, 2009

Sunday, August 30, 2009

Controle de Versões

Sunday, August 30, 2009

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

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

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

Deployment

Sunday, August 30, 2009

Banco de Dados

SQL Server

• Parte Boa

• Ferramentas

• Parte Ruim

• ~$~

• Pouca documentação

• Problemas com datas

• Problemas com adapter

Sunday, August 30, 2009

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

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

Windows Linux

Desempenho - Request / Second

Sunday, August 30, 2009

0

15.00

30.00

45.00

60.00

7.50

60.00Windows Linux

Desempenho - Request / Second

Sunday, August 30, 2009

Conclusão:

Sunday, August 30, 2009

Use Linux.

Sunday, August 30, 2009

Faça o que puder para usar Linux !

Sunday, August 30, 2009

Convença o Papa se for preciso !

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Luis Lavena pode te ajudar!

Luis Lavena

Sunday, August 30, 2009

rubyinstaller.org

Sunday, August 30, 2009

Referência Recomendada

Capítulo 8

Deploying on Windows

Sunday, August 30, 2009

Infraestrutura

Sunday, August 30, 2009

Sunday, August 30, 2009

Benefícios• Desempenho • Monitoramento• SSH

Windows Linux• mod_rails• PostgreSQL• Capistrano

Sunday, August 30, 2009

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

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

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

Sunday, August 30, 2009

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

Sunday, August 30, 2009

Sunday, August 30, 2009

Referências Recomendadas

• Advanced Rails Recipes

• The Rails Way

• Agile Web Development with Rails

• Railscasts

Sunday, August 30, 2009

Uma mensagem dos vereadores...

Sunday, August 30, 2009

Sunday, August 30, 2009

Ruby on Rails

Perguntas?

na Câmara Municipal de Porto Alegre

Sunday, August 30, 2009

Contato

Sunday, August 30, 2009

Contato

Henrique G. Testa

http://hiquepedia.comhgtesta@gmail.comtwitter.com/hiquepedia

Marcia Almeida

http://chuvi.orgchuvisco@camarapoa.rs.gov.brtwitter.com/chuvisco

Sunday, August 30, 2009

Recommended