Como ganhar produtividade?

Trabalho hoje em uma empresa não muito grande, com uma equipe ligeiramente pequena e custos de desenvolvimento menores ainda, o que leva o nosso prazo bem abaixo do que realmente é necessário para se desenvolver um sistema comercial de médio porte que funcione e que não fique imendado por gambiarras e outras técnicas POG.

Gostaria, se fosse possível, que compartilhassem conosco como vocês e suas equipes ganharam produtividade para desenvolvimento Web, seja adotando uma nova tecnologia, framework, padrões novos ou antigos, ou até mesmo os abolindo…

Uso hoje mais ou menos essas tecnologias para desenvolvimento (e confesso que o ruby on rails , que estou aprendendo agora está me conquistando cada vez mais):

Eclipse, Mentawai, JPA, Hibernate, Granite DS, Flex e DWR

O que dá produtividade não só são as boas tecnologias. Elas ajudam muito, mas existem vários outros fatores como:

  1. Um bom processo. No seu caso, adotem um processo ágil, organizado e pouco burocrático, como é o caso do XP;
  2. Bons profissionais. Qual é a experiência das poucas pessoas que tem no seu time? E o quanto elas estão dispostas a estudar para se melhorarem? O quanto elas estão entrosadas e promovem ajuda mútua?
  3. Não use POG. Se o prazo estiver apertado, não use POG. Se o cliente estiver no seu pé, também não use POG. Lembre-se que o POG tem vários custos altíssimos associados. Além de tornar o sistema mais difícil, menos estruturado e desnecessariamente complexo, pode manchar feio o nome da empresa junto ao cliente, assim que ele começar a descobrir os erros (e ele vai descobrir).
  4. Conheça várias tecnologias, mas especialize-se em algumas delas. Saltar de tecnologia em tecnologia pode ser tão prejudicial quanto conhecer uma única tecnologia só.
  5. Desligue o seu MSN, Google Talk, etc. no horário de trabalho. Para quem tem colegas que gostam de puxar papo-furado, aquele MP3 básico na orelha também pode ajudar.

isso que o cara aqui de cima falou está 100% correto.

Mas complemento com algumas coisas

  • Crie uma Wiki interna para funcionar como uma espécie de intranet. Nela, você documenta de forma simples os projetos para que os programadores não fiquem perdidos sem objetivo. Quando os objetivos ficam claros, a equipe rende muito mais. Procure sempre fazer micro reuniões para esclarecer os objetivos de cada projeto (semanalmente se possível)

  • Crie alguns componentes durante o desenvolvimento de seus projetos (cadastro de usuário, taglib pra fazer tal coisa, login, camada de segurança, etc). E use essa mesma Wiki para catalogar esses componentes. Sempre que alguém precisar, vai buscar na sua Wiki e não vai perder tempo.

  • Use tecnologias com uma curva de aprendizado muito declinada, como VRaptor 2, Hibernate/JPA (faça um DAO bem feito para usar como componente em todos os projetos), Taglibs (tem gente que não gosta, mas vale a pena pra ganhar tempo), etc…

  • Use um gerenciador de tarefas para organizar as tarefas e ver se realmente o problema é com produtividade (quem garante que o prazo e/ou escopo não foram mal especificados?). Use o Trac, Flyspray, Bugzilla, etc. Mas use!

Em tempos de aperto e turbulência, não invente moda, faça a receita mais default que você tiver. Faça do jeito que sua equipe sabe fazer, sem gambiarra é claro.

E quando aliviar termine de estruturar componentes, treinar equipe, criar método de deploy, elaborar um método de testes e homologação de software, e por aí vai…

Bom, é fácil falar né… hehehehe
Mas passei por isso na equipe e hoje estamos muito bem. Usamos tudo isso que te falei e ajudou muito.

boa sorte!!

[quote=ViniGodoy]
5. Desligue o seu MSN, Google Talk, etc. no horário de trabalho. Para quem tem colegas que gostam de puxar papo-furado, aquele MP3 básico na orelha também pode ajudar.[/quote]

Concordo, na ultima empresa que eu trabalhei usava o msn, nao rolava. Toda hora alguem puxando papo.

Fone de ouvido eh uma das melhores invencoes da historia d humanidade. Quando vc nao ta com saco pra ouvir merda eh so colocar o fone e pronto! Genial!

Voltando, ao topico, concordo com o pessoal de cima, um bugzilla ou Jira, ajuda pra caramba fazer o tracking das suas tarefas e manter o resto da equipe atualizado.

Apesar de eu trabalhar em uma empresa grande, tudo eh dividido em pequenas equipes o que a gente faz todos os dias de manha eh uma super rapida reuniao so pra dar um update, discutir dificuldades e definir prioridades. Acho que isso tb ajuda bastante na produtividade.
Mas essas reunioes tem que ser bem direcionadas, direto ao ponto, qualquer assunto irrelevante tem que ser discutido outra hora com as pessoas envolvidadas.

//Daniel

cara, um livro que ensina muita coisas disse(produtividade, testes, logica, documentacao), e como evitar POG,RAT(Recurso auxiliar tecnico),TND(Tecnicas Não Documentadas), entre outras coisas é
CODE COMPLETE, é da “Microsoft” mas nao se preocupe, o livro possue exemplos em diversas linguagens(java, .net, C, C++ entre outras), e o que vale nele mesmo é a teoria, ele te da uma base otimo e realmente utiliza exemplos descentes, que vc pode vir a utilizar na sua vida, nada de coisas UÉ(que vc nao sabe onde utilizar).

logo mais estarei postando uns tutoriais encima do livro…acho que ate o final do mes eu passo os links…

tinha me esqueci de falar, COMENTAR O CODIGO, como costumo falar, comentario nao é telegrama, vc nao paga por utilizar as letras e o tempo que vc passa escrevendo sobre ele nao é perdido(existem os que falam isso, que o tempo que se perde escrevendo no codigo é perca de tempo, mas, fazer oq)

criar uma lista de abreviacoes(quando se usa abreviaturas nos metodos e variaveis) e publicalas na intranet, e quando for adicionar novas, discutir entre os participantes.

falow

O pessoal já disse muita coisa interessante…vou deixar só uma dica que muito ajuda minha equipe (caso vocês não utilizem): Comprem uma lousa e pinceis de cores variadas e façam uso para discutir pontos importantes do projeto, a visualização do problema por todos os membros ajuda a chegar numa solução mais rápida para qualquer problema.

Gostaria de agradecer a todos pelas dicas e vou estudar e seguir algumas delas aqui juntamente com minha equipe.

Gostaria agora de falar em tecnologias para desenvolvimento que tornam o processo mais rápido.

O meu maior problema aqui hoje não é simplesmente “o que fazer”, é “em quanto tempo vai ficar pronto”.

A maior perca da produtividade e do tempo no nosso processo de desenvolvimento é com as tarefas repetitivas, como por exemplo, a construção dos Beans, e todos os gets e sets, como a criação de Actions “ocas” e Daos, coisas que são comuns entre quase todos os modelos de negócio, coisas que existem em grande escala na faze inicial de uma aplicação e que (pelo menos aqui), nos tomam a maior parte de um projeto.

Gostaria que compartilhassem conosco o tipo de ferramentas que usam para ganhar produtividade nesse sentido,

algo como Equinox, AppFuse, tarefas ANT, plugins do Eclipse e Netbeans e etc…

Desde já agradeço as respostas