Arquivo de dezembro 2006

Bom… no último dia do ano eu gostaria de deixar registrado aqui algo muito importante para mim. Ao invés de falar da minha vida pessoal e fazer um balanço e blá, blá, blá… gostaria de fazer uma homenagem a alguns dos blogs que eu li neste ano e fizeram a diferença para mim.

Existe muita gente boa que escreve bons artigos sobre software livre, mas existem alguns que são realmente dignos de destaque pela contribuição que trazem para nós.

  • andrelop’s blog
    Certamente não é um dos blogs mais populares da blogosfera brasileira, mas a qualidade dele é inegável. Quer você concorde ou não com as suas opiniões, você é obrigado a reconhecer o excelente trabalho do André Lopes. Ele não se considera um educador, é tímido ao falar em público, mas quando escreve… o faz com muito talento. Paixão, moderação e profundidade são qualidades que fazem deste blog possívelmente um dos mais influentes do Brasil, ao tratar de Software Livre.
  • Aurélio (verde)
    O Aurélio mantém muito mais do que um blog, sozinho ele criou um portal que é parada obrigatória para todos aqueles que amam o shell. Contém textos e referências preciosas sobre shell script, vi, sed, regex e muito mais. Como se não bastasse, o Aurélio ainda escreve sempre coisas interessantes e tem um bom humor capaz de salvar seu dia.
  • Maçan
    O Maçan deixou de participar dos eventos de software livre há algum tempo, mas isto não significa que uma vez ou outra não dê alguns pitacos por aí. Além disso o espírito crítico e criativo de suas postagens garantem uma posição de destaque para seu blog que vem sempre agregando valor aos seus leitores. Acho que o Maçan tem o melhor blog sobre software livre sem falar muito diretamente sobre software livre que eu conheço.
  • Christiano Anderson
    O blog do Christiano é um blog bem temperado. Traz sempre alguma novidade tecnológica, um pouco das suas incursões valorosas no mundo do software livre e de quebra algumas criticas bem interessantes. Vale a pena acompanhar.
  • VarDump
    O Walter Cruz mantém um blog com o melhor do que se possa esperar da expressão “show me de code” num blog. Muitas dicas de programação e muito código! O interessante é que ele não se limita a uma ou duas linguagens, vai de SQL, PHP, Python, Java até Lua.
  • SemJanelas.net
    O Mauricio Maia é um dos muitos blogs criados por desenvolvedores Web que pipocam por aí. Gosto particularmente do que ele escreve e acredito que ele é uma pessoa muito bem antenada com as novidades da web. Traz contribuições valiosas que o tornam um blog imperdível.
  • Tableless
    O trabalho do Diego Elis em divulgar a técnica do tableless no Brasil trouxe uma grande contribuição para os desenvolvedores web, além disso ele possui uma seção de tutoriais muito interessante que merece destaque. Todo bom webdesigner deve conhecer seu trabalho. O detalhe é que ele também divulga muitos trabalhos interessantes, por aí.
  • CODARE
    O CODARE é uma iniciativa nova e fantástica. Acredito que deva se tornar uma referência nacional em breve. Só o time de pessoas envolvidas já assusta! Se você está procurando dicas de programação em diversas linguagens, o CODARE foi feito para você.
  • Memnemonics fike’s e O insano mundo de Jack
    Dois blogs de dois grandes amigos de código e cerveja. O Fike já tem o blog há mais tempo que eu e me influenciou a criar o meu. Ambos compartilham de um humor ácido e trazem experiências e novidades interessantes. São dois blogs que eu acompanhei a partir do nascimento e continuo acompanhando com prazer.

Bem, esta seleção pode não trazer os blogs mais famosos do Brasil, mas são alguns daqueles que realmente fazem a diferença. Peço desculpa se esqueci algum blog importante, mas deixo-os a vontade para sugerirem novos links para que eu continue aprendendo coisas novas em 2007.

Tags: ,

Comments 2 comentários »

Que tal aproveitar as férias para aprender um pouco mais sobre PostgreSQL?

A Livraria Tempo Real está com um evento imperdível chamado “PostgreSQL - Mão na Massa” com o Ivo Nascimento. Evento muito indicado para quem quer começar a mexer com um bom SGDB e aprender boas técnicas para lidar com o PostgreSQL!

Taí uma boa dica para quem quer começar 2007 com a bola toda!

Tags:

Comments Nenhum comentário »

Conclusão

Parte 1 - Comprar pronto, desenvolver internamente ou desenvolver externamente?
Parte 2 - Metodologia para compra de software
Parte 3 - Requisitos para compra de software

Para quem achava que comprar um software pronto é uma opção bem mais simples do que desenvolver a partir do zero, este processo demonstra que isto pode ser verdadeiro, mas não significa que a compra do software não seja um processo complexo e trabalhoso. Algumas vezes é possível que ao final do processo se chegue a conclusão de que não existem soluções tecnicamente viáveis para as suas demandas e decidir por se lançar a desenvolver um novo software.

Ignorar completamente o processo - aqui descrito de forma simplificada - implica numa aposta de alto risco, com consequências possivelmente desastrosas. Os fornecedores possuem uma equipe de vendedores treinada para lhes dar respostas fáceis e lhe convencer de que o processo pode ser realmente simples.

É por isso que eu gostaria aqui de ressaltar a importância de serem considerados os requisitos técnicos na escolha de uma solução de software. As fábricas de software se esforçam muito em oferecer software com uma aparência agradável, repletos de funcionalidades interessantes que nem sempre são úteis na prática. No entanto, alguns gestores tendem a acreditar que isto é suficiente para definir um software que atenda às suas necessidades. Este documento tem por fim, demonstrar de maneira rápida, como avaliar os riscos do fornecedor não cumprir as suas promessas, demorando mais tempo que o previsto para implantar a solução e corrigir problemas, colocar em funcionamento as funcionalidades prometidas e cumprir prazos estabelecidos.

De acordo com a importância e complexidade do software a ser adquirido, pode-se levar em conta um grande número de requisitos para filtrar soluções inadequadas e classifica-las de forma objetiva. Foram listados aqui cerca de 100 possíveis requisitos técnicos de software que podem ser utilizados. É claro que alguns itens podem ser considerados supérfluos e podem-se notar itens importantes que não constam nesta lista. A categorização dos itens aqui proposta também foi realizada de forma a facilitar a escrita e a leitura deste longo documento. Você provavelmente irá querer rearranjar estas categorias em termos técnicos mais precisos.

Você poderá entender que alguns itens ou grupos de itens tem maior importância que outros e atribuir pesos diferentes para eles. Os requisitos técnicos aqui descritos representam apenas uma fração da nota final que deve incorporar também os requisitos funcionais e o preço da solução para compor uma nota final.

Agradecimentos

Gostaria aqui de agradecer alguns colegas cuja valorosa contribuição tornou a criação deste texto possível:

  • Carla Nogueira
  • Franklin Benini
  • Gilberto de Oliveira
  • Jadelson Silva
  • Kazuaki Hirota
  • Marcos Oliveira
  • Maiara Lessa
  • Sheila Pontes
  • Vanessa Paiva
