-
Notifications
You must be signed in to change notification settings - Fork 0
product
Let's define some terminology used for this project.
-
The technology is the clever abstraction. It is performant, modularized, and flexible. You need a mental model present to work with a technology, but once it's in place you can do a lot.
Unfortunately technology doesn't sell. Technology is necessary, but it is not the end goal.
-
The product is the human face on technology. It is specific, and focused. If often uses only one aspect of a technology, but it solves a real human problem.
Designing a product is harder than designing a technology. Smart people find products hard to design, because products are all about compromise.
Node-os is both a technology and a product, so it's important to understand which part we're talking about at any given time. For example:
- asgard and init are a technologies, they are clever abstractions that makes building certain os-related products easier.
- npkg is a product. It's designed to meet a human need, and not require a lot of foreknowledge to use.
-
help is a product. In many ways
helpshould be the ambassador for the system. Help is notmanorinfo. It is not exhaustive; it is focused. Thehelpcommand focuses on guiding people through the system. - A few things like the FileSystem are hybrids of technology and product. We move things around to technically organize the system, but we don't want the file system to seem foreign to users.
What should a users first experience with node-os be like?
users should want to have the node-os experience everywhere
To that end, we want npkg to be the gateway to a users first experience.
It should quickly facilitate
- installing packages
- running services
- discovering packages
- giving helpful feedback
Where (4) may be most important. There will not be an engineer standing over the should of most people's first node-os experience. You should be able to use node-os from the command line experience alone.
What do we want the first experience to look like? (let's improve on this)
welcome to node-os
type help to get started
$Typing help should display
Try the following
1. help npkg learn about the npkg command
2. help home learn about your home directory
$Ideas
- make
helpstateful, so it can offer you conextual help
Why are people using node-os, and what problems are they trying to solve? Answering these quesitons are important to creating a product that people will want to use.
- people want to run their node app quickly, without fussing around with init config files
- people want to configure a system consistently without puppet/chef or other config-management tools
- people want to write a distributed file system with leveldb and http
- people want to do tcp/ip parsing in user-space with javascript