sábado, 27 de fevereiro de 2010

Reconstrução - Chegou a hora

Pela segunda vez na minha carreira, chegou o momento da reconstrução de um aplicação. Está quase impossível dar manutenção, não existem testes automatizados e há um inchaço de frameworks, com Struts + Spring + Hibernate, para uma aplicação extremamente simples.


Quais frameworks pretendo utilizar?
VRaptor + Hibernate.

O que vou ganhar?
Pretendo me aventurar pelo Scrum Solo e, assim, praticar o Scrum. Não conheço o VRaptor3, essa será uma ótima oportunidade de passar a conhece-lo. É muito provável que a manutenção dessa aplicação esteja sob minha responsabilidade direta ou indireta, nada mais natural que tentar melhorar o monstro.
Pretendo estudar e praticar o TDD e melhorar a minha arquitetura. Então, resumindo, vou estudar e praticar: Scrum, VRaptor, TDD e arquitetura.

Quanto vou cobrar?
Nada. Com isso, a pressão externa desaparece e determinarei os prazos tendo em mente que estarei estudando. Reconheço que sem a pressão o desenvolvimento fica facilitado. Entretanto, o obejtivo é o estudo e criar uma referência pessoal de quanto tempo preciso para criar uma aplicação com estas tecnologias e metodologias que, com exceção do Hibernate, são completamente novas para mim. Com essa métrica, será mais fácil definir o que é possível, e tentar provar a eficiência destas metodologias e tecnologias.

O que vou perder?
Tempo com a minha família e meus poucos cabelos.

O que a consultoria/cliente vão ganhar?
Pretendo criar uma aplicação fácil de manter, coberta por testes. Além disso, criarei uma documentação em formato UML (Classes, Atividades e Sequência), já que hoje, o que temos é uma funcional descritiva brutalmente gigante.

Qual foi o prazo estipulado?
Nenhum, pois não estou cobrando. Vou estabelece-lo, procurando desenvolver de forma disciplinada. O prazo será definido após um estudo minucioso das funcionalidades da aplicação atual, que irão gerar as tarefas pendentes, que resultarão nos sprints.

Como vou distribuir meu tempo?
Estou planejando usar uma hora por dia durante a semana e oito horas do fim de semana, distribuidos, de preferência, em quatro horas no sábado e quatro horas no domingo. Em feriados pretendo, também, utilizar quatro horas.

Como tenho certeza que vai dar certo, que não vou estourar o meu prazo pessoal?
Não tenho. Além de aprender os pontos levantados neste post, pretendo detectar e corrigir as imperfeições. Não existirá impacto para o cliente se estourar o prazo, já que este é pessoal.

Como tenho certeza que não falei nenhuma besteira nas perguntas anteriores?
Também não tenho certeza. Só detectarei algo de errado neste planejamento inicial com o tempo.

Como manterei os amigos interessados informados do progresso do desenvolvimento?
Twitter e Buzz, principalmente. Não poderei informar o meu estudo das funcionalidades, pois estas informações são sigilosas. Mas escreverei sobre a parte técnica e metodologias. Quando for o caso, escreverei um post aqui.

O que será feito quando eu não puder desenvolver?
Não somos máquinas, sendo difícil desenvolver todos os dias, sem ocorrer problemas pessoais, ou algo similar. Esta situação é mais grave em um desenvolvimento solo. O que pretendo fazer é empurrar o cronograma para frente, quando acontecerem imprevistos.

Tudo vai dar certo, pois, se obtiver sucesso, vou ganhar satisfação pessoal, aprendizado e uma vida melhor durante a manutenção deste sistema. Se falhar, ganharei no aprendizado e, estudando os erros, no ajuste das minhas imperfeições.

2 comentários:

  1. Olá Celso,

    Como você disse no último parágrafo, não importa o resultado, você sempre vai ganhar. Não só você mas nós também, pois concerteza aprenderemos mais com você e suas experiências.

    Te desejo boa sorte nessa sua empreitada e fico no aguardo de novidades interessantes a respeito do teu projeto. Espero em breve também começar algo desse tipo.

    Abraços

    ResponderExcluir
  2. Todos nós aprendemos. Esse foi o principal objetivo da divulgação deste trabalho.

    Obrigado pelas palavras e também desejo boa sorte na sua empreitada.

    Abraços.

    ResponderExcluir