By Peter Bell

On Talent

If someone is on trial for murder, they are probably going to hire the best attorney they can afford. Fans never question their favorite Football team spending eight figure sums on star quarterbacks when I know there are college kids who’d play as quarterback for the Cowboys for free. Yet when someone chooses a website developer, price is usually the primary driver – often using the Goldilocks Strategy . . .

I think one of the biggest problems is that unless YOU are a great programmer it is extremely hard to tell a great programmer from a below average one. It also doesn’t help that there seems to be the persistent myth that programming is a fairly straightforward craft (like, say laying bricks) as opposed to a highly creative endeavor (like, say architecting a house).

Of course, there are shops where a couple of architects try to corral a large number of average developers into writing acceptable code (which is of course one of the reasons why Statically typed languages and “Nanny IDEs” are so popular), but in my experience the optimal ratio of stars to regular developers is 1:1 with a strong mentoring approach and a selection process optimized to pick future stars with rough edges and to mentor them into becoming the stars of the future. I can’t imagine coming up with enough architecture to keep five programmers busy if they’re all smart and using meta-programming and code generators to remove all of the repetitive elements of their jobs.

What do you think? What is the optimal ratio of stars to regular developers? Do you hire for experience or potential? And how important is talent in software development?!

Comments
I think talent is important in developers, but perhaps not so much as we want to believe. Architecture makes for a good analogy.

Do you need Frank Lloyd Wright to design your house? I don't. I just need an architect who is sufficiently competent and has a pretty good aesthetic sense (not great, I just need a house).

I think of myself as a pretty good programmer, but many of the projects that I work on could be done by programmers with less experience than myself.

This seems to come back to the concept of "Good Enough". The talent needed for any given project really depends on the complexity and importance of the project.

If you are on trial for murder, the importance of the task is so high that you can't stomach any risk, so you will try to get an attorney well better than what is needed.
# Posted By Steve Bryant | 1/25/07 9:37 AM
Hmmm, yes and no. Wouldn't it be nice if a top architect DID design your house? You might not be able to afford it, but I bet it'd be a cooler, more livable space.

I think it is a matter of doing the Target thang and figuring out how to bring good design in at a low price point. Ohhh, wait - that's what an application generator would do - good architect designs core system and it can be implemented in a semi-automated manner. Better go write one :->
# Posted By Peter Bell | 1/25/07 9:51 AM
@Peter

ding ding ding ding ding ding ding ding ding

You hit the nail on the head with, "You might not be able to afford it". Right there you said it all. How much do you charge to do a site? I'm not getting out of bed for anything less then 10K. Can I get the site done faster then the average Joe? Of course. Will it runs faster? Of course. but for the most part if the site is simple and straightforward, why pay me to do it when Joe Average can do it for a lot less.

Take the house argument. Can the top architect build my home, of course, but like Steve said, I just want 4 walls and ceiling. Why should a pay 1million for something any architect can design for 100K?
# Posted By tony petruzzi | 1/25/07 10:27 AM
But what about Target that hires top designers, mass produces the goods and sells them at an affordable price point. By using software product lines and economies of scope you can create great designs that can still be fully custmized and then the client can decide the quality of architect to design the mods, but at least the core system was really well designed. I generate sites starting under $1,000 and on a wholesale basis can do almost anything for under $8,000 - mainly because of the economies of scope from the generation approach I use.

Now whether I'm a good designer - that's a whole other issue :->
# Posted By Peter Bell | 1/25/07 10:31 AM
Peter,

If I buy something at Target that is designed by a top designer, that isn't the same as having the top designer design something for me.

Off the shelf programs are usually written by very talented developers, but that doesn't mean that they directly meet the needs of a given client (which is why so many hire programmers to give them what they need).
# Posted By Steve Bryant | 1/26/07 9:46 AM
True, but what if you develop a layered system and methodology where you can "build anything - change everything" - it's the Software Product Line approach of architecting common variability and providing tooling for specifying requirements in a way that will drive "executable specifications".

There are always edge cases that require completely custom code, but it just seems crazy to me that frameworks, components, SOA and objects are the best re-use mechanisms we've come up with to date.

The trick is to deskill the majority of the specification and customization so then at least the hand written code is only a small fraction of the majority of the applications you deploy.

I agree with Tony that not all of the tweaking will justify top talent, although I think if you can leverage the talent enough (by freeing them from the usual education and project management tasks they perform, they might become affordable as they could complete entire custom projects in a morning, keeping the price point extremely affordable.
# Posted By Peter Bell | 1/26/07 10:27 AM
But that's not a replacement for talent. That's a tool. It may be a great tool. It may greatly reduce the amount of talent needed, but it won't remove the need for talent completely.

Just because someone uses Peter Bell's great application generator, does not mean it is exactly the same as having Peter Bell build the application.

People have been predicting an end to the need for programming for years and it hasn't happened. That isn't to say that it won't happen someday, but I don't think that day is upon us.

None of this is to say that I don't think that your tool will be extremely valuable. I just don't think it will eliminate the need for programmers. Then again, maybe I'm just biased.
# Posted By Steve Bryant | 1/26/07 10:49 AM
It WON'T eliminate need for programmers or systems analysts (and neither will any of the other tools coming down the pipe). I think it'll change the productivity of some programmers and possibly re-jigg the skillsets required by others (not my tool, but general trends in application development approach).

However, I do think there are many classes of problems where the heuristics used by people who are skilled in that space can be encoded to deskill elements of the process. For instance, nobody should have to think about how to persist inheritance trees - there are heuristics that should allow some metadata (or even runtime analysis of data sets) to make that a compiler function.

I definitely think that we all still spend a lot of time writing unnecessary one way cyphers to transform inaccurate specifications into buggy code and that for classes of problems that effort could be replaced by using well designed DSLs.

But I think we're kinda getting off the topic of the posting (although to be fair it was ME that wrenched us off topic!).

Back to paying projects :-<
# Posted By Peter Bell | 1/26/07 10:57 AM
Peter,

I agree with you there.

I am really excited to see a trend in tools (yous included, I suspect) that will let us spend less of our time on the mundane and therefore more of our time on the interesting problem solving challenges.

I am excited to see where this develops!
# Posted By Steve Bryant | 1/26/07 11:23 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.