Tuesday, October 16, 2012

Before You Find a Technical Co-founder, Answer These 4 Questions



You’re an entrepreneur and your startup is based on an amazing business idea. You’ve struck “creative gold” and now you are ready for the next stage: developing your app.

One of the most important steps, maybe the most important step, is to find a great team: a team who shares your enthusiasm, and compliments your skillset. For many business-savvy entrepreneurs one of the first key hires is a technical co-founder.

However, deciding which specific type of technical expert to bring into your startup can be a tough call. Having worked in this industry for nearly 17 years, I have seen entrepreneurs struggle with this. Companies that have thought through the 4 questions below have fared better than most. Taking the time to go through these questions will help you make the right decisions moving forward:

1.  Does my startup currently have a team member who knows how to read code?

If someone on your team knows how to read code, this section is not for you. This ‘someone’ can be the founder, an employee, an advisor, or a contractor. If your team includes at least one person that can read code, skip to Question 2.

If code-literacy is non-existent in your current team, then keep reading.

This may not seem obvious, but as a first step, I recommend that you find someone who can read code and make them part of your team: As a part time Technical Advisor. This person will ideally be a seasoned, senior-level person that has seen both success and failure in software development teams.  Perhaps she is a serial entrepreneur, or a member of a tech team at an established company.

The key to this first step is that the Technical Advisor will join your team in a part-time capacity.  Why: Because this drastically widens your net of possible candidates. A Technical Advisor can keep their day job. She can work 2 hours a week for you (either for pay, equity, performance based-bonus or for bartered services) and keep her other job. 

In terms of how/where to find a part time Technical Advisor, I’d recommend asking your network, and your network’s network. This is not something that you will post a job ad for. Searched your LinkedIn, Twitter and Facebook connections and see who you know. See who your network knows. Tell everyone you know you are looking for a Technical Advisor.


Starting this way – i.e. bringing in a part-time collaborator to help evaluate the jargon-filled, code-ridden world of technical expertise – is less expensive and less risky than hiring a technical co-founder or a CTO right off the bat. Having this person on your team will pay dividends and here’s why: finding a competent technical co-founder without the advice of an internal, “code-literate” member will be extremely difficult.  However great your idea, if you cannot read the code a technical candidate presents to you, you will not be able to know if he or she will develop your plans the way you envision.


2.  Next, consider this: What are my near and long-term goals for the code I need to develop?

This question assumes you have a team member who can read code (aka: an “Advisor”). Either you found them via Question 1 or someone on your existing team can read code.

Now you are close to hiring someone to code your application. Maybe you don’t have a single line of code written yet. Maybe you already have some code and are looking to raise Series A funding. Or, maybe you have secured funding and are building an MVP in order to get traction with customers.
In any case, I'd recommend sitting down with your Advisor or code-literate team member and writing down your answers to the following questions. This exercise will help you think about your near and long-term goals:

·    Do you want the code your team builds to be a kernel for future product development? Or will it be throwaway code?
·    Do you have a tech stack in mind or is it open?
·    Do you want to start with a web or mobile app? If you answered “web,” and assuming you will eventually build an accompanying mobile app, will you choose to build a native mobile app or skin the web app to look good on mobile?
·    Are you targeting a specific launch date? For example, if your business is seasonal, do you need to launch by November 15 in time for the holiday season?
·    What are the biggest technical risks the company faces? How can you test these in the ‘cheapest’ way possible?

3.  With questions 1 and 2 taken care of, you are now ready to find a technical co-founder. Which brings us to the questions: Should I hire a technical co-founder, a CTO or a developer? and How should I compensate this person?

In truth, at the end of the day, regardless of title, the job description is the same: This person will be responsible for the creation and upkeep of your code base.  If your company grows, this person will be responsible for building out a tech team and may or may not manage this team.  If your company does not grow, the role of this person will remain close to the code on an ongoing basis.

You and your Advisor can decide if you should title the role Lead Developer, CTO, or Technical Co-Founder.  I’d recommend actually posting several jobs, some for a Technical Co-Founder, some for a CTO and some for a Lead Developer.  I have seen multiple job titles attract different candidates, even if they all have identical job descriptions.

How do you know when you’ve found the person you are seeking? It is your Advisor’s responsibility to vet the technical abilities of candidates.  And it is your job to vet the non-technical aspects of candidates.  (Going forward, your Advisor will also help evaluate the performance of this hire, other technical hires and any tech-related partnerships.)

I recommend creating a set of acceptance criteria prior to talking to the first candidate. This way, if you find a candidate who passes both the technical and non-technical vetting rounds, you can be confident that the person is a good fit. 

