-
Notifications
You must be signed in to change notification settings - Fork 29.5k
User experience design inspires people to express their opinions with the utmost of passion 😀 . Here is how we do design and how you can contribute to the process.
As a part of our monthly planning process, we will look at the themes for the milestone and identify which UX features and issues we want to work on in the upcoming iteration. We will tag all of the issues with the "UX" label, set the Milestone, and make sure the appropriate issues are in the iteration plan.
This process builds the UX backlog for the upcoming milestone. Different issues will require different amount of UX design and research. For example, issue 5841 may only require a quick discussion, while issue 224 (Add Tabs to VS Code) requires customer research, design proposals, collecting deep feedback on the proposals from the community, and iteration until we reach the right experience.
Also, for larger tasks such as Tabs, we may do UX research and design in one milestone and then do implementation work in another. In these we will create individual issues to discuss UX design and separate issues for engineering.
With a backlog defined, the "UX Team" meets weekly to discuss issues, review designs and customer feedback, and establish the next steps for an issue.
The UX team typically meets on Wednesday mornings (PST or GMT-8). Here is the workflow:
- Identify the set of critical issues to discuss for the week, many but not all will be backed by an issue in GitHub
- Publish the agenda as a new GitHub issue
- Review the issues and take note of discussions, decisions, and next steps
- Update the relevant issues with design meeting notes and close out the agenda issue as appropriate
One common result of a meeting will be to gather more feedback on a design or customer problem. This may involve interviews, surveys, or simply asking for feedback in an issue.
Another common result will be that we close the design discussion issue, once the design has been finalized. We will open and linked engineering issues to track the work necessary to implement those designs.
Comments on the results are encouraged and will serve as input for subsequent discussions.
Customer research comes in many forms. Issues often contain a lot of information about a specific UX problem and telemetry can tell us how many people might be affected. On top of this we try to understand the context in which problems manifest themselves and in which our designs must succeed. A great way to get that rich contextual information is through talking with and observing people using the product.
We will sometimes run a series of customer interviews, observing their behaviors while using the tool or stepping through a prototype. Early on, these interviews will focus on understanding the details of the problems we are solving. As we learn more about those details and transition into solution mode, we’ll use interviews and observations to determine if the design decisions we are making are solving the problems we intend to solve.
Once we feel that we have a good understanding of the problem, we start to develop design concepts for potential solutions. Early on we try to produce multiple low fidelity concepts and solutions (pencil sketches, wireframes, PowerPoint slides, etc.) which help us focus on the interaction flow instead of details such as colors and fonts.
In parallel time we may start to prototype a solution, incorporating feedback from the research and design, morphing the experience along the way. We do this in parallel because the best feedback really comes from dogfooding the product.
As mentioned above, UX design can bring out the passion in people and we would like to turn that passion into a great product. If you have thoughts on a proposal, we ask that you (respectfully!) contribute those thoughts in the appropriate issue. We have many opportunities to participate in online studies and surveys, and we will solicit participation through the issue (and probably twitter @code).
Project Management
- Roadmap
- Iteration Plans
- Development Process
- Issue Tracking
- Build Champion
- Release Process
- Running the Endgame
- Related Projects
Contributing
- How to Contribute
- Submitting Bugs and Suggestions
- Feedback Channels
- Source Code Organization
- Coding Guidelines
- Testing
- Dealing with Test Flakiness
- Contributor License Agreement
- Extension API Guidelines
- Accessibility Guidelines
Documentation