Getting your priorities right

I think an important thing about being agile a great developer is to make sure your backlog is correctly prioritized. This both means that everything should have updated priorities where business value is the key factor. It also means that each of your user stories should have different priorities. Two things are never equal in importance. Whenever a customer (or manager) tells you that two things are equally important, you (as a great developer) should be stubborn and ask "but if you only could have one of these, which one would you choose? ". Most of the time you get the answer "well if I had to choose I would go with X but we can't ship without Y so they are both top priority". See? The customer is happy because they have communicated both are top priority but he has also communicated which one is more important so you're happy.

Sometimes the customer is even more stubborn than you and just refuses to say if X or Y is more important. Then there are two other questions you can ask that will help you: "Which one of these would you like to test first?" or "which one do you think the users will like the most?" A really, really smart and stubborn customer might understand what you're trying to do and just refuse to give you an answer. In those cases I generally see the smaller of the two user stories as the one more important if they are equally complex. Otherwise I tend to see the one more complex more important since complexity and uncertainty (i.e. the risk of the user story growing unexpectedly) tend to go hand in hand.

Here are two more articles for inspiration: