Day 1: The Fool's Journeys (2)
Published: 2023-10-31 11:29:47

#### **1.2.2 Internationalization (i18n)**

If you ask me what tasks should be considered before starting coding to save time, i18n is definitely a significant one.

i18n is the abbreviation for "internationalization". It involves designing and developing products so they can be easily adapted for different languages, cultures, and regions. The significance of considering i18n at the beginning includes:

1. **Code Structure**: Internationalization requires specific code structures and organizations to separate language and culture-related content (like text, date, and number formats) from application codes. Modifying these structures might become complex if internationalization isn't considered from the start.
2. **Resource Files**: i18n often involves extracting text and other localization resources from code into external resource files. Considering this early on allows for clearer organization and easier updates for different language versions.
3. **UI Design**: Different languages have different length and format requirements. Thinking about i18n ensures that UI design has enough flexibility to accommodate different text lengths and layouts.
4. **Functionality and Cultural Adaptability**: Some features or content may not be suitable or relevant in certain cultures or regions. Thinking about this can help teams avoid unnecessary feature development or later adjustments.
5. **Technology Choices**: Some technologies and tools have built-in i18n support, while others might not. Considering internationalization early on can influence the choice of tech stack, ensuring the chosen tech supports internationalization.
6. **Avoid Rework**: Introducing i18n later in the project might require a significant amount of code refactoring and UI adjustments. Thinking about it early can prevent this rework, thus saving time and costs.
7. **Testing**: Keeping i18n in mind ensures that proper localization and internationalization tests are done throughout the project lifecycle, preventing localization-related issues found later on.
8. **Market Release**: Thinking about internationalization can speed up product launches in global markets, as no additional localization is needed post-launch.

Considering i18n at the start of a project can prevent many potential issues, thus saving time and resources. It ensures a smoother and more efficient process of internationalization and localization.

Whether it's a frontend framework or a backend one, either we choose a framework that supports i18n, or we prepare a solution in advance.

We will delve deeper into this issue in the subsequent technology selection phase.

#### **1.2.3 Minimum Viable Product (MVP)**

> The concept of MVP (Minimum Viable Product) was first proposed by Eric Ries, published in the Harvard Business Review, with a subsequent publication "The Lean Startup".

Reading through the PRD, if we need to cut down on features, where can we start?

* **User Accounts and Profiles**: While it enhances the user experience, its primary purpose is to facilitate user interactions. It also helps us better understand our customers for future operations and maintenance. It seems indispensable.
* **Learning Resources and Support**: Important for user understanding, but intuitive interface design can reduce user reliance on help documents. Even without it, core users can grasp most functionalities through exploration.
* **Collections**: It's all about convenience, letting users manage their keywords systematically. Still, its absence won't affect the core function.
* **Community Interaction**: Engages users and triggers sharing. While important, its absence won't hinder core users.
* **Prompt Library**: Without this, our project becomes meaningless. Clearly, it's a core function, the very foundation.
* **Chatting**: Chatting with GPT, clicking prompts for instant use is convenient and simple in logic. If absent, the user experience will drop significantly.

Thus, as long as the prompt library function exists, the project is meaningful.

This brings us to the most important concept of this article series: the Minimum Viable Product (MVP).

The MVP is a product development concept that emphasizes building a product with core functionalities in the shortest time, using minimal resources, to test its market potential and gather user feedback as soon as possible. **An MVP is not a fully matured or refined product but an initial version made to validate key assumptions and understand user requirements.**.

**Main objectives of MVP**:

1. **Validate the core assumptions of the product**: By building the core features of the product, the team can test its main value proposition and confirm its market demand.
2. **Reduce development time**: By focusing solely on key features, the team can quickly roll out the product instead of waiting for a complete version.
3. **Save resources**: Avoid investing significant time and money in functionalities or concepts that haven't been validated.
4. **Gather user feedback**: MVP allows the team to collect feedback from actual users, leading to necessary iterations for the product.
5. **Adapt to market changes**: By swiftly releasing and iterating the product, teams can flexibly adapt to market changes and demands.

**MVP development process**:

1. **Market research**: Understand the target users and market needs.
2. **Define core assumptions**: Determine the product's main value proposition and essential features.
3. **Design and develop MVP**: Focus resources on developing the core functionalities.
4. **Launch and introduce to the market**: Engage target users with the MVP.
5. **Collect feedback**: Gather data and feedback based on actual user experiences.
6. **Iterate and improve**: Adjust the product based on the feedback received.

**Advantages of MVP**:

1. **Reduce risks**: By validating core assumptions, teams can avoid developing products with no market.
2. **Accelerate learning**: Through interactions with real users, teams can learn and adjust their strategy faster.
3. **Resource efficiency**: MVP ensures the team's time and money are effectively allocated to the most valuable features.

However, it's essential to note that **MVP is not an excuse to produce a low-quality or half-baked product**. It should be a functional, value-bringing product for users, albeit more focused and limited in features and functionalities.

There's quite a bit of preparation work to be done on the first day, especially in terms of requirement organization. Tomorrow, once we've received the organized requirements, we'll start the technical selection phase.