Developing an n-tier app with a team, is it better to divide tasks by module or use case (e.g. Employee 1 creates Admin module, employee 2 creates Payroll module, etc.) or by tier (e.g. Employee 1 creates UI, Employee 2 creates Logic, Employee 3 creates all Data Access)?
I'm more inclined towards the former. I think that it's only logical that if I'm coding one whole module or at least related use cases, I would be able to code continuously without waiting for others to finish before integrating my work.
But the counter-argument, which is the latter, is that by separating tasks between layers, a programmer can take advantage of n-tier's separation of concerns and focus only on a specific layer (to some) they're familiar with.