"There are three types of product development: Experiments, Features, and Platforms. Each have their own goal and optimal way to trade-off speed and quality. How it’s useful By recognizing the type of product development your project is, you will define more appropriate goals for each type, and you will right-size the speed and quality trade off that you make. Experiments are meant to output learning, so that you can invest in new features or platforms with customer validation. If you optimize for learning, you will consider doing things that otherwise wouldn’t be palatable: for example using hacky code that you intend to throw away, and faking sophisticated software when it’s just humans doing it behind the scenes. In contrast to experiments, platforms are forever. Other people will build features on top of them, and as such making changes to the platform after it’s live is extremely disruptive. Therefore, platform projects need to be very high quality (stability, performance, scalability, etc.) and they need to actually enable useful features to be built. A good rule of thumb when building platform is to build it with your first consumer, i.e. have another team simultaneously building a feature on your platform while you’re developing it — this way, you guarantee the platform actually enables useful features." — Brandon Chu
Product Management Mental Models for Everyone