Over a million developers have joined DZone.

Does (PURE) XP work for non trivial software in most practical scenarios?

· Agile Zone

Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.

Some of the XP practices don’t seem to be practical for non trivial software.

  •  No written requirements: - For a long running development say 2-3 years how one understands why something is working in a particular way? The typical XP explanation is code and unit test is the documentation in itself. Is it really feasible to go through the code to understand the functionality? How the user documents get created? How an end user will understand the product functionality?

  • No upfront design: - Advice is develop for immediate requirement without doing the design for “speculative” need we can always refactor the code. But isn’t code refactoring adds work? Why should one “design for refactoring”? What I mean is if we know the requirement on high level why we should not design for it?

  • Team code ownership (Everyone knows everything): -Probably works for a college project :-). Can this really work for reasonable size software of millions of line?

  • Pair programming: - If you are a services company bill for two developers instead of one :-). Pair programming do have value when doing research, prototyping or cross training etc. But such activity is only a fraction of total time spent on a software development.

The Agile Zone is brought to you in partnership with Sauce Labs. Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure.


Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}