Things to do in Portland« an older post

A Junior Dev Asks

Blog

Today, a junior developer I sit next to, asked me if I had a few minutes to talk. As I had been a bit short with him a few days ago, I prepared my apology to him as I figured he was going to be stunningly mature beyond his years and call me on my shortness. Instead, he surprised me when I sat down, by asking,

Are we being tested?

I sat there staring at him for a bit before he continued. "Do managers test developers? Are we being judged?" Eventually he explained that his manager had asked for his calendar and to see his code, and he didn't know why.

Oh.

Heh.

I see.

I spent more than his requested five minutes explaining to him about working with groups and teams. When you have a team, no one is working alone, you depend on your teammates, and that includes communicating well with them. When managers ask for information, it is because they need the information to do their job, including resource planning and project timelines. If managers don't obtain the information they need via other means such as email or project tracking / tickets, they have to ask for it. I explained he wasn't being judged (though, I don't know, maybe he is?), but that his manager needed the information.

Setting expectations as a developer is one of the hardest skills one has to learn. Estimating development times with software is really hard, sometimes you just run into a problem and it takes time to figure it out. Telling your manager, hey, I'm stuck on this one thing, I'd like to work on it for X amount of time before I need help, or I'm stuck, I need help, is one of the best forms of setting expectations: the manager knows she needs to provide more resources, and can set expectations with your customer. Without that information, say, if you have your head down, no, I got it, just another day, no, I know I said yesterday, I meant tomorrow, and keep plugging along without letting your manager know, that creates problems with expectations. The only way to set expectations well is to communicate well.

I told him he'd likely spend his entire career learning that skill. All developers do.

I also speculated with the junior developer that perhaps the senior developer he is working with, and who is currently on vacation, was providing the information to their manager. Since he's on vacation now, the junior developer needed to provide the information.

One of the tricks I learned through consulting is to over-communicate to prevent micromanaging. I let him know about the habit I picked up of checking in with my manager or client at the end of the day. That means either walking up to her and telling her about the day, or sending an email about the day. I suggested this to the junior developer, and suggested including the next day's planned tasks. The emails help plan for the next day, provide insight into progress to the manager, and give an opportunity to adjust if needed.

I then asked for feedback, had I helped? He was clearly nervous when he asked the question, and still asked it. That's not easy as a junior developer. I appreciated that he was able to ask.