문제

Can Agile/XP go together with layered approach?

Should Agile/XP go together with layered approach?

Breaking the source code into layers requires extra efforts and thereby increases the development-time significantly.

N.B : By 'Layers' I mean separate assemblies with POCO, DA, etc.

도움이 되었습니까?

해결책

Agile/XP is an approach to managing your project activities, deliverables and timelines.

Layered (N-tier) applications are a way to improve maintainability, scalability, and the ability for team members separate areas of responsibility.

They don't have much to do with each other, except that they both will require an additional investment in time if you're not familiar with each. Both will tend to improve the quality of your project if used properly, compared to traditional alternatives.

다른 팁

It seems to me instead that the agile warning "You Ain't Going to Need It" is not to avoid complexity altogether, but to avoid adding NEEDLESS complexity. Indeed, one of the benefits of unit testing is to set up a discipline wherein you can fearlessly refactor so stuff ends up where it belongs, rather than where it may have started.

So the point is not to avoid layers (or tiers, if you must) -- the point is to avoid layers that suck.

The two are entirely orthogonal.

In XP you develop the system feature by feature. As you add features you continually refactor the system to ensure that it's implementation is as clear as possible. Layers usually fall out of that refactoring. As do tiers if that architecture is appropriate, or other large-scale architectural structures such as SEDA or REST.

I think they real question here is should have developers divided up by layers on a team- should you have an html dev, a js dev, a middle tier person, a messaging system person, and a dba all working together to build a CRUD form, or should you build by feature and let one person own the thread. The latter is preferable in agile- specializing generalists are preferred to specialists.

Is it sensible to have several teams working together on an Agile project? Yes: I've worked on a large-scale project with 200+ developers across 15+ teams. There were about 20 or 30 services in all.

Can this be done with specialised teams? Not really.

Can the members of the teams have specialisations? Yes, but you really need generalists with strengths in some areas rather than people who only know one thing and won't touch anything else.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top