From 61d1f762c4310043021a9d7ed8733ccd65ae6e54 Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy Date: Tue, 5 Mar 2024 20:16:27 +0530 Subject: [PATCH 1/5] :sparkles: Document inital user personas --- .../{design.md => design/design-system.md} | 0 docusaurus-docs/community/design/index.md | 11 ++ .../community/design/user-personas.md | 186 ++++++++++++++++++ 3 files changed, 197 insertions(+) rename docusaurus-docs/community/{design.md => design/design-system.md} (100%) create mode 100644 docusaurus-docs/community/design/index.md create mode 100644 docusaurus-docs/community/design/user-personas.md diff --git a/docusaurus-docs/community/design.md b/docusaurus-docs/community/design/design-system.md similarity index 100% rename from docusaurus-docs/community/design.md rename to docusaurus-docs/community/design/design-system.md diff --git a/docusaurus-docs/community/design/index.md b/docusaurus-docs/community/design/index.md new file mode 100644 index 000000000..254f9cef9 --- /dev/null +++ b/docusaurus-docs/community/design/index.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 5 +description: UI, UX, and graphic design docs +--- + +# Design + +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + diff --git a/docusaurus-docs/community/design/user-personas.md b/docusaurus-docs/community/design/user-personas.md new file mode 100644 index 000000000..cfa5bde83 --- /dev/null +++ b/docusaurus-docs/community/design/user-personas.md @@ -0,0 +1,186 @@ +--- +description: User personas +--- + +# User groups and personas + +The personas used for informing user research studies and future improvements to conda-store. + +## User groups šŸ˜ļø + +At a high-level, there are two key user groups: + +- **General user:** Create, edit, use environments for their day-to-day work +- **Admin-type user:** In addition to the general use-case mentioned above, admin-type users also **setup** conda-store for their team, create various namespaces, add/update users and their permissions, set default packages/versions for their team, etc. + +## User personas šŸ™‹šŸ½ā€ā™€ļø + +### User: Alia + +| Role | Reports to | User group| +|-------|-------|-------| +Staff Data Scientist | Head of Data Science | General | + +#### User story + +I want to quickly create a stable and reproducible environment for analyzing data and creating dashboards, that I can share with my team to verify and build on my work . + +#### Tools they need to do their job + +- Libraries - data reader/writer (arrow), data processing (pandas), numerical computing (numpy), ML (xgboost / pytorch), dataviz and dashboarding (mpl / streamlit), job schedulers (Airflow) +- IDE - JupyterLab/Notebook (hence, extensions) +- Platform - Local computer, org JupyterHub on Cloud (Nebari?) +- Misc - Git, GitHub, conda + +#### Journey with conda-store + +- Discovery: + - Team already uses it + - Team leader sets it up for everyone +- Onboarding: + - A team member gives them a walkthrough + - Documented Tutorials + - Intuitiveness of the UI +- General Use: + - Env creation from GUI, YAML, Lockfile + - Version control + - Using the env in Jupyter Notebook (local / cloud) + - Ability to use any package/version out there + - Access to special conda channels + - Envs for GPU-powered data analysis and modelling +- Collaboration: + - Share env with colleagues with a URL (Part of 1-2 shared namespaces) + - Fork/Copy envs between namespaces + - Download artifacts like docker images for use in other (prod?) machines +- Troubleshooting: + - Understand errors through the error message displayed + - Look at conda-storeā€™s documentation & GH issues/discussions, search for the error + - Contact team-members or internal support + - Open an issue/discussion on GH + +#### Pain points or biggest challenges + +- Envs need to be compliant with company standards +- Build envs with libraries from internal mirrors +- Ensure stable environments that are quickly reproducible by colleagues and can be used by Ops teams for deployment (often on similar machines and operating-systems) + +#### Core needs + +- Intuitive and fast env creation & sharing +- Promise of stability, security, and compliance + +### User: Dani + +| Role | Reports to | User group| +|-------|-------|-------| +Research Scientist and Coordinator | PI | Admin | + +#### User story + +As a research coordinator, I manage the logistics and admin-tasks of multiple research projects, ensuring that the tools/dependencies used are accessible, reproducible and standardised across projects. + +#### Tools they need to do their job + +In addition to Aliaā€™s tools, cloud/hpc tooling + +#### Journey with conda-store + +- **Discovery** + - OSS Community, conferences, peers + - Tries out conda-store locally and finds it useful +- **Onboarding** + - Documentation, self-exploration +- **General Use** + - Setup, deployment using the conda-store docs, within current Lab infra + - Add team members, create default namespaces and environments, referring to the docs + - Onboard team members to the tool with demonstrations + - Track and limit resource utilisation +- **Collaboration** + - Uses environments created by colleagues to verify their work +- **Troubleshooting** + - Docs, issue tracker (reach out to the conda-store dev team) + +#### Pain points or biggest challenges + +Facilitating reproducible env sharing within teams by setting up relevant infra + +Managing and supporting team-members like Cleo + +May not have DevOps expertise to setup and manage conda-store for the team + +Reliable environments with guardrails for people new to software development principles (example, not comfortable with YAML spec) + +Sharing environments widely, considering different operating systems and infrastructures. + +#### Core needs + +Setting up & managing packaging infra for the lab, potentially on an HPC system as as non-devops professional + +Visibility into groupsā€™ package requirements and resources used + +Sharing environments widely, considering different operating systems and infrastructures. + +### User: Emma + +| Role | Reports to | User group| +|-------|-------|-------| +Freelance data scientist | - | General | + +#### User story + +I want to manage my local conda environments, so that I can be more efficient in my day-to-day work + +#### Tools they need to do their job + +Same as Alia, but primarily for individual work + +#### Journey with conda-store + +- Discovery + - Internet, community spaces, conferences +- Onboarding + - Docs +- General Use + - Install and setup conda-store locally + - Create envs in my personal namespace + - Use the envs in Jupyter Notebooks +- Collaboration + - Share relevant artifacts (lockfiles?) with clients +- Troubleshooting + - Docs, issue tracker + +#### Pain points or biggest challenges + +- Sometimes conda environments break while working, adding overhead +- Environments are not always reproducible when I share them +- Using shared artifacts w/ the application should be as easy as possible (think installers/executables) + +#### Core needs + +- Reliable and quick environment creation that follow conda best practices +- Creating reproducible envs that I can share with clients later + +### User: Ginny + +| Role | Reports to | User group| +|-------|-------|-------| +Head of Data Science | CTO | Admin | + +#### User story + +I need to oversee the implementation, management, and adoption of tools like conda-store to ensure our teamsā€™ workflows are efficient and our data science initiatives align with business goals. + +#### Tools they need to do their job + +#### Journey with conda-store + +Leads the adoption of conda-store, setting organizational standards and monitoring usage to drive efficiency and alignment with business objectives. + +#### Pain points or biggest challenges + +- Strategic alignment, tool adoption across teams + +#### Core needs + +- Oversight on tool efficiency, team productivity +- Enablement of others From 0d4e85e8f3da97b047dd71ef043522021eb99701 Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy Date: Tue, 12 Mar 2024 22:24:42 +0530 Subject: [PATCH 2/5] :memo: Misc updates Signed-off-by: Pavithra Eswaramoorthy --- .../community/design/user-personas.md | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/docusaurus-docs/community/design/user-personas.md b/docusaurus-docs/community/design/user-personas.md index cfa5bde83..225d9244c 100644 --- a/docusaurus-docs/community/design/user-personas.md +++ b/docusaurus-docs/community/design/user-personas.md @@ -1,5 +1,5 @@ --- -description: User personas +description: Describes current and potential conda-store users` --- # User groups and personas @@ -23,7 +23,7 @@ Staff Data Scientist | Head of Data Science | General | #### User story -I want to quickly create a stable and reproducible environment for analyzing data and creating dashboards, that I can share with my team to verify and build on my work . +I want to quickly create a stable and reproducible environment for analyzing data and creating dashboards, that I can share with my team to verify and build on my work. #### Tools they need to do their job @@ -85,40 +85,34 @@ In addition to Aliaā€™s tools, cloud/hpc tooling #### Journey with conda-store -- **Discovery** +- Discovery: - OSS Community, conferences, peers - Tries out conda-store locally and finds it useful -- **Onboarding** +- Onboarding: - Documentation, self-exploration -- **General Use** +- General Use: - Setup, deployment using the conda-store docs, within current Lab infra - Add team members, create default namespaces and environments, referring to the docs - Onboard team members to the tool with demonstrations - Track and limit resource utilisation -- **Collaboration** +- Collaboration: - Uses environments created by colleagues to verify their work -- **Troubleshooting** +- Troubleshooting: - Docs, issue tracker (reach out to the conda-store dev team) #### Pain points or biggest challenges -Facilitating reproducible env sharing within teams by setting up relevant infra - -Managing and supporting team-members like Cleo - -May not have DevOps expertise to setup and manage conda-store for the team - -Reliable environments with guardrails for people new to software development principles (example, not comfortable with YAML spec) - -Sharing environments widely, considering different operating systems and infrastructures. +- Facilitating reproducible env sharing within teams by setting up relevant infra +- Managing and supporting team-members like Cleo +- May not have DevOps expertise to setup and manage conda-store for the team +- Reliable environments with guardrails for people new to software development principles (example, not comfortable with YAML spec) +- Sharing environments widely, considering different operating systems and infrastructures. #### Core needs -Setting up & managing packaging infra for the lab, potentially on an HPC system as as non-devops professional - -Visibility into groupsā€™ package requirements and resources used - -Sharing environments widely, considering different operating systems and infrastructures. +- Setting up & managing packaging infra for the lab, potentially on an HPC system as as non-devops professional +- Visibility into groupsā€™ package requirements and resources used +- Sharing environments widely, considering different operating systems and infrastructures. ### User: Emma @@ -172,15 +166,26 @@ I need to oversee the implementation, management, and adoption of tools like con #### Tools they need to do their job +The IDEs, Platform, Misc tools used by Alia, primarily for reviews and tracking work. + #### Journey with conda-store -Leads the adoption of conda-store, setting organizational standards and monitoring usage to drive efficiency and alignment with business objectives. +- Discovery: + - Team lead pitches it + - Community spaces +- Onboarding: + - Team lead/member who sets up conda-store helps them onboard + - Documentation +- General Use: + - Review resource utilization + - Review package and channel requests #### Pain points or biggest challenges -- Strategic alignment, tool adoption across teams +- Strategic alignment with organization goals +- Tool adoption across teams #### Core needs -- Oversight on tool efficiency, team productivity -- Enablement of others +- Oversight on tool efficiency and team productivity +- Enable team members From 653539b4af93e3460e403d331fd851b85e2edfcf Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy Date: Tue, 19 Mar 2024 21:06:35 +0530 Subject: [PATCH 3/5] Apply suggestions from code review Co-authored-by: Kim Pevey --- docusaurus-docs/community/design/user-personas.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docusaurus-docs/community/design/user-personas.md b/docusaurus-docs/community/design/user-personas.md index 225d9244c..c2b8978bf 100644 --- a/docusaurus-docs/community/design/user-personas.md +++ b/docusaurus-docs/community/design/user-personas.md @@ -23,7 +23,7 @@ Staff Data Scientist | Head of Data Science | General | #### User story -I want to quickly create a stable and reproducible environment for analyzing data and creating dashboards, that I can share with my team to verify and build on my work. +I want to quickly create a stable and reproducible environment for analyzing data and creating dashboards that I can share with my team to verify and build on my work. #### Tools they need to do their job @@ -77,7 +77,7 @@ Research Scientist and Coordinator | PI | Admin | #### User story -As a research coordinator, I manage the logistics and admin-tasks of multiple research projects, ensuring that the tools/dependencies used are accessible, reproducible and standardised across projects. +As a research coordinator, I manage the logistics and admin-tasks of multiple research projects, ensuring that the tools/dependencies used are accessible, reproducible and standardized across projects. #### Tools they need to do their job @@ -94,7 +94,7 @@ In addition to Aliaā€™s tools, cloud/hpc tooling - Setup, deployment using the conda-store docs, within current Lab infra - Add team members, create default namespaces and environments, referring to the docs - Onboard team members to the tool with demonstrations - - Track and limit resource utilisation + - Track and limit resource utilization - Collaboration: - Uses environments created by colleagues to verify their work - Troubleshooting: @@ -139,7 +139,7 @@ Same as Alia, but primarily for individual work - Create envs in my personal namespace - Use the envs in Jupyter Notebooks - Collaboration - - Share relevant artifacts (lockfiles?) with clients + - Share relevant artifacts (e.g. lockfiles) with clients - Troubleshooting - Docs, issue tracker @@ -147,7 +147,7 @@ Same as Alia, but primarily for individual work - Sometimes conda environments break while working, adding overhead - Environments are not always reproducible when I share them -- Using shared artifacts w/ the application should be as easy as possible (think installers/executables) +- Using shared artifacts with the application should be as easy as possible (think installers/executables) #### Core needs From f99d8809bf1e95dd992fc8b4593a51240e21101b Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy Date: Tue, 19 Mar 2024 21:50:48 +0530 Subject: [PATCH 4/5] Apply suggestions from code review --- docusaurus-docs/community/design/user-personas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus-docs/community/design/user-personas.md b/docusaurus-docs/community/design/user-personas.md index c2b8978bf..f973f9eb5 100644 --- a/docusaurus-docs/community/design/user-personas.md +++ b/docusaurus-docs/community/design/user-personas.md @@ -29,7 +29,7 @@ I want to quickly create a stable and reproducible environment for analyzing dat - Libraries - data reader/writer (arrow), data processing (pandas), numerical computing (numpy), ML (xgboost / pytorch), dataviz and dashboarding (mpl / streamlit), job schedulers (Airflow) - IDE - JupyterLab/Notebook (hence, extensions) -- Platform - Local computer, org JupyterHub on Cloud (Nebari?) +- Platform - Local computer, org JupyterHub on Cloud (potentially Nebari) - Misc - Git, GitHub, conda #### Journey with conda-store @@ -60,7 +60,7 @@ I want to quickly create a stable and reproducible environment for analyzing dat #### Pain points or biggest challenges -- Envs need to be compliant with company standards +- Environments need to be compliant with company standards, for example: approved conda channels and approved package versions - Build envs with libraries from internal mirrors - Ensure stable environments that are quickly reproducible by colleagues and can be used by Ops teams for deployment (often on similar machines and operating-systems) From d8e0c4aaa98f0bf2e604e67f10e44248dcab4cf8 Mon Sep 17 00:00:00 2001 From: Pavithra Eswaramoorthy Date: Tue, 19 Mar 2024 22:11:59 +0530 Subject: [PATCH 5/5] :broom: Misc clean-up and code review updates Signed-off-by: Pavithra Eswaramoorthy --- .../community/design/user-personas.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docusaurus-docs/community/design/user-personas.md b/docusaurus-docs/community/design/user-personas.md index f973f9eb5..30118ee0f 100644 --- a/docusaurus-docs/community/design/user-personas.md +++ b/docusaurus-docs/community/design/user-personas.md @@ -11,7 +11,7 @@ The personas used for informing user research studies and future improvements to At a high-level, there are two key user groups: - **General user:** Create, edit, use environments for their day-to-day work -- **Admin-type user:** In addition to the general use-case mentioned above, admin-type users also **setup** conda-store for their team, create various namespaces, add/update users and their permissions, set default packages/versions for their team, etc. +- **Admin user:** In addition to the general use-case mentioned above, admin users also **setup** conda-store for their team, create various namespaces, add/update users and their permissions, set default packages/versions for their team, etc. ## User personas šŸ™‹šŸ½ā€ā™€ļø @@ -27,10 +27,10 @@ I want to quickly create a stable and reproducible environment for analyzing dat #### Tools they need to do their job -- Libraries - data reader/writer (arrow), data processing (pandas), numerical computing (numpy), ML (xgboost / pytorch), dataviz and dashboarding (mpl / streamlit), job schedulers (Airflow) +- Libraries - data reader/writer (arrow), data processing (pandas), numerical computing (NumPy), ML (XGboost / PyTorch), Data Visualization and dashboarding (Matplotlib / Streamlit), job schedulers (Airflow) - IDE - JupyterLab/Notebook (hence, extensions) -- Platform - Local computer, org JupyterHub on Cloud (potentially Nebari) -- Misc - Git, GitHub, conda +- Platform - Local computer, organization's JupyterHub on Cloud platform (potentially Nebari) +- Miscellaneous - Git, GitHub, conda #### Journey with conda-store @@ -39,34 +39,34 @@ I want to quickly create a stable and reproducible environment for analyzing dat - Team leader sets it up for everyone - Onboarding: - A team member gives them a walkthrough - - Documented Tutorials + - Documented tutorials - Intuitiveness of the UI - General Use: - - Env creation from GUI, YAML, Lockfile + - Environment creation from GUI, YAML, Lockfile - Version control - - Using the env in Jupyter Notebook (local / cloud) + - Using the environment in Jupyter Notebook (local / cloud) - Ability to use any package/version out there - Access to special conda channels - - Envs for GPU-powered data analysis and modelling + - Environments for GPU-powered data analysis and modelling - Collaboration: - - Share env with colleagues with a URL (Part of 1-2 shared namespaces) - - Fork/Copy envs between namespaces + - Share environment with colleagues with a URL (Part of 1-2 shared namespaces) + - Fork/Copy environments between namespaces - Download artifacts like docker images for use in other (prod?) machines - Troubleshooting: - Understand errors through the error message displayed - Look at conda-storeā€™s documentation & GH issues/discussions, search for the error - Contact team-members or internal support - - Open an issue/discussion on GH + - Open an issue/discussion on GitHub #### Pain points or biggest challenges -- Environments need to be compliant with company standards, for example: approved conda channels and approved package versions -- Build envs with libraries from internal mirrors +- Environments need to be compliant with company standards, for example, approved conda channels and approved package versions +- Build environments with libraries from internal mirrors - Ensure stable environments that are quickly reproducible by colleagues and can be used by Ops teams for deployment (often on similar machines and operating-systems) #### Core needs -- Intuitive and fast env creation & sharing +- Intuitive and fast environment creation & sharing - Promise of stability, security, and compliance ### User: Dani @@ -81,38 +81,38 @@ As a research coordinator, I manage the logistics and admin-tasks of multiple re #### Tools they need to do their job -In addition to Aliaā€™s tools, cloud/hpc tooling +In addition to Aliaā€™s tools, cloud or High Performance Computing (HPC) tools (for example, Google Cloud Platform's web interface and CLI tools.) #### Journey with conda-store - Discovery: - - OSS Community, conferences, peers + - OSS Community, conferences, peer suggestions - Tries out conda-store locally and finds it useful - Onboarding: - Documentation, self-exploration - General Use: - - Setup, deployment using the conda-store docs, within current Lab infra - - Add team members, create default namespaces and environments, referring to the docs + - Setup and deployment using the conda-store docs, within current Lab infra + - Add team members, create default namespaces and environments, referring to the documentation - Onboard team members to the tool with demonstrations - Track and limit resource utilization - Collaboration: - Uses environments created by colleagues to verify their work - Troubleshooting: - - Docs, issue tracker (reach out to the conda-store dev team) + - Documentation, issue tracker (reach out to the conda-store dev team) #### Pain points or biggest challenges -- Facilitating reproducible env sharing within teams by setting up relevant infra -- Managing and supporting team-members like Cleo +- Facilitating reproducible environment sharing within teams by setting up relevant infrastructure +- Managing and supporting team-members (like Alia) - May not have DevOps expertise to setup and manage conda-store for the team - Reliable environments with guardrails for people new to software development principles (example, not comfortable with YAML spec) - Sharing environments widely, considering different operating systems and infrastructures. #### Core needs -- Setting up & managing packaging infra for the lab, potentially on an HPC system as as non-devops professional +- Setting up & managing packaging infrastructure for the lab, potentially on an HPC system as as non-devops professional - Visibility into groupsā€™ package requirements and resources used -- Sharing environments widely, considering different operating systems and infrastructures. +- Sharing environments widely, considering different operating systems and infrastructures ### User: Emma @@ -122,37 +122,37 @@ Freelance data scientist | - | General | #### User story -I want to manage my local conda environments, so that I can be more efficient in my day-to-day work +I want to manage my local conda environments, so that I can be more efficient in my day-to-day work. #### Tools they need to do their job -Same as Alia, but primarily for individual work +Same as Alia, but primarily for individual work. #### Journey with conda-store - Discovery - Internet, community spaces, conferences - Onboarding - - Docs + - Documentation - General Use - Install and setup conda-store locally - - Create envs in my personal namespace - - Use the envs in Jupyter Notebooks + - Create environments in my personal namespace + - Use the environments in Jupyter Notebooks - Collaboration - - Share relevant artifacts (e.g. lockfiles) with clients + - Share relevant artifacts (e.g., Lockfiles) with clients - Troubleshooting - - Docs, issue tracker + - Documentation, issue tracker #### Pain points or biggest challenges - Sometimes conda environments break while working, adding overhead - Environments are not always reproducible when I share them -- Using shared artifacts with the application should be as easy as possible (think installers/executables) +- Using the environment-creation artifacts shared with the application should be as easy as possible (think installers/executables) #### Core needs - Reliable and quick environment creation that follow conda best practices -- Creating reproducible envs that I can share with clients later +- Creating reproducible environments that I can share with clients later ### User: Ginny @@ -166,7 +166,7 @@ I need to oversee the implementation, management, and adoption of tools like con #### Tools they need to do their job -The IDEs, Platform, Misc tools used by Alia, primarily for reviews and tracking work. +The IDEs, platform, miscellaneous tools used by Alia, primarily for reviews and tracking work. #### Journey with conda-store @@ -188,4 +188,4 @@ The IDEs, Platform, Misc tools used by Alia, primarily for reviews and tracking #### Core needs - Oversight on tool efficiency and team productivity -- Enable team members +- Enablement of various teams