Skip to content

Instantly share code, notes, and snippets.

@JPBM135
Last active April 3, 2024 20:41
Show Gist options
  • Save JPBM135/f9ab61091dbedc2763026cc65c674830 to your computer and use it in GitHub Desktop.
Save JPBM135/f9ab61091dbedc2763026cc65c674830 to your computer and use it in GitHub Desktop.
Clean coder - Chapter 9 <> Bullet points

Gestão do Tempo

  • Levante cedo
  • Divida o tempo restante em segmentos de 15 minutos e preencha conforme apropriado
  • Deixe 15 minutos por hora para possíveis interrupções
  • VALORIZE SEU TEMPO
  • Tempo é dinheiro

Reuniões:

  • Reuniões são necessárias
  • Reuniões são grandes desperdiçadoras de tempo
  • Priorize reuniões com benefício imediato
  • Você não precisa participar de todas as reuniões
  • Pergunte a si mesmo se você pode dispor do tempo
  • Peça ajuda aos seus supervisores
  • Se uma reunião estiver ficando entediante, não hesite em sair educadamente
  • As reuniões precisam ter uma agenda clara e um objetivo

Reuniões de Stand-Up

  • Faça uma rodada para responder três perguntas
    • O que eu fiz ontem?
    • O que vou fazer hoje?
    • O que está impedindo meu progresso?
  • Não mais que 20 segundos (1 minuto por pessoa)

Reuniões de Planejamento de Iteração

  • Selecione itens do backlog que serão executados na próxima iteração
  • As estimativas já devem ter sido feitas
  • Os testes de aceitação/componentes já devem estar planejados
  • Os itens devem ser brevemente discutidos e aprovados/rejeitados
  • Não mais que 5/10 minutos por item
  • Se uma discussão mais longa for necessária, ela deve ser agendada para outro momento com um subconjunto da equipe
  • Regra geral: uma reunião não deve durar mais que 5% do tempo total da iteração (40h por semana, a reunião deve durar no máximo 2h)

Retrospectiva e Demonstração da Iteração

  • Discuta o que deu certo ou errado
  • 45 minutos antes do término do expediente
  • 20 minutos para retrospectiva
  • 25 minutos para demonstração

Argumentos/Desacordos

  • Tenha dados apoiando seus argumentos
  • Força não vencerá um argumento, dados sim
  • Nunca concorde e depois recuse fazer algo
  • Às vezes, você precisa jogar uma moeda para decidir que caminho seguir, se funcionar, ótimo, se não, volte e tente o outro
  • Para resolver um desacordo, faça as duas partes apresentarem seus casos e vote com a equipe

Foco-Mana

  • "Mana" para focar
  • Codificamos usando a mana e fazemos coisas menos produtivas quando a perdemos

Sono

  • Durma bem para recarregar sua Foco-Mana

Cafeína

  • Beber quantidades moderadas de café pode ajudar
  • Beber demais pode fazer você se concentrar demais nas coisas erradas
  • O uso e a tolerância à cafeína são pessoais

Recarga

  • A Foco-Mana pode ser recarregada desfocando
  • Quando o foco se foi, você ainda pode escrever código, mas provavelmente precisará reescrever no outro dia
  • Você não pode forçar o foco
  • Foco muscular pode ajudar a recarregar o foco mental

Entrada-Saída

  • Escrever código é um processo criativo
  • Recarregue a energia criativa com outras fontes de energia criativa

Time Boxing e Tomates

  • Use a técnica pomodoro
  • Deixe qualquer tipo de interação para o final do ciclo
  • Quando o ciclo terminar, pare imediatamente o que está fazendo
  • Lidere com as interrupções anteriores e faça uma pausa de cerca de 5 minutos
  • A cada quatro ciclos, faça uma pausa mais longa
  • Com isso, você terá dois tipos de ciclos:
    • Tomate: Faça seu trabalho
    • Não-Tomate: Interrupções, distrações ou reuniões
  • Tente fazer de 12 a 14 ciclos de tomate por dia
  • Conte seus tempos de tomate para ver o quão produtivo você está sendo

