I've made every one of these mistakes. So have the best BAs I know. The difference is we learned. The goal isn't to be perfect. It's to fail fast, learn, and never make the same mistake twice. Here are the biggest ones, with real stories and how to avoid them.
You read an email from a stakeholder saying "we need a dashboard". You think "okay, a dashboard to show metrics". You spend two weeks creating detailed requirements for a metrics dashboard. Then you show it to the stakeholder and they say "This isn't what I wanted at all. I need a notifications dashboard."
- Ask "why" at least 3 times before you accept a requirement
- Never assume terminology means the same thing to everyone
- Clarify by repeating back what you heard, not what you think you heard
- Example: "So when you say dashboard, do you mean showing real time data, historical trends, or consolidating multiple sources?"
- Document your understanding and confirm with stakeholder before proceeding
A small feature request comes in mid sprint. Seems easy. You say yes. Then another. Then another. Suddenly the scope has doubled but nobody officially acknowledged it. The team is exhausted. The deadline is missed.
- Define scope explicitly at project start. Document what's IN and OUT
- When new requests come in: "That's a great idea. Let me assess impact and we'll decide if it fits in this sprint"
- Create a "parking lot" for good ideas that don't fit now but might later
- Protect the team's commitment. Be the blocker. They'll thank you
- Use formal change requests if adding to scope. Make it visible, not invisible
You write a user story: "As a user I want to manage my settings so I can customize my experience". Seems clear to you. Developers start coding. Mid sprint they realize they don't know which settings, how many, what default values, etc.
- Acceptance criteria must be testable and specific. "Must work" is not testable
- Use examples: "Acceptable input: email addresses, Unacceptable: phone numbers, special characters"
- Specify edge cases: "If user enters invalid data, show error message [specific text]"
- Define success: "Search returns results in < 2 seconds" not "search is fast"
- If you can't write it clearly, you don't understand it well enough yet. Go learn more
You gather requirements from Product and Design. Look perfect. Three weeks into development, Finance says "wait, this needs to track costs". Compliance says "this doesn't meet regulations". You have to redesign mid project.
- Before gathering requirements, ask "who else needs to be involved?"
- Think about different domains: financial, technical, compliance, operational, customer service
- Hold a stakeholder kickoff meeting with everyone. Get their perspective upfront
- Document who you talked to and who you didn't. Proactively fill gaps
- Create a RACI matrix early so everyone knows who decides what
Finance wants feature A. Sales wants feature B. They're arguing. You say "okay, we're doing B because it's better". Finance feels unheard. Sales didn't get true buy in. Now when things go wrong, Finance blames you.
- When conflicts arise, don't decide. Ask "what data do we need to make this decision?"
- Gather the data. Present it neutrally. Show pros and cons of each option
- Facilitate conversation. Let stakeholders hear each other's perspective
- If there's a business priority (revenue > operations), use that framework to decide
- Once decided, document who decided and why. Ownership is clear
You test it internally. Looks great. You launch. Users say "this doesn't work the way we need it". You realize you tested it wrong. Or you tested it with the wrong people (BAs and QA instead of actual users).
- Plan UAT early. Budget time for it. Don't squeeze it into the last week
- Get real users. Not stakeholders. Not product managers. Actual people who'll use this
- Have them test in conditions similar to how they'll use it (their actual environment)
- Watch them use it. Don't help them. See where they struggle, get confused, or get stuck
- Document issues. Separate critical (blocks work) from minor (annoying but works)
Three months later, someone asks "why did we design it this way?" and you can't remember. Turns out the original reason doesn't apply anymore. You end up redesigning something that didn't need redesigning because you didn't document the "why".
- In requirements doc: "We chose X because [reason]" not just "We chose X"
- In project wiki: Keep a "Decision Log" with decisions, date, who made it, and why
- In meetings: Capture action items, decisions, and the reasoning behind them
- When someone asks why, write it down. Even if it seems obvious now, it won't later
You present requirements using BA terminology: "Here are the functional and non functional requirements based on the use cases I documented". Stakeholders nod but have no idea what you said. Later they're confused about what's actually happening.
- Know your audience. Business people ≠ Technical people. Use language they understand
- For business: Talk about impact, benefits, outcomes. Not technical details
- For technical: Use proper terminology. They appreciate precision
- Use examples and visuals instead of text. People understand pictures better than words
- After explaining, ask "does this make sense?" and actually listen for clarity
You finish requirements and then disappear. Three weeks later you check in and find the team built something totally different than what you specified because they encountered ambiguities and made their own decisions.
- Attend daily standups if Agile. Know what's happening, what blockers exist
- Make yourself available for quick questions. Don't wait for scheduled meetings
- Proactively check in: "How's the implementation going? Any questions on the requirements?"
- Test continuously. Don't wait until end to see if it matches the vision
- Be ready to adjust requirements when you learn new things during development
Project goes wrong. You move on to the next one without reflecting on what went wrong. Six months later you make the same mistake again because you never learned from it.
- After every project, do a retrospective. Ask "what went well? What didn't? Why?"
- Document lessons learned. Don't just think about them, write them down
- On next project, review your lessons from the last one. See what applies
- Be honest about your mistakes. Don't blame others. Own it. Learn from it
- Share lessons with other BAs. Help the team improve together