Tags: ,

Comments Nenhum comentário »

Requisitos para compra de software

Muito bem, chegou a hora da equipe de TI assumir o seu papel e definir quais são os requisitos técnicos que serão avaliados no processo de escolha do software. Esta é uma tarefa bastante espinhosa pois são muitas variáveis a serem consideradas. O serviço público tem novamente uma dificuldade extra, uma vez que se levantar exigências obrigatórias muito altas, corre o risco de não encontrar nenhuma empresa que atenda às suas expectativas e então toda a licitação é cancelada. Por outro lado, se pontuar poucas coisas, as empresas com sistemas de baixa qualidade ganharão a licitação por apresentarem o menor preço.

Para facilitar este trabalho, você pode fazer primeiro um brain storm e colocar no papel todos os ítens técnicos que você gostaria de encontrar no software. Depois você deve filtrar aqueles que são pouco relevantes e verificar se existem soluções que atendam aos seus critérios. Por fim você deve definir em que posição cada critério deve estar:

  • O - Requisito obrigatório: é aquele que quando não estiver presente desclassifica completamente uma proposta. Deve-se tomar um especial cuidado para não excluir de cara soluções que possam não atender um requisito específico e ainda sim ser uma opção viável.
  • Requisito desejável: é aquele que não desclassfica uma proposta mas servirá para compor uma nota técnica final. Você pode atribuir pesos diferentes para cada ítem como:
    • MD - Muito desejável (5 pontos),
    • D - Desjável (3 pontos),
    • PD - Pouco desejável (1 ponto).
  • C - Requisito contratual: é aquele que compõe uma exigência contratual obrigatória que influenciará no custo global de implantação e manutenção. Os ítens se referem em geral a forma como os serviços da empresa contratada deverão ser realizados.

Vejamos aqui alguns requisitos que você poderá querer utilizar como ponto de partida para a sua pontuação. Longe de querer apontar uma forma acabada, a intenção aqui é demonstrar um exemplo de como comparar soluções de software, sobre o ponto de vista de TI. A classificação e escolhas dos ítens variam muito em cada caso. Dependem da maturidade do mercado de software para a solução que você deseja adquirir. Os pesos atribuídos para cada ítem são mais para efeito de ilustração e devem variar com a cultura de TI existente.

Documentação Fornecida

Aqui está em jogo a capacidade do software em fornecer informação em diversos níveis em com diferentes qualidades. A qualidade da documentação está diretamente relacionada com a capacidade de manutenção do software comprado. Quanto melhor a documentação, menor o custo de manutenção e menor o tempo necessário para correções de erro e implantação de novas funcionalidades.

Ítem C O MD D PD
Dicionário de Dados contendo descrição de tabelas, chaves estrangeiras, índices, visões, sequências, gatilhos, funções, procedimentos e roles X
Diagrama Entidade Relacionamento X
Diagramas de caso de uso (UML 1.1 ou superior) X
Diagramas com regras de negócio em outro formato X
Diagramas de classes (UML 1.1 ou superior) X
Outros diagramas UML 1.1 ou superiores X
Manual do usuário impresso X
Ajuda on-line para o usuário com opção de busca X
Ajuda on-line sensível ao contexto X
Controle de versão de toda a documentação X
Atualização de toda a documentação a cada nova versão do software X

Vale aqui verificar qual é o formato em que as documentações técnicas estão disponíveis. É sempre interessante receber a documentação em formato impresso (alguns diagramas podem necessitar de papel de tamanho especial como A2 ou A1) e formato eletrônico. O formato eletrônico é mais adequado para receber quando houverem apenas pequenas alterações do software. No entanto, muitas empresas utilizam formatos que só abrem em programas específicos, dificultando a sua manipulação.

Tecnologia

Aqui a maioria das pessoas deve procurar se afastar dos modismos e procurar tecnologias já consagradas no mercado. Ferramentas proprietárias tem o azar de perderem o suporte depois de algum tempo, o que pode causar transtorno a longo prazo. Deve-se evitar ferramentas pouco robustas como geradores de código e RAD.

Um cuidado especial deve ser tomado com custos relacionados a tecnologias proprietárias. O custo das licenças deve ser contabilizado no custo total de implantação. O custo de manutenção destas ferramentas também deve ser contabilizado no custo total de manutenção. Particularmente, a maioria das linguagens de programação não exigem licenças de uso para executar a aplicação final, no entanto existem ferramentas que utilizam interpretadores que convertem o código da aplicação em código de máquina, necessitando de licenças por conexão ou por processador.

Ítem C O MD D PD
Uso de SGDB relacional multiplataforma compatível com a linguagem SQL X
Uso de protocolo de comunicação TCP/IP X
Uso de servidor de aplicação multiplataforma X
Interface com usuário multiplataforma X

Se possível dê preferência (colocando como ítem desejável) por tecnologias que sua equipe já tem experiência, principalmente se houver a intenção de adquirir o código fonte do software. Uma atenção especial neste sentido deve ser dada às tecnologias de comunicação e de banco de dados. Você pode ser obrigado a fazer investimentos significativos de precisar suportar tecnologias novas nesta área.

Arquitetura

A arquitetura do software é uma área importante no mundo corporativo. Softwares cliente-servidor estão sendo aposentados por apresentarem difícil manutenção e baixa escalabilidade.

Ítem C O MD D PD
Uso de 3 camadas X
Uso de MVC X
Uso de framework de software
X

Desenvolvimento WEB

Este ítem está destacado aqui por apresentar uma série de especificidades que merecem atenção especial. As aplicações web tem inúmeras vantagens que fogem do escopo deste texto, no entanto, uma boa aplicação deve atender a alguns critérios mínimos que se esquecidos podem trazer surpresas desagradáveis para os usuários. As interfaces WEB tem se tornado muito populares, mas não são adequadas ainda quando você precisa de entrada de grande volume de dados ou quando precisa de ferramentas gráficas de edição avançadas. Se você não pretende utilizar aplicações WEB, você pode pular esta parte.

Ítem C O MD D PD
Homologação nos navegadores IE 6.0, Firefox 1.0 e Safari 1.0 e todas versões superiores X
Possuir CSS 1.0 válido X
Possuir HTML ou XHTML válido X
Utiliza servidor web multiplataforma X
É plenamente funcional sem Java instalado no cliente X
É plenamente funcional sem JavaScript habilitado X
Possui suporte a https X

A parte mais importante aqui é garantir que a aplicação WEB seja escrita utilizando os padrões da W3C, garantindo que a aplicação funcione em diferentes situações.

Metodologia de desenvolvimento

A metodologia de desenvolvimento adotado está diretamente relacionada com o risco da empresa possuir métricas capazes de cumprir prazos e orçamentos. Uma metodologia formal bem documentada e aplicada deve trazer segurança o processo de desenvolvimento. Na área corporativa, a certificação CMM e CMMI são sinônimos de qualidade nesta área. No entanto, nem sempre se encontra fornecedores com este tipo de certificação para o tipo de software que se deseja adquirir. O processo de certificação CMMI custa atualmente cerca de U$ 400 mil, sendo assim, a SOFTEX criou uma iniciativa de certificação nacional chamada MPS.BR baseado no CMMI que está permitindo fábricas de software de menor porte alcançar uma certificação. O MPS.BR é ainda muito novo, mas estima-se que um número cada vez maior de pequenas e médias empresas adotem esta certificação no Brasil.

