-
Notifications
You must be signed in to change notification settings - Fork 913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PROPOSAL] Update OpenSearch Dashboards' Design Strategy #2667
Comments
@ahopp do we plan on migrating old experiences or keeping current models the same (like how alerting does stuff)? Because then we should mention security and permissions in the design strategy. |
@kavilla good question! I don't think this strategy necessarily dictates either option. Rather it means making design and development decisions informed not by isolated use cases but informed but the holistic user experience and an overall view of the user's needs. In some cases that might be slightly modifying current experiences and in other cases it might required some migrating. @kgcreative any thoughts to add here? For security specifically, I think it makes sense to unify the current CX into a more cohesive security experience that is inclusive of current and future use cases, e.g., permission of multidata source, isolation of extensions, etc. But given that, what type of clarification would you like to see above? |
Excited to work with you on this @ahopp! |
In order to pursue the new direction in Ux/Visualization, is there any standardization or change required from the core side of the OpenSearch ? |
@nandi-github Can you help me understand what you mean by "Ux/Visualization"? There's multiple approaches depending on what you want to do in said "new direction", but a flow through the process might look like this;
|
Likewise! |
Hello all! I had some feedback come in to me directly and I'm adding it here (with my responses) for everyone's visibility.
I don't see this design approach as forcing a decision between any managed service, ISV, or any specific OpenSearch Dashboards user. Enabling common and consistent navigation, affordances/user patterns, functionality, etc. while also enabling a design system that is consistent across the project benefits all users, IMO. In fact, I've received feedback on the usability of the product on diverse set of users from many different use cases. Similarly, the challenges of usage and adoption, internationalization, accessibility, and charting are common for both customers. Simply put, a unified design strategy/approach is Kevin and I's proposal for an improved flywheel for both MS and OSS OpenSearch users.
I'm not sure I understand this question. Nothing about the current design proposal is forcing developers or users away from current plugins. We're also not forcing developers or users to change any of their current approaches. We are simply recommending a design approach that we believe provides the best, long-term flywheel for all OpenSearch users. Our goal is to make this approach default by the sake of its merit, not by restricting the development of our community.
I 100% agree that Discover has a bigger scope. This is core to why I believe that the enhancement of the core discover flow is a better path for long-term value then individual and isolated investments in parallel improvements. As to which we should have one starting point, frankly, I can't think of a user-centric reason for forcing users into disparate, isolated experiences for the same core use case of data exploration and discovery - or at least not one that risks usability, adoption, ubiquity, etc. We can absolutely provide paternalistic UI so each use case is met in a bespoke manner (or allow the user to take distinct paths to complete their objective) but I believe a unified starting point is preferred. There are also a number of product maxims I've believe to be true (e.g., "it better to meet users where they are", "reduce users cognitive load as much as possible", "don't force users to learn more than absolutely required", "form should imply function where possible") that would suggest a unified starting point is best in the long-term. |
@ahopp I wonder if we should add documentation of existing features, abstractions, libraries and processes as a requirement to the design strategy. If we want everyone to align on a unified design, we should also make it the path of least resistance. Today the biggest hurdle to implement a feature is simply identifying the right way to do it, causing a lot of shortcuts to be taken that diverge from the unified design. And before we blame the feature developer for the divergence, we often dont have good docs that can refer to to do the right thing. The time it takes to identify the right approach without this may far outweigh the time it takes to build the feature itself. And if each feature developer needs to do this each time, thats a lot of wasted time that can be avoided by simply having a good set of foundational docs and processes that a feature developer can follow. For example we have many ways in which we can interact with the index. Each plugin has implemented custom strategies for this. Now with multiple datasources this problem is compounded. The documentation we have today for interacting with the datasource is very limited so each plugin build using the best reference abstraction that they can find instead of the right abstraction because we lack the docs that they can use to figure this out. This causes a divergence. And honestly I would not blame them for doing so because reverse engineering these abstractions is not trivial and very time consuming. |
I think this proposal has been accepted and largely informs the way we work. @dagneyb @seanneumann Any reason to keep this open? |
@joshuarrrr - I think this can be closed at this point. |
What problem are you trying to solve?
Historically, delivering disparate features via plugin tabs was the only way developers could historically add features to OpenDistro given the limitations of the influencing an actively commercialized upstream. This approach not only solved the problem of the commercialized upstream and helped differentiate what was delivered from upstream solutions among others. It is therefore completely understandable that developers built OpenDistro the way they did. BUT after the fork, it has led to some unintended outcomes in design that no longer serve the best interests of the project or community. These include;
We need to improve the overall design approach for the current OpenSearch Dashboards model and specifically we should develop a more holistic design approach for the project in order to maintain and improve the long-term usability of the OpenSearch Dashboards experience inclusive of related project features (e.g., Observability, Alerting, etc.).
Why should we solve it?
While the UX goal is still be to delight users by delivering great features and experiences across the project, there is an opportunity to de-risk our long-term project aspirations by aligning to a more unified design strategy and allow the community to better stack feature value via an ever-expanding portfolio of features and capabilities. Some of the specific reason to solving it now include;
How do you propose to solve it?
To provide OpenSearch Dashboards users with great out-of-the-box experiences for any/all of their use cases (current and future) while enabling seamless integration of capabilities across vertical solutions, we need to provide a platform that allows end-users and builders to create experiences that are purpose built for their use cases, that are easy to use and extend, and fit within a consistent UX framework. To support OpenSearch Dashboards user’s long-term needs, my recommendation is to provide a platform that allows users and builders to curate their experience and custom tailor them to their use case. All features should offer a consistent product look, feel, interaction affordances, interoperability, and more. New functionality should benefit all use cases wherever possible, and should be delivered in a consistent way. In this way, OpenSearch Dashboard can begin to serve as a platform for users and developers to compose use-cases for users as curated experiences within, or across, existing products rather than as separate products (e.g., plugins with different design affordances, UX patterns, etc.).
In order to do this, we should invest in flattening our information architecture, design composable primitives (e.g., Query Editor, Syntax highlighting, autocomplete, and a variety of widgets that can be used anywhere in the experience), and establish better extensibility among feature sets so that dashboards admins, feature builders, and end-users can build customized project views for their work that integrate elegantly. In order to achieve this more holistic vision, I have highlighted a few workstreams I believe we need to invest in;
For builders, this means a platform with well-documented building blocks that offer a consistent product look, feel, interaction affordances, interoperability, and templates that accelerate the development of high-quality apps and extensions that are well integrated into our ecosystem. Builders will have access to composable primitives that are generalized to benefit most use cases, with standard interfaces that can be leveraged consistently. It will allow app and extension builders to compose experiences that leverage platform primitives, extensions, object sharing, task management, security features and other components that accelerate development and time to value. Apps will be easy to extend and integrate across the ecosystem. For users, this means that in addition to a powerful data ingestion, analytics and visualization platform, they should have access to a catalog of apps and extensions that allows them to quickly add new capabilities, the power to easily share and control who and how they view and share their data, and a centralized place to manage and operate their OpenSearch infrastructure, regardless of whether it’s a single cluster, or a fleet.
Finally, we should ensure decisions are rooted in usability, accessibility and research best practices. Without a grounding on user research, many have been flying largely blind, and relying primarily on heuristics and anecdotal evidence, lacking clear user-centered methodology to ground us in user needs. @kgcreative and his team are working to design, with the community, a new UX processes to ensure features and product plans and development are not only grounded on UX and Engineering best practices, but also grounded in an increased understanding of our customers, and their needs and pain points.
Next Steps
There’s a lot on this list in terms of outcome and it may realistically take multiple years to fully achieve them (i.e., duplicative experiences will coexist while a path to consolidation and composability is charted) but I think there are a number of immediate workstream we can and should kick off.
In parallel, @kgcreative and the design folks across the Dashboards project (including @apasun, @KrooshalUX, @btzeng) will be supporting these efforts by;
Finally, this design strategy needs to include a stronger prioritization of Accessibility and Internationalization. For OpenSearch Dashboards, accessibility will focus on identifying barriers that exist in the product and working to remove them. OpenSearch Dashboards should seek to be accessible to, and delightful for, all users, specifically including the ~15% of the world population that has a significant disability. This includes accessible color palettes, compatibility with screen readers, meaningful keyboard navigation, and adherence to visual design guidance. Specifically to Internationalization, OpenSearch Dashboards is already being used globally, in many countries and languages. The north star should be a localized experience in the customer’s language of preference with a design following the language conventions.
Note: I also think we need to invest in building a more unified management experience (including security, administration, etc.) as well as develop an updated model for more unified objects across OpenSearch Dashboards and associated features but I think these fit better in dedicated issues/proposals. I think @setiah has started thinking about the unified management / admin experience, but I'm not sure about the current progress for more unified objects across the repos.
What are remaining open questions?
While I tried to focus on the opportunities I've been seeing in the overall design strategy for the project, I know there are still a ton of opportunities to be highlighted and/or included here. Please poke holes, provide feedback, identify gaps, and make alternative proposals for @kgcreative and I to respond to! I'd like to get as much input as possible before working with @kgcreative to build out a more detailed design/roadmap for the design and product work (upstream to the technical work).
The text was updated successfully, but these errors were encountered: