Como codificar em um cronograma muito apertado?

40

Estou trabalhando em um projeto que tem um cronograma muito apertado. Não tenho muito tempo para codificar e testar (embora eu trabalhe mais de 12 horas todos os dias, ainda está atrasado), e o resultado é muito frágil. Seu código também é muito dilema.

Este programa é usado por todos os escritórios da empresa de nossos clientes, localizada em muitos países. Eu recebo telefonemas regularmente à meia-noite sobre erros de nosso usuário / testador ou sobre eles não saberem usar alguns recursos.

Depois de três anos nesse projeto, sinto-me muito estressado e não consigo dormir bem porque estou muito preocupado com erros e telefonemas.

Eu tenho algumas perguntas:

  1. Por três anos, todo o código que escrevi é apenas o código do cenário de uso perfeito (para que ele se quebre facilmente). É mal projetado e não possui nenhum teste de unidade. Eu tenho muitos problemas por causa disso. Portanto, quero saber se é possível escrever código que funcione quando o projeto tem um cronograma muito apertado?
  2. Como posso escrever um código melhor na mesma quantidade de tempo?
  3. Como posso clarear minha mente e não ficar preocupado com o trabalho quando vou dormir?
Anônimo
fonte
9
Sugestão? O mais óbvio e você sabe disso !!!
Aditya P
25
Desligue o telefone à noite. Estabeleça limites e cumpra-os. Você tem duas questões distintas aqui, a primeira é a sua empresa, não respeitando que os funcionários também tenham vidas para viver.
Tim Post
34
sair do emprego, obter um novo. Além disso, aprender a fazer testes de unidade
mauris
18
Prazos são um problema da gerência. Se os prazos são sempre tão apertados, eles precisam trabalhar para fornecer melhores estimativas - não trabalhar como um cachorro para cumprir o que eles achavam que seria necessário.
Steven Evers
4
Tenho certeza que se os jogos da EA contratassem SnOrfus, ele o faria.
Berin Loritsch 04/04

Respostas:

30

Banir chamadas telefônicas

Se seus usuários estão em todo o mundo, certamente não podem esperar que você atenda um telefone quando forem quatro da manhã e você estiver na cama. Eu proibiria telefonemas e mudaria para outros meios de comunicação que possam atender melhor a esse cenário (email ou algum banco de dados de rastreamento de problemas). Mas mesmo no escritório, faça uma programação agendada de acessibilidade por telefone. Caso contrário, você não poderá fazer nada durante o período em que estiver no escritório.

Isso proporcionará um sono e descanso valiosos.

Horário apertado

Se esse projeto foi apertado por três anos, alguém deve suspeitar de algo que realmente não está funcionando. Talvez já esteja na hora de alguém dizer aos planejadores algo e especialmente aos seus usuários / clientes e gerentes que este é um projeto de marcha da morte. Está em desenvolvimento há três anos, está atrasado e está cheio de bugs. O plano deve ser completamente reavaliado, o código existente deve ser refatorado e os novos recursos não devem ser desenvolvidos até que vários problemas sejam resolvidos.

Ordem do caos

Estabeleça uma metodologia de desenvolvimento que torne as coisas previsíveis e suportáveis ​​para você. Se você é um desenvolvedor, atender chamadas telefônicas quando elas entram não permite que você faça nenhum trabalho. Cada interrupção leva 15 minutos para voltar ao ponto em que você parou. As chamadas telefônicas devem estar desligadas . Pelo menos em sua mesa porque você é um desenvolvedor. Se você puder redirecionar chamadas telefônicas para outra pessoa que não o incomodará após cada ligação, isso será feito.

Estabeleça algum tipo de banco de dados de incidentes / erros. Dedique algum tempo todas as manhãs quando chegar ao trabalho e priorize novos incidentes (você, sua equipe ou seu cliente / gerente). Tente resolvê-los nessa ordem posterior de prioridade e nem tente pensar em telefonemas.

E se

E se você não puder desligar o telefone e não puder dizer aos usuários que eles não podem ligar para você quando quiserem? Se você tiver o número de telefone do usuário, sugiro que você faça o oposto: quando ele ligar para você, faça um aviso e informe que você ligará de volta quando ele for solucionado. Depois, ligue de volta quando estiverem dormindo. Se eles lhe disserem que estão dormindo, lembre-se da resposta e use-a quando ligar para você no meio da noite da próxima vez. As pessoas geralmente entendem melhor sua própria língua.

