The problem with features first is that if your features shared some codes it could start to be hard to maintain and your features should not be dependant from each other otherwise a developer won't easily see it.
It could also add problems like replications of codes etc...