Deve-se ter em mente que quanto mais crítico e complexo for o software, mais importante será a contratação de uma empresa com certificação.

Ítem C O MD D PD
Certificação CMM ou CMMI nível 3 ou superior X
Certificação CMM ou CMMI nível 2 X
Certificação ISO 15504 nível 3 ou superior X
Certificação ISO 15504 nível 2 X
Certificação ISO 12207 X
Certificação MPS.BR níveis F e G X
Certificação MPS.BR níveis E ou superior X

Caso você não encontre empresas certificadas que forneçam o software desejado, você terá que pensar na seguinte tarefa: como verificar se um fornecedor possui um modelo de desenvolvimento confiável onde seja visível as etapas clássicas do desenvolvimento de software (análise, especificação, projeto, implementação, teste, documentação, treinamento, implementação e manutenção). Segue alguns indicadores que podem ser utilizados.

Ítem C O MD D PD
Organograma detalhado da equipe de desenvolvimento X
Descrição detalhada das funções da equipe de desenvolvimento X
Modelo de Processo de Desenvolvimento de Software formalizado X
Utiliza RUP X
Utiliza controle de versão do código fonte X
Possui equipes distintas para

  • Análise e projeto
  • Desenvolvimento
  • Testes
X
Possui equipe distinta para gerência de projetos X
Realiza testes do tipo Caixa Branca X
Realiza testes do tipo Caixa Preta X
Realiza testes do tipo Caixa Cinza X
Realiza testes de unidade, integração e sistema X

Usabilidade

A usabilidade diz respeito a facilidade com que o usuário lida com a aplicação. Em geral, uma boa usabilidade garante maior produtividade e satisfação e menor ocorrencia de erros por parte do operador do software.

Ítem C O MD D PD
Interface e menssagens traduzidas para o Português do Brazil. X
Validação dos tipos dados inseridos X
Exibe falhas de validação após a digitação de cada campo X
Exibe apenas as funções ativas na tela X
Solicita confirmação do usuário para ações destrutivas ou não reversíveis X
Realiza paginação de listas X
Possibilita a inserção de texto com letras maiúsculas X
Possibilita plena navegação na aplicação sem uso do mouse X
Tabulação dos campos segue a órdem em que aparece na tela X
Possui busca fonética no Português do Brasil em campos de texto X
Exporta relatórios no formato CSV X
Exporta relatórios no formato PDF X
Exporta relatórios no formato MS Word 2000 ou superior X
Exporta relatórios no formato MS Excel 2000 ou superior X
Exporta relatórios no formato ODF X
Permite que o operador selecione um tema em alto contraste X
Permite que o operador aumente o tamanho da fonte padrão do texto X
Possui teclas de atalho para as principais funções e menus X
Sinalização gráfica informando o status de operações longas ou em várias etapas. X
Botões exibem dicas quando o ponteiro do mouse para sobre eles X

Interoperabilidade

Esta categoria diz respeito a capacidade do sistema de se integrar com os seus demais sitemas legados ou que possam vir a ser adquiridos futuramente. Suportar protocolos e padrões abertos são requisitos obrigatórios. A questão de interoperabilidade é tão importante que o Governo Federal criou o e-PING que é um documento trata com detalhes o assunto. A versão 1.0 do e-PING foi publicada em 2005 e continua sendo atualizada constantemente, se tornando uma referência obrigatória nesta área.

Segurança e Auditabilidade

Esta categoria de requisitos visa garantir a segurança e integridade das informações contidas no sistema bem como rastrear possíveis problemas ocorridos durante a operação do software.

Ítem C O MD D PD
Utiliza integridade referencial no banco de dados X
Utiliza controle de transações para operações concorrentes X
Não registra usuários da aplicação como usuários do banco de dados X
Armazena senhas de usuários em formato criptografado X
Registra histórico de operações realizadas pelos usuários X
Registra erros de importação de dados externos
Registra erros da aplicação dentro do servidor X
Possui busca nos registros históricos por nome de usuário, data e tipo de operação X
Proteção contra injeção de SQL X
Criação de perfis de usuários X
Atribuição de usuários ou perfis de usuários a um perfil de usuário.
Atribuição de permissões para cada funcionalidade por usuário X
Atribuição de permissões para cada funcionalidade por perfil de usuário X
Atribuição de permissão para cada usuário a uma faixa de valores em funcionalidades específicas X
Possibilidade de inativar usuários por período determinado X
Possibilidade de inativar usuários por período indeterminado X
Possibilidade de inativar grupos de usuários por período determinado X
Possibilidade de inativar usuário em data prédeterminada X
Expira seção do usuário após determinado de inatividade X

Implantação e Manutenção

Este ítem descreve como deve ser o processo de implantação e manutenção. Os prazos aqui definidos tem impacto direto nos custos de implantação e manutenção do Software.

Ítem C O MD D PD
Importação, checagem de consistência e remodelagem de dados já existentes para o novo software X
Análise de requisitos, adequação do software e testes X
Implantação de funcionalidades principais em até 6 meses após início da vigência do contrato X
Implantação de funcionalidades secundárias em até 12 meses após início de operação das funcionalidades principais X
Treinamento dos usuários do software antes da implantação do Software X
Treinamento da equipe de TI demonstrando o modelo de dados do Software X
Treinamento ou reciclagem de usuários anualmente após implantação do Software X
Criação de interfaces com outros softwares já existentes ou que venham a ser implantados em até 20 dias úteis X
Implantação ou alteração de funcionalidades por força de alteração na legislação federal, estadual ou municipal X
Correção de erros críticos em até 4 horas X
Correção de erros graves em até 24 horas X
Correção de demais erros em até 5 dias úteis X

Aqui, é possível que alguns fornecedores lhe digam que não tem condições de cumprir alguns prazos exigidos. Não deve-se descartar imediatamente estas empresas. Se o fornecedor adquiriu uma boa avaliação nos requisitos de metodologia de desenvolvimento, e possui uma equipe de desenvolvimento com um porte mediano em comparação aos demais fornecedores, é possível que seus prazos sejam realmente impraticáveis. É recomendável discutir esta questão com outros fornecedores e avaliar se os prazos são viáveis e se for o caso altera-los.

Equipe de desenvolvimento

Este grupo de requisitos visam medir a qualidade da equipe de desenvolvimento, bem como o porte da mesma. Uma grande equipe garante que a simples saída de um funcionário do fornecedor não vá comprometer o projeto como um todo além de permitir a alocação de mais recursos em épocas de grandes demandas.

