Seasoned or Cynical

It’s amazing what people can do when they don’t know they can’t.

In the beginning you don’t know all the reasons it won’t work.

As the years pass you’ll marvel at what you though was possible – the risks you took.

And still you’ll see other beginners taking on windmills. Some windmills will batter the riders. Some riders will topple their windmills.


Reminiscing with a senior developer that I used to manage we talked about a project we worked on together that had major flaws. I told him, “Don’t worry. That’s what has made you senior. Now you really do know better.”

Failure can teach you good judgment. At best it will teach you which fears are realistic – which gambles pay off.

A junior developer often makes up for inexperience with occassionally wreckless enthusiasm. But senior developers often earn their keep by what they choose not to do.

A senior developer (hopefully) knows the difference between ambitious and unrealistic.

They need to be able to look at a project and say, “Yes, we can do that with these critical changes.” And each part of that sentence is important.

“Yes, we can do that” – don’t let your experience lead to cyncism where every project is doomed to fail and any who think they can achieve something are Polyanna.

“… with these critical changes” – filter out all of the good or simply true ideas to bring forward the indispensible ones. Conserve your ammo.

If you aren’t careful failure might instead turn you into a member of the “no way” choir. If you aren’t careful you might believe that only saying why a project might fail is actually adding value. It’s not. Not really.


I’ve watched junior developers deliver so much more than their senior teammates that it was embarrassing. Perhaps those senior developers overcompensated for failure.

I’ve seen junior developers merrily build weeks of work on a platform that was genuinely incapable of supporting success. Perhaps those junior developers needed more help from a senior developer.

Still, it’s amazing what people can do when they don’t know they can’t.

The truth embedded in Wiley Coyote’s gravity defying double take is that often it is our own perception of doom that causes our doom.

Get Into Internships

[I Love It] One of my favorite parts of being a manager (and I didn’t anticipate this) is recruiting interns on university campuses. Being part of offering a great opportunity to students right when they need it is very rewarding.

[Good For Students] A good internship helps a student make a transition from a mostly individual success model to a team success model. I have seen some colleges do a good job encouraging groups to work together in school. Even for these students there is a difference between group projects in school and being part of a team that succeeds or fails all together.

[Good For Companies] Of course, people who employ interns tend to get a great deal. It isn’t uncommon for our interns to get rave reviews from their team mates and Product Owners. They’re enthusiastic and eager to achieve. You can pay them more than they are used to and still be very cost effective.

Recommendations: For Managers and Students Getting Into Internships.

All employement should result from a fit between the needs of an individual and the needs of the company. Keep this in mind and you should always find special satisfaction in searching for and finding that fit.

Internships often have a built in expiration date that makes them particularly useful for both students and new managers: both have an escape clause in case the fit wasn’t great.

In my experience, if the fit is there then internships are often extended. Again, this benefits both the company and the intern.

Even when the fit is there and the internship has to end you have made a new contact in your network.

To Managers:

  • 1. Recruit your own interns
  • 2. Require evidence that they will immediately contribute
  • 3. Polish your hiring skills by using them – A LOT
  • 4. Prepare to give plenty of supervision

To Candidates:

  • 5. Apply before you are ready
  • 6. Be honest and do your best
  • 7. If you’re hired plan to over-communicate

To Managers:

1. Recruit Your Own Interns

If you are going to have an intern then you should take part in the recruiting process. This gives you the best chance to find an intern that will fit well with your team.

I participate in a recruiting program for the entire company. We interview hundreds of interns for scores of slots. Each of us tries to represent a standard, uniform bar.

Still, it is very difficult for that bar to be uniform.

If you’re going to have an intern on your team then you should get out to the schools and do as much of the finding and interviewing as possible. It is impossible to know as much about a candidate from notes as you can by interviewing in person — no matter how robust the interviewing culture.

And many interviewing cultures are not that robust at all.

2. Require Evidence That They Will Immediately Contribute

Even the best intern will generally come to you with less experience and judgment than a senior hire. That doesn’t mean you can’t expect a lot.

Every year I find gems at the schools I visit who have amassed plenty of evidence that they can contribute on a team from day one. Sure, they will need time to settle in. There will be some adjustment to working on a team, and working at your place. But they will deliver value right away.

To prepare yourself to find these gems ask yourself what is the clearest sign of success for a junior member of your team. Now go about looking for those signs with the candidates you interview.

