The Entrepreneur Forum | Financial Freedom | Starting a Business | Motivation | Money | Success

Welcome to the only entrepreneur forum dedicated to building life-changing wealth.

Build a Fastlane business. Earn real financial freedom. Join free.

Join over 90,000 entrepreneurs who have rejected the paradigm of mediocrity and said "NO!" to underpaid jobs, ascetic frugality, and suffocating savings rituals— learn how to build a Fastlane business that pays both freedom and lifestyle affluence.

Free registration at the forum removes this block.

We don't even have a chance to find good programmers

fellipe

Contributor
User Power
Value/Post Ratio
16%
Sep 5, 2011
143
23
36
from http://www.paulgraham.com/startupmistakes.html


6. Hiring Bad Programmers


I forgot to include this in the early versions of the list, because nearly all the founders I know are programmers. This is not a serious problem for them. They might accidentally hire someone bad, but it's not going to kill the company. In a pinch they can do whatever's required themselves.

But when I think about what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. That's actually much harder than it sounds—almost impossibly hard in fact—because business guys can't tell which are the good programmers. They don't even get a shot at the best ones, because no one really good wants a job implementing the vision of a business guy.

In practice what happens is that the business guys choose people they think are good programmers (it says here on his resume that he's a Microsoft Certified Developer) but who aren't. Then they're mystified to find that their startup lumbers along like a World War II bomber while their competitors scream past like jet fighters. This kind of startup is in the same position as a big company, but without the advantages.

So how do you pick good programmers if you're not a programmer? I don't think there's an answer. I was about to say you'd have to find a good programmer to help you hire people. But if you can't recognize good programmers, how would you even do that?


discuss...
 
Dislike ads? Remove them and support the forum: Subscribe to Fastlane Insiders.

Darkside

Bronze Contributor
User Power
Value/Post Ratio
18%
Jul 4, 2010
782
140
San Diego
I think the problem that most of the users here face is not knowing how to program. So, they have to outsource their programming to someone else, which can be expensive if you hire someone in the States, or it can be risky if you hire someone in India or China for instance, where they often delay finishing a project in order to receive additional money, or even add a back door so that they can hack your site after you've paid them and demand even more money.

There is no easy solution to this problem. If you don't want to take the risk of outsourcing, then you must hunker down and learn how to program, which can take months if not years to get good at. Or, you can find someone who is good at programming and give them some equity, which usually isn't very attractive since the programmer would have to believe that your company is going to become successful, otherwise he's basically working for free.
 

Nick

Contributor
User Power
Value/Post Ratio
62%
Oct 25, 2011
149
93
There are very few business that succeed or fail based on the quality of the code written. Unless you are doing some cutting edge software startup, your programming needs should be met by any decent software programmer.

And there are plenty of decent software programmers to go around. Most people prefer to think that programming is what holds them back, or that programming defines success in a web business. It's not. Programming is just another profession, moderately paid.
 

mcjon77

New Contributor
User Power
Value/Post Ratio
31%
Sep 5, 2011
51
16
Paul is talking about some of the more innovative ideas out there. 85% of the stuff non-technicals think up are pretty simple systems to develop (I would bet that the bulk of them fall under the categories of social network, ecommerce site, or content management system).

However, there are projects where you REALLY need a skilled coder, particularly when you are entering uncharted water or computationally intensive tasks. In these cases, I have seen two problems. The most obvious is hiring a programmer that is not competent enough to develop the software (or at least develop a version that isn't riddled with bugs). In many cases, the project usually just stalls or falls apart shortly after deployment.

A much more insidious problem with not hiring a skilled programmer only shows up later. In this case, a programmer may create the software, but he does so in such a poor manner that it either doesn't scale well and/or is EXTREMELY difficult to modify, extend and maintain.

The scaling issues could be a matter of simply using inefficient algorithms or designs (e.g. multiple unnecessary database calls, no well thought out caching strategy, etc). At one company I worked for, they outsourced a major project that was essentially the customer's primary method of interacting with our service. The system worked fine in the demo. It also worked fine with the limited group of beta testers. However, when it was released to the general customer base it crashed pretty quickly due to inefficient design. The developers made several poor design decisions that led to an unusable product.

When we dug into the code to try to modify it, it became obvious that the code was basically at rats nest (often called spaghetti code). As an analogy, imagine trying to repair a car when the engine is permanently welded to the chassis, or change a tire on a car whose wheels are permanently attached to the axle. Eventually, they brought in a very skilled developer as a consultant. He wound up telling them that it would cost them MORE money trying to fix the new system and correct the previous developer's mistakes than it would to simply start all over again. When I left the company they had decided to simply scrap the new system and rely on the original system.
 
Dislike ads? Remove them and support the forum: Subscribe to Fastlane Insiders.

healthstatus

Gold Contributor
Read Fastlane!
Speedway Pass
User Power
Value/Post Ratio
147%
Apr 11, 2011
1,689
2,481
Indianapolis, IN USA
Fillipe & mcjon, you are also talking about 2 aspects of a system. Design and programming, if the design is poor (talking systematic design not visual design), it doesn't matter how talented the programmers are, and conversely a really well designed system, can utilize very mediocre programmers and have a solid working system, as long as the programmers followed the design specs. Many people mistake programmers for designers and provide specifications along the lines of I want this thing that does this thing and then it does that thing and you can get some reports. Then they blame the programmer for doing a bad job.
 

Milenko

New Contributor
Read Fastlane!
User Power
Value/Post Ratio
17%
Mar 6, 2011
93
16
Cleveland, OH
Fillipe & mcjon, you are also talking about 2 aspects of a system. Design and programming, if the design is poor (talking systematic design not visual design), it doesn't matter how talented the programmers are, and conversely a really well designed system, can utilize very mediocre programmers and have a solid working system, as long as the programmers followed the design specs. Many people mistake programmers for designers and provide specifications along the lines of I want this thing that does this thing and then it does that thing and you can get some reports. Then they blame the programmer for doing a bad job.

I think you're talking about software architecture here and you're right - a well architected system can be modularized to utilize less skilled programmers at various points in the process to keep down costs. But, in most cases, people rely on these less skilled programmers to be both architect and programmer not realizing that designing a robust and scalable architecture isn't in the skillset of the vast majority of programmers.
 

wade1mil

Platinum Contributor
Read Fastlane!
Read Unscripted!
Speedway Pass
User Power
Value/Post Ratio
246%
Jun 29, 2011
1,813
4,466
So how do you pick good programmers if you're not a programmer? I don't think there's an answer. I was about to say you'd have to find a good programmer to help you hire people. But if you can't recognize good programmers, how would you even do that?

I totally agree with you in that you should find a programmer to help hire a programmer. I would find a good programmer by asking many people in the industry who the best programmers are and hire one you can trust. Worst case scenario, they hire the wrong guy just as the businessperson did in the first place. Best case scenario, you got a great referral and hired the right programmers to make your business flourish.

And I think there were a lot of bad programmers in the 90's because it was a fairly new concept to mainstream and they were hiring programmers like crazy. These are probably the same people that became real estate agents and mortgage brokers back in 2005-06.
 
Dislike ads? Remove them and support the forum: Subscribe to Fastlane Insiders.

mcjon77

New Contributor
User Power
Value/Post Ratio
31%
Sep 5, 2011
51
16
Fillipe & mcjon, you are also talking about 2 aspects of a system. Design and programming, if the design is poor (talking systematic design not visual design), it doesn't matter how talented the programmers are, and conversely a really well designed system, can utilize very mediocre programmers and have a solid working system, as long as the programmers followed the design specs. Many people mistake programmers for designers and provide specifications along the lines of I want this thing that does this thing and then it does that thing and you can get some reports. Then they blame the programmer for doing a bad job.

The distinction I would make is that in most startups, the designer is also the programmer (or at least the lead programmer).

Also, a well designed system still needs a good project leader to manage the mediocre programmers, and to evaluate whether a particular mediocre programmer is competent enough to handle a particular task. You could have the most perfect design (with detailed specs) out there, if you hand it to a team of mediocre programmers, with no competent supervision, you are still going to get a crap product. I've seen it happen.

At a more fundamental level, a well designed system needs a good designer. In fact, I would say that in the situation you mentioned above (using mediocre programmers) the designer needs to be even BETTER than he would normally need to be. Not only must he create an elegant design, he must also provide EXCELLENT documentation so that mediocre programmers can follow it. In my personal experience, the number of designers/architects that can both create an excellent design AND excellent documentation is extremely small.

So, at the end of the day, we are back to the exact same point that Paul Graham made in his writing. We just replaced "programmer" with "designer/project leader".
 

FastNAwesome

Gold Contributor
Read Fastlane!
Read Unscripted!
Speedway Pass
User Power
Value/Post Ratio
117%
May 23, 2011
1,118
1,304
This theme gets revisited here on forum over and over. As a programmer I'd like to address a few points:

1) In many of alike threads started here, it reads between the lines that what startup guys really complain about is - that they cannot start their project CHEAPLY. And they somehow feel entitled to it. Domain is few bucks, hosting too. It's so near!

Well, sorry guys, 90's are behind us. Web projects are much more complex today, competition is stronger, and it is all MORE EXPENSIVE.

2) I think you CAN find good programmers. Just like you find good anything else. Just like you can buy a good car without knowing how to make one. There are parameters you can base you decision on. Ever chose a doctor? I think that was far more serious decision, yet you managed it.