Evitação

  • Às vezes, seu coração não está no trabalho
    • A coisa que você precisa fazer é assustadora, desconfortável ou chata
    • Pode levar a confrontos ou a um buraco sem saída
    • Você simplesmente não sente vontade de fazer isso

Inversão de Prioridade

  • Você encontra maneiras de evitar fazer seu trabalho, convencendo-se de que outra coisa é mais importante
  • Você aumenta a prioridade de uma tarefa para poder adiar a que tem a verdadeira prioridade
  • São mentiras que contamos a nós mesmos

Becos sem Saída

  • Você toma uma decisão e cria um caminho que não leva a lugar nenhum
  • Prudência e experiência ajudarão a evitar alguns, mas você nunca evitará todos
  • A coisa mais importante é quando você percebe que está em um beco sem saída, saia de lá
  • A regra dos buracos: quando estiver em um, pare de cavar
  • Mantenha a mente aberta sobre outras ideias para que, se você atingir um beco sem saída, tenha outras opções

Pântanos, Pântanos e Outras Bagunças

  • Pior do que becos sem saída
  • Eles retardam você, mas não o impedem
  • Eles podem ser contornados com força bruta
  • O problema é que você sempre pode ver um caminho adiante e ele parece mais curto do que o caminho de volta (mas não é)
  • Nada tem um efeito negativo mais profundo ou duradouro do que uma bagunça
  • A progressão de uma bagunça pode levar a um caminho lento e prejudicial
  • Se você criar uma solução para o problema, certifique-se de torná-la o mais limpa possível
  • Se perceber que alguma decisão que tomou não vai escalar bem, isso é chamado de ponto de infecção
  • Você pode voltar e corrigir o código, mas isso parece trabalho desnecessário, já que você precisa retrabalhar o código existente
  • Se decidir seguir em frente, você levará o sistema a um pântano do qual talvez nunca escape
  • Esteja sempre atento a bagunças em crescimento e limpe-as o mais cedo possível

Avançar por um pântano, quando você sabe que é um pântano, é o pior tipo de inversão de prioridade. Ao avançar, você está mentindo para si mesmo, mentindo para sua equipe, mentindo para sua empresa e mentindo para seus clientes. Você está dizendo a eles que tudo ficará bem, quando na verdade está caminhando para um destino compartilhado.

Conclusão

  • Esteja focado e diligente na gestão do seu tempo
  • Entenda as tentações da inversão de prioridade
  • Mantenha opções e mente aberta sobre outras soluções
  • Nunca esteja tão investido em uma solução que não possa abandoná-la
  • Esteja sempre atento a bagunças em crescimento e limpe-as o mais cedo possível
  • Não há visão mais triste do que uma equipe de desenvolvedores de software lutando inutilmente em um pântano cada vez mais profundo

Time Management

  • Wake up early
  • Divide remaining time into 15m segments and fill as appropriate
  • Leave an 15m per hour to possible interruptions
  • VALUE YOUR TIME
  • Time is Money

Meetings:

  • Meetings are necessary
  • Meetings are huge time wasters
  • Prioritize meetings with immediate benefit
  • You don't need to attend every meeting
  • Ask to yourself if you can afford the time
  • Ask your supervisors for help
  • If a meeting is getting boring, don't hesitate to leave politely
  • Meetings need to have an clear agenda and a goal

Stand-Up Meetings

  • Take a turn to answer three questions
    • What did I do yesterday?
    • What I'm going to do today?
    • What's on my way?
  • No more than 20 sec (1m per person)

