Lets take a step back and imagine…you were just a small kid, and your dad brought you to this amazing Lego shop. And you, being that crazy Lego fanatic would just beg and beg your dad to let you buy some Lego.
Dad then went on to say: “Sure thing kiddo, I’ll let you pick any Lego sets.”
Your eyes widen in anticipation.
“But remember you only have $100 to spend on toys this year, not a penny more.”
Ok that’s not fun. $100 is a lot of money to a small kid, one things for sure it’s not enough to buy every Lego set in the store. What you would most likely do next is stress yourself out, think long and hard on which Lego set should you pick, is it worth the investment, will it be fun to play for the whole year, and go crazy.
That’s a tough call
Tough. Exactly the situation we face everyday in software projects, you would like to build everything but with project realities like budgeting constraints, resourcing, skills, technological limitations, release milestones and more….it’s basically impossible.
Deciding on what to build is tricky, prioritising that backlog on what features to build first is equally as bad, so rather than sitting back and admitting defeat, what could we do?