If you have to make several programs should depend on an interface (protocol, API or framework), is it possible to make the interface with XP (eXtreme Programming) style?
-
The answers to this will be very much a matter of opinion. – Don Roby Nov 20 '10 at 15:24
-
@Don Yes this is a question for wisdom, not for simple right answer. Maybe not suitable for this site, however the answers are very helpful to me :) – eonil Nov 21 '10 at 06:18
3 Answers
I have to disagree with Mark Ransom. The methods and workflows you choose will of course affect the design of an application. But it's up to the developers to set up a policy how to handle interface changes, BC breaks, or how to avoid them. Also it's up to you how to apply the many faces of XP, saying you don't need to "refactor mercilessly" if it doesn't fit.
Agile methods live from their users feedback, and feedback vice versa will make a more precise product possible. Done right, your interfaces will mature in a real world. Then the interfaces completeness and stability is only limited by it's bandwidth and quantity of application. Of course you need a good catalyst that keeps you on track. Which is more likely a problem.
Also the test first approach usually results in a precise, convenient and user (programmer) oriented product. Which is in my opinion a big step towards stability.

- 151
- 1
- 8
-
Thanks for answer. Your opinion is right too. It's all up to how-to. My team couldn't handle interface refactoring well. – eonil Nov 20 '10 at 15:16
One of the bedrock principles of XP is frequent iteration. This can be useful in terms of adding features, but it conflicts with the desire for a stable interface. An interface that is constantly changing is an interface that is constantly broken.
Just ask anybody who has had to deal with the interfaces to some popular web sites.

- 299,747
- 42
- 398
- 622
-
Thanks for making me sure about XP is not suitable for interfaces. It was really curious. I experienced a project as I described, sadly, the project couldn't be succeed. And I'm finding reason of failure :) – eonil Nov 20 '10 at 14:12
How certain are you about the need for a framework and about what that framework needs to support?
One of the first things an XP process might do is challenge this assumption, saying YAGNI.
If you after all do need a framework, it should emerge from refactoring, and then contain only the parts that you actually need.

- 40,677
- 6
- 91
- 113