Ítem C O MD D PD
50 ou mais pessoas da equipe de desenvolvemento com jornada acima de 30 horas semanais em regime CLT X
10 ou mais membros da equipe de desenvolvimento com mestrado ou experiência comprovadas na área de desenvolvimento superior a 10 anos X
25 ou mais membros da equipe de desenvolvimento com nível superior ou experiência comprovadas na área de desenvolvimento superior a 5 anos X
5 ou mais membros da equipe de desenvolvimento com certificação PMP ou experiência comprovada na área de desenvolvimento superior a 5 anos X
5 ou mais membros da equipe de desenvolvimento com experiência comprovada como DBA superior a 5 anos X
5 ou mais membros da equipe de desenvolvimento com experiência comprovada em teste de software superior a 5 anos X
Tags: , , , , ,

Comments 3 comentários »

Metodologia para compra de software

Parte 1 - Comprar pronto, desenvolver internamente ou desenvolver externamente?
Parte 3 - Requisitos para compra de software
Parte 4 - Conclusão

Bem, você optou por comprar um software pronto. Então chegou a hora de escolher a solução que melhor atende às suas necessidades e que se encaixe no seu orçamento. É claro que você já sabe exatamente como deve ser o software que você necessita… não é?

É claro que não! Um software corporativo é muito grande e complexo. É muito difícil alguém conhecer exatamente todas as regras de negócio envolvidas, todos os processos que vão envolver o software e ainda conhecer a melhor tecnologia a ser utilizada. Você deverá reunir uma equipe, talvez com o apoio de uma consultoria externa para ajudar a definir quais são as suas demandas reais. Aqui, já partimos do principio que toda a implantação de software tem como impacto uma reengenharia de processos e ao mesmo tempo a necessidade de se manter o foco nas demandas centrais para não buscar uma aplicação com um custo impraticável.

Aqui, existe uma boa bibliografia que indica alguns caminhos a seguir. Em geral o processo conta com um levantamento de requisitos técnicos e funcionais entre os potenciais usuários, gestores e equipe de TI. Deve-se levantar também quais requisitos são essenciais e quais são desejáveis. Quais precisam ser implantados primeiro e quais podem ser implantados posteriormente.

Feito isto, deve se ir a campo e procurar empresas de software que forneçam soluções que aparentemente atendam às suas expectativas. Visitar a empresa na sua sede, assistir demonstrações e conhecer a sua fábrica de software são essenciais. Deve-se enviar um questionário para cada fornecedor com a sua lista de requisitos que você levantou, para que você possa comparar as soluções. Você também deve agregar as suas próprias observações de forma sistemática para cada visita realizada às empresas. É fundamental que a mesma equipe visite todos os fornecedores para que eles realizem a comparação de forma mais precisa.

Outro passo importante é visitar outras empresas onde o sistema já esteja implantado. Para isso solicite uma listagem de locais onde o sistema foi implantado e agende visitas nestes locais sem avisar o fornecedor. Não vá em locais indicados pelo fornecedor. Verifique se as funcionalidades destacadas pelo fornecedor conferem com as observadas em produção.

Feito isto, você deve planilhar todas estas informações e solicitar orçamentos dos fornecedores que atenderam as exigências mínimas requeridas. Você deve estabelecer uma métrica de pontuação para chegar a uma nota final de avaliação dos sistemas. Aqui, a questão mais difícil é ponderar qual é o peso de cada área. Você não deve jamais se deixar levar apenas pelo preço ou pelas funcionalidades apresentadas. É preciso balanciar vários fatores observados:

  • Reputação da empresa no mercado
  • Qualidade, tamanho e estabilidade da equipe envolvida no desenvolvimento e manutenção
  • Metodologia adotada no desenvolvimento e manutenção
  • Carteira de clientes e satisfação dos mesmos
  • Qualidade e veracidade das informações fornecidas
  • Funcionalidades presentes
  • Maturidade das regras de negócio
  • Técnologia adotada
  • Custo de manutenção
  • Custo de implantação

Existem conjuntos de indicadores e pesos bastante utilizados na aquisição de software. No entanto, estes pesos são apenas modelos que você deve adaptar a sua realidade e percepção de importância. Muitos destes itens são de avaliação subjetiva e tem que ser utilizados com cautela e bom senso. Na esfera pública, isto se torna bem mais complexo, uma vez que é preciso realizar uma licitação do tipo Técnica e Preço onde os critérios de avaliação da nota técnica tem de ser estritamente objetivos.

É impossível abordar aqui questões pertinentes às regras de negócio de devem compor a nota de um software, pois cada organização terá demandas específicas. No entanto, existem necessidades técnicas na área de informática que não são menos ou mais importantes que as regras de negócio em si. Ainda assim, os critérios técnicos são muitas vezes relevados para um segundo plano na escolha de um software. Estes critérios só mostram sua importância quando o sistema precisa ser adaptado ou depois que ele entra em produção. E neste momento costuma ser tarde demais para voltar atrás sem causar um grande estrago.

As funcionalidades de um sistema são fáceis de serem demonstrar e costumam satisfazer a maioria dos gestores, porém, a área de TI deve assegurar que o software seja robusto, flexível, confiável, rápido, etc. Estas questões são todas de responsabilidade da área de TI pontuar uma a uma e definir métricas para a sua avaliação.

Dependendo da situação, os pesos da aplicação podem variar bastante:

  • Sistemas utilizados por um grande volume de usuários tem grande vantagem se rodarem via WEB. No entanto inserção bruta de grande volume de dados ainda ocorrem de maneira mais eficientes em interfaces GUI ou mesmo em modo texto.
  • Sistemas que podem ser acessados por um público externo devem ter um cuidado especial com a usabilidade e acessibilidade.
  • Sistemas que devem se integrar com outros sistemas devem suportar padrões abertos de comunicação.
  • Sistemas que envolvam a manipulação de informações sensíveis devem ter um cuidado especial com a segurança e com a auditoria.
  • Sistemas que envolvem muitas transações concorrentes devem ter um cuidado especial em relação ao controle de transações e o uso de um bom SGDB.
  • Sistemas com regras de negócio complexas devem utilizar modelos com 3 ou mais camadas.
  • Sistemas de missão crítica que admitam um downtime muito pequeno devem ser desenvolvidos com ferramentas robustas e confiáveis.
  • Sistemas que devam entrar em operação por vários anos devem dar prioridade para tecnologias e padrões abertos.
  • Comprar o código fonte de um software sem uma excelente documentação é como comprar uma Ferrari sem freios.
  • Softwares que dependam de legislação local devem ter casos de implementação local e equipe de desenvolvimento local.
Tags: , ,

Comments 1 comentário »

Comprar pronto, desenvolver internamente ou desenvolver externamente?

Parte 2 - Metodologia para compra de software
Parte 3 - Requisitos para compra de software
Parte 4 - Conclusão

Comprar software é um grande tabu! Não estou falando obviamente de software de prateleira, estou falando em grandes aplicações para uso corporativo. Para quem pensa que basta dar um giro na Internet e dar meia dúzia de telefonemas, não se engane. A escolha da melhor opção pode demorar mais de um ano, envolver consultoria especializada e movimentar uma grande equipe interna.

