Career Planning

Posted

Now that performance reviews are in, I’m working on career plans with the members of my team. I think every manager should do this every year with everyone who reports to them; the template I’m using is shown below with some representative answers from a scientists-turned-programmer who is five years into their career, and I’d be grateful for feedback on how to improve it.


Please keep the structure of this plan, but replace the specifics with your own. Please note that this plan is not your performance goals for the year: we will revisit your career development every six months, and it’s perfectly OK for your direction and aspirations to change as you go along.

Motivating Questions

  1. What makes you excited about your current role/work?
  2. Learning about software design from working with the Overthruster code base. [Note: Overthruster is an internal project for managing lab data.]
  3. Learning about Docker, networking, and similar stuff by collaborating with DevOps.
  4. Seeing features I’ve added go into production and actually help people.

  5. What are the areas of your current role/work that you don’t like?

  6. Our package release and deployment procedures are obscure: they delay development and reduces learning opportunities. (It’s hard to learn best practices from things that are rusting away.)
  7. Testing our stuff is really hard, especially when we need to check that changes to Overthruster haven’t broken any of our other services.
  8. I wish there was more time to pay down tech debt :-(

  9. What does your dream job look like?

  10. I want to help biologists do better biology. In particular, I want to make data upload and search a lot easier for lab biologists, and make it easier for computational biologists to access both internal datasets and external datasets and keep track of which datasets they used in which analyses.

  11. What would you like to do in your career that you haven’t yet had a chance to do?

  12. Data science / machine learning. I’m helping people do things that I think are really cool, but haven’t had a chance to actually do those things myself.

  13. What are your top three strengths?

  14. I learn quickly.
  15. I work well on a team provided I’m given clear deliverables.
  16. I think I take changes of direction pretty well. (I was disappointed that a couple of months of work on Overthruster was tossed out when the wet lab changed direction, but I understand that’s how research works.)

  17. What are your bottom three weaknesses?

  18. I think my software engineering technical skills are a lot weaker than they should be.
  19. Time management: my estimates are always off.
  20. I think I bang my head against the wall longer than I should before I ask for help.

  21. What is one of your strong skills that you’re not currently using?

  22. Biology.

  23. What is a skill you want to focus on developing?

  24. Software design.

  25. How do you like to receive good and bad feedback?

  26. I prefer to get it in person and verbally so that there’s a chance to discuss it. Written feedback feels too formal, and I don’t like having frank discussions about shortcomings on a video call.

  27. What is the best way to reward you for your work:

  28. Compensation. I’ve compared notes with other people in similar roles, and I think I’m being paid less than someone with a CS degree would be for doing exactly the same work.

  29. What is your current work/life balance like?

  30. More work than life at the moment.

In Two Years I Am…

  1. Designing, implementing, testing, and deploying major components of existing applications.
  2. Participating regularly in discussions with stakeholders about their objectives and priorities.
  3. Managing at least one junior developer.

In Five Years I Am…

  1. Software architect responsible for the design of large applications.
  2. Mentoring junior developers who are transitioning from science to coding as I did.

By This Time Next Year I Will…

Objective Actions Proof of Work

Improve technical knowledge

  1. Complete 40 hours of DevOps-related training.
  2. Select one significant new development tool or library and integrate it into our existing applications.
  1. Completion certificates for online courses.
  2. Technical talk on tool or library when adopting it.
  3. Retrospective technical talk on tool or library 3-6 months after adoption.

Develop software design skills

  1. Be technical contributor to Product Management discussions for one major new component or application.
  1. Write engineering design document for that component.
  2. Give retrospective technical talk on requirements, design, and implementation 1-2 months after first delivery.

Develop mentoring skills

  1. Conduct end-of-stay retrospectives for at least two interns that I haven't directly supervised.
  2. Write job descriptions for at least two internship positions.
  3. Manage at least one intern for at least eight months.
  1. Complete interview training with HR.
  2. Complete at least 3 1-1 "how to manage" mentoring sessions with HR while supervising intern.
  3. Conduct weekly 1-1's with intern and summarize weekly for my own manager.
  4. Conduct end-of-stay retrospectives for two interns.

Yanina adds:

One of the things I ask my team is what they needed to achieve their objectives. Even when I, as their manager, should know what they need, it is always helpful to see their answer. Sometimes they don’t know what they need; sometimes they have good ideas that I wouldn’t have thought of, and sometimes there are interesting dynamics in or between teams. Doing this helped me see if we had the resources and the conditions for everyone’s career aspirations: what things depended only on me, what things depended on the team, and what things depended on the organization. Knowing that allowed me to generate a plan, which in turn allowed me to (try to) get the money, hours, and equipment we needed.