Tuesday
Aug312010

Attracting Strong Software Developers: Three Ways To Think About Your Work Environment

My team and I speak to hundreds of software developers a month, and while they are all very talented and good at what they do, they are certainly motivated by different things. In Tim Yandel's last post, he talked about motivation and incentives, and specifically asked what motivates you. When I interview candidates in my office, we usually spend a good chunk of our interview time going over some of their motivations as it relates to the type of environment that they want to work in. While all of these answers are different, a few of the same themes apply. In this post, I will discuss 3 easy, and often inexpensive, ways to create a work environment conducive to attracting and maintaining high quality engineers.

1. Invest in Tools and Technology

This should be a no-brainer for high tech companies looking to sell a software product or launch a new web application. However, you would be surprised how many gripes I hear about software developers not having access to quality hardware and/or simple and sometimes free tools to help them be more productive. This isn't to say that every company who wants to hire great engineers needs to be on the latest framework that is still in beta, or spend thousands of dollars on pre-built engines, but there are plenty of inexpensive tools that help developers be more productive. These are not only software applications, but books and online training/webinars that can give your team a chance to learn from an outside perspective and bring new insight to the project. Joel Spolsky says it best on his blog for Fog Creek Software. There, he talks about how something as simple as dual monitors and a few more MB of RAM can make all the difference in the world when it comes to making developers happy.

2. Create a Space to Collaborate

In my experience, the actual layout of the space that developers are working in is totally subjective, but I did ping a few candidates and clients on what works for them. The general consensus is that an open workspace with a good balance of privacy and communication is critical. Talented developers work best in a place that is quiet, but not dead silent, and most importantly a space that is free from the distraction of salespeople and marketing folks yammering away on the phone. Here is a sample of some of the responses I received when I asked if a developer would prefer a Cube Farm, a Bullpen, or a Private Office:

CUBE FARM

Developers say:

No thanks, turns my stomach. Promotes napping, web surfing and other distractions.

BULLPEN (imagine a big room with no walls and lots of communication)

Developers say:

Yes. I think this is ideal. We call it a lab environment. There are a few rules that need to be followed to have a successful lab:

  1. Any lengthy or elevated conversations need to be taken to a meeting room.
  2. There needs to be easy phone access (one phone for every four people, cordless preferably)
  3. Assigned seating is favorable
  4. Persons working together should sit together. As projects change the lab should reorganize accordingly.
  5. Make sure the lab has windows, otherwise it is just a dungeon.
  6. Only leads, developers and QA should sit in the lab. All other management should be in their own offices.
  7. There needs to be a private place to go work or take care of personal business. If a company can afford a lab plus individual offices for each person I think that is the best. If not, make sure there are a few private places with a computer and phone that people can use.

PRIVATE OFFICES (quiet, ability to close your door, etc)

For managers and upper management private offices are necessary. For everyone else, private offices are most beneficial when there is also a lab to collaborate in.

This is the perspective I received from one of my clients, a VP of Software for a large healthcare company:

As for your question regarding workspaces, I do agree with Joel in that private offices work well. There is an isolation that can be found for aggressive coding. However, in today's market, requirements are thin and the developers have to be more in touch with the customer. This requires collaboration and interaction. So I prefer the best of both worlds... 3-4 people teams in a conference room together. Each of those team members have to interface with the customers.

And nobody likes cubicles... Man those things collect dust!


I think the verdict is that the cube farms of "Office Space" are not a productive or attractive physical environment for today's developer. I suppose that my developer friend is right, if you have the money and ability, it is worthwhile to invest in quiet, private spaces for the developers to breakaway to along with a lab to collaborate.

3. Provide Flexibility

