I've been running a company for nearly 10 years, and all this time it's been just myself, another programmer (who's a great friend and cofounder), and a salesman (who's also a friend). Together, we've managed to do decent business and we've all managed to make a living, but we've been trying to expand for a long time now.

Unfortunately, there are a few problems:

The technology we use is not obsolete, but it's also not as popular
compared to other web development options like PHP

We work in a competitive market, competing against multi-million
dollar companies

We can't afford to pay new programmers or salesmen very well. We make
enough money for ourselves, but unless we got a significant number of
new customers we wouldn't be able to pay much.

Because of the fact we can't pay much, we use a slightly more rare
technology, and we compete against large companies, we find it
difficult to find new programmers or salesman.

We desperately need to expand, but when we try to get more customers, we can't support them with so few people (or their demands grow outside of our range of expertise) and when we try to hire new programmers and salesman, we usually don't get a high quality and they usually don't provide a major benefit for our company.

This question appears to be off-topic. The users who voted to close gave this specific reason:

"Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Snowman, durron597, MichaelT

You seem like you need some smart minds with fresh ideas but that costs money. You are clearly struggling to expand organically so you need to look for funding or capital infusion. If you make big promises and sign a big deal then you should be able to secure some capital needed to bring on a good team.
–
maple_shaft♦Dec 20 '11 at 19:24

12

Ever thought of hiring a programmer part time? Or going to the local college/university and trying to get interns?
–
JettiDec 20 '11 at 19:32

10

If you want a programmer better than what you can afford to pay in cash, there is always the option of somehow cutting them in on the revenue they generate, if they do so. The clearer you can make the path to them actually seeing this money the less they will discount its value.
–
psrDec 20 '11 at 19:35

58

If your clients require more services than you can afford, you're not charging enough.
–
JeffODec 20 '11 at 20:03

19 Answers
19

I'll start with the hard truth: If your business model only works as long as you can get an expensive resource (developer talent) for a price lower than the market price, then you don't have a business model. The fact that you're competing against larger companies isn't an excuse. In the development field, larger organizations typically have higher costs per "development unit" than smaller ones (Diseconomy of scale). So you should be able to offer your programmers a higher salary than those larger companies, where every developer has to "pull" for one or two managers, secretaries, HR people and the likes.

That said, I think the best thing you can do in the short run is to hire programmers with little or no experience. Think high-school graduate who liked to play around with Python in his free time. The implicit deal would be: They work for a low salary and in turn you teach them professional programming, good practices, how to deal with customers and so on.

+1 but high school grads aren't helpful and even if they are extraordinarily smart they tend not to be mature enough. College interns are the way to go.
–
maple_shaft♦Dec 20 '11 at 19:52

7

@nikie there are more college CS students than internships at well known companies. So if they want an internship, most will have to settle for something other than well known (software) companies. On top of that, not every student wants to leave the area that they live in.
–
JettiDec 20 '11 at 20:06

11

Many college students need money to help cover tuition and would be thrilled to work part-time for $20/hour, even if your technology is old. If you are anywhere near a selective school, then ask the CS department, or just advertise for part-time help.
–
kevin clineDec 20 '11 at 20:11

3

@kevincline In my area I have no problem finding enthusiastic college interns for $10/hr. Pittsburgh after all has a lot more schools and students than jobs :)
–
maple_shaft♦Dec 20 '11 at 20:20

6

Be careful with the cheap approach to software development. Make sure what you save on salary you are not spending on support, maintenance, and training. A few years ago I was a developer working for a very small company that constantly hired right out of high school or community college. I was constantly fixing issues created by inept programmers. You could end up spending more on support, maintenance, and training than just hiring a developer at a fair salary who is going to do it correct the first time.
–
Ron SkufcaDec 20 '11 at 21:06

You need to think outside the cubicle. Take advantage of your flexibility.

If you want to hire a top talent programmer, but cant pay a full salary... hire a part-time, top talent programmer. You'd be suprised how many people would jump at a 20 or 30 hr/week job, so long as the hourly rate you were paying them was in line with what they'd be expecting. It'll save you a lot of money, and let someone devote more time to side projects, or just enjoy a personal life. Someone with more experience will be far, far more productive more quickly as a part-time hire than a less expensive, less (or no) experience full time employee.

You can try to get new grads who are desperate for a job willing to put up with less pay for the experience. But you will have to have a really good eye to pick out the undervalued person with high potential from the majority of them who are just plain bad.

The problem is even if you get the undervalued person who are really good, you shouldn't expect them to stick around since they will gain experience and move on.

It is more expensive in the long term to keep re-training new hires and facilitate knowledge transfer than to get proper financing and pay at least market rate, it is only at around market rate when team/culture/loyalty start to be the key. Money isn't the biggest motivator, but lack of money is the biggest Demotivator, great companies can retain top talent with so-so pay, but none of them became successful with crappy engineers and a sub-par pay.