You will probably have a different set of indicators than me. But for reference here are mine:

  1. Can they code?
  2. Can they disagree and commit?

I evaluate both questions by giving my candidates simple coding challenges that they have to solve with me during the interview. I spend some time on behavioral questions and asking a bit about their background. But the majority of the time is a coding audition.

This isn’t the same process I use for senior hires. I use it for interns, and I’ve had great success.

Of course, there are going to be candidates with great potential that can’t quite code yet. That’s OK. I hope they interview with me again in 6 months. If not, then that’s not the end of the world either. Not for me. Not for them.

3. Polish Your Hiring Skills By Using Them – A LOT

Recruiting interns I routinely interview 12 to 15 candidates a day.

I read a lot of resumes. I ask a lot of questions. I do a lot of probing. I do a lot of coaching.

I get a lot of practice seeing good and bad qualities in a lot of candidates. I have to make a lot of hire/no-hire recommendations. I have to take a lot of detailed notes so that I can support the other managers that are hiring from the same pool.

You meet a lot of people. You get a lot of first impressions. And you gather and process a lot of data on a relentless timeline.

This is good.

Most managers hire very infrequently. That makes it hard to have good hiring skills. And the skills you do have go to seed as you neglect to use them.

Go out and interview a lot. Hire a handful of interns a year. Get to see the results of your judgment again and again.

It’s good for you.

4. Prepare To Give Plenty Of Supervision

When you do bring an intern on board give them meaningful work and lot’s of guidance. Meet with them daily or delegate it to a sharp direct.

Mentoring an intern is a great way to grow a direct that is hoping to qualify for promotion.

Be prepared for the intern to under communicate his challenges. Keep an eye on their progress. Let them know they are making a valuable contribution.

As a manager, now is NOT the time to sit back and see what happens.

I remember that during my first internship I sometimes went several days between substantive discussions with my manager or team mates about what I was working on. I treated the workplace like a large and quiet library. Every door had an automatic “DO NOT DISTURB” sign in my mind.

That’s the way I had done homework. But that’s not the way you do team work. You might have to help your intern through that transition.

To Candidates:

My recommendations to managers (above) should be a helpful reference to candidates as well. In addition, here’s some advice just to you interns.

5. Apply Before You Are Ready

A lot of students that are preparing for a software career are detail oriented, perfection-seeking, high achievers. That’s good. You’re going to be great!

Unfortunately, this can lead you to delaying all sorts of things while you are making it right.

You need to realize that there is a big difference between school and work. And the only way to really prepare is to start working in your field.

Workshops can help. Coaching can help. Mentors can help.

But if you aren’t careful you will find that your careful preparation has left you unprepared. There is a difference between theory and practice that you can only begin to learn with practice.

Apply before you think you are ready. Give it a real go. Act as if you are ready. As a matter of fact, you might be!

If you get a good offer and you’re not sure whether to accept it, that’s a good problem to have. Much better than graduating with a 4.0 and not prepared to transition into a job.

6. Be Honest And Do Your Best

In the interview be honest about what you know and what you don’t know. We can tell when you’re making things up.

If you don’t know the answer to a question then you must start your answer with, “I don’t know.”

If you do know how to find the answer then give that answer after admitting that you don’t really know.

I’ve had many candidates say, “I don’t know for sure, but I believe it is something along the lines of…” and their answer was so good that they didn’t lose any points for not being absolutely sure.

7. Plan To Over-Communicate

If you do get hired then plan to overcommunicate. (See point #4 above.)

This does NOT mean talk a lot. Everyone you are working with is going to be very busy.

When I say, “Over Communicate” this has more to do with frequency of communications than the size of those communications.

Be clear on what you are assigned to accomplish. Predict the progress you will make and communicate that to your supervisor. Let her know when you will be late. Let her know when you have delivered. Let her know when you are blocked.

Often your supervisor or team mates will say little when you communicate. This doesn’t mean it was wasted effort. Keep communicating your progress, deliveries, and blockers.

On your first few days it will probably be appropriate to communicate your status every few hours. By your second week you’ll probably be communicating status once a day. Don’t communicate less than once a day until asked to.

Conclusion

Internships can deliver great value to a company and rapid growth to a candidate. Invest in them and you can change someone’s life – even your own.