Se eles usarem o telefone do escritório e você usar um telefone celular para que não possa telefonar para ele fora do horário de trabalho, eles podem começar a desligar o celular depois de sair do escritório. Você está lá há 12 horas e merece estar fora do trabalho. Se o seu telefone celular for seu, sua empresa deve comprar um novo e você deve informar seus usuários / clientes sobre isso. Se eles começarem a ligar para você pessoalmente depois (porque eles não podem entrar em contato com você na sua empresa, você também:

  1. não atenda
  2. atenda-o por um amigo, informando-o sobre o número errado ou que o usuário original deste número não o está mais usando.

A coisa mais importante

Não desenvolva nenhuma nova funcionalidade até resolver os problemas existentes. Pelo menos de alta e média prioridade.

Robert Koritnik
fonte
6
Não seja agressivo passivamente com os usuários. Se a empresa não espera que você atenda seu telefone fora do horário comercial, não o faça. Precisa haver outro número para alguém que está de plantão.
Jeffo
@ Jeff O: Eu concordo totalmente. Mas, uma vez que isso ocorre há três anos, parece-se esperado que atenda chamadas nessas horas desumanamente.
precisa saber é o seguinte
11
Eu sugeriria que você os dissesse com antecedência, em vez de instigar. Não seria tanto o fato de as pessoas entenderem melhor sua própria língua, pois não querem falar com você porque a consideram desagradável.
Rei Miyasaka
3
"chamá-los de volta quando eles estão dormindo" "As pessoas normalmente entendem sua própria língua melhor" bom;)
Achu
2
Honestamente, se ele chegar ao cenário "E se", a melhor opção é apenas encontrar outro lugar para trabalhar. Não é saudável (para a maioria) trabalhar dias contínuos de 12 horas e é ainda pior quando você está de plantão também. Certamente, ele deve fazer o máximo que puder para resolver o problema, mas se tudo mais falhar, saia. Esta situação não é sustentável.
22612 Dan Lyons
14

A menos que você seja a única pessoa na equipe - nesse caso, você provavelmente está a meio caminho da estrada para se esgotar - se revezam com o 'pager'. Isso deve diminuir a carga por enquanto.

Então você precisa dizer à gerência que eles precisam agendar uma fase para pagar a dívida técnica - isso significa teste, limpeza de código, refatoração. E isso precisa ser agendado em breve. Geralmente, isso significa que, por um tempo, não há novo código que não seja uma refatoração ou um teste. Se não, só vai piorar.

Uma vez nessa fase, você escolhe as seções mais problemáticas da base de código, refatora-a, limpa-a e escreve testes para testar a merda dela. Quando as chamadas param ou podem ser tratadas sem que os desenvolvedores enlouquecem, você está pronto para outra fase dos recursos (se é isso que eles querem). Nesse ponto, você escreve testes com o novo código e continua executando as regressões. No momento, o software parece estar no caminho de uma reescrita.

Pontos de venda para sua conversa com seu chefe:

  • Testes automatizados podem parar ou diminuir significativamente as regressões
  • Focar na estabilidade significa que os usuários terão menos atrasos / interrupções no trabalho
  • Chega de ligações à meia-noite significa que eles não estão pagando horas extras
  • Chega de ligações à meia-noite significa que os desenvolvedores não vão esgotar-se tão rápido

Sejamos honestos. Até o momento, sua empresa não achou que esse fosse um problema grande o suficiente para se fazer algo; você vai queimar. Parece que ninguém na administração tem uma experiência real de desenvolvimento. Comece a procurar.

Steven Evers
fonte
Melhor ainda, entregue o pager ao (s) gerente (s) que colocou você nessa confusão ... ou acidentalmente jogue-o em um balde de água salgada.
Stephen C
2
Se esse projeto estiver caoticamente em andamento há três anos, suponho que a fase do departamento de tecnologia demore alguns meses. Eles devem primeiro parar de desenvolver novos recursos, resolver 20% dos problemas mais problemáticos (porque 80% deles raramente esperam encontrar-se) e depois começar a refatoração. Quando terminar, você pode começar a tocar outros 80%. Mas não comece a desenvolver novos recursos até resolver todos os problemas atuais. Por quê? Quanto mais cedo você resolver um bug, mais barato será resolver. Mesmo que no seu caso, nada mais pareça barato.
precisa saber é o seguinte
@Robert Koritnik: Absolutamente. 1
Steven Evers
13

Embora possa haver algumas técnicas que permitirão obter pequenos ganhos de produtividade, um aumento de 5% na produção do trabalho é pior do que inútil para você no momento. A verdadeira habilidade que você está perdendo aqui é simples e fundamental:

Aprenda a dizer não

Diga não a todas as expectativas irracionais que você já sabe que deveria recusar. Você sabe o que são. Isso é óbvio. Se você não pode dizer não agora, encontre um emprego onde puder. Empregadores inteligentes acharão essa habilidade desejável.

Rein Henrichs
fonte
11
Mais do que tudo, esta é a habilidade necessária. Ótima resposta!
Joe Z
8

Comece entendendo que seu projeto falhará se nada mudar. Este é o passo mais importante para fazer o que você precisa fazer. Um desenvolvedor não pode sustentar 12 horas por dia de esforço e pode produzir código útil. Você chegará a um ponto em que criará erros estúpidos e perderá o progresso porque precisará começar todos os dias consertando o que fez no dia anterior. Parece que você já está lá.

Há dois problemas principais que precisam ser resolvidos antes que você possa ter sanidade novamente:

  • A gerência precisa saber que o que eles estão fazendo não está funcionando . Continuar repetindo os mesmos erros produzirá os mesmos resultados. Algo tem que mudar.
  • Você precisa de tempo para consertar o que já possui. Isso significa que você precisa de tempo para planejar seu ataque e precisa trabalhar tempo usando 8 horas de trabalho por dia.
  • Você precisa mudar a forma como trabalha. Entenda que quanto mais estresse você tem, mais visão de túnel você tem. Você não pode pensar em maneiras criativas de resolver os problemas ou sequer pensar no que acontece se houver um problema quando estiver estressado assim. Sem mencionar que você tem uma chance maior de complicações graves de saúde. Encontre maneiras de liberar o estresse e encontre maneiras de reduzir o estresse.

Para corrigir sua situação, você precisa da adesão da gerência. O problema é que eles não estão sentindo dor e você não quer acabar no hospital com um derrame para chamar sua atenção. O primeiro passo é explicar à sua gerência onde você está e a pressão que está sofrendo. Se não conseguirem, suba outro nível de gerenciamento. Ou, possivelmente, descreva suas condições de trabalho para o departamento de RH. Exigir que você trabalhe mais de 8 horas por dia por longos períodos de tempo pode ser uma violação da lei, e o departamento de RH terá certeza.

Supondo que a gerência ouça o seu pedido, você deseja executar as seguintes ações:

  • Pare o sangramento. Não há novos recursos e outra pessoa lida com as chamadas de serviço. Você precisa se concentrar na tarefa em questão.
  • Identifique os bugs mais graves que precisam ser corrigidos e tente descobrir quanto tempo levará para corrigi-los. Essa é uma estimativa aproximada e é melhor ter números maiores que números mais baixos. Para contabilizar reuniões e interrupções ao longo do dia, sua gerência precisa da estimativa com base no trabalho realizado por 5 horas por dia. Isso deixa 3 horas para reuniões e interrupções.
  • Faça com que o gerenciamento concorde com o cronograma revisado para esses erros críticos.
  • Faça com que a gerência aceite que outra pessoa faça o teste para você. Isso não é admitir que você não pode fazer seu trabalho. Isso é simplesmente fornecer alguma garantia de qualidade para que cada versão seja melhor que a anterior.
  • Agora você os conserta. Escreva testes de unidade para reproduzir o problema, para que você saiba quando está trabalhando. Mais importante, você saberá se algo que você fez em outro lugar quebrou novamente. Refatorar para fazer o código funcionar melhor.

Depois de concluir a versão crítica, é hora de planejar a próxima. Todos os recursos e correções de bugs precisam ser priorizados e as liberações precisam ser planejadas em torno de um subconjunto da carga de trabalho pendente. Você descobrirá que, ao trazer alguma sanidade à sua vida profissional, seus níveis de estresse diminuirão, sua qualidade aumentará e você será mais eficiente em geral.

Berin Loritsch
fonte
6

Você parece estar sofrendo com o que considero um caso de economia falsa , e quanto mais você aderir a essas coisas que não funcionam, pior será o seu problema.

Alguns indicadores principais:

  • O que parece ser um cronograma irrealista.
    • Suponho uma compreensão insuficiente das boas práticas de desenvolvimento por parte da gerência.
    • Presumo falta de entendimento ou apoio da gerência.
  • Trabalhando 12 horas por dia.
  • Altos níveis de estresse.
  • Falta de dormir.
  • Ansiedade.
  • Má atenção ao design e à qualidade do código.
  • Falta de uma rede de segurança para testes de unidade.

Quero saber se é possível escrever código que funcione quando o projeto tem um cronograma muito apertado?

A resposta curta é sim. A resposta longa é complexa e exigirá uma mudança maciça de percepções em nome da gerência e, possivelmente, também do cliente, e um esforço hercúlea da sua parte ... mas voltarei a tudo isso em um momento.