In terms of compensation options, you have multiple arrangements to choose from. You can hire someone full time, part time, or contract to hire.  You can pay salary, hourly, equity, bartered services, and/or bonus. (Note: There are laws regarding what each type of compensation and employee classification can be tied to specific types of work arrangements. For advice on this, please email me.)


4.  As you embark on hiring a Technical Co-Founder, the last question to consider is:  How will I move my company forward as I take the time I need to hire?

Taking time to find the right technical expert takes time. Expect it to take 3 months. But, in direct conflict with this is the fact that startups thrive on getting product to market quickly.

Luckily, the time spent searching for an employee doesn’t have to be independent of time spent getting product developed.  You can move forward with your product development while you make your technical hire.

How?

Many entrepreneurs have effectively bridged the 3 month gap and bought themselves time to “hire slowly” by outsourcing the first three months of development. They do this by hiring a local consulting firm to pump out high quality code.  Note that this process is not the same as offshoring product development.  Rather, it is a means to maintaining the hyper-productivity inherent in all startups.

Someone once told me it was like ‘renting a brain’, and that’s basically what you are doing. You are paying for experts to come in: You are taking advantage of a team of developers that have worked together already, know how to build high quality code using modern technology languages and using modern technology practices.  The word “local” is key. You want people that you can physically meet with in person. You are building your vision, and whether it’s in your head, in a word doc, or in a prototype, it’s still fuzzy and unclear. Colocating, at least part of the time, with the consulting firm is the most effective way to benefit from the 3 month ‘bridge the gap’ plan.

As a bonus, as you vet and onboard technical candidates, the consulting firm may be able to help with interviewing and onboarding.


In summary, I recommend:
  1. Ensuring you have a code-literate team member
  2. Writing down your near and long term goals
  3. Working with your code-literate team member to vet and hire a Technical Co-founder
  4. Buy yourself 3 months to hire slowly by having a local consulting firm build the first 3 months of your product




Monday, July 23, 2012

MVP - When to Start Coding

Last week, I published a blog on the Cyrus Cylinder called "Minimum Viable Product - When to Start Coding".

In short, it provides a checklist that will help you identify when you are in that sweet spot: when you have just enough of a solid idea to use your development budget and start coding, yet you are still a teeny bit scared your idea sucks.

Happy reading.

Thursday, July 19, 2012

Scrum vs XP - Which comes first?


When embarking on Agile, many teams start with Scrum.  Sooner or later, they inquire about XP.  Is there one 'right' way of implementing Scrum and XP? Do you 'have' to do both? 

This article by James Shore does a great job of summing it up. He says "Scrum is easier and less threatening than XP, so I see a lot more people starting out with Scrum. On the downside, the teams that start with Scrum tend to struggle more than the teams that start with XP. The XP teams experience more pain starting out, but then get to a high performance state within the first year." 

As Agile evolves, and as Lean Startup enters the picture, I am sure of only one thing, that people will continue to  debate this topic.  

For me, I can say that I have seen successes both small and large when a team implements either one of Scrum or XP, and also success when they implement both.  It's not so much that you go through the motions, but rather that you understand why you are going through them and make them meaningful for your team.



Thursday, June 28, 2012

The Art of the Same Day Job Offer



To land the best developers in town, make a job offer the same day you bring the candidate on site.

I have spoken to hundreds of hiring managers over the last 16 years.  I often get asked: Where are all the good developers? How come I can’t manage to hire any of them?  When I dig into their recruiting process in the hopes of helping the hiring manager answer this question, I too often find that they are doing more things than they realize right, but are getting in their own way in the end zone. 

It often plays out like this: The company writes an engaging and fun job description and gets some interest. Company interviews a handful of developers.  Then….. thinks about who they like best. By the time the hiring managers decide who they want to make an offer to, they are often shocked to learn the developer has multiple offers or worse, has already accepted another job.

Please believe me when I tell you that developers are interviewing with more than just your company and often, the simple act of being the first to offer them a job puts you at an advantage. 

Oh, and as a side note, if you are a small (less than 100 people) business, it also goes a long way to have the CEO or senior execs personally speak with the candidates that are getting a job offer.  Candidates want to work for a small company often because they believe in the vision of those that are running it. It’s very powerful to allow the candidates the chance one-on-one to chat with those creating this vision, to hear first hand about the company and to ask questions.

In response to this, I often hear “Well, I believe you, but we just can’t make a job offer the same day we bring a candidate on site.” Oh really? Please tell me why, I’d love to hear it.

I will bet you $5 that you can.  Here’s an exercise that will help you figure out how.   Ask yourself “Why” five times. (Wikipedia describes 5 Whys as “a question-asking technique used to explore the cause-and-effect relationships underlying a particular problem. The primary goal of the technique is to determine the root cause of a defect or problem.”). The idea is to identify the root cause and then work on addressing this root cause.  That in turn will allow you achieve progress on the item you initially identified as an issue.