You can also try to pay with stock, but unless your company seems to be have huge potential and will go on to be acquired/IPO, no one really want stock. If your company is this good then it isn't hard to get investor money.

I think you've reached the point where you need in infusion of capital in order to grow. Your question should not be how you can get inexpensive developers, but how you can get the capital to pay good ones.

This means you need to evaluate your business plan to determine whether the investment in developers will return more value than cost in a year or two. If so, start looking for a loan or an external investor. If not, there isn't really much point in growing.

I have to admit i had a little chuckle when i read your issue due to the fact i had nearly the same problem and now we are well on the way to providing the latest technologies to our customers and taking on the bigger competition.

First of all you need to identify what platform will provide the services your customers need so time to sit down with your developer and do the old classic white board style product analysis..

We then employed a junior developer and put both him and me (being the primary developer) on the courses to get us up to date with the technologies we needed to use.

We then employed on a part time basis a consultant who was fully up to date with the same technologies and was able to assist in the development process.

Then for your primary developer as the same as it was for me it's a matter of putting in the hours and continually evaluating the progress of the development project ensuring you use the consultant for the harder more complex aspects and provide achievable goals for the junior developer.

You have to be very lucky -- this means interviewing large number of people -- it's hard work to find suitable people.

You have to have good timing -- it's easier to find people when noone else wants to hire

You have to give competitive salary -- small business is always a risk for programmers -- it's just not clear when the business is gone and the programmer again looking for work -- that risk pretty much means more money. Reduce likelyhood of that risk and more people will come.

If salary is poor, give stock options or similar stuff where future company profits will go to the programmer. This is always more risky than steady salary, but suitable for startups.

Don't spend all the money -- many startups have been started by "rotating" money inside the company and controlling the flow of money from the company to the outside world. New people are just part of the cycle, they get salary, and will eventually buy the company stock. Assuming they still trust the company. This makes the company survive longer making it better choice for programmers.

Provide good working environment -- even if your main business is outdated legacy stuff, it can be saved by providing state of the art tools and development environments which makes working more fun.

Focus on quality. Every programmer just wants to conquer the world. Just make it happen. If it happens with cobol, that's ok as long as you really get the world and noone knows you're using cobol.

Find places where experienced people are available. Visit local university. (more experienced people are well, more difficult to find, they tend to be busy..)

I've had some success hiring interns for a project. You have to be good at finding good, passionate, learners for this to work and be willing to spend some time mentoring. The biggest problem I've had with a well trained intern is that they'll leave for higher pay after graduation unless you're willing to make the ongoing investment in keeping them around.

I've been hired myself as a contractor many times, both full-time and part-time, and I've hired contractors as well. How well this works varies by the person and job and how well they match but you won't have as long term investment in them. If they don't work out, it's easier to let them go and if things do go well, you'll know that it's worth the investment to bring them in perm. If you can't afford to keep them around, you can let them go easier or work out a part-time plan.

You are not charging enough to hire decent staff locally. If your business model does not permit this then you must question the work you produce. If you are not willing to change your pricing model then you must bear the harsh reality of hiring offshore resources.

I'm quite experienced with this and I can tell you that you must put in hard time to interview without exception. Its literally a 1/200 chance you will find someone worth hiring on eLance or oDesk so that tells you the number of interviews you must wade through. You also have to be an attractive employer as well so WHAT CAN YOU OFFER THEM LONG TERM? Here is what I've learned and what I do.

A good offshore programmer does these things.

Is very honest

Communicates on a regular predictable schedule

Is working on a regular and predictable schedule

Has a good grasp of your language and communicates well

Is friendly and courteous and a general joy to talk to

Is passionate and helpful and cares

Is available for the amount of hours you need and dedicated to you in that time

Completes things on time

Is an INDIVIDUAL freelance programmer, not some team or slick talking project manager. This does not work out hiring someone else to do your job of being the boss, EVER.

If any of these things are not the norm for the contractor, do not hire them long term. Best to drop them quickly. You CANNOT know about these things unless you put them through tests that involve real world problems, time commitments and about 1 month of trying them out. However, you can reduce your failure rate by doing a lot of upfront filtering before trying them out. Remember, there is a sea of people waiting to fulfill your needs.

You must also talk about yourself or your company. Post about your company showing its highlights and what it can do for the potential employee / contractor to attract the worthy.

List history of your company and successes

List your technology and its relevance in today's market (yes they read this)

List benefits, hourly rates, bonuses etc.

Focus on presenting stability and reliability and long term employment

Here is what you don't do.

Hire a company or team or organization to "handle" your work

Trust they will work out

Pay higher than market value expecting that to make someone work harder

Here is my process of interview to filter out candidates...