So you can hire good programmers. You can stay on the safe side by working and paying in milestones. You can hire another, just as reputable (if not more) programmer to audit the code.

You will never get a perfect code, as there's no such thing. Even if it were ideal and bug free - time in itself will make it deprecated, and you'll need to upgrade and tweak it, sooner or later.

3) YES, quality programming matters, but don't obsess over it. Many garbage websites (code-wise) out there do great business. Big websites also have bugs, use suboptimal solutions and get hacked ()

If you need something to obsess about, let it be availability, functionality and profitability of your website. Another words, FOCUS ON YOUR BUSINESS. That's what matters. Once you have enough profits, you can easily pay, with your or raised money - top notch experts to fix or redo your website.

4) "Should I learn programming myself" question is also often asked in this context. It's a matter of choice and preference really. You'll either invest time or money. As mentioned in 1) things are more complex today, so for do-it-yourself route account for learning, as a bare minimum: HTML, CSS, JAVASCRIPT, 1 javascript library (like jQuery), 1 database, 1 server-side language.

You can learn it and it stays valuable asset of yours (if constantly upgraded). You can have it done for you. You can mix these 2 approaches. You can't "learn just enough to know if your programmers do the good job". To be an auditor of someone's work, you'd need to be equal or preferably higher expert. With learning "just enough" you'll at best be able to spot just total amateurs. Everyone else can get away by nicely indenting code.
 

healthstatus

Gold Contributor
Read Fastlane!
Speedway Pass
User Power
Value/Post Ratio
147%
Apr 11, 2011
1,689
2,481
Indianapolis, IN USA
The distinction I would make is that in most startups, the designer is also the programmer (or at least the lead programmer).

That is a HUGE problem and the point I am trying to make is it doesn't matter the talent of your programmer if you get the design wrong, so if you try and hire your main programmer based on his programming skills, and you don't hire a designer, you have done it wrong! If you hire a programmer based on his design skills, then you have a chance. But better is to hire a designer, have him design the system, then use that as the spec to hire programmers. When you build a building you get an architect first, I wish people would understand you need to do the same when building top notch software.
 
Dislike ads? Remove them and support the forum: Subscribe to Fastlane Insiders.

Post New Topic

Please SEARCH before posting.
Please select the BEST category.

Post new topic

Guest post submissions offered HERE.

Latest Posts

New Topics

Fastlane Insiders

View the forum AD FREE.
Private, unindexed content
Detailed process/execution threads
Ideas needing execution, more!

Join Fastlane Insiders.

Top