I've always hated this attempted separating of the roles of programmer and software engineer. You are taking people best suited to programming and giving them the job of creating a specification which is then given to lower paid code monkeys proficient in Java to churn it out.<p>I'd kind of cheapens the craft when people look at it in this way, my AI lecturer last year was describing the different roles in creating an AI system and saying that that the job you want is a knowledge engineer is the position you want and the programmer is just a nobody who translates it all into code.