Create a job posting for the perfect qualities you desire and set the bar as high as you can because people will post that have none of these qualities so it helps weed them out a bit and better to ask the most up front.

Place a small blurb at the bottom of the posting to indicate they have actually read the interview such as "please write about your most impressive work at the beginning of your response that relates to this posting". This will tell you if they are a human, if they can follow directions, if they are passionate about what they do and if they have some skills that will help you.

Create initial small fixed priced PAID tasks that will be paid upon successful completion. You can either make real tasks or just test tasks but I found its more productive to do real ones if you can as it really shows ability.

Have a grace period of 2 weeks by the hour. Do not pick your favorite yet. You should have everyone going that has passed #3 because you don't know how they are until you know how they are.

Now be selective to the ones who communicate the best and who are the most reliable and you just plain like the most.

You should be OK after going through this exhausting process because your hard work will produce the desired result. If it seems to come too easy then you are doing it wrong. It requires due diligence, persistence and hard knocks. Keep trying till you get it and its very much worth it. Your company will start to grow as your free time opens up for getting more clients.

Consider hiring a mommy-track (or daddy-track) programmer who is experienced in your skill set, would like a half time job, has flexible hours and will be dedicated to remaining with a company that can accommodate the flexibility needed by a primary caregiver. Money beyond daycare costs often isn't an object as they are eager to maintain and enhance skill sets but not interested in going back to work full time.

Look for people who were real go-getters before the kids. They'll probably bring that to a part-time job and will be part-time for you for years with high skills and low costs -- often healthcare is paid by the full-time parent's job so there can be a savings there.

If you can vet some good programmers and keep them available (not easy) then you might be able to hire them out directly as consultants working with your product.

This can be done directly, sending trained people to a customer's site or by hiring someone temporarily to solve a problem or implement a feature for a particular customer.

I guess I'm suggesting that you get your customers to pay for your new people/new features through service contracts.

Without service contracts it also seems to be difficult to keep a small company going without a significant re-investment in the company.

You may want to think of it this way:

If your goal is to earn the two of you a living, then you don't need to expand it and doing so will probably lead to it's collapse anyway.

If your goal is to create a new startup company that grows and prospers, chances are you guys shouldn't be drawing much in the way of salaries, all that money should be going back into the company (Either into obtaining new customers or into improving your product so that you can obtain more customers later).

The last successful startup I worked at the top people didn't draw salaries for the first two years and even then they only started because there was extra cash and they wanted to start recovering their investment.

Money is usually the biggest motivator, so you need to secure some if you want to expand your business. Have you and your business partners thought about taking a pay cut in order to afford a good developer? Unless you secure some investors or close more deals with new/existing customers, this is likely the only way you will be able to pay another person to work for you.

But, if you agree with the video, and programmers are most certainly knowledge workers, then you're agreeing that money isn't the biggest motivator. I mean, money always matters, and if he's not offering enough to live on, money REALLY matters, but other factors are far more motivating than money. The same goes for the co-founder and salesmen though, so a paycut may still be an option.
–
PhilipDec 20 '11 at 20:57

Sorry to say, but I certainly wouldn't work for under market rates unless you can offset that with other options. Equity doesn't add in here very well - company value has a habit of fluctuating and the startup lotto win % doesn't work too well. :)

But you could simply ask people to work part-time. Say your market value for a programmer is 100K. But you can only pay 75% of that. Okay, I would work 3/4 time for 75K. That would actually work really well for me, since I like to work on my own stuff, and 75K would cover my bills well.

You could recruit graduate students for this sort of thing - they are usually badly paid and many are very capable. If you can hire them part time for relatively decent pay (sort of intern-ish), then both of you will be better off.

Fundamentally, you need to get your business more sustainable, of course. But that doesn't relate to hiring very much, and will take time.

Hiring good sales people is much harder than hiring good programmers, so I would suggest building a good tech team out of some good, reliable people (I believe in a star team, not a team of stars). You and your colleagues have strengths in management and sales so get other people to take over the everyday work like code writing, tech support, sales support so you can do what you do best.

The other suggestions about hiring interns are good and I've used that strategy before. But an equally good strategy is hiring older applicants who are less likely to leave in 6 months for a cooler company with beanbags or fancy coffee makers. They need less supervision, spend less time on facebook, will probably know your older language, and will get on with their job. And right now there are plenty of good people looking for a job.

Hire a good offside java developer in India. You will be amazed how good talent you can hire so inexpensively. You can give the candidate a week's worth of work to see if he/she fits. However, don't hire services from a company. Hiring a developer directly will benefit you and developer both.

Where do you do your banking? Have you checked into taking out a small business loan? If you've been profitable for 10 years you should have a good business case for borrowing money. Hire the best and forget crossing your fingers that a rookie will work out.