By everybody working on everything. And by not having similar tasks assigned to the same developer (i.e. 3 screens which differ just a little). By assigning all the layers of feature 1 to developer 1 and all the layers of feature 2 to developer 2, and by implementing them concurrently, without having any rules/"model code".
Usually layer 1 of feature 1 (L1F1) is very similar to layer 1 of feature 2 (L1F2) and layer 2 of feature 1 (L2F1) is very similar to layer 2 of feature 2 (L2F2).
Having developer 1 work on L1F1 and developer 2 work on L1F2, both of them need to understand/write-it-well the code for layer 1, and they need to do this in half the time the developer 1 needed to understand/write-it-well, if he would write layer 1 for both features. And understanding/organizing a code well takes time.