Longe de ser um especialista nesta área, seja academicamente, ou profissionalmente, o fato é que acompanhei alguns processos de aquisição de softwares e procurei fazê-lo da melhor forma possível. Gostaria aqui de discutir algumas idéias que hoje me fazem sentido.

A primeira questão ao comprar um software é pensar se você quer realmente comprar algo “pronto”, contratar uma empresa que faça o desenvolvimento a partir do zero sob medida ou desenvolver o software você mesmo com uma equipe interna. E uma decisão deste tipo pode parecer óbvia, mas é muito delicada. Envolve o modelo de TI da empresa. Sempre que se deseja implantar ou substituir um grande sistema corporativo, este tipo de questionamento deve ser refeito e analisado com cuidado. Com o passar do tempo, as respostas dentro de uma mesma organização podem mudar significativamente.

A primeira coisa que eu quero dizer é que esta decisão envolve basicamente 5 aspectos:

  • Custo de implantação: Quanto custa em termos de horas-homem da sua equipe atual (não apenas de TI), e de contratação de consultoria, desenvolvimento, migração, integração e eventualmente de aquisição de licença de uso.
  • Custo de manutenção: Quanto custa gerenciar um contrato, diagnóstico de problemas, contratos de manutenção, prejuízos causados pelo atraso na correção de um erro ou na implementação de uma nova funcionalidade.
  • Tempo de implantação: Quanto tempo demora para colocar as principais funcionalidades no ar, adaptar o software para a realidade da empresa, implementar funcionalidades adicionais e integrar o sistemas com outros já existentes.
  • Risco de implantação: Qual é o risco de se investir numa aplicação que pode não ser entregue dentro do prazo ou mesmo não conseguir suportar o seu volume de negócios ou atender a sua complexidade?
  • Risco de manutenção: Qual é o risco de você ficar dependente de uma equipe ou empresa que detenha todo o conhecimento sobre o software. Qual o risco destes agentes decidirem por não mais prestarem serviços neste software ou oferecerem serviços aquém do esperado tempos depois da implantação?

Não existem respostas prontas. Cada opção traz respostas melhores ou piores em cada um dos itens que variam de intensidade conforme a configuração da sua empresa.

Antes de passar em vista como o tipo de abordagem escolhida (comprar um pacote, desenvolver fora ou desenvolver localmente) afeta estas 5 variáveis é preciso fazer um esforço de diagnosticar a sua situação atual:

  • Já existe uma equipe de desenvolvimento local com uma boa cultura de desenvolvimento? Existem bons profissionais com conhecimento em linguagem de programação, modelagem de dados, análise de regra de negócios e gestão de projetos? Estes profissionais estão satisfeitos, estão bem preparados? Existe uma metodologia de desenvolvimento interna? As pessoas estão acostumadas a documentar seus sistemas, projetar antes de codar, fazer controle de versão, bug tracking, etc? Existe um framework de desenvolvimento homologado internamente? As pessoas possuem conhecimentos sobre métricas de desenvolvimento como a quantificação de pontos de função?
  • As áreas envolvidas pelo novo sistema estão diretamente envolvidas no processo? Como é o relacionamento e confiança destas pessoas em relação a equipe de TI? Os responsáveis pelos setores estão acompanhando o processo de perto? Eles apoiam a nova implantação ou tem resistência?
  • Qual é o prazo para a implantação ocorrer? Existe urgência na implantação? Qual é o risco em se atrasar a implantação?
  • Qual é a importância do software na vida da instituição? É um sistema periférico ou faz parte de uma área secundária? Qual o downtime admissível para a aplicação? Se o sistema apresentar um problema crítico que o torne inviável existe um risco de paralisar todas as suas operações?

Bem, pensando nisto, vamos avaliar nossas opções:

Desenvolvendo software localmente

Esta opção só é mensurável para quem já tem uma equipe interna bem estruturada. Somente sistemas pequenos, simples e estritamente periféricos podem ser confiados a uma equipe imatura de desenvolvimento. Se você está pensando em criar uma equipe nova para uma aplicação que não tem pressa de ficar pronta e está disposta a arcar com os custos desta equipe a longo prazo, esta também pode ser uma opção a se pensar.

  • O custo de implantação irá variar com o grau de maturidade da sua equipe e o grau de especificidade das suas necessidades. Se você possui uma equipe de desenvolvimento capaz de desenvolver a sua aplicação, o custo pode ser inferior ao de uma equipe externa. Um fator importante neste caso é o conhecimento interno das regras de negócio da equipe. Normalmente equipes já bem consolidadas tendem a conhecer bem as necessidades da organização. Isto pode ser um diferencial considerável. Se você estiver pensando em refazer um software que foi desenvolvido localmente, isto pode ser um fator que diminuirá consideravelmente o custo. No entanto, se os gestores não tiverem a capacidade de manter o foco nas funcionalidades mais importantes o projeto pode se perder no caminho.
  • O custo de manutenção de sistemas desenvolvidos localmente costuma ser menor. Não é preciso também gerenciar um contrato externo.
  • O tempo de implantação pode ser bem menor numa equipe interna bem estruturada. Isto pode variar com as especificidades das suas regras de negócio e do tamanho e qualidade da sua equipe interna. Algumas vezes a adaptação de sistemas prontos pode demorar mais que o desenvolvimento de um sistema novo feito sob medida. Por outro lado, quando você não tem uma equipe com capacidade de se dedicar plenamente ao desenvolvimento, você corre um sério risco de demorar muito mais do que espera.
  • O risco de uma aplicação desenvolvida internamente não funcionar costuma ser pequeno se a equipe já tem uma experiência com projetos do mesmo porte. O maior risco está na escolha por tecnologias e metodologias inadequadas para o porte da aplicação. Se você tem uma equipe experiente, as chances de sucesso são boas. Outra questão importante é a confiança na equipe de TI. Implantação de novos sistemas devem vir acompanhados de reengenharia de processos. Aqui o prestígio do setor de TI entra em jogo e a confiança na equipe deve ser avaliada não apenas tecnicamente, mas culturalmente.
  • O risco da manutenção do software são realmente pequenas, se você tomar um cuidado importante: Cuidar de utilizar boas práticas de documentação e jamais confiar o desenvolvimento a uma única pessoa que detém todo o conhecimento naquela área. Mesmo que você tenha profissionais satisfeitos, você nunca sabe quando um funcionário pode decidir ir embora.

Quanto maior a confiança na sua equipe de TI, maior são as vantagens de você confiar o desenvolvimento a ela. É vantajoso ter uma boa equipe interna se você depende muito de bons sistemas para o sucesso das suas operações. Um banco dificilmente irá confiar em terceiros para desenvolver seus sistemas centrais. A idéia de desenvolver grandes sistemas internamente está associada a diminuição do risco e não do custo.

Outro fator que pode alavancar o desenvolvimento interno é fazer uma customização de um software livre já existente. Softwares como o ERP livre Compiere estão se tornando realidade no Brasil. Quanto mais genérica for a sua demanda, maior a chance de existir uma aplicação livre que possa ser adaptada para as suas necessidades. Vale a pena pesquisar as soluções livres existentes no mercado. Os custos costumam cair e você não fica dependente de uma empresa externa, diminuindo ainda mais os seus riscos.

Desenvolvendo software externamente

O desenvolvimento externo é o meio termo entre desenvolver algo internamente e comprar algo pronto. Assim suas vantagens e desvantagens costumam ficar num meio termo entre ambas as opções. Se você tem uma equipe de TI pequena para abraçar um grande projeto, mas com capacidade de especificar bem as suas necessidades, o desenvolvimento de uma aplicação sob medida pode ser a solução ideal.

  • Se você tiver uma equipe capaz de especificar métricas de desenvolvimento bem definidas e modelar as suas regras de negócio, o custo tende a cair, uma vez que você saberá dimensionar o custo real da aplicação. Caso contrário, você pode encontrar vários custos adicionais no meio do caminho.
  • O custo de manutenção varia conforme a sua capacidade de dar manutenção internamente. Se você tem uma equipe de TI interna capaz de dar manutenção no software você deve optar por ser o dono do código fonte do software e exigir uma boa documentação do mesmo. Neste caso os custos de manutenção tendem a ser tão baixos quanto um sistema desenvolvido internamente.
  • O tempo de desenvolvimento está associado ao volume de recurso que você pretende investir. Aqui você pode contratar uma grande fábrica de software que entregará o produto em um tempo curto e lhe apresentará um cronograma de implantação factível.
  • O risco da implantação ter sucesso depende das opções tomadas a respeito da tecnologia e metodologia exigida ao seu fornecedor. A escolha de um bom fornecedor deve lhe trazer a segurança que você precisa. Empresas com certificação CMMI costumam ser uma boa opção.
  • O risco de depois da implantação você ter problemas também será baixo se você optar por possuir o código fonte e boa documentação da aplicação. Neste caso, mesmo que você não dê manutenção no software, você pode romper o contrato com o seu fornecedor e utilizar outro.

A opção de desenvolver uma aplicação a partir do zero utilizando uma empresa externa pode ser uma opção muito segura se você souber fazer isto direito. Quando você tem necessidades muito específicas e uma equipe interna pequena, esta pode ser uma excelente opção. Você também pode contratar uma empresa para adaptar uma solução livre já existente para as suas necessidades, diminuindo ainda mais sua dependência do fornecedor e seus custos. Esta opção torna viável a implantação de grandes sistemas em empresas de menor porte com uma boa margem de segurança, em um prazo bastante curto.

Comprando um pacote de software pronto

Esta opção é a mais difícil de se adotar, pois você tem pouca ascensão sobre o produto que vai adotar. No entanto existe algumas situações em que ela é a única opção viável.

  • Os custos de implantação costumam variar de acordo com as especificidades das suas regras de negócio. Quanto mais genérica forem as suas demandas, menores os custos de implantação. Normalmente o custo de uma licença de uso de um software costuma ser menor que começar a desenvolver a aplicação do zero.
  • O custo de manutenção costuma ser alto. As empresas que vendem pacotes de software corporativo prontos, geralmente sobrevivem a partir do contrato de manutenção. É aqui que se concentrará a maior parte dos seus custos ao adquirir um pacote de software.
  • O tempo de implantação varia com a especificidade das suas regras de negócio. Se você se propor a alterar seus processos internos em nome das melhores práticas da aplicação, o tempo poderá ser bastante curto. Se a sua especificidades forem muitas, o tempo de adaptação do pacote pode demorar muito.
  • O risco da implantação ser mal sucedida varia com a complexidade do software e as especificidades das suas demandas. Se o software precisar de muitas adaptações, as chances de uma implantação mal sucedida é grande.
  • O risco de você ter dificuldade na manutenção do software também é grande. Muitas empresas não gostam de manter uma versão exclusiva para cada cliente, obrigando-o a compartilhar de recursos comuns a todos os seus clientes. Se o seu fornecedor fechar, você poderá ter um grande problema na mão. Por outro lado, existem empresas que oferecem os códigos fontes do seu pacote de software. Se os códigos fontes vierem acompanhados e uma boa documentação, isto pode diminuir a sua dependência do fornecedor.

Existem duas situações em que a compra de um pacote de software costuma ser mais viável:

  • Se o seu tempo é curto e a sua capacidade de investimento a curto prazo é pequena, a aquisição de um software pronto pode ser uma alternativa viável. É claro que a longo prazo ela pode se revelar pouco adequada, mas o tempo muitas vezes é uma questão de sobrevivência.
  • Se você precisa de um sistema que não fará parte da sua cadeia central de valor e não há um sistema livre que ofereça as funcionalidades básicas desejadas.

Cabe aqui lembrar, que quanto mais genérica for a sua necessidade, maior a possibilidade de existir um software livre bastante maduro capaz de atender às suas necessidades.

Tags: , ,

Comments 2 comentários »

Não é sem um pouco de nervosismo e alegria que estou dando uma guinada na minha vida profissional. Mudanças importantes estão acontecendo como fruto de varias coisas que vinham se acumulando.

Aprendi muita coisa nestes últimos 4 anos. Conheci muita gente e aprendi muito com elas. Vivenciar um ambiente com exigências de nível corporativo foi um fator fundamental para mim. Foi uma etapa importante e espero ter aprendido com meus erros.

Estou bastante entusiasmado com meus novos desafios e espero contribuir mais com que mais me ajudou nos últimos tempos: a comunidade!

Bem, mas não dá tempo de ficar pensando muito nisso… hora de arregaçar as mangas e trabalhar. Na verdade, sinto que estou apenas começando…

Tags: ,

Comments Nenhum comentário »

Manter um blog pode ser tão simples quanto se queira, mas também pode ser um poço sem fundo…

São muitas opções, muitas tecnologias e modismos que vão surgindo todos os dias. Aqueles que resolvem adentrar no mundo da blogosfera vão se vendo cercados de um aparato cada vez maior no sentido de classificar o conteúdo daquilo que você escreve. Por outro lado, já há quem leia menos os jornais tradicionais e busque informações em fontes alternativas de informação como os blogs.

E fez-se o blog

Já faz mais de um ano que um colega me convenceu a montar um blog. Eu mesmo já havia pensando em montar um site meu há uns 5 anos atrás, antes da febre dos blogs, mas a vida naquele tempo era muito mais dura e eu acabei desistindo. Manter um site estático realmente dá trabalho. Mas eu cheguei a publicar alguns textos daquela época aqui, muito tempo depois.

De qualquer forma, a idéia de colocar algumas coisas no papel sempre me atraiu.

Chegou uma época em que fiz uma campanha no PSL-ABCD para que as pessoas divulguem seu conhecimento técnico e suas opiniões em blogs. Alguns blogs novos surgiram nesta época, uns não foram para frente, outros contam com excelente conteúdo.

Só sei que hoje estou com pouco mais de 100 postagens e não pretendo parar tão cedo. Cheguei a passar alguns meses sem postar absolutamente nada por aqui e tive alguns momentos de pico onde postei 2 ou 3 coisas em apenas uma semana.

Onde hospedar seu blog?

