Friday 20 September 2013

If You Value Someone, Set Them Free

Earlier this year I did my first proper conference presentation: "Why Do I Hate Unit Tests" at Devoxx UK (you can view the slides here) and I absolutely loved it. Since then I've been trying to persuade some of my more talented colleagues to engage in public speaking, be that internal talks, lightning talks, local or national conferences. 

For one reason or another, getting developers to speak in front of a crowd is difficult and was originally going to be the focus of this post, but while I was thinking about it I realised that I know people who have been in the industry as long as I have who have never even been to a conference, never mind speaking at one!

So lets say we have a manager, "Bob" and an engineer, "Dave", and Dave wants to go to a conference. When Dave goes to Bob and makes his request I have no doubt that the first question Bob is going to ask is "why?"  If Dave is prepared he'll have the list of sessions and what the benefits of each are, but here's the kicker: 

The sessions you attend are only a fraction of the benefit you get from attending a conference

And here's why

Happiness

Engineers, at least in my experience, want to go to conferences, and when you give someone something they want it makes them happier, and when people are happier they're more motivated and more productive*.  Make it a conference in a foreign country and those benefits are increased even further - you're letting your employee know that you value them and are willing to invest in them

Creativity

Do you know what engineers do when they're together outside of work? They talk about work! When I'm stuck on a problem, I'll grab a colleague, go for a smoke**, talk about the problem and usually come up with a solution.  Go down the pub on an evening and engineers are still problem solving, they're just bigger problems. Send two or three guys away to a conference and you'll be surprised what they can come up with when unencumbered by the daily job.

Raise your Company Profile

Wouldn't it be great if people wanted to come and work for you instead of you having to go and look for people? If your staff enjoy working for you and they're out at conferences telling other people how much they enjoy it, your chances of attracting talent increases. If you're doing cool shit, have your techies speak at conferences and get the message across even more. If your staff aren't happy and you don't want them selling, well hell, you've got much bigger problems than I can help you with. 

Networking

For me this is by far and away one of the biggest benefits of a conference - meeting people. Personally I just like meeting new and interesting people, but even if you look at it from a cold, hard, logical position, isn't it better to have a much wider pool of talent from which to draw on? Like I said before, techies like to talk about problems, but when they know someone who specialises, that's the person they'll go to for help!

I'm writing this sat on a plane returning from #AgilePrague and I met some absolutely awesome people there. Fun people, smart people, people who are industry leaders and hey, even a guy who played in a kick ass 80s hair metal metal band! But they all have one thing in common- I'd have met none of them if it wasn't for a conference. 

*Don't believe me? Try reading some books on motivation, I recommend Delivering Happiness and Drive

** Any non smokers who think its unfair that smokers take so many breaks: we may be away from our desks, but we're still working, so ner.

Tuesday 10 September 2013

A Tale of Two Recruiters

Whether you're trying to find a new job or you're a hiring manager trying to fill a position, at some point in your career you're going to have to deal with recruiters.  For both sides, recruitment is difficult, and professional recruiters should be there to help make it a lot easier.  When you really think about it, recruiters should be the heroes who getting you a job with your ideal company, or finding you just the right person to fill your vacancy. In reality though, it's usually a different story.

A while back I was chatting with a friend about recruitment and she told me a story of an email she received from a recruiter via LinkedIn for a completely unsuitable position.  She asked the sender if they'd even bothered to read her CV to which she got the reply that he has too many to read all of them.  Not only is it incredulous that a professional (and I use that term loosely) recruiter is essentially asking other people to do their job for them, but in this instance they obviously haven't done even the most basic of checks as that friend was Trisha Gee.  For those who don't know Trish, she's exceedingly well known in the Java community, presents at conferences worldwide, an organiser at Devoxx and a JavaOne Rock Star! so there's no excuse for this behaviour.

More recently I had another recruiter approach (through a personal channel no less) wanting to work with us and insisting they had talent they absolutely knew would be suitable for us.  The thing is, we're picky about the people we hire and look for very specific traits, and this company has no idea what they are.  When pushed about how they could find exactly the people we want, the response was just the typical agency line about how they've been in the industry for years, it's what they do, yadda.  Here's a little tip for any recruiter out there reading this - I've heard this before, everyone has heard this before, why don't you try telling me something I haven't heard before? How about telling me exactly how you'll match up the candidate to the role? How about telling me why they're the best person on the market*.

I think the worst of these I've ever seen was an unsolicited CV land in my inbox for "the best infrastructure guy in London".  The funny thing is, that CV belongs to a friend of mine, who had no idea his CV was being sent to me, didn't want his CV sent to me (he's Windows, we're *nix) and certainly was not working exclusively with that agency.  After I forwarded the email to him he wasn't working with that agency at all.  As someone looking for a job, do you want an agency flinging your CV around like this?

At the beginning of this post I said that the reality of recruitment was a different story, usually. I say usually because there are /some/ recruiters who are actually good, and it's after you've dealt with them you see how the others are no better than car salesmen or estate agents (sorry guys, but you know exactly what you're like).

When I had Barry from RecWorks ask if I'd mind help them with their marketing by just sending out a tweet with a specific hashtag, I considered it a pleasure to do.  RecWorks has recruited some of our best developers and if I was looking for a job I wouldn't use anyone else as they actually bother to figure out what everyone wants. They invested a fair amount of time finding out what kind of people we want to hire, the skills they need, what drives them and what's most important to us. They also do the same thing for their candidates and when the two align, then, and only then are we introduced.  This isn't isolated to a single employee either, it's the company ethos.  When we're not hiring we don't get annoying "checking in to see what your recruitment needs are" emails, and they don't try and poach staff for other companies.

No spam. Nobody unsuitable.  That's how to do recruitment properly.

On a final note, if you've ever been to a LJC event, you have RecWorks to thank for that, they started it.  How many recruitment agencies can say that?

* It's funny how all agencies seem to have an exclusive on the best guy on the market right now





Saturday 23 March 2013

assertThat(testing, rocks()):

I've been into unit testing for well over 10 years now and TDD for quite a lot of that time.  Back when I started it wasn't really such a big thing and finding JUnit listed on someone's CV was quite rare - this is back when the only book you could get on the subject was Junit Recipes. These days it's pretty much ubiquitous, at least among Java developers, you can buy a whole raft of books and everyone claims to be doing TDD.

Those that know me are aware that I am somewhat of a testing nazi, insisting things are done "The Right Way" and always trying to push my testing knowledge to the limit.  Coupled with my many years of experience, I have a lot to say on the matter.  Over the next few months I plan on telling you all about what I've learned during this time.  I have made many mistakes over the years, and I see these mistakes being made repeatedly by other people, mistakes that lead to brittle, unmaintainable tests which suck to work with.

In the meantime, I'm presenting "I Hate Writing Unit Tests, How Come Everyone Else Enjoys It?" at Devoxx UK at the end of March.  If you find writing tests painful, time consuming or you just don't see how you can write clean, maintainable unit tests - come along, hopefully you'll learn something! I'll be covering:

  • Test naming
  • How to verify your tests
  • What you should/shouldn't be testing
  • Removing duplication
  • Test isolation
  • Mocks vs Fakes and when to use one over the other


If you're not already signed up, you can get a 15% discount using the coupon below.

See you there!