---
# System prepended metadata

title: Current State of Dev Process

---

# Current State of Dev Process

We’ve been doing the current proposals → dev → cooldown cycles for almost a year now. I think the output has been great, and devs are productive on the efforts and tasks that are assigned.

There is always room for improvement, so here are some problems I’ve identified, and some proposals for how to address them

## **Problem 1: Goals are solution and task oriented**

Many of our proposals are based on solutions, where success just means completion of a task or feature. For example,

- AI chat - Let’s use AI to help users rather than through GitHub/Discord/etc.
- Angular-jest executor - Angular team is doing something with this, can we do something similar?
- Playwright/Vue - Users are asking for it, let’s add it.
- Refactor/clean-up/optimize - Address issues in code and performance.

We only care if an effort is completed, without validating the idea before or after the effort is completed.

### Solution

- Use a framework and tie goals to them
    - Pirate metrics
        - Acquisition
        - Activation
        - Retention
        - Referral
        - Revenue
    - Heart metrics
        - Happiness
        - Engagement
        - Adoption
        - Retention
        - Task Success
- For example, is AI Chat supposed to increase Adoption and Task Success? How can we measure this either quantitatively or qualitatively?
- Need periodic health checks outside of the dev cycle
- Primary leads should be involved in validating ideas before they are worked on

**Note:** Not all tasks/efforts can be tied back to specific metrics, especially refactoring and other engineering-based tasks. Those types of work should not encompass the majority of our time.

## Problem 2: Feature fatigue

We’ve been adding a lot of new features: Vite, esbuild, Deno, serverless/edge compute, Remix, Nx release, Vue, Nuxt. This increase in features can lead to user fatigue (keeping up with new things), and more importantly it dilutes our focus.

### Solution

- The majority of our work should be on enhancing existing features. e.g. 80% enhancement, 20% new features
- Let’s measure how successful our existing features are in relation to our goals
- Prune features that do not help us achieve our goals

## Problem 3: Disjointed Efforts / Lack of Direction

For many developers, a new cycle means working on very different features/tasks. For example, Nicholas worked on Node/Deno effort in one cycle, then he is on stacks/recipes, and then on module federation.

One issue with the disjointedness is related to Problem #1. We’re not following up on efforts to validate the idea. The other issue is that people are not sure what to propose, since we’re not setting product vision or goals.

### Solution

- Proposals need to be validated by primary owners before being accepted, with some exceptions to technical work (refactoring, clean-up, optimize).
- A more drastic change is to remove/replace the proposal framework
    - The tech lead (Jason), and the primary leads (Jack, James) should be coming up with efforts
    - There should be a way to collect ideas from internal folks (developers, devrel, sales, etc.)
    - Also include ideas and feedback from our users and community
- Set a long-term vision for Nx OSS
    - Strategy and goals should be clearly defined, and communicated with everyone
    - Motivation can be improved when people know ***why*** we’re doing certain things