quinta-feira, 2 de setembro 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  
MS TechEd 2010

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
TDD: Testes mais amigáveis com Sharp Tests Ex
Como fazer um plano de testes baseado em casos de uso
Aplicando o Intra-Empreendedorismo na TI
A importância de uma boa documentação
A Qualidade das Empresas de TI
Introdução a Refatoração
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
Produtos relacionados Topo
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)
CD/DVD: CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System
CD/DVD: CD de Treinamento Gerenciando projetos de software com Visual Studio Team System
Livro: Microsoft Project 2007 - Gestão e Desenvolvimento de Projetos
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: Testes de Software - Produzindo Sistemas Melhores e Mais Confiáveis
CD/DVD: CD de treinamento: Qualidade de Software com Visual Studio Team System
Livro: Análise de Pontos de Função: Medição, Estimativas e Gerenciamento de Projetos de Software
Livro: Guia Prático no Mundo Real SharePoint® 2007
© 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: 2.623
Artigos: 3.020
Cases: 14
Oportunidades: 4.591
Vídeos .Net: 484
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
O que você fará com o Visual Studio 2010?
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 Wordpress + Tabless (válido somente para pagamento via boleto bancário)
Promoção Wordpress + Tabless (válido somente para pagamento via boleto bancário)
De: R$ 149,70
Por: R$ 99,80
Promoção PHP + MYSQL Intelimax (válido somente para pagamento via boleto bancário)
De: R$ 308,00
Por: R$ 219,00
Promoção Especial Infra
De: R$ 175,95
Por: R$ 136,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
CDs/DVDss
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
Por: R$ 59,00
DVD Curso de CorelDraw X4
Por: R$ 79,90
DVD Curso de Fireworks CS4
Por: R$ 49,90
DVD Curso de Indesign CS4
Por: R$ 55,00
DVD Curso de Efeitos Digitais
Por: R$ 49,90
Livros
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
De: R$ 129,00
Por: R$ 77,40
Foundation FLASH CS3 para Designers
Ciência Moderna
De: R$ 139,00
Por: R$ 83,40
ALGORITMOS O Guia Essencial
Alta Books
De: R$ 64,90
Por: R$ 58,40
Treinamento Prático em Dreamweaver
Digerati Books
Por: R$ 14,95
Estudo Dirigido de Adobe Photoshop CS4 em português - Para Windows
Erica
De: R$ 88,00
Por: R$ 74,80
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
Júlio Cesar Fabris Battisti
Anderson Patricio
Luiz Felipe de Freitas
Marcio Franco
Eric C M Oliveira
Robert Martim
Ramon Durães
Alessandro de Oliveira Faria
Alfred Reinold Baudisch
Os 10+ | Artigos do dia
HTML Básico
HTML Avançado
Criando aplicativos para o Orkut
PL/SQL - Procedures e Funções
Tutorial de Tabelas Dinâmicas no Excel – Parte 1
Como configurar Conexão Remota no SQL Server 2005
WCF – Gerenciamento de Instância
Básico de C++: Estrutura de um programa em C++
ASP.NET 2.0 - Explorando o GridView
Tutorial: Desenhando com o Corel Draw