Como posso escrever um código melhor na mesma quantidade de tempo?

Realisticamente, você não pode se supor que pode fazer qualquer coisa que lhe poupe tempo e ainda assim obtenha um resultado perfeito. Você precisa aplicar técnicas que aumentarão o tempo necessário para implementar seu código, porque você precisará de um tempo para se concentrar em obter os detalhes corretos. Isso leva tempo, e é aqui que suas falsas economias estão mais afetando você. No entanto, ao fazer as coisas de uma maneira melhor, você melhora a qualidade do seu código e isso, por sua vez, resultará na redução da fragilidade do seu sistema. Mais uma vez, vou explicar isso mais adiante.

Como posso clarear minha mente e não ficar preocupado com o trabalho quando vou dormir?

A ansiedade causa falta de sono e a perda de sono cria ansiedade. Este é um círculo vicioso, se é que houve algum, e se não for controlado, provavelmente levará à depressão gêmea do mal da ansiedade . A perda crônica de sono, que suponho que seja provavelmente combinada com a falta de exercício e também com maus hábitos nutricionais, provavelmente resultará em fadiga crônica . Tudo isso é sintomático de todos os problemas que você está enfrentando no seu local de trabalho e dos problemas resultantes que provavelmente está enfrentando em sua vida doméstica. É aqui que reside a maior evidência de falsas economias, e provavelmente é o problema mais sério com o qual você precisa lidar primeiro.

Agradeço também todas as sugestões.

Antes de mais nada, devo declarar que não sou um profissional médico, e você deve procurar aconselhamento com seu médico antes de agir sobre qualquer coisa. Observarei, no entanto, que vivi as experiências que você descreveu em sua postagem e sei como é difícil lidar com elas e como é importante fazer algo a respeito. Eu vivi a depressão, a ansiedade, o cansaço crônico, o estresse e todos os outros pequenos problemas que os acompanham, por isso vou oferecer alguns conselhos com base nessas experiências:

  • Vá ao seu médico e discuta seus sintomas. Informe o médico se estiver cansado, se estiver deprimido ou preocupado na maior parte do tempo, se tiver resfriados e gripes com frequência e como está se sentindo fisicamente. Se o seu médico for autorizado, é provável que você ofereça medicamentos anti-ansiedade ou mesmo anti-depressão. Mesmo se você se sentir relutante, deixe o orgulho na porta e tome-o como prescrito. Eles realmente ajudam e permitem que você encontre forças para lidar com tudo o que está por vir.
  • Procure um bom psicólogo para discutir seu problema como você o conhece e quem pode ajudá-lo a explorar como você se sente sobre tudo isso e a desenvolver estratégias para lidar com o problema. Algumas das coisas que você deve fazer podem parecer inúteis ou um pouco insolentes. Faça de qualquer maneira, porque, novamente, isso realmente ajuda, principalmente ao ensinar especificamente como limpar sua mente.
  • Evite comprimidos para dormir, a menos que você realmente precise deles, pois pode ficar dependente deles e piorar seus problemas de sono. Pessoalmente, tomo-os apenas quando não consigo dormir o que preciso depois de um fim de semana, e é geralmente quando tenho um fim de semana preguiçoso e não realizado.
  • Olhe para mudar sua dieta. Cortar seriamente a cafeína, pois apenas contribui para um nível elevado de ansiedade. Reduza seus carboidratos e equilibre sua dieta, e com isso quero dizer comer mais frutas e vegetais naturais, reduzindo a quantidade de carne vermelha que você consome e reduzindo gorduras e óleos. Corte os refrigerantes e limite-se a uma única xícara de café por dia, se achar impossível desistir. A dieta é fundamental para ajudar você a combater o cansaço. Além disso, coma sua última refeição mais cedo para não dormir com o estômago cheio.
  • Faça exercícios todos os dias. Faça um exercício extenuante pelo menos uma vez por semana, no mínimo, e caminhe ou ande de bicicleta por pelo menos 30 minutos por dia, a ponto de exercitar pelo menos um suor leve. Isso ajudará a cansá-lo fisicamente, o que ajudará no sono e no cansaço.
  • Mude seus hábitos de dormir. Procure acordar cedo para o trabalho, para que você precise ir para a cama mais cedo do que deseja. Se você não conseguir dormir, descanse em uma sala pouco iluminada e leia algo chato, e não se preocupe se não conseguir dormir imediatamente.

