The root of all (software) evil
2012-02-19 Leave a comment
Poorly articulated requirements are the devil. Poorly-understood products that are being implemented are his doomed children.
Requirements are the root cause of an inordinate number of issues in software development. The best team on earth will still create a terrible piece of software if nobody can explain to them what the good one should look like. Gathering requirements, documenting them and communicating them is extremely difficult and time-consuming, and with many teams is an extremely poor use of time.
Understanding the customers and the product, mind, is critical. Documenting requirements, depending on the team, project, pace and scope, may not be.
No matter what approach to requirements you take, though, product owners need to know inside out and backwards what the opportunity, market, users, problems, competitors and solution are. They need to be attached at the hip to your development team so that they can preach their needs, see the tools being built, learn from touching, ask questions, answer questions, pounce on the subtle difference as soon as their fingertips brush it and say “the customer is actually trying to solve this problem, and the implementation doesn’t cover it because of that“. They need to be passionate about their needs, while clearly understanding what the minimum viable product really looks like.
If your company is three people, you’re all product owners. If it’s thirty, three hundred, three thousand or even 6, you’d better know very clearly who owns the product. And they’d better know very clearly what the product is. MVP sounds like a simple idea, but if the work hasn’t been done to flesh out a thousand things that aren’t MVP, it won’t be minimal, it won’t be viable, and it might not even be a product when you’re done.