The role of the product design team is to make validated decisions that enhance the user experience of Sourcegraph.
Here are a few of the things we strive to make true:
- Advocate for our users by collaborating with them
- Perform our due diligence when making design decisions, by researching and testing solutions within scope
- Proactive, with a bias towards action
- Communicate openly, and solicit feedback frequently
- To be egoless when soliciting responses to our work
- #design channel or @design-team on Slack
Working with design / requesting design work
Working with design should feel fluid, you should be able to open an issue or bring up a concern in slack, and receive actionable feedback: either implementable, or a call to explore further.
You should also not feel limited to words, images (sketches, or references made by editing the broswer DOM) are also encouraged.
Tracking design priorities
The Design Team uses a GitHub project board for managing current and future work, design debt, and work requests.
- Design debt - issues connected to design debt that haven’t been scheduled yet
- Backlog - issues that need design work but don’t have any development resources allocated and haven’t been scheduled yet
- Coming soon - no designer assigned yet, development resources have been allocated. Add design deadline to the issue, if possible
- Up next - designer assigned, design work scheduled
- In progress - design work actively being worked on
- QA - design work done, designer is assisting the implementation
- Measure success - design shipped, designer is working with the BizOps team to analyze the impact
- Done - success measured, all work completed to scope
GitHub design labels
needs-design: design work requests. Add to Design priorities project and if possible add a deadline.
design: design-oriented issues. This label should be mostly used by designers
design-debt: issues connected to design debt.
Requesting design work
If you need some design help:
- Add the
needs-designtag to your GitHub issue
- Assign one of the designers if you know who will take care of the issue
- Add your issue to the design priorities project
Please clarify the urgency of the issue (adding a known deadline is encouraged) and if development resources have been allocated. It is important to focus the design team’s attention on the work that can be implemented soon.
Use the #design Slack channel for any urgent matters or questions.
Lean UX design and velocity
Sourcegraph ships. It has achieved product-market fit by hiring customer-focused employees, being truly agile in how it designs and develops features and by putting product in user’s hands and collecting feedback and usage metrics.
Design will support this key factor in Sourcegraph’s success by introducing a lean experience design process.
While design does adds time at the beginning of a project, it improves velocity in aggregate by helping ship more usable and delightful features in the first iteration. The assets generated by designers provide sales, engineers and stakeholders with the ability to test and modify a solution long before it is engineered. This trait improves engineering velocity by reducing time-consuming rewrites, refactors and technical debt associated with changes made during development or after releases.
Our design process is documented here: Design process
- Click ‘C’ whilst in Figma, or check the navigation bar in the top left hand corner and look for the comment icon; you can drop comments anywhere in a file, and the owner of the page will be notified via email
Our internal resources are open, and the design team will welcome any feedback. Hesitating to leave feedback can block discussion, and stretch out time between brainstorming and action.
How to make better UX design decisions
As the procut design team is still small and not able to address every problem efficiently, we have tried to simplify Jakob Nielsen’s 10 general principles for interaction design. These principles are often referenced, and by referencing them yourself you can make better user experience decisions.
- Make sure the user is always appropriately informed.
- Use familiar language.
- Follow real-world conventions when ordering things.
- Make sure exits are available.
- Follow platform conventions, search online to check established UX patterns.
If you would like to dig a little deeper here is a link to the article, each section is accompanied by a short video and/or a more in depth article.