Agora que analisamos todas as coisas relacionadas à medicina, vejamos o que você pode fazer sobre o seu trabalho:

  • Alguém sugeriu o uso da técnica Pomadoro. Isso também é conhecido como time-boxe, e acho que é uma boa ideia. Você basicamente se concentra intensamente por 20 a 25 minutos e depois faz uma pequena pausa. Eu sugiro que você se levante e se movimente por cerca de 3-5 minutos e olhe para longe para descansar os olhos. Tente não pensar em suas tarefas durante esse período. Tome uma bebida, vá até o banheiro ou simplesmente vá ao seu escritório por um breve período.
  • Dependendo do seu relacionamento com seu chefe, encontre uma maneira de conhecer e discutir suas preocupações de que o horário de trabalho esteja afetando sua saúde. Diga a ele que você não quer arriscar decepcionar o cliente da empresa e que gostaria de tentar desenvolver uma estratégia que garanta a continuidade do seu trabalho, mas isso significa que você precisa reservar um tempo para resolver seus problemas de saúde também. No entanto, use isso como último recurso, pois seria melhor explicar as economias falsas que estão funcionando aqui, como:
    • Trabalhadores fatigados acabam com uma eficiência bastante reduzida, enquanto trabalhadores não fatigados têm a capacidade de fazer mais em um curto espaço de tempo, e eu tentaria obter algumas figuras e estudos que você pode usar para fazer o backup. Com um bom chefe, você nem deveria precisar disso. Os seguintes artigos podem ser úteis para você: artigo 1 , artigo 2 , artigo 3
    • Ignorar testes e atenção a alguns dos pequenos detalhes custa mais tarde. Analise o conceito de Dívida técnica como ponto de partida.
  • Tente reduzir o seu horário de trabalho para 8 a 9 horas por dia.
  • Reserve um período de férias e fique longe por um tempo em algum lugar quieto. Mesmo se tudo o que você fizer é dirigir seu carro para a floresta e acampar por uma semana. Sério, não faça nada por um tempo para recarregar suas baterias.

Em termos de coisas reais relacionadas à programação:

  • Leia os livros Código Limpo e Refatoração e reserve um tempo para aplicar as técnicas. Isso ajudará você a lidar com o problema da qualidade do código. Como mencionei antes, parece que as coisas demoram mais para serem feitas, mas você passará menos tempo lidando com bagunças e problemas resultantes de como você pode ter trabalhado anteriormente.
  • Encontre ferramentas que você possa integrar ao seu ambiente de desenvolvimento para ajudá-lo em seus esforços para melhorar a qualidade do código. Por exemplo, se você estiver desenvolvendo no Visual Studio, o uso de uma combinação de ferramentas como Resharper e NCrunch pode contribuir para aumentar massivamente sua eficiência geral se você as usar religiosamente e se já estiver aplicando boas técnicas, conforme descrito nos livros que mencionei. .
  • Escreva testes de unidade e use uma abordagem de teste primeiro. Isso parecerá mais lento, mas você acelerará o seu desenvolvimento em geral quando você tiver testes, pois eles podem contribuir para reduzir o tempo de depuração e dar a você a confiança para alterar o código testado. Escreva seus testes para atender aos requisitos e não ao código. Isso concentrará seus esforços de teste de forma construtiva, o que deve minimizar o tempo gasto no teste.

Mais importante de tudo, você precisa gerenciar as expectativas, começando pelas suas. Você é apenas humano e só pode fazer muito a qualquer momento. Você precisa gerenciar as expectativas de seu chefe e fazer com que ele se encarregue diretamente) de gerenciar as expectativas de seus clientes. Isso significa priorizar seriamente o trabalho que você faz. Aloque tempo para novos recursos e tempo para bugs e assuma que seus prazos serão cumpridos. Ao lidar com a possibilidade de adiar as datas de entrega, prometa apenas fornecer um conjunto de recursos críticos e deixe o restante como "agradável de ter, se possível". Na próxima data de entrega, você passará novamente por esse processo, aumentando as prioridades do prazo de entrega anterior e assim por diante. Construa isso em sua metodologia de desenvolvimento como um ponto de partida mínimo, e depois revise após algumas entregas para ver onde você pode ajustar seus processos e melhorar sua eficiência. As maiores eficiências virão de suas mudanças no estilo de vida, no entanto, sempre há poucas coisas que você pode fazer para otimizar seu trabalho, como reduzir as despesas gerais relacionadas à documentação e comunicação entre você e os usuários finais.

Seja proativo em tudo isso. Mostre ao seu chefe que os dois podem trabalhar juntos para melhorar realmente os assuntos, o que acabará refletindo bem em vocês e na empresa em geral.

