Establish guidelines for desktop versus mobile
Description
Establish or extend existing guidelines (style guides) to specifically address desktop vs mobile, along the lines of
- Product strategy and vision
- UX design
- Development (especially frontend code)
- Document these ideas
- Socialize these ideas to the community
Why should we do this?
- As with all things GitLab, we want to be transparent to encourage community participation (as contributors and/or users).
- If we establish focus, it helps us spend our resources efficiently. Prioritization as part of strategy.
- Mobile is important and is the future. As a technology leader, the community expects us to be clear and articulate in our strategy. If we simply say we are desktop-first, without clearly articulating the reason behind it tarnishes our brand. Thought leadership essentially.
Discussion points
Product strategy and vision
We are focused on source control scenarios and the ecosystem of tools within a typical SDLC. We are still very much focused on developer-centric tools. As we expand out our product, and integrate additional features and personas beyond the technical contributor, there are many realistic use cases where a user is on a phone or a tablet in a truly mobile setting, i.e. not sitting a desk in an office. However, to get there, we have to make our feature set more powerful. Implementing many traditionally git-centered features into the browser itself is the path. At some point, we may want / need to make a jump and invest in mobile-first technologies (native apps?) to create mobile-first products. But we are not there yet. We need to be focused on the best desktop experience first (with Web being the technology).
UX design
Prescriptive UX guidelines to help anyone who wants to contribute to design: UI components are different in mobile and desktop. Stemming from mouse indirection + keyboard versus direct manipulation on touch interfaces. We should emphasize these concepts when describing UI recommended components and screen sizes, etc. Designers shouldn't be hindered by mobile considerations, but design for the best desktop one.
Development
Prescriptive frontend coding guidelines to help anyone who wants to contribute code: We should prescribe leveraging mobile responsive web frameworks (obviously). But in addition, we need to caution that investing time into mobile-specific code could be a detriment, since it increases the complexity of the codebase, which ultimately means we move slower.
Graceful degradation
We need to be intentional in our design of gracefully degrading features from desktop to mobile. Sometimes, "graceful", means just not making the feature available for mobile. For example, rendering detailed charts may become burdensome or even impossible to design, code, and maintain for mobile. In that case, we should seriously consider just NOT including it. Not viewing a chart may be the better overall experience.