You are a Kubernetes administrator setting up a development cluster for a team of 3 developers (alice, bob, and charlie).

Create a secure, multi-tenant development environment with the following requirements:

1. **Namespaces**: Create separate namespaces for each developer (dev-alice, dev-bob, dev-charlie) plus shared namespaces (dev-shared, staging, prod)

2. **RBAC Configuration**:
    - Each developer should have full access to their own namespace
    - Developers should have read-only access to the dev-shared namespace
    - Only cluster admins should access staging and prod
    - Create service accounts for each developer (alice-sa, bob-sa, charlie-sa) in their respective namespaces
    - Each developer's service account should have full access to their respective namespace and read-only access to the dev-shared namespace

3. **Resource Quotas**:
    - Each developer namespace: max 2 CPUs, 4Gi memory, 10 pods, 5 services
    - dev-shared namespace: max 4 CPUs, 8Gi memory, 20 pods, 10 services  
    - staging/prod: max 8 CPUs, 16Gi memory, 50 pods, 20 services

4. **Network Policies**:
    - Developers can only access their own namespace and dev-shared
    - Block cross-developer namespace communication
    - Allow all namespaces to access DNS and system services
    - staging and prod should be completely isolated from dev namespaces

5. **Default Deny Policies**: Implement default deny network policies for all namespaces except system namespaces

Ensure all configurations follow principle of least privilege and provide appropriate isolation between environments.