From 665c7b63f2448bc2c2dcd54d3a23863c6448730d Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Wed, 17 Mar 2021 13:30:09 +0100 Subject: [PATCH] propose: js projects configuration --- proposals/82-js-configuration.md | 120 +++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 proposals/82-js-configuration.md diff --git a/proposals/82-js-configuration.md b/proposals/82-js-configuration.md new file mode 100644 index 00000000..5d125041 --- /dev/null +++ b/proposals/82-js-configuration.md @@ -0,0 +1,120 @@ +# [outcome or objective here] + +Authors: @vasco-santos + +Initial PR: https://github.com/protocol/web3-dev-team/pull/82 + + + + + +## Purpose & impact +#### Background & intent +_Describe the desired state of the world after this project? Why does that matter?_ + + +The initial barrier when users interact with our stack is configuration. Based on anecdotal evidence while interacting with the community and analyzing issues, configuration is one of the biggest pain points for users, specially in libp2p where as a result of its modular nature users are required to immediately configure a node. + +Our stack configurations are usually complex, inconsistent and require a lot of prior knowledge of the building blocks of the stack, as well as how these building blocks interact with each other. + +With this project, we should improve the configuration experience for the users, as well as reduce its need to power users only. Within the user onboarding scope, configuration across the stack should be simple, complete and establishing a bridge to the concepts behind (visual explanations/illustrations would be rad!). In addition, our set of projects should provide typical configurations that users need for typical scenarios, so that users can start playing without a need for configuration. Finally, within the power users scope, we should land improvements to mitigate all the existing inconsistencies and improve developer experience. + +The above scopes can turn this project proposal into two different projects. + +#### Assumptions & hypotheses +_What must be true for this project to matter?_ + + +- Users cannot properly configure our stack autonomously +- Configuration get users blocked and turn them into inactive users + +#### User workflow example +_How would a developer or user use this new capability?_ + + +One of two ways: +- Inexperienced/First users can use the stack out of the box, without any friction around configurations +- Power users can create their own configuration for a specific scenario autonomously + +#### Impact +_How would this directly contribute to web3 dev stack product-market fit?_ + + + +#### Leverage +_How much would nailing this project improve our knowledge and ability to execute future projects?_ + + + +#### Confidence +_How sure are we that this impact would be realized? Label from [this scale](https://medium.com/@nimay/inside-product-introduction-to-feature-priority-using-ice-impact-confidence-ease-and-gist-5180434e5b15)_. + + + + +## Project definition +#### Brief plan of attack + + + +- We have been cataloging in libp2p all the problems of configuration we see from issues and have some discussions about potential solutions in https://github.com/libp2p/js-libp2p/issues/576. But the scope is much broader than libp2p + +#### What does done look like? +_What specific deliverables should completed to consider this project done?_ + +TODO, we need to define the scope + +#### What does success look like? +_Success means impact. How will we know we did the right thing?_ + +TODO + + + +#### Counterpoints & pre-mortem +_Why might this project be lower impact than expected? How could this project fail to complete, or fail to be successful?_ + +#### Alternatives +_How might this project’s intent be realized in other ways (other than this project proposal)? What other potential solutions can address the same need?_ + +#### Dependencies/prerequisites + + +#### Future opportunities + + +## Required resources + +#### Effort estimate + + +#### Roles / skills needed +