Além disso, não tome decisões drásticas agora. Espere até que você lide com sua saúde e sua carga de trabalho e veja como vai por um tempo. Quando sua mente ficar mais clara e quando você sentir que está em um lugar melhor, será a hora de decidir se vale a pena ficar ou se é hora de seguir em frente. O que estou dizendo basicamente é lidar com um problema de cada vez e deixar o resto mexer um pouco até que eles precisem de sua atenção.

S.Robins
fonte
4

Se sua agenda é pequena, você precisa ser compulsivo quanto a Não se repita . Identifique os métodos mais usados ​​e garanta que eles sejam reutilizados fortemente.

Planeje o que você estará trabalhando hoje, anote e cumpra-o. Tente limitar o que você precisa lembrar a qualquer momento a sete ou menos itens.

Eu daria mais um passo e evitaria repetir o trabalho de outras pessoas. Use as bibliotecas do idioma sempre que possível. Use bibliotecas de terceiros, se possível.

Pode parecer que leva mais tempo para escrever, mas procure métodos que façam apenas uma coisa. Limito um método a tomar decisões ou a fazer coisas. A coesão do seu código deve aumentar enquanto o acoplamento diminui. Você deve achar que o teste é mais fácil. Isso se presta bem à decomposição progressiva.

Simplifique o máximo possível. Use modelos, listas de verificação e quaisquer técnicas que permitam evitar pensar em trivialidades.

Você precisará evitar interrupções. Cada interrupção custará cerca de 15 minutos na programação. Proteja seu tempo.

Se isso for de longo prazo, vá para casa quando descobrir que seu desempenho está ficando lento. Se você trabalha constantemente 12 horas por dia, é provável que seu desempenho seja o que você obteria trabalhando 8 horas por dia. Você pode não perceber o quanto seu desempenho está degradado. Aproveite as quatro horas extras para se exercitar e descansar. Veja se você pode tirar uma soneca no meio do dia ou tirar algumas horas depois do almoço.

BillThor
fonte
4

Se eu fosse você, conversaria com meu gerente e explicaria a eles que os prazos que eles estão estabelecendo não são realistas. Se você continuar trabalhando assim, eles acharão que está tudo bem, eles não estarão cientes dos problemas que você está tendo e você acabará adicionando cada vez mais código mal escrito ao seu sistema, o que vai complicar ainda mais o seu trabalho.

Como alternativa, você sempre pode mudar para outro trabalho :-)


fonte
2

Acompanhe tudo o que você faz

Reserve um tempo para rastrear tudo o que você faz e quanto tempo você e sua equipe gastam nisso. Isso acabará sendo o que você traz para a gerência para mostrar a eles que você precisa fazer as coisas de maneira diferente. Se você não tem os fatos concretos sobre o que está fazendo e quanto tempo está gastando para corrigir os problemas relatados por outras pessoas, será muito mais difícil convencê-los de que mudanças precisam ser feitas. Cada hora deve ser rastreada por todos para que isso seja preciso. Isso deve ser usado para dizer que você passou 80 horas nas últimas 3 semanas consertando um sistema que poderia ter sido reconstruído desde o início na mesma quantidade de tempo.

Tente mudar as coisas

Use o rastreamento que você reuniu e as ótimas sugestões que outros fizeram para elaborar um plano para melhorar o software. Escolha as partes do software que estão causando mais problemas. Elabore o plano que você acha que trará as coisas a um ritmo gerenciável normal. Dê tempo para trabalhar.

Prepare-se para o fato de que talvez seja hora de sair

Se a gerência não estiver disposta a mudar as coisas e trabalhar com você, talvez seja hora de pensar em seguir em frente. Eu concordo com os outros que você está queimando. Comece a preparar seu currículo e portfólio. As coisas podem melhorar e você não precisará seguir em frente, mas se a gerência não se comprometer a fazer alterações, siga em frente. Sua saúde mental e física é mais importante do que permanecer em um emprego que está tirando muito de você.

Amy Patterson
fonte
Eu tenho que discordar da parte "rastrear tudo" porque, se esses dados forem entregues à gerência, eles podem muito bem ser críticos da menor imperfeição em como o funcionário está gerenciando o tempo. Isso agravará o estresse do funcionário.
Acumenos
2

Pelo amor de Deus, onde está o seu gerente de projeto?

Se você não possui um gerente de projetos para ajudá-lo a estabelecer um tempo produtivo, precisa de um. Você precisa de uma pessoa dedicada a manter seu tempo de desenvolvimento, limitar a fluência do escopo, gerenciar expectativas, etc.

