On Talent
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?!


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.
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 :->
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?
Now whether I'm a good designer - that's a whole other issue :->
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).
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.
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.
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 :-<
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!