4 ms·
> If you try to cherry pick the obvious shiny stuff while skipping the slow/expensive less-obvious things, you are doomed to fail. This is true with everything
by donw 6y ago
> If you try to cherry pick the obvious shiny stuff while skipping the slow/expensive less-obvious things, you are doomed to fail.
This is true with everything in life that you seek to do well: cooking, dancing, etc.
> Really awesome Practice A (skipping up-front requirements development, shorter QA cycles) is made possible by really tedious Practice B (pair programming, TDD).
A big nit: you don't exactly "skip up-front requirements development".
First, the appetizer:
One of the things you actively seek to avoid in an XP team is blocking: having people sitting around, doing nothing, because they are waiting for other teams/roles to hand them something.
Another thing you want to avoid is building things that are not needed, wanted, or required by either you or your customers.
Finally, customers are going to change their minds, and you can come to them with one of two answers, either, "we can't do that, it's not in the plan"; or, "sure, we can change direction".
Now, the meaty goodness:
You absolutely do market research, and probably have designers doing various types of prototype testing with Real Live Users (Or At Least Their Proxies) before you kick off any serious engineering work.
This will yield a pile of low-fidelity prototypes, assumptions to validate, and a tentative roadmap upon which your whole team (Product, Design, and Engineering) can begin execution.
You absolutely should have plans that stretch into the future, but the farther out those plans go, the lower their fidelity should be, because you are almost certain to change those plans as you build, experiment, and learn.
- mikekchar 6y ago> Finally, customers are going to change their minds There is actually a type of orgnaisation that does not change their mind. They have a vague idea upfront what they want. They ask for a plan and an estimate. They never actually think about what they want in detail. When the thing is delivered, if nothing goes wrong, nobody looks at it or thinks about it. If anything goes wrong, then they say, "You didn't deliver what I asked for" (a vague idea that doesn't break things ;-) ). The biggest problem I've had with some groups is convincing them that changing their minds is actually crucial to the success of the project. It's funny because you'll have a whole bunch of other people who are trying to cover their asses by getting management to sign off on the plan, etc, etc. But I'm coming in and saying, "I want you to change your mind" because then they have to have a mind in the first place. It's surprisingly challenging. I find that if I don't succeed in that, then it's pretty difficult to succeed with an XP team.