Você faz um trabalho criativo para viver. Se você não tem uma barreira entre seus clientes / usuários e você, como você pode se concentrar efetivamente no seu desenvolvimento?

Um bom PM pode ser bom para muitas coisas ...

1. Para jogar a carta 'Higher Power':

Seus usuários estão incomodando você por novos recursos, mas você realmente precisa de algum tempo para se concentrar em uma versão de correção de bug. Quem disse que você tem que conversar com os usuários? É sua responsabilidade escrever os contratos? É seu trabalho gerenciar as expectativas dos clientes? Você tem poder de decisão final para ditar os termos do contrato?

Não? Então, por que você é o único responsável por interagir com o cliente? O desenvolvimento é difícil e requer muita concentração. Você precisa recuperar o tempo de desenvolvimento e pode fazê-lo com uma boa MP e uma boa desculpa.

Independentemente do que o seu PM faça em relação a você, se os clientes começarem a incomodá-lo com modificações fora das especificações, basta dizer.

"Negociar alterações fora das especificações está acima da minha nota de pagamento ..."

É uma maneira educada de dizer, eu não dou a mínima.

Siga isso doendo o 'Scope Creep Dog' neles.

"Se você quiser fazer alterações nas especificações, precisará entrar em contato com o meu gerente"

Agora me deixa em paz. A capacidade do usuário de interagir diretamente com os desenvolvedores é permitida como um privilégio que pode ser retirado. Se não for esse o caso, sua administração está falhando com você.

2. Gerenciando expectativas 101

Quem em sã consciência pensa que você pode trabalhar com uma agenda tão louca e lidar com o suporte técnico 24/7. Você precisa de alguém para defendê-lo, porque seu tempo é valioso e deve ser dedicado ao seu ofício.

Isso se aplica aos clientes e à empresa em que você trabalha. Para os clientes, se eles estão ultrapassando, você sempre pode perguntar ...

"Este serviço está escrito no contrato?"

Caso contrário, você tem o direito de rejeitar solicitações. Não me entenda mal, é bom ir além para deixar seus clientes felizes, mas é igualmente importante que eles saibam a diferença entre o que é esperado e o que você está dando a eles como um favor.

Para a empresa em que trabalha, você precisa de alguém para transmitir a mensagem ...

"O trabalho que me pedem para fazer é igual ao meu salário?"

Ou seja, eles estão pagando 60 mil por ano para gastar 50% do seu tempo prestando suporte técnico por telefone, o que é uma posição de pagamento muito menor. Esse é um tópico perigoso para abordar, para que você precise de um gerente de confiança em que possa confiar. O argumento que você deve fazer para ele é ...

"Sou pago 60 mil por ano, mas metade da minha produtividade potencial está sendo desperdiçada em trabalho servil".

Ou, vocês me contrataram e estão de bom grado perdendo dinheiro com esse investimento, fazendo com que eu gaste metade do meu tempo preenchendo uma posição de baixa nota. Acredite ou não, maximizando seu potencial, eles podem ganhar mais dinheiro a longo prazo.

Quando se trata de negócios, é muito mais fácil fazer com que a empresa mude de posição se você pode apresentar uma situação em que todos saem ganhando. Você não precisa ser um mestre em negociação para que este continue. Obviamente, se os recursos da empresa forem limitados, isso poderá sair pela culatra.

3. Todo mundo poderia usar uma líder de torcida às vezes

Um bom PM será naturalmente uma pessoa-pessoa. O núcleo do que eles fazem é as relações das pessoas. Um bom PM terá a capacidade de dizer ao seu cliente o que ele não quer ouvir e ainda assim deixá-lo ir embora feliz.

Eles também podem ser uma grande fonte de apoio moral quando os tempos ficam difíceis. Um simples impulso moral não deve ser demais para um bom PM lidar, se você perguntar. Você precisa de alguém do seu lado, ou o seu moral diminui e o trabalho parece esmagador.


Se você não tem alguém mais alto na organização que é responsável por gerenciar as expectativas, seu gerenciamento está falhando e os superiores provavelmente nem sabem o quão ruim está o projeto.

Essa é a principal razão pela qual evito trabalhar para empresas como a praga. Tive a sorte de trabalhar para empresas menores, onde tenho alguém mais alto. Posso honestamente discutir problemas com quem manterá confidencialmente o que tenho a dizer e tomará medidas, se necessário.

Você precisa de alguém do seu lado para ajudar a mantê-lo alinhado com os requisitos de negócios e gerenciar distrações. Se você não tem isso e não há esperança de encontrá-lo no futuro, boa sorte ...

Evan Plaice
fonte
1

Uau uau uau ! Segure o seu cavalo cowboy !. Você parece ter um desenvolvimento totalmente errado lá. Você está perdendo alguns fundamentos de software aqui durante a codificação. Sim, retifique seu básico ... a vida será muito mais fácil.

De volta à hora da escola agora

  1. Programações de desenvolvimento rápido de domar-software *
  2. Mítico Homem-Mês *

*Deve ler

Imran Omar Bukhsh
fonte
2
próxima pergunta - como código e conseguem ler alguns livros em uma :-D calendário apertado
Ventsyslav Raikov
11
@ Bond - cara, nós já deveríamos ter lido esses livros antes de iniciar o projeto. Caso contrário, precisamos entender que o aprendizado contínuo faz parte do nosso desenvolvimento de software. Não devemos pensar na leitura como parte do nosso trabalho diário. Nós já deveríamos estar lendo há algum tempo diariamente. Eu acho que é o direito de um desenvolvedor de software gastar algum tempo lendo mesmo durante o horário comercial. Eu pessoalmente vi que ler apenas 5 páginas por dia causa um enorme impacto. Começar a ler agora ajudará você a economizar tempo no seu próximo projeto.
Imran Omar Bukhsh
concordo absolutamente com você cara, eu leio todos os dias. Mas eu não trabalho (o que presumo significa código na pergunta acima) 12 horas por dia. Se o fizesse, definitivamente não leria nenhum livro. Há mais na vida do que trabalho.
Ventsyslav Raikov
@ Bond - verdade, mas não haverá muita vida se não trabalharmos da maneira correta. Na minha empresa, trabalho 5 horas por dia. Criamos um mecanismo de rastreamento em cerca de 1,5 anos. Temos mais de 1 milhão de visitantes por mês.
precisa saber é o seguinte
1

Eu gosto de fazer uma lista de tarefas, classificá-la em ordem de necessidade e manter essa ordem incondicionalmente - mesmo que eu queira procrastinar algumas tarefas.

Você ficaria surpreso com quanto tempo você pode economizar apenas reduzindo o tempo gasto pensando no que trabalhar em seguida.

Rei Miyasaka
fonte
1

Agora, o que você pode fazer é

  • Emparelhar com um colega
  • Todo o código que você escreve ou altera, você deve concordar em ser bom o suficiente. De preferência como programação em pares, faça uma revisão por pares apenas se você não puder emparelhar o programa.
  • não se desvie disso!

Isso significa que pelo menos o que você faz a partir de agora foi aprovado por DUAS pessoas, com esperança de melhorar esses bits de código.

O que mais pode ser feito depende do gerenciamento. Você pode mostrar a eles esta pergunta com as respostas!


fonte
Eu tenho que discordar totalmente da programação em pares. Não é assim que pensadores independentes ou mentes criativas trabalham. Também nunca substitui uma revisão por pares da equipe.
Acumenos
1

Interrompa telefonemas e implemente uma regra estrita de "bugs vá apenas para o rastreador de erros". Então, o seu primeiro passo do dia é fazer a triagem de bugs recém-inseridos, limpar duplamente, priorizar e começar a trabalhar com as correções de bugs PRIMEIRO. E certifique-se de que suas correções realmente corrigem o erro e não introduzam novos erros.

Como você faz essa última parte? Atualizando casos de teste em seu código existente. Se você tiver funções, teste se elas inserem e produzem o que você espera e que elas falham bem se você der a elas lixo. Use algum tipo de teste automatizado da interface do usuário para testar a integração e o desempenho frente a frente.

Você não está saindo da cama às três da manhã para resolver problemas de código, está? Nesse caso, você merece tudo o que recebe.

Dan Ray
fonte
0

Tente usar a técnica pomodoro . Além disso, tenho três regras pessoais para saber se estou escrevendo um código bom ou ruim que você pode achar útil.

dukeofgaming
fonte
0

Você e desenvolvedores como você são a única razão pela qual consigo pensar em exigir uma licença de desenvolvimento de software, como médicos e advogados. Dessa forma, sua licença pode ser revogada por não seguir boas práticas básicas mínimas de programação. Além de proteger o setor de incompetentes, protegerá também os programadores competentes dos gerentes que insistem em que os programadores não sigam boas práticas.

Para sua informação, praticamente todo mundo trabalha em um prazo apertado. No entanto, os desenvolvedores que sabem o que estão fazendo seguem as práticas recomendadas porque o trabalho é feito mais rapidamente a longo prazo. Então eles não precisam trabalhar 12 horas por dia durante 3 anos seguidos.

Dunk
fonte