Here’s an example of how this may play out:

  • Why can’t I make a job offer to candidates the same day I bring them onsite?


Answer: Because our CEO isn’t always onsite the same day we bring the candidates onsite, and we have to get his approval before we make any offers.

  •     Why do we have to get the CEO approval before making an offer?


Answer: Because we want to ensure we hire candidates that meet our criteria both financially and technically, and also fit with our culture and the CEO is the one who approves these decisions.

  • Why can’t we pre-define our criteria so that senior execs know when they see a candidate that meets these criteria?


Answer:  We could, but our CEO also wants to personally meet each candidate that we make an offer to.

  • Why can’t we make the offer while the candidate is onsite, and tell them everyone that gets an offer gets to meet the CEO in person, and then schedule the CEO meeting within the next week?


Answer: I guess we can. But,  what if the CEO doesn’t agree with our assessment?

  • 5Why can’t the offer be contingent upon the CEO meeting going well?


Answer: I guess it can.


This is a very simple example. I am certain your particular hiring process and company situation is unique.  If anyone would like help with the Five Whys exercise, email me and I can facilitate the discussion. 

Once you identify the root cause of not being able to make a job offer the same day a candidate is onsite, it is useful to get the team buy-in to address the root cause, with the goal of achieving same day job offers.


Thursday, April 26, 2012

3 Tips: How to hire for motivation


“Hire and promote first on the basis of integrity; second, motivation; third, capacity; fourth, understanding; fifth, knowledge; and last and least, experience. Without integrity, motivation is dangerous; without motivation, capacity is impotent; without capacity, understanding is limited; without understanding, knowledge is meaningless; without knowledge, experience is blind. Experience is easy to provide and quickly put to good use by people with all the other qualities.” - Dee Hock , founder and former CEO of VISA

Last month, I wrote on how to hire for Integrity, which remains my number one most important quality. Now, we’ll chat about motivation.

So, how does one hire for “motivation”. What does this even mean? 

When I hire someone, my goal is to ultimately have that person super excited to show up for work on day one because they are so happy to be joining our team. To me, that’s the motivation I am looking for.

3 Tips on how to know if someone is Motivated to join your team:

1.     This is cliché, but ask them why they want to work for your company. You’ll be amazed at the answers you get, I promise.  In my experience, I have gotten largely honest answers to this question, which often directly contradict with showing me someone is motivated.  If someone tells me that they want to write code, earn a paycheck and work in NYC, that does not convey specific motivation to work at Cyrus. If they say they specifically sought out Cyrus because they were impressed with XYZ, that tells me they are here for a purpose.

2.     Have them define ‘meaningful work’. When someone believes the work they are doing is meaningful, they are intrinsically motivated to do that job well.  If someone can’t talk about what type of work is truly meaningful to them, or if their answer doesn’t match the work you are offering them, they are not properly motivated to do the job.

3.     Make sure they’ve done their homework and researched the company. If someone is interested in working specifically for your organization, they are going to take the time to learn something about it. Five minutes on the internet can give a candidate enough fodder to look like they have a wealth of knowledge, yet amazingly this does not always happen. One could argue that an inexperienced interviewee may not know any better and is truly motivated but didn’t realize she ought to research.  I would argue back that those closest to college are the ones most on twitter and facebook and would have the most access to social media and your company information.  If someone is truly motivated to work at a specific place, they will do a base level of research.

Monday, February 6, 2012

3 Tips: How to Interview for Integrity


Lately, I’ve heard a lot of commotion about using technical exercises, brain teasers, problem solving tests, and the like as the basis for an interview process for developers, as well as for other members of Agile teams. However, in the quest to nab the top development talent in 2012, recruiters and tech managers alike may be sacrificing integrity for tech chops.
But, if you go into each interview prepared to interview for integrity, you can land yourself a top candidate that is both honest and extremely technically talented.
Here’s how:
1.     Fill in the gaps. Review the resume. Prepare questions to fill in any gaps or questionable things you see.  For example, many people take time off in-between jobs.  If you see someone was a Company A 2010 and Company B 2011, maybe they were employed continuously, perhaps they had 6 months off, hard to say. If the candidate’s current job is in Alabama but they have a NYC address, ask if they are telecommuting, or perhaps that job ended and they moved to NYC three months ago and didn’t put an end date on their most recent job. 
2.     Ask scenario questions. Prepare a handful of open-ended scenario questions that help you see how honestly a person approaches a problem. A couple of examples that I like are below. The idea is to ask a question that forces the candidate to think about how they’d personally handle an awkward situation. After asking these types of questions for years now, I’m amazing at the variety of answers I get, and also continuously surprised at how often a person’s true colors come through as they answer these questions.
a.      “You are doing 2 week sprints. One day before the end of the sprint, your manager tells you and your pair that we have to push extra story points into this sprint, and if we skip TDD for this code and don’t tell anyone, we can ‘squeeze it in’. What do you do? “
b.     “Your peer approaches you at lunch one day. He says “I’m going to skip out this afternoon, I told the boss I have a doctor’s appointment but I don’t. What do you do?” 
3.     Dig deeper. There comes a point in many interviews when the interviewer feels they may have just been lied to. Many of us react by doubting ourselves and backing off, moving on to the next question. Instead, dig deeper. Ask follow-up questions until you are sure you have the information you need to assess honesty.  For example, here’s a sample conversation that digs deeper:

·      Interviewer: “Tell me about your job”
·      Candidate: “I worked on XYZ project on an Agile team.”
·      Interviewer: “Tell me about an agile process you really like”
·      Candidate: “ I like standups because I get to hear what everyone is doing for the day”
·      Interviewer: “Tell me about an agile process that you aren’t a big fan of”
·      Candidate: “I like them all.” {NOTE: Is the candidate being honest, or are they not familiar with Agile?}
·      Interviewer: “Ok. Tell me why you like pair programming”
·      Candidate: “Actually, I don’t really know what that is”
So, this is a simplified conversation but you get the idea. As soon as you start digging deeper I promise you’ll be quite interested in the answers you get. 

Oh, as a side note, always do your due diligence. Background checks are a key component in ensuring the person you are hiring has accurately represented their history.  

Monday, January 23, 2012

3 Tips: How to achieve work/life balance

I am a working mom. I have two kids that I absolutely adore and a job that I absolutely love. Yet, for the past 7 years, I face the daily challenge that every working mom that I know faces - how to balance it all.  Here are 3 things I've learned along the way to help achieve work/life balance on a daily basis.

1. Be present.

Whether you spend 1 hour or 24 with your kids today, and whether you spend 4 or 12 hours at work, make absolutely sure your mind is present.  Stop thinking about the 20 things you need to get done tomorrow, or the bills you have to pay. Instead, focus on enjoying the present moment.  If you are like me and find it difficult to free your mind from wandering thoughts, carry a pad and pen, and write down your thoughts as they arrive, so that you can address them later.  

If you are in a meeting, ensure that you are adding value to the meeting and are getting something out of it. If not, ask permission to leave.  At my company, every person is permitted to leave a meeting if they aren't contributing or getting value out of it.

If you find you can not be present, try leaving the room for 5 minutes to clear your head. Maybe send yourself an email to write down your thoughts. If something that happened in the past is bothering you, say to yourself that you are going to "put your thoughts in a box" for the next hour. Give yourself permission to "open the box" in an hour and think about the bothersome thought some more. Set a timer on your phone for one hour so you can focus on the present and know your phone will alert you when the hour is up. If it is still a problem, spend 5 minutes brainstorming constructive ways to address it.

2. Prioritize.

There are always going to be things at work and in your personal life that you just can't attend, no matter how organized and efficient you are.  Prioritize what's important to you and make a decision to attend those things. It's always easier to make larger, overarching decisions than to make one-off decisions (but that's another topic for another day).  For example, I get 3 emails per day from my kids's school asking me to help with this and that.  When asked to help out with something that allows me to spend quality time with my kids at school, I volunteer. If not, I pass.  So, if I'm asked if I want to volunteer to sell brownies at a school bake fair, I pass. If asked if I want to chaperone a field trip where I get to go see a 3D movie with my daughter, I'm all in.

Same for work. I am the type that instinctively wants in on everything. But, I try my best to work on only those projects that I feel I add specific value to.  I am also invited to many weekend and evening work events. I limit myself to one per week max, with almost no exceptions.

3. Plan time for yourself.

You have to nurture yourself before you can be useful to those around you.  One thing that's worked very well for me is scheduling 1 hour each weekend to myself, I can lay on my bed and read, go shopping, surf the web, do whatever I feel like at the moment. This is not a time for errands or taking care of others, just focusing on relaxing. 

Also, I find that I need at least 30 min of down time each day.  I know this seems silly, but I can sometimes get up at 6, go full speed to get the kids to school, go straight to work, forget to take a lunch break, get home at 6 to go full speed again until the kids are asleep and then realize I didn't take any breaks at all during the day, not good.  Sometimes I'll actually schedule the 30 minutes into my work calendar to ensure it happens. Sometimes I'll leave work 30 minutes early to give myself a cushion that way.

I also find that taking a few minutes each weekend to look at the week ahead, and do some light weekly planning goes a long way in ensuring balance and productivity throughout the week. For example, if I know Monday is a light day but Tuesday is packed, I can plan around that and not let it surprise me Tuesday morning.