Problem Definition Guide - Sharing Ideas and Defining Features
This guide explains how to share ideas, explore problems, and create feature requests for Thunder.
🎯 When to Use This Guide
Use this guide when:
- ✅ You have an idea or problem to share
- ✅ You want to propose a new feature or capability
- ✅ You're exploring whether something is worth pursuing
- ✅ You want community input on a problem
Don't use this guide for:
- ❌ Bug reports → Use bug report
- ❌ Minor improvements → Use fast track
📝 Two Ways to Share
Choose the approach that fits your situation:
Option 1: Discussion (Idea Not Fully Formed) 💭
Use when:
- Problem needs refinement or exploration
- You want community input before formal request
- The idea is complex and needs discussion
- You're not sure if it's worth pursuing
Process: Create a discussion → Collaborate → Create issue (if validated)
Option 2: Issue (Clear Feature Request) 🎯
Use when:
- You have a clear, well-defined problem
- You can answer: What? Why? Who?
- The feature is ready for formal consideration
- You've already validated the need
Process: Create an issue directly
Not Sure Which to Use?
Start with a discussion if:
- You're exploring an idea
- The problem isn't clearly defined yet
- You want feedback before formal submission
Create an issue directly if:
- The problem is specific and observable
- You have clear answers to What/Why/Who
- The need is validated (you or others experience it)
When in doubt: Start with a discussion. You can always create an issue later!
💡 Creating a Discussion
Use discussions to explore problems and refine ideas with the community.
Step 1: Identify the Problem
Before sharing, crystallize your thinking:
Ask yourself:
- What problem am I observing?
- Who is experiencing this problem?
- How often does this happen?
- What's the impact when it happens?
- Have I searched for existing discussions/issues?
Good problems are:
- Specific (not "Thunder needs better UX")
- Observable (not theoretical)
- Impactful (affects real users)
- Current (not solved elsewhere)
Step 2: Create the Discussion
- Go to GitHub Discussions
- Select "Ideas" category
- Fill in your idea
Step 3: Community Collaboration
Once posted, the community will help refine your idea.
Expect questions like:
- "Have you considered...?"
- "How would this work for...?"
- "What about existing users who...?"
- "Is this similar to...?"
Your role:
- ✅ Respond to questions promptly
- ✅ Clarify the problem (not the solution)
- ✅ Share more context if needed
- ✅ Be open to alternative perspectives
- ✅ Update the original post as thinking evolves
Community's role:
- 🤝 Ask clarifying questions
- 💡 Share similar experiences
- 🔍 Identify edge cases
- 📚 Point to related issues/discussions
- 🎯 Help scope the problem
Timeline: Most discussions reach clarity within 1-2 weeks.
Step 4: Discussion Outcomes
After community discussion, the idea will evolve:
✅ Valid Feature Idea
What it means: Clear problem, valuable to solve, worth pursuing.
Next steps:
- Create a Feature Request issue
- Link back to this discussion
- Close the discussion with:
Thanks everyone! Created feature request: #123
Closing this discussion as we're moving to formal feature definition.
You can stop here! Someone (could be you or others) will take it forward.
🐛 It's Actually a Bug
Next steps:
- Create a Bug Report
- Close the discussion
Outcome: Bug fix process (faster than feature development).
🔧 It's a Minor Improvement
Next steps:
- Create an Improvement Issue
- Close the discussion
Outcome: Faster path to implementation.
❌ Not Viable / Out of Scope
What it means: Good idea, but not appropriate for Thunder.
Reasons:
- Out of Thunder's scope
- Already solved differently
- Technical infeasibility
- Conflicts with Thunder's vision
Outcome: Maintainer explains reasoning, discussion closed and documented.
This is okay! Not all ideas should be implemented.
🎯 Creating a Feature Issue
Use feature issues to formally define problems that need solving.
Before You Create
Ensure you can answer these three critical questions:
Question 1: What problem are we solving?
Be specific about the problem, not the solution.
Bad ❌: "Thunder needs SAML support"
Good ✅: "Enterprise customers cannot integrate Thunder with their existing SAML-based SSO systems, forcing them to maintain duplicate user identities."
Template:
When [user type] wants to [goal], they [current limitation/problem],
which causes [negative impact].
Question 2: Why should we solve this now?
Provide justification for prioritization.
Consider:
- User impact: How many users? How severely affected?
- Business value: Revenue? Customer requests? Competitive gap?
- Technical debt: Does delaying make it harder later?
- Compliance: Regulatory or security requirements?
Example:
Why now:
- 12 enterprise customers requested this in Q3 (3 deals blocked)
- Competitors have this as standard (Okta, Auth0)
- Largest prospect requires this by end of year
- Estimated $500K annual revenue impact
Question 3: Who are we solving this for?
Identify user personas and their goals.
Personas to consider:
- End Users: People using the application
- Administrators: Configure and manage Thunder
- Developers: Integrate applications with Thunder
- Security Teams: Ensure compliance and security
Example:
Primary: Enterprise IT administrators
- Goal: Onboard 1000+ users quickly with minimal effort
- Pain: Manual account creation takes days
- Success metric: 1000 users onboarded in <1 hour
Secondary: End users
- Goal: Use existing corporate credentials
- Pain: Need to remember separate Thunder password
- Success metric: Single sign-on with LDAP credentials
Create the Issue
- Navigate to Issues → New Issue
- Select "Feature Request" template
- Fill in all sections
✨ What Happens Next?
After you create your issue:
Triage
Maintainers will review and:
- Evaluate strategic fit and priority
- Assess scope and effort
- Add appropriate labels
- Decide if approved for work
Assignment
If approved:
- Available for community or maintainers to work on
- You (or others) can express interest
- Maintainers will assign to someone
- Work begins on design
Questions?
- Comment on your issue
- Join community discussions
Note: Not all issues will be accepted. High-priority issues move faster.
Want to Work On This?
After your issue is approved, anyone can work on it!
To express interest:
- Comment: "I'd like to work on this"
- Share relevant experience (optional but helpful)
- Estimate your timeline
- Wait for maintainer to assign you
Once assigned: Move to the Design Guide to start designing the solution.
You can stop here! Let someone else design and implement if you prefer.
💡 Tips for Success
Do's ✅
Focus on the problem, not the solution:
- ❌ "Add LDAP integration using ldapjs library"
- ✅ "Users cannot sync from existing LDAP directories"
Be specific and quantify impact:
- ❌ "Login is slow"
- ✅ "Token validation takes 450ms (target: <200ms), affecting 5000 req/s"
Provide context and data:
- ❌ "Customers want this"
- ✅ "12 customers requested in Q3, 3 deals blocked"
Consider all affected users:
- Think beyond just end users
- Include admins, developers, security teams
Don'ts ❌
Don't prescribe the solution:
- Let the community collaborate on approach
- Focus on what/why, not how
Don't skip the "why now?":
- Justification helps with prioritization
- Explain urgency and impact
Don't forget to search first:
- Check existing issues and discussions
- Reference related work
Don't ghost the discussion:
- Respond to questions
- Update as thinking evolves
❓ FAQ
Q: Should I create a discussion or an issue?
A: Discussion if exploring, issue if problem is clear.
Q: How long does triage take?
A: Usually within 1 week. Complex features may take longer.
Q: What if my issue is declined?
A: Ask why in the issue. Sometimes timing is wrong, sometimes there's a better approach.
Q: Can I work on my own issue?
A: Absolutely! Express interest after it's approved.
Q: What if no one claims my approved issue?
A: It stays in backlog. We'll reassess quarterly. You can help recruit contributors!
Q: Can I create an issue for someone else's discussion?
A: Yes, if the discussion reached consensus and the original author hasn't done it.
Q: How do I know if my problem qualifies as a "feature"?
A: If it requires architectural changes or new capabilities, it's a feature. When in doubt, ask!
📞 Next Steps
After Creating a Discussion
- Engage with community feedback
- Refine the problem
- Create an issue when ready (or let someone else)
After Creating an Issue
- Wait for triage
- Respond to maintainer questions
- Express interest in working on it (optional)
- Move to Design Guide if assigned
Thank you for helping shape Thunder's roadmap! Every problem definition makes Thunder better. 🙏⚡
Questions? Ask in Discussions