Minha primeira tentativa há uns 5 anos foi montar um site estático usando o espaço cedido pelo meu provedor, que na época era o UOL. Foi um verdadeiro desastre e o site nunca chegou a ficar pronto, pois dava muito trabalho para montar tudo e eu nunca tinha tempo suficiente.

Meu primeiro blog era hospedado num serviço gratuito que utilizava o WordPress. Não vou citar qual era o serviço por um motivo simples: ele dava problema! Em alguns momentos a interface administrativa não entrava e cheguei a perder todo o meu conteúdo. Quase desisti de continuar naquela época.

Depois me recomendaram outros serviços mais estáveis. Acabei indo para o Multiply. Flertei com o Blogger, mas o Multiply realmente me ofereceu muito mais coisas, como galeria de imagens, músicas e uma rede de contatos no estilo do Orkut. Cheguei a pagar o serviço por alguns meses como forma de ajudar a manter o serviço e tirar as propagandas do blog. Mas com o tempo algumas coisas começaram a incomodar. Percebi que alguns destes problemas eram comuns a maioria dos serviços gratuitos de hospedagem:

  • Somente usuários do Multiply podiam postar comentários,
  • Só usuários pagantes podem customizar algumas coisas mínimas como a barra lateral do site
  • Poucos temas para customizar a aparência do site.
  • Nenhum acesso ao código-fonte da ferramenta
  • Mudança de política de acesso a ferramenta freqüente,
  • Propaganda adoidado.
  • Páginas muito lentas para carregar.
  • Não poder usar um domínio próprio.

Na verdade eu poderia utilizar uma ferramenta destas pelo resto da vida e certamente eu não teria problemas. No entanto, quando que se acostumam com Software Livre, e se trabalha com desenvolvimento, é comum querer algo mais. E os serviços pagos oferecem muito mais do que apenas hospedar um site, oferecem toda uma gama de serviços que um servidor locado num datacenter pode nos oferecer…
A minha idéia seria migrar o blog para uma plataforma l00% livre e pagar somente a hospedagem em algum lugar. Uma excelente opção seria abrir uma conta no DreamHost por exemplo. Mas depois de trabalhar criando sites do zero por aí, a idéia de instalar coisas a partir de um painel me pareceu chata e limitada. Acho que para a maioria dos usuários comuns, isto seria mais que o suficiente. Mas a vida de web-monkey me levou a querier mais. Eu queria um local onde eu consiga instalar o que eu bem entendesse no servidor.

Foi aí que o fike encontrou o RimuHosting. Lá você tem uma máquina virtual Xen com um Debian prontinho para você fazer o que quiser, senha de root e tudo o mais! A flexibilidade de um servidor dedicado com o custo de um plano standart no DreamHost.

Com isto, foi possível instalar tudo a partir do zero, SGDB, PHP, Apache, ferramentas, etc. O fike registrou o domínio www.midstorm.org (ele costuma ter fotos de furacões no seu desktop…) e nasceu a nova versão do blog! Além de não ser possível montar um site com 2 cliques no mouse, assumir um servidor tem outro grande problema, como dizem os filmes de super heróis: Grandes poderes trazem grandes responsabilidades!

Qual ferramenta utilizar?

Acho que o WordPress deve ser a ferramenta número um dos blogueiros! E realmente é uma excelente ferramenta. Um diferencial do WordPress é o uso de URL semânticas. Existem outras ferramentas livres muito boas, mas creio que o WordPress seja o melhor hoje, com uma comunidade de desenvolvedores bastante ativa.

Apesar disto eu resolvi optar por um CMS, que tem a opção de instalar vários módulos para ir adicionando novas funcionalidades. Existem uma infinidade de ferramentas disponíveis por aí. Não é preciso utilizar uma ferramenta proprietária. Existem excelentes opções livres para todos os gostos. Você pode escolher a sua linguagem de programação predileta: PHP, Perl, Python, Ruby e outros mais bizarros como o VB.Net. Muitos utilizam frameworks consagrados e outras ferramentas livres como o Zope o Rails e o Smarty. Outra coisa a se considerar são os bancos de dados que eles suportam. O SGDB número um é o MySQL que é muito adequado para manter um blog, pois é simples e leve. Mesmo assim, você pode querer integrar outras aplicações com seu portal e querer utilizar outro SGDB. Existem ferramentas que utilizam o PostgreSQL, SQLite e até Oracle! A escolha não é fácil. Acabei optando pelo Xoops por já ter utilizado antes em outros projetos. Mas fiquei muito tentado com o Joomia, que é bem poderoso e o Drupal que tem suporte a PostgreSQL além de ser bem leve.

Melhorando a aparência do seu blog

Esta parte é bastante difícil para mim. Programadores são famosos por serem péssimos designers e eu não fugi a regra. Se você estiver utilizando uma boa ferramenta livre, certamente irá ter alguns temas ou templates para escolher. A partir daí, você deverá encontrar o CSS do seu tema e fazer suas próprias adaptações. Esta parte é realmente mais difícil do que parece a primeira vista:

- Cada navegador exibe seu site de um jeito diferente, e apesar de não gostar do IE, a maioria das pessoas ainda o utilizam… uma opção bizarra é instalar o IE via Wine para poder testar ou ter um Windows no seu computador ou melhor, usar um serviço na Web que tire screeshots em qualquer navegador para você.
- Cada usuário utiliza uma resolução de tela diferente. Poucos utilizam hoje uma resolução de 640 X 480, mas muitos ainda utilizam 800 X 600. Quando abri pela primeira vez meu blog em 800 X 600 tive um choque… ele estava inteirinho quebrado.
- Mexer no Gimp não é tão simples quanto parece. Se você esquecer que ele trabalha em camadas vai perceber que o programa não se comporta da forma como você espera. Além disso, é preciso saber alguma coisa sobre desenho, arte, cores que combinam… coisas subjetivas demais para um programador, hehehe!

Eu realmente desisti de ficar customizando muito o design do meu blog. Consome um tempo que eu prefiro gastar escrevendo, tomando cerveja, etc. Troquei a imagem no topo do blog e me dei por satisfeito. Tenho que reconhecer a importância dos Web-Designers e dizer que sem eles os programadores só conseguiriam vender coco na praia… (hum, não deixa de ser uma boa idéia!).

De toda forma, um blog não precisa de um super ultra mega blaster design. Ainda mais se você não é um designer!!! Vejo blogs com um visual muito bacana por aí, mas acho que a maioria ou utiliza um tema disponível na sua ferramenta com pouquíssimas alterações ou são sites de designers que realmente fazem um excelente trabalho.

Um programador conhecido que resolver montar o seu próprio design deixou impressões bastante claras sobre como ele se sentiu…

Sobre o que postar?

A maioria dos blogs que começam, não passam da décima postagem. Decididamente, existem pessoas que tem mais o que fazer da vida! Ainda acho que com 20 ou 30 minutos por semana você consegue colocar muita coisa interessante no ar. Cheguei a postar sobre isso uma vez aqui.
De toda forma, interagir com a comunidade de software livre me fez mudar algumas posturas de uns tempos para cá. Depois de utilizar por alguns anos ferramentas livres em tempo integral, achei que eu deveria de alguma forma ajudar os outros, e não apenas com discussões filosóficas, inevitáveis para quem transitou pela sociologia e pela educação…

Algumas pessoas optam por blogs 100% técnicos, postando apenas dicas e códigos de própria autoria. Outros postam apenas suas impressões sobre coisas que utilizam no dia-a-dia. Há quem fale muito sobre política e há até os que reproduzem menssagens meigas que recebem por e-mail ou pelo Orkut! Bem, não existe uma regra sobre isto (ainda bem!). A única coisa que parece fazer sentido é que o seu público vai variar com o assunto e a qualidade daquilo que você escreve.

Particularmente eu prefiro escrever aquilo que me der na telha, sem me preocupar muito. No entanto, evito ser muito agressivo, pois sei que sempre corro o risco de ser mal interpretado. Acho que você pode ser moderado sem deixar de se posicionar e dizer o que pensa.

Aparecendo na Blogosfera

Isto pode aparecer um tabú para alguns. Muitos começam um blog como algo pessoal e não tem a intenção de ficar famoso ou ganhar dinheiro com um simples blog. No entanto, há quem pense diferente e até ganhe a vida com isso. O importante é pensar que não há nada de errado em querer aparecer na Internet. Se você publica um conteúdo, é porque você quer que outras pessoas leiam, comentem e interajam com você. Se não fosse assim, você continuaria utilizando o seu diário em papel mesmo ou no mínimo, jamais publicaria algo na Internet.

Uma das primeiras coisas que eu descobri foi a importância e onipresença do Google. Se o Google não te achar, você não existe! Aparecer no Google não é uma tarefa tão simples quanto parece. Envolve o uso de tags e palavras-chave, além é claro de pessoas que visitem seu blog de vez em quando.

Na verdade, isto pode não importar tanto, se você não tem a intenção de atingir as massas e virar um popstar. Mas é interessante tentar buscar ao menos o seu nome para ver se as pessoas que realmente querem encontrar você, acham seu site no google.

No entanto, uma coisa que certamente você deve fazer, é colocar links para o blog de seus amigos ou blogs que você gosta de ler com freqüência. Se você quer que outras pessoas leiam e comentem o seu blog, espera-se que você faça o mesmo em outros blogs. Esta atitude de interação entre os blogueiros eu acredito ser a verdadeira essência da blogosfera. Ser citado em outros blogs é considerado um dos maiores fatores sucesso de um blog.

Aí o RSS e outras técnicas de feeds começaram a fazer todo o sentido. Eu particularmente utilizo o Liferea como agregador de notícias, mas existem várias outras formas de utiliza-los para se manter em dia como os planetas. Foi aí que eu percebi que os feeds do meu blog não estavam se saindo muito bem. Fiz alguns ajustes nos feeds do blog. Curiosamente, algum tempo depois surgiu a campanha para disponibilizar os feeds completos… coisa que eu acabara de fazer!

Um exemplo de como o fato de citar outros blogs podem ou não afetar a sua vida é quando você anuncia algo que você postou em um site de grande circulação, como o BR-Linux. Já postei algumas vezes por lá anunciando eventos da comunidade. Isto não significou um aumento de visitantes no meu blog. No entanto, um colega um dia indicou uma postagem minha no BR-Linux que se tornou rapidamente a postagem mais popular daqui.

Estão pipocando cada vez mais ferramentas de catalogação de blogs. O caso mais célebre é o Technorati que ganhou uma versão brasileira, o blogblogs e recentemente o Rec6 se tornou a versão brasileira do digg. Aqui, muitos vêem estas ferramentas como formas de autopromoção, mas não é exatamente assim. Estas ferramentas acabam de uma forma ou de outra catalogando postagens em blogs, facilitando a vida de quem quer buscar assuntos determinados. Pessoas que não tenham nada de muito relevante para dizer, dificilmente perduram na opinião dos leitores. Você pode passar a vida sem jamais utilizar estas ferramentas, mas pode se surpreender ao perceber que outras pessoas já catalogaram seu blog por aí!

Estatísticas do seu Blog

Uma das coisas divertidas de se fazer com um blog, é observar o movimento de acesso no seu blog. A princípio as estatísticas são uma atitude meio narcisista, onde você fica obervando quantas pessoas acessam o que. Depois de um tempo você começa a observar que algumas coisas são mais acessadas que outras e que coisas que você julgava sem muita importância acabam se tornando populares.

É interessante observar por exemplo que algumas palavras-chave são mais procuradas nos mecanismos de busca. Aconteceu isto com uma postagem minha chamada “Frases interessantes“. Um grande número de leitores apareceu a partir de buscas no google! Já outro colega teve um efeito indesejado, ao ser catalogado com palavras-chave geralmente utilizada com outros fins.

Outra coisa que se percebe é que ter muitos leitores não significa que você atraia o tipo de leitor que espera. Quando se escreve sobre assuntos mais técnicos, você poderá atrair um número menor de leitores, no entanto, eles poderão ser leitores chave para você.

Dependendo da ferramenta que você utilizar, você detectará tentativas de invasão, descobrirá coisas interessantes sobre o seu leitor. Enquanto num site comum o número de pessoas que utiliza o IE é de cerca de 87%, no meu blog este número cai para 52%, indicando um perfil diferenciado de leitores.

Você pode notar coisas estranhas acontecendo… como pessoas lendo seu blog num domingo de madrugada, ou ver que a maioria dos seus visitantes aparecem na hora do almoço enquanto a maior taxa de transferência ocorre de madrugada - deve ser a hora em que os spiders e robôs saem da toca!

Um bom CMS deve ter ferramentas internas para registrar o número de leitores que passam pelo seu blog. Você pode instalar também uma ferramenta externa como o AWSTATS que fornecem muita informação interessante. Mas se você não se importar com a invasão de um serviço externo, o Google Analytics é realmente imbatível. O número de informações, possibilidades de inclusão de filtros personalizados, gráficos, exportação de relatórios etc, tornam esta ferramenta dignas do seu blog! Basta você se cadastrar na ferramenta e colocar um pequeno código do Google no rodapé do seu site e esperar uma ou duas semanas para começar a ter um volume significativo de informações coletadas.

Conclusão

Seja qual for o tempo que você dedica ao seu blog e a acompanhar outros blogs, a blogosfera está aí, crescendo num ritmo acelerado. Se você tem dúvida se vale a pena manter um blog, pense que sob um certo ponto de vista existem dois tipos de pessoas que pessoas:

“As que assistem um jogo de futebol e torcem pelos outros e aqueles que entram em campo e jogam o jogo!”

Tags:

Comments Nenhum comentário »

Rec6 Após ler a postagem do André Lopes e ver a adesão do Fernando Ike, resolvi testar também o Rec6 por aqui. Achei a iniciativa interessante e encontrei vários textos interessantes por lá. No início não dei muita bola, mas com o tempo fui encontrando também as postagens do BR-Linux e me convenci da seriedade da proposta. Espero que sirva como um bom canal de divulgação da blogosfera nacional.

Tags: ,

Comments Nenhum comentário »