Being a sales and recruiting manager, a big component of my job is meeting people in my office. I also manage a team of 5 recruiters, so I have to be around to answer questions and make sure they are servicing our clients at the highest level. My job requires a great deal of "face time" and therefore a virtual environment or telecommuting doesn't make much sense. In almost every environment I have placed developers in the last 2-3 years, they have limited user/client interaction on a daily basis and most of this interaction is during the requirements gathering phase or in between iterations. I know from experience that the ability to telecommute (work from home, remotely) is worth cold hard cash to software engineers. I have spoken with people that are willing to take 10%, even 15% less simply to work from home 2-3 days a week. It only makes sense: less time in the car, less money spent on gas, less stress from traffic, more time with family, more comfortable work environment. Now, this simply doesn't make sense for every environment, and it doesn't work for every candidate. Some people can motivate themselves to bang out code for 8 hours straight no matter where they are sitting, others may get distracted by Oprah at 3pm and drift into la la land. If it makes sense in your environment, you should give your developers a shot at a flexible schedule and/or telecommute and see if they can maintain the same level of productivity. Often times, you will be shocked that people are actually more productive when they can zone out in their home office and crank through code in their PJ's.


What do you think would be the ideal environment for a software developer? Are you a cubicle guy or a lab guy? Do you have a private office? What about working from home...it's not for everyone, but have you seen success or failure from trying it in the past? Let us know in the comment section!

Thursday
Aug262010

What Motivates Us? Purpose... 

I came across this video recently and thought I should share it with our Hiring Juice faithful. Aside from being truly amazing penmanship, it actually reveals a very interesting fact about motivating people with is quite surprising - it's not money. 

People are motivated by goals that are not complicated, simple and under their control to hit them. Financial incentives are not always a true driver but rather having a purpose for what you're trying to achieve holds more substance in our minds. 

I'd like to hear other's ideas on similar stories where you used other ways to motivate people other than just a bonus, commission or raise. If we can learn anything from our Open Source community (our LAMP friends out there) it's that they contribute to the purpose of sharing and educating others to make them better. Not just for financial gain. I can tell you right now, you won't get paid to share your stories on this blog, but it sure impacts our community of leaders/managers.

Who's got a story to share? 

Monday
Aug232010

Retaining Talent 

You could recruit the best people, you could be the best interviewer, you could be the best at making offers that get accepted but if you can’t retain these people then it’s all pointless. You’re fooling yourself if you don’t pay attention to retention because turn over that’s out of your control does more harm than good, because your reputation gets dragged in the mud by the employees you couldn’t keep.

Culture Triangle

When thinking about how to retain talent, you have to think about the importance of culture in your team. Retaining people isn’t hard, but retaining talented people is the tough part and funny enough, firing has more to do with retaining talented people than hiring. Think of culture as a organism that needs to be fed from multiple sources, you need to have people move through this system in order for you to have a thriving culture.  The Culture Triangle illustrates that if you spend more time on developing people you begin to retain them long term, and if you can’t develop them and make them perform like the rest of your team, you need to fire them.

As much as hiring and firing the right way are crucial, performance management is the key – that’s why they come to work for you!

The 365 Approach

You have to have the 365 approach to how you affect your people’s performance. In other words, have an ongoing dialogue with your employees to give them real time feedback on how they’re doing, what your objectives are for them along with your expectations of them. Do this every day – 365 times a year.

Have this be the first interaction you have with your new hire – on their first day – so there’s a constant theme to how your relationship will proceed from here on out. Give them your expectations of them and what it takes to perform well in your team. Culture is everything, you need to enforce that from the start.

If you can’t have daily interactions or reviews, have a weekly sit down with your team individually to do a review of how they’re doing. If they’re not doing well, they should know how they can get better. They also need to know what they’re excelling at - it will make them work even harder knowing that something they’re doing is impressing you. More importantly – that you’re paying attention. The positive sandwich – positive meat slapped between two slices of constructive criticism.

Fire Underperformers

Your culture is in serious trouble if underperformers are not fired. If you follow the 365 approach, this shouldn’t come as a surprise either. This employee should know they’re not performing well.

Give it enough time, but not too much. The 90 day grace period should give you enough to go on. Keep in mind - if you don’t talk to the employee about what they need to work on before firing them, that’s your fault that they haven’t performed. You need to own that in front of your team otherwise this firing could severely backfire on you and lead to people quitting on you in numbers.

Like anything else, you can overboard on anything and there are certainly hiring managers that have a reputation of being “trigger happy” when it comes to their employees. The trigger happy managers often get a taste of their own bullet sooner than they think. Put away the shotgun and work on constructing a better saddle. 

