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.