Iteration Planning Meetings

  • Select backlog items that will be executed on the next iteration
  • Estimates should already be done
  • The acceptance/component tests should already be planned
  • Items should be briefly discussed and approved/rejected
  • No more than 5/10 minutes per item
  • If a longer discussion is needed, it should be scheduled in another time with an subset of the team
  • Rule of thumb: A meeting should not last more than 5% the total iteration time (40h per week, meeting should last at most 2h)

Iteration Retrospective and Demo

  • Discuss what went right or wrong
  • 45m before quitting time
  • 20m for retrospective
  • 25m for demo

Arguments/Disagreements

  • Have data backing up your arguments
  • Force won't win an argument, data does
  • Never agree and them refuse to do it
  • Some times you need to flip a coin to see what path to follow, if it works, nice, if it doesn't go back and try the other one
  • To resolve an argument, make the two parts present their case and vote with the team

Focus-Manna

  • "Mana" for focusing
  • We code using the mana and do things less productive when we ran out of it
  • Its an decaying resource, use when available so you don't lose it

Sleep

  • Sleep well to recharge your Focus-Mana

Caffeine

  • Drink moderate amounts of coffee can help
  • Drinking too much can make you hyper-focus on the wrong things
  • Caffeine usage and tolerance is a personal thing

Recharging

  • Focus-Mana can be recharged by de-focusing
  • When the focus is gone you can still write code, but you will probably need to re-write on the other day
  • You can't force the focus
  • Muscle focus can help recharge mental focus

Input-Output

  • Writing code is an creative process
  • Recharge creative energy with other sources for creative energy

Time Boxing and Tomatoes

  • Use the pomodoro technique
  • Defer any type of interaction to the end of the cycle
  • When the cycle ends, stop what you are doing immediately
  • Deal with the previous interruptions and take a break of around 5m
  • Every four cycles, take a longer break
  • With this you will have two types of cycles:
    • Tomato: Get your work done
    • Non-Tomato: Interruptions, distractions or meetings
  • Try to get 12 to 14 tomato cycles per day
  • Count your tomato times to see how productive you are being

Avoidance

  • Some times your heart isn't at work
    • The thing you need to do is scary, uncomfortable or boring
    • Can lead to confrontations or an inescapable rat hole
    • You just don't feel like doing it

Priority Inversion

  • You find ways to avoid doing your work convincing yourself some other thing is more important
  • You raise the priority of a task so you can postpone the one that has the real priority
  • They are a lie we tell ourselves

Blind Alleys

  • You take an decision and create a path that will lead to nowhere
  • Prudence and experience will help you avoid some, but you will never avoid them all
  • The most important thing is when you realize you are in a blind alley, get out of there
  • The rule of holes: When you are in one, stop digging
  • Keep an open ming about other ideas so if you hit an dead end, you have another options

Marshes, Bogs, Swamps, and Other Messes

  • Worse than blind alleys
  • They slow you down, but does not stop you
  • They can be bypassed with brute force
  • The problem is you can always see an path forward and it looks shorter than the way back (but isn't)
  • Nothing has a more profound or long-lasting negative effect than a mess
  • The progression of a mess can lead to an slow harmful path
  • If you create an solution to the problem, make sure to make as clean as possible
  • If you realize some decision you made is not gonna scale well, this is called the infection point
  • You can go back and fix the code, but this seems unnecessary work, since you need to rework existing code
  • If you decide to go forward you will drive the system into a swamp from which it may never escape
  • Always be in the lookout for messes and fix them as early as possible

Moving forward through a swamp, when you know it’s a swamp, is the worst kind of priority inversion. By moving forward you are lying to yourself, lying to your team, lying to your company, and lying to your customers. You are telling them that all will be well, when in fact you are heading to a shared doom.

Conclusion

  • Be focused an diligent in managing your time
  • Understand the temptations of the priority inversion
  • Keep options and open mind about other solutions
  • Never be so invested in an solution that you cant abandon it
  • Always be in the lookout for growing messes and clean them as soon as possible
  • There is no sadder sight than a team of software developers fruitlessly slogging through an ever-deepening bog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment