Tutoriais para colaboradores

Criando um PDI para desenvolvedores de software

Algumas idéias, inspirações e referências

Se você ainda conhece pouco sobre planos de desenvolvimento, comece lendo esse, esse e esse artigos. Depois volte aqui para falarmos dos desafios específicos de desenvolvedores de software :)

Agora que você já tem a base necessária para criar excelentes PDIs, vamos ao que interessa!

É muito fácil construir planos de desenvolvimento para developers que foquem apenas nos aspectos técnicos de novas tecnologias. Com certeza, ao pensar no PDI de um liderado, vêm à cabeça áreas de desenvolvimento como:

  • Aprender mais sobre Ruby-on-Rails

  • Aprender o básico sobre Amazon AWS e como implementar uma aplicação simples

Mais difícil, no entanto, é desenvolver os comportamentos subjacentes dos liderados, que muitas vezes podem soar "subjetivos" ou "confusos" para engenheiros, cientistas e analistas. Para isso, resolvemos fazer esse post com alguns comportamentos que podem servir de inspiração para a criação de PDIs.

Áreas de Desenvolvimento

Abaixo, listamos algumas possíveis áreas de desenvolvimento que são soft skills relevantes para a realidade de desenvolvedores de software:

  • Antecipar necessidades dos clientes

  • Focar em velocidade e fluência de código

  • Tomar decisões sólidas

  • Contribuir com visão técnica para a evolução do produto

  • Se esforçar para fazer o possível e o impossível

  • Entender a visão holística

  • Desenhar soluções/escrever código limpo e elegante

  • Produzir pouca dívida técnica

  • Entregar código seguro e escalável

  • Buscar virar referência técnica em sua área de atuação

  • Diagnosticar bugs complexos com eficiência

  • Ser bem versado em todas as componentes do stack

  • Contribuir em áreas diferentes do seu foco primário

Cada área de desenvolvimento, como vimos nos artigos anteriores, deve conter um plano de ação o mais específico possível que diga o Que, Quando, Como e Onde das ações a serem tomadas pelo dono do PDI para atingir o desenvolvimento desejado. Assim, experiências, participações em projetos, leituras, cursos, workshops e mentorias devem ser previstos no plano de maneira específica.

Tarefas de Desenvolvimento

Separamos as tarefas de desenvolvimento em 3 grandes categorias sob inspiração do modelo 70/20/10 de desenvolvimento organizacional. Os números não devem ser seguidos à risca, mas as proporções fazem todo o sentido: abuse de tarefas baseadas em experiências on-the-job, pois elas são as mais eficientes e praticamente não têm custo. Agora chega de teoria, e vamos às idéias de tarefas, primeiro na categoria Experiências:

Nível Básico

  • Act as a developer on at least one project

  • Act as a backup construction lead on at least one project

  • Act as a backup design lead on at least one project

  • Develop unit or module level test cases for a project

  • Write one or more designs

  • Participate in the release process of a project

  • Perform personal planning and tracking on a project

  • Participate in a code review

  • Participate in a design review

  • Participate in an informal review

  • Participate in an inspection

  • Review a project's documentation including the quality plan, test plans, test cases, project plans, schedules, and work breakdown structures

Nível Intermediário

  • Create at least six different production modules with automated unit tests

  • Create a test design for a subsystem

  • Lead collaborative construction efforts

  • Lead a performance profiling / tuning effort

  • Act as a construction lead on at least one major project

  • Act as backup quality lead on at least one project

  • Act as backup planning and tracking lead on at least one project

  • Participate in a test focused role on a project

  • Participate in the elicitation and specification of requirements

  • Participate in the creation of a project charter and project plan

  • Participate in the creation of a project estimate

  • Participate in the creation of a use case specification

  • Participate in the review of a test plan and test cases, requirements specifications, and project plans

Nível Avançado

  • Act as design lead on at least one major project

  • Write two or more designs on a major project

Sugestões de Leitura

Agora vamos à algumas leituras que se encaixam na categoria de "Treinamento" e que podem também servir de guia para o desenvolvimento do dono do PDI nas áreas discutidas:

  • Code Complete, 2nd Edition, Steve McConnell

  • Programming Pearls, 2nd Edition, Jon Bentley

  • Refactoring, Martin Fowler

  • Applying UML & Patterns, Craig Larman

  • The Art of Testing, Glenford Myers

  • Conceptual Blockbusting, James Adams

  • Software Creativity, Robert Glass

  • Mastering the Requirements Process, Robertson and Robertson

  • User Stories Applied, Mike Cohn

  • Writing Efficient Programs, John Bentley

  • Writing Solid Code, Steve Maquire

  • Software Implementation, Michael Marcotty

  • More Programming Pearls, John Bentley

  • Testing Object-Oriented Systems, Robert Binder

  • Rapid Development, Steve McConnell

  • Design Patterns, Erich Gamma et all

  • Object Oriented Software Construction, Bertrand Meyer

  • Object Oriented Analysis and Design, Grady Booch

  • Software Architecture in Practice, Bass et all

  • Balancing Agility with Discipline, Boehm and Turner

Importante: evite estabelecer a leitura de livros inteiros como tarefa de desenvolvimento - o tamanho do desafio pode desencorajar o dono do PDI. Em vez de livros inteiros, escolha capítulos relevantes que possam ser lidos em algumas horas, e estabeleça reuniões rápidas para discutir o tema e "formalizar" aprendizados.