Thursday
Aug192010

5 Steps to Successful Sourcing on LinkedIn

LinkedIn is a fantastic business and professional networking tool. With over 75 Million users and counting, LinkedIn represents one of the largest online resources for professional connections. With that many people, you are bound to find a handful of people in your area that are well qualified, and interested, in a position with your company. The biggest hurdle to sourcing candidates on LinkedIn is that most folks don't know where to start. These 5 tips should help you successfully navigate LinkedIn to source and contact your next potential hire.

1.) Sign Up

The first step is simple: if you don't have an account, sign up! LinkedIn is absolutely free for a standard account, and for most folks the free account will give you access to all of the tools you need to launch a small to moderate recruiting campaign. There are a few different options, including a "pro" package, which allow you to save profiles, send inMails, and get a cool logo next to your name. For all intents and purposes, let's pretend you just signed up for the free account and we'll go from there.

2.) Create a Profile

During my initial face to face interview, I advise all of my candidates to create a LinkedIn profile if they do not already have one. Think of this as your interactive online resume; a living document that is interactive, has the most up to date and relevant information, and even contains recommendations from colleagues. Make sure you are clear and concise with your information and include plenty of buzzwords about your skills and experience (just in case someone is searching for you!)

3.) Get connected

There are many options to grow your network on LinkedIn, the easiest of which is to start in your own backyard. Pull down your companies e-mail list and send all of your colleagues an invite. After that, you can import your GMail, Yahoo, or Exchange data so that anyone you have exchanged e-mails with in the past also get's an invite. The more people you are connected to, the more potential candidates that you can get introduced to.

4.) Join Groups

This is the most critical component of LinkedIn, and something that is often overlooked by users who don't understand the power of groups. Essentially, there are tens of thousands of groups on LinkedIn; anything from Wine Lovers in Napa Valley to Oracle Engineers in SoCal. Do a quick search in the group tab and join relevant groups that pertain to your industry, vertical, specialization, or interests. Once you get accepted into a few groups, you will gain access to a wealth of information, all of which is incredibly useful for recruiting that next great hire. In order to do so, you have to get your message out to an appropriate audience by reaching out to your pool of potential candidates.

5.) Reach Out

There are two methods to recruiting through LinkedIn: active and passive. A passive search is fairly straight forward: simply go into your groups discussion board and find the job post section. Once there, create a straighforward and and eye catching title for your post, ie: "Senior Oracle DBA Needed at Financial Firm in Mid-Town Manhattan". In the body section, copy and paste your job description with a quick blurb about how this job relates to the group you are posting to. "Hey Oracle DBA's United Group! I thought I would post a job for anyone who is living in NYC or interested in relocating. Looking forward to hearing from you!" Throw in your name and contact information, and wait to be contacted. 

If you are in a hurry and don't mind spending a little extra time recruiting, start actively contacting potential candidates. There are two methods to doing this, sending a message or getting introduced. You can only send messages to people you are directly connected to or people that you share a group with. Go to the member page of the most relevant groups, scroll through the active members and see who looks like a fit. Someone catch your eye? Click on their profile, and send them a quick message with the job description. If you lay it up properly, they should be flattered that you contacted them, not upset that you are trying to recruit them. The other option (and the more effective one in my opinion) is to get "introduced through a connection". Simply select the "get introduced through a connection" link on the right side of their profile and find someone you have in common. Write your connection a quick note to encourage them to forward on your description and, boom, your done!

In summary, sourcing candidates on LinkedIn is a very effective method of finding passive candidates. It takes a little bit of time to build up a network, and your profile needs to look reputable if you want people to contact you back, but once you master it, you can find some rockstar candidates.

Have you used LinkedIn as a recruiting tool before? What type of success/failure did you experience? Let us know in the comment section!

Sunday
Aug082010

How much equity should you offer?

Recently one of my previous clients, who recently left his company to join a very early stage startup, asked how much he should offer a candidate that was being hired as their Principal Developer. I thought to post my thoughts here as I'm sure he will not be the last that will be in this same situation.

It's all about Risk Vs Reward - on both ends.

This client (let's call him Tom) had a concern, and Tom's concern stemmed from the candidate's (let's call him Jerry) demand of $110K salary plus 3% in equity which would bust Tom's internal compensation structure. If the rest of the staff sniffs this out, Tom will have a coup on his hand. Tom was originally thinking $90K plus .1% in equity. We're a little far off - so what to do?

What's the candidate thinking? 

It's important to understand in this situation where Jerry is coming from. He's obviously skilled and Tom sees the value he could potentially bring to his company - but what's with Jerry and how did they get so far apart in expectations? 

First of all, how much income is Jerry sacrificing coming on board? In a perfect world, a hiring manager would need to just look at a prospective candidate and be able to make the perfect offer without knowing anything about the candidate's salary history. But we're not on the Price is Right, so it's important to understand what the candidate's salary history and expectations are before making the offer. If Jerry's taking a pay cut, then you should look at an equity component that gives ample reward for the risk he's taking. Anyone taking a job thinking they got duped will perform like a dud and leave shortly after arriving. 

Will Jerry benefit from the skills he's gained if Tom's company goes belly up? In one of my previous posts (Strong Technology Makes Jobs Desirable) I touch on what developers are thinking when they choose your job. The great developers will look at an opportunity and evaluate whether or not they will be getting better and more competitive if things fall through. Nothing's ever guaranteed, and with a startup there are more risks associated with it then a more established company. There are many more startups that fail then ones that make it. Getting Jerry to see Tom's vision would help the negotiations on the salary front, but Tom needs to find which area he could bend on without breaking the bank - or the morale of the rest of the team for that matter. 

How crucial is this hire?

If Tom's startup's success potentially rests on the wings (or fingers) of this developer then the offer needs to reflect that - especially with equity. If Jerry is so crucial, then Tom needs to give some ground away on equity. Tom needs to ask himself these questions: 

Will Jerry also be tasked with creating the product himself? In a sense, being an inventor? 
Will Jerry be handling the intellectual property? 
What if Jerry leaves in a short amount of time? Is the company dead in the water? 

In Tom's example, I don't know how large his company is, but for a startup with 30+ employees and at least one round of venture financing, the typical range is between 0.1% and 0.5% in the US for a "hands on coder" developer. For earlier stages, i.e. pre-revenue, less than 30 employees and little or no funding, it could be as high as 1-3%. In this case, Jerry is more than just a "hands on coder" so you have to consider him closer to the founders themselves than the coders on the team. 

I've seen ranges from small fractions of a percent to 25%, and I've also seen possible hires turning down a job because there was a gap in expectations and incentives. 

Maintain control, with performance incentives... 

If Tom is giving some ground on equity then he needs to also think about how he's going to maintain control. Too often what can happen is that a developer with a good slice of equity can buid up a position for himself that it can be difficult to change course if things start to go the wrong way. Tom needs to be generous if Jerry is crucial to the success of the start up but also to defend against a situation where he loses control.

A good approach, is to offer Jerry shares or options that can be converted to larger shares upon reaching milestones. Treating equity as a performance payout could be a win/win situation for both because they both get the cheese.

Don't go overboard with the equity - desperation smells...  

Even though Tom has funding, in the cases that there isn't a lot of cash to work with there needs to be a balance. If I was given a dollar for the amount of times I've heard "we're going to be the next Google" I could probably afford to buy Google at this point. I've seen and heard so many founders talk about their startup being risk free, that their business plan can't fail so they offer a position at nearly 80%-100% equity with little to know salary. While it looks like you're generous, you're turning off the good developers that are shouldering all the risk and you're guaranteed results. Be fair and don't be a tease. The company that rests on offers purely on equity might come off as confident from the outset, but it doesn't give confidence to the candidate.

A company without funding is an idea, it is not a company yet. They all start that way, but the bottom line is this, if you believe in your idea then you need to carry most of the risk - get a small business loan if you're that early stage. Make things happen, don't wait for someone else to be more of an entrepreneur than you are. 

 

I'd like to hear some stories - good, bad or incomplete about your start up experience. Whether you've hired or have been hired by a startup. How was your experience with the offer from the beginning? Did it work out? How would you have done it better?