Creating Great Developers: Conclusion.

Earlier posts in this series: “Introduction“, “Hiring“, “Orientation“, “Training“, “Planning“, “Production“, and “Shadowing“.

At the end of shadowing, the trainee has been with us for 10-12 weeks, has received intensive classroom-style training, has planned and developed a small project from start to finish, and has worked on real commercial projects in parallel with a few of our most senior developers. Throughout this, we have been assessing and providing feedback on their productivity, code quality, communication skills, time management, and problem solving ability.

At this point we know for certain (hopefully) if they are going to be a great addition to the team.

As the 3 month mark approaches, we schedule a meeting with all of the senior staff who worked with the trainees. We compare notes, and discuss the strengths, weaknesses, and growth of the trainee, citing specific examples wherever possible. I take a lot of notes, and bring them into the review.

I like to keep reviews informal, usually over lunch or a beer. I talk to the trainee about what they are doing well, and how they could improve. Again, I try to use concrete examples where possible, so they can relate the input to real experiences. I give them lots of opportunity to ask questions or provide their own feedback on their performance and the training they’ve received.

If things didn’t work out, I make a point to provide them with honest feedback on what I think they need to work on if they want to continue in the industry, and where they could go next. I ask them how they’d be most comfortable with me announcing their departure to the team, and we generally have beers as a group to see them off amicably.

If things went well, I welcome them to the team, ask them a bit about their goals for the future, and start talking through possible projects we could put them on. From this point on we work aggressively to keep them busy on real projects, under the watchful eye of more senior staff who can ensure the quality of their output, and help to continue their growth in the company.

Of course, this whole process requires a large up-front investment which is wasted if we can’t retain our staff. I try my best to make gskinner.com a great place to work. We keep regular office hours, encourage our team to have a life outside work, pay fairly, have a good bonus model, offer praise and appreciation for accomplishments, foster continuous learning, promote a fun work environment, try to book interesting projects, and protect our staff from abusive clients. I would much rather lose a bad client than a good developer.

I have an amazingly fun and talented team that I love working with, and one of the things I’m most proud in my professional life of has been keeping them together over the years.

This concludes the Creating Great Developers series. Hopefully it helps inspire other dev groups to mould a new generation of creative, competent developers, and treat them with the respect they deserve. Interactive development is a creative pursuit, and I’m a strong believer that you can’t get exceptional results by treating developers as a commodity.

Note: I’m planning to revisit this series to do some editing (I’m not completely happy with the quality of writing), flesh out some details based on feedback, and add a persistent index.

Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

11 Comments

  1. This is a great series! Thanks so much for taking the time to write these articles.

  2. Thanks! I’ve been reading all the articles, and I must ask – isn’t this a bit too much of a test for a developer?

    I mean, the way we do it, and it has always worked, is to simply test the developer on several projects, in which he could either learn, or showoff his skills, for most of the technologies we use. All this by having a senior developer keep an eye on them closely.

    This usually lasts for a month tops, and by the end of it we’ll know if the person is appropriate or not.

    And I agree on losing a bad client over a good developer. I guess we’d all pick the same choice. 😉

  3. I wish it was like this at my first job. Great read, I’ll definitely use this for reflection when we pick up another developer.

  4. That sounds like an awesome internship. I wish all companies would do this. 😀

  5. Seems like you’re approaching this in a really good way Grant! I’m not really familiar with the approach of other companies, but I sure hope they do something similar.

    Thanks for sharing this!

  6. Grant,

    Thank you so much for your generosity over the years. You’re a pioneer in the field and have always been willing to give back to the industry. This series is just another example of that.

    What this series highlights for me is the lack of resources like it. Not all developers work in environments like yours and not all developers have a solid technical foundation having come from other disciplines. For many, including myself, sharpening their development abilities involves a lot of self training. And although I think much of it is due to the nature of the industry I also think it’s due to there not being many other alternatives.

    I know I would be willing to pay top dollar for this kind of high quality, intense, focused and real world type of training. A better trained developer base can only result in higher quality work which can only serve to strengthen the platform. Ever thought of developing your system into some sort of curriculum? I know it would be a monumental task but if anyone could pull it off it would be you.

    Thanks again.

  7. Loved this article.. Its great approach a whole bottom-up reformation from a university student to get into the shoes of a industrial developer. I wish I could have gone through same process.. as many might have thought after reading this article..

  8. I think you and your team developed facebook actionscript api. Why don’t u make documentation about it? If you read the forums, you will see that people give up on that library because of poor documentation and bugs

  9. Very valuable reading. Thanks for taking the time to post this series.

  10. “and we generally have beers as a group to see them off amicably” – when interns don’t clear probation. yeah I’m sure that will be a fun time at the bar. drinking with a guy you just fired

  11. “treat them with the respect they deserve.” & “would much rather lose a bad client than a good developer.” – Very intellect series (Introduction….Conclusion), profound in/outs of the processes.

Leave a Reply

Your email address will not be published. Required fields are marked *