terça-feira, 9 de fevereiro de 2010
Busca  
Porta 80 Web Hosting
 :: Acessibilidade
Ir para conteúdo principal: ALT + 1
 :: Participe
Seja um autor de CD/DVD de Treinamento
Publique um artigo
Publique uma oportunidade
Publique uma notícia
Publique um curso
Publique uma dica
Publique um código
 :: Informativo
Receba nossos informativos por e-mail.
E-mail:   
 
Digite a palavra abaixo:  
 
 
 :: Oportunidades
Cadastrar oportunidades
Gerenciar suas oportunidades
Cadastrar nova empresa
 :: Especiais
Básico de C++
C++ Builder
Curso ASP.NET 3.5 em VB.NET e C#
Guia Prático de HTML
Testes com Visual Studio Team System 2008
 :: Desenvolvimento
ActionScript
ADO.NET
ASP
ASP.NET
Automação Comercial
C#
C/C++
Coldfusion
CSS
Delphi
Disp. Móveis
HTML
Java
Javascript
LSL (Second Life)
Modelagem
PHP
Python
Sharepoint
Silverlight
SQL
VBA (Office)
Visual Basic
Visual Basic .NET
Visual Fox Pro
WCF/WPF
Web Services
XML
 :: Infra
BizTalk Server
CRM
Exchange Server
ForeFront / Antigen / IAG
Interoperabilidade
ISA Server
Linux
MOF
MS Dynamics CRM
Network
OCS / LCS
Outlook
Powershell e Scripts
Redes
Segurança
System Center e Gerenciamento
Virtualização
Windows
Windows Server
 :: Banco de Dados
Access
Caché
Firebird
Interbase
MySQL
Oracle
SQL Server
Sybase
 :: Gerência
Arquitetura
Ciclo de Vida de Desenvolvimento
Controle de Versão
Estimativas
Metodologias
MOF
Qualidade e Testes
 :: Design
Corel
Flash
Photopaint
Photoshop
 :: Livros
Análise Sistemas
Aplicativos
Banco de Dados
Certificação
Design e CAD
Gerência
Hardware
Internet
Programação
Programação Web
Rede
Segurança
Servidores
Sistemas Operacionais
 :: CDs/DVDs
Desenvolvimento
Infra
Design
 :: E-Books
.NET 2.0 (VS 2005)
.NET 1.1 (VS 2003)
SQL Server
Excel 2007
Excel 2003
Access 2003
ASP 3.0
Delphi
Java
Artigos
A manutenção que nunca acaba…
Por: Maurício Linhares de Aragão Junior
[Entre em contato com o autor ]
Graduando em Desenvolvimento de Software para a Internet (CEFET-PB) e Comunicação Social (Habilitação Jornalismo - UFPB), desenvolvedor da Phoebus Tecnologia (http://www.phoebus.com.br/), consultor e instrutor independente, membro da equipe administrativa do Grupo de Usuários Java da Paraíba - PBJUG (http://www.pbjug.org/) e moderador dos fóruns do GUJ (http://www.guj.com.br/).

Ele pode ser contactado também através de sua página pessoal, em http://maujr.org/.

Feed de artigos.
Feed de artigos deste autor.
Gere seu feed personalizado  
A manutenção que nunca acaba…
Publicado em: 12/02/2007

Você está começando o primeiro sistema da sua empresa ou está trabalhando pra uma startup (empresa nova) que está produzindo o seu primeiro sistema. Ele tem que sair pra ontem, você tinha pouca experiência e também tinha pouco tempo pra se preocupar em gerenciar ou controlar a maneira que as coisas estavam acontecendo. Vocês fizeram poucos testes, a documentação é praticamente inexistente e a coisa mais próxima de um histórico do projeto é o “revision” do seu controle de versão (é bom que seja Subversion…).

Cenário apocalíptico? Nem tanto.

Essa é a realidade da maior parte das startups aqui no Brasil e talvez até mesmo no mundo. A empresa é iniciada por amigos, que muitas vezes acabaram de sair da faculdade e tem uma boa idéia e bons contatos pra vender essa boa idéia, as vezes nem tudo isso, mas eles querem ir pra rua. Como acabaram de sair e não tiveram nenhuma formação especial nem experiência real em gerência de projetos (além dos livros intragáveis e da mais pura decoreba), ninguém entende muito bem de nada e, principalmente, estão sentindo a adrenalina do primeiro projeto que precisa ser entregue, a chance de satisfazer o primeiro cliente.

A equipe é genial, cada um faz o seu trabalho com afinco, se apegam ao código e começam a entender do negócio para o qual eles estão desenvolvendo a solução, afinal todos estão incrivelmente empolgados com a solução que está nascendo. Em momento nenhum eles pensam no futuro daquilo que está sendo produzido.

A primeira versão

Gerar a primeira versão é praticamente um dos atos mais importantes da vida de todos eles, é um primeiro filho que vem ao mundo depois de dias e noites de trabalho ininterrupto. Todos se regojizam com o trabalho bem feito e entregue. Mas o festejo não vai muito longe, pois rapidamente o telefone toca e ao atender, surpresa! É o cliente reclamando de um problema que ele encontrou utilizando a aplicação.

“Não se desespere”, é o que cada um pensa, bugs são normais, ninguém escreve aplicações perfeitas e o usuário provavelmente já está acostumado a esse tipo de coisas, afinal, ele já tem um computador por lá, sabe que essas coisas dão problema mesmo (olha a desculpa…). Depois desse bug, vários outros aparecem e além deles surgem os pedidos pra novas funcionalidades (que vão terminar em novos bugs).

E mesmo com os bugs, o pessoal parte em busca do mercado procurando por mais clientes, pois agora que eles tem a solução pronta podem vende-la também a outras pessoas. Eles partem então para a luta comercial e vencem algumas das batalhas, conquistando novos clientes. Rapidamente, os clientes aumentam e a quantidade de bugs e novas funcionalidades que precisam ser adicionadas também aumenta. E a coisa não pára por aí, de repente, vem aquele cliente antigo pra você e diz, “preciso de um novo sistema para resolver um novo problema”.

É nessa hora que a coisa vai começar a entortar pro seu lado.

Crescendo, crescendo, crescendo…

Aquela equipe de amigos que saíram juntos da universidade já não tem mais condições de levar tudo sozinha e eles hoje tem condições de contratar novos funcionários para ajudar a suplementar a equipe de desenvolvimento.

Lá vão eles pro mercado atrás de gente especializada pra contratar. Incrivelmente, encontrar gente capacitada torna-se cada vez mais difícil e encontrar gente capacitada que tenha conhecimento em uma área específica (como sistemas financeiros) é praticamente impossível dependendo de onde os nossos amigos estiverem, pois a maioria das empresas esquecem das universidades e na formação de trainees. Então, sem muita escolha, eles pelo menos escolhem um cara bem capacitado no serviço de desenvolvimento, mas que não entende nada do domínio das aplicações que eles desenvolvem.

Ao chegar na empresa, os veteranos estão atolados de serviços graças a manutenção e implementações de novas funcionalidades naquele primeiro sistema, sem previsão de quando eles vão poder se afastar um pouco disso e partir para as novidades. Fica para o novato, com experiência quase zero no negócio atender a nova demanda de sistemas. Ele as vezes passa por um “pequeno” treinamento sobre o que vai fazer, mas dificilmente vai poder contar com a experiência do pessoal mais antigo para resolver os seus problemas.

Ele, que não tem experiência no domínio, provavelmente vai apanhar tanto quanto os veteranos apanharam e também deve cometer vários dos mesmos erros, mas quem pode culpá-lo? Se todo o processo continua desorganizado, a tendência é que todo o ciclo se repita mais uma vez e agora nós vamos ter dois grupos de desenvolvedores que vão estar presos para sempre na manutenção das aplicações que eles desenvolveram, barrando o seu crescimento e até mesmo a construção de disseminação dos novos e velhos conhecimentos que todos adquiriram no tempo que passaram desenvolvendo as suas soluções.

Teste cedo, teste muito

Esses problemas não são comuns apenas nas startups da nossa história, eles acontecem diariamente em grandes empresas que tem anos de mercado mas que não valorizam os poderes que os testes tem sobe as soluções que eles estão escrevendo. Se aquele primeiro sistema que foi entregue tivesse sido testando junto com o seu desenvolvimento e não apenas testado quando enviado ao cliente a quantidade de defeitos seria muito menor.

O custo real de um defeito é uma multiplicação entre o tempo que ele demorou para ser descoberto e resolvido e a perda que ele causou para o cliente. O tempo que você perdeu resolvendo esse bug poderia ter sido muito mais bem gasto no desenvolvimento de uma nova funcionalidade que agregasse valor ao negócio do seu cliente. Fora isso, se você simplesmente resolveu o bug e não adicionou testes que evitem uma “regressão” (o retorno do bug por causa de uma alteração subseqüente), está dando mais um tiro no escuro e pedindo pra gastar ainda mais no futuro.

O pior de tudo, no nosso caso, é que nós temos as melhores mentes e as pessoas que mais conhecem no negócio fazendo remendos em uma cocha de retalhos com agulhas cirúrgicas, pois eles sabem que ao menor erro podem colocar todo o sistema a perder. Em vez destas mentes estarem trabalhando e desenvolvendo novas oportunidades para resolver os problemas do cliente e lhe oferecer mais valor (que é o que ele procura quando deseja automatizar o seu processo), estão perdendo tempo resolvendo defeitos que poderiam ter sido pegos por uma metodologia mais rígida de testes.

Pior, o sua equipe de desenvolvimento nunca vai ser escalável, pois sempre que surgir a necessidade de se desenvolver alguma coisa nova, você vai precisar contratar novos funcionários e começar tudo do zero outra vez, pois o pessoal antigo vai estar ocupado demais dando manutenção e fazendo correções no “legado”. Eles só vão se liberar quando você jogar o legado fora ou conseguir “migrar” pra uma plataforma “nova”.

Se você está começando, prestes a iniciar ou já caminhando em um projeto que não tem testes, prepare-se para enfrentar esse problema e muitos outros, ou então dê um passo a frente e defina uma política para os testes e durma em paz no seu travesseiro, sem ficar se preocupando com cada vez que o telefone tocar.


 

Inclua um comentário sobre o artigo Topo
Elogios e críticas são muito bem vindos, porém o comentário deve ter referência ao artigo em pauta.
O portal e o autor agradecem.
Nome:    
E-mail:      
Comentários:    
Digite a palavra abaixo:  
Para dúvidas técnicas, NÃO UTILIZE ESTE ESPAÇO, utilize nosso fórum de discussão.
http://linhadecodigo.com.br/cs2/forum
 
Comentários sobre o artigo Ver Todos comentários
Sou analista de sistemas a 10 anos e achei este artigo muito incompleto. Na prática e na teoria de sistemas sabemos que mais do que testes o sistema precisa de ANÁLISE, use seu tempo pensando no problema, não tenha pressa para apresentar um sistema antes de entender o mínimo do negócio onde ele será usado. Testes são necessários mas se não documentarmos um projeto no início, teremos que repassar verbalmente todo o processo para os que irão chegar, além do que com o passar dos anos até quem iniciou o sistema não irá lembrar de todos os detalhes.
Quem enviou: Alex Guimarães
Postado em: 27/02/2007 00:00:00
É verdade ! Realmente estou passando por esse problema. E quando as Regras de Negócio não são bem definidas, o desenvolvedor vai penar pra fazer um sistema incompleto, cheio de bugs ou de soluções que não atendem o cliente ! E se vc pensar bem, depois de um ano na empresa o "novato" vira "veterano" e agora ele é q vai dar o "pequeno" treinamento para os novatos ! Loucura !
Qdo a empresa não tem Organização, nada funciona, e o desenvolvedor tem q criar sistemas apenas com o seu conhecimento técnico, o q não vai lhe salvar qdo o telefone começar a tocar !!

Basta de empresas desorganizadas ! (?)

Uni-vos !



Quem enviou: anônimo
Postado em: 26/02/2007 00:00:00
Exelente artigo ! Essa é a grande realidade da maioria das empresas. Geralmente se culpa a falta de tempo para a execução de um projeto, em grande parte isso é verdade. Mas há casos em que falta é planejamento mesmo. Em fim, a discução sobre isso é longa...
Parabens ao autor do artigo !
Quem enviou: alexandre
Postado em: 16/02/2007 00:00:00
Parabéns pelo artigo. Estou pra começar um novo projeto, e esse artigo veio para reforçar um pensamento q já tinha a respeito dos testes. Parabéns
Quem enviou: Leonardo Ramos
Postado em: 15/02/2007 00:00:00
Outros artigos do autor Topo
Trabalhando em gaiolas
É lixo? Então jogue fora!
SWT, JFace e Componentes
Conhecendo o SWT
Satisfação garantida ou seu dinheiro de volta!
Artigos relacionados Topo
Introdução ao Teste de Software
Administrando o código fonte usando Visual Studio Team System
Introduzindo Conceitos de Testes Comportamentais
Teste de Comunicabilidade
Acessibilidade - Uma Boa Idéia
ABC da Usabilidade – Testes Empíricos com Usuários (Fase 1 – Preparação)
ABC da Usabilidade: Análise Heurística
Usabilidade - uma introdução
Testes com Visual Studio Team System 2008 - parte VII
Testes com Visual Studio Team System 2008 - parte VI
Testes com Visual Studio Team System 2008 - parte V
EPM (Project Server) + ALM (Team System) = Maior controle em projetos
Testes com Visual Studio Team System 2008 - parte IV
Testes com Visual Studio Team System 2008 - parte III
Testes com Visual Studio Team System 2008 - parte II
Testes com Visual Studio Team System 2008 - parte I
CBTM – Change-Based Test Management
Introdução a Gerência de Projetos
Por que projetos de Software falham?
O Caminho para o CDIA+
Certificações em Gerência de Projetos
Extraindo Métricas em Projetos de Tecnologia de Informação
NUNit para SmartDevices – Visual Studio 2008 Team System
Fundamentos do Gerenciamento de Projetos: Algumas coisas interessantes antes de “colocar a mão da massa”. Parte 02
Testes Comportamentais – Parte 1
Uma abordagem para documentação de Testes de Software baseado no IEEE 829-1998
Proporção média de esforço de testes em relação ao esforço total do projeto
Fundamentos do Gerenciamento de Projetos : Algumas coisas interessantes antes de "colocar a mão da massa". Parte 01
Gestão e metodologias ágeis: E existe outro tipo?
Gestão de Pessoas em Projetos de Software
Produtos relacionados Topo
Livro: Testes de Performance
Livro: Como Ter Sucesso em Gestão de Projetos
Livro: Curso de Engenharia de Software
Livro: Rosalina e o Piano - Estudo de caso de Gerenciamento de Projetos
Livro: Gerenciamento de Projetos para Leigos
E-Book: MS-Project® 2007 - Melhores Práticas de Gestão de Projetos - Dominando MS – Project ® em 20 Passos (e-book com entrega via download)
Livro: Como lidar com o Estresse em Gerenciamento de Projetos
Livro: Testes Funcionais de Software
CD/DVD: CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System
Livro: Qualidade de Software – 2ª edição
Livro: Microsoft Office Project 2007 Standard & Professional
Livro: Gerenciando Projetos com Primavera Enterprise 6 - Client/Server
Livro: Implantando a Governança de TI - da Estratégia à Gestão de Processos e Serviços (2a. edição)
Livro: Análise de Riscos em Projetos de Teste de Software
CD/DVD: CD de Treinamento Gerenciando projetos de software com Visual Studio Team System
Livro: Microsoft Project 2007 - Gestão e Desenvolvimento de Projetos
Livro: Visual Studio Team System - Team Foundation Server
E-Book: Automação e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas (entrega via download)
Livro: Sistemática de Qualidade Total - TQM sobre a RUP para melhoria contínua de processos em desenvolvimento de software
Livro: Gerência de Configuração Técnicas e Práticas no Desenvolvimento do Software
Livro: Testes de Software - Produzindo Sistemas Melhores e Mais Confiáveis
CD/DVD: CD de treinamento: Qualidade de Software com Visual Studio Team System
Livro: Teste de Software - 2a Edição
Livro: Sarbanes-Oxley: Conformidade TI (com CD inicializável)
Livro: Análise de Pontos de Função: Medição, Estimativas e Gerenciamento de Projetos de Software
Livro: Exame Fácil - PMP
Livro: Qualidade em Software
Livro: Dominando NetBeans Construa aplicativos Java tanto em Desktop, como para Web, trabalhando com uma das ferramentas mais usadas no mundo
© Copyright 2001-2010 Codeline Editora, Comércio e Tecnologia Ltda. | Política de privacidade e de uso | Anuncie | Fale conosco

» Site hospedado na Porta 80 Web Hosting «
Nossos números
Dicas: 1.314
Códigos/scripts: 279
Funções de VBScript : 90
Funções JScript : 05
Livros: 1.805
Notícias: 1.942
Artigos: 2.745
Cases: 14
Oportunidades: 4.185
Publicidade

Conheça a loja do Linha de Código.

Microsoft indica Linha de Código.

Assine a Revista Mundo .NET
Portal de Vídeos .NET - os melhores vídeos .NET estão aqui
Baixe o Visual Studio 2010 Beta
Revista Codificando .Net

Siga-nos no Twitter

Linha de Código no Orkut
Fórum de discussão do portal Linha de Código
Feeds
Oportunidades
Notícias
Artigos
Artigos personalizado
       (Por assunto)
Artigos personalizado
       (Por autor)
Portal Vídeos .NET
Portal Vídeos Delphi
LC Blog
       (Onde você faz a notícia)
Promoções
Promoção Mobile (válido somente para pagamento via boleto bancário)
Promoção Mobile (válido somente para pagamento via boleto bancário)
De: R$ 239,00
Por: R$ 146,00
Promoção: Portal de Vídeos .Net + CD Novidades das Linguagens (válido somente para pagamento via boleto bancário)
De: R$ 162,00
Por: R$ 89,00
Promoção VSTS (válido somente para pagamento via boleto bancário)
De: R$ 219,00
Por: R$ 146,00
Promoção Linq To SQL (válido somente para pagamento via boleto bancário)
De: R$ 249,00
Por: R$ 156,00
Promoção ASP.Net com Banco de Dados (válido somente para pagamento via boleto bancário)
De: R$ 249,00
Por: R$ 146,00
CDs
DVD de Treinamento LINQ TO SQL e Entity Framework Avançado
DVD de Treinamento LINQ TO SQL e Entity Framework Avançado
De: R$ 83,00
Por: R$ 73,00
Curso completo de MySQL
Por: R$ 89,00
DVD de Treinamento - ISA Server 2006 - Implementação
De: R$ 83,00
Por: R$ 73,00
CD de Treinamento Adobe Photoshop CS4 Extended – 3D Arte
De: R$ 83,00
Por: R$ 53,00
DVD de Treinamento - Recursos avançados do Windows Mobile 6
De: R$ 83,00
Por: R$ 73,00
Livros
Aprendendo SQL
Aprendendo SQL
Por: R$ 83,00
Web Services SOAP em Java
Novatec
Por: R$ 42,00
Guia Mangá de Bancos de Dados
Novatec
Por: R$ 39,00
Guia Mangá de Estatística
Novatec
Por: R$ 39,00
Guia Mangá de Eletricidade
Novatec
Por: R$ 39,00
E-Books
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Por: R$ 30,00
Manual de Estudos - Exame 70-291 - Windows Server 2003 (606 páginas) - entrega via download
Por: R$ 30,00
Dominando MS – Visio ® em 20 Passos - Melhores Práticas em Gestão de Projetos (entrega via download)
Por: R$ 30,00
MS-Project® 2007 - Melhores Práticas de Gestão de Projetos - Dominando MS – Project ® em 20 Passos (e-book com entrega via download)
Por: R$ 20,00
Banco de dados com C# e Visual Studio .Net 2005 (entrega via download)
Por: R$ 20,00
Os 10+ | Autores do dia
Israel Aéce
Luiz Felipe de Freitas
Anderson Patricio
Júlio Cesar Fabris Battisti
Alfred Reinold Baudisch
Ramon Durães
Marcio Franco
Renato Haddad
Alessandro de Oliveira Faria
Robert Martim
Os 10+ | Artigos do dia
HTML Básico
HTML Avançado
Criando aplicativos para o Orkut
Aplicando maquiagem facial no Adobe Photoshop Cs 2®
ASP.NET 2.0 - Explorando o GridView
Tutorial de Tabelas Dinâmicas no Excel – Parte 1
SQL Server Replication Passo-a-Passo
PL/SQL - Procedures e Funções
Tutorial: Desenhando com o Corel Draw
Sistema de autenticação de usuários em PHP usando sessões e MySQL