To solve the given optimization problem, we first need to identify the decision variables, objective function, and constraints.

- Decision Variables: Let \(C\) be the number of coats made and \(S\) be the number of shirts made.
- Objective Function: The goal is to maximize profit. Given that each coat brings in $6 and each shirt brings in $11, the objective function can be represented as: Maximize \(6C + 11S\).
- Constraints:
  - Measuring team constraint: \(0.7C + 0.2S \leq 50\)
  - Cutting team constraint: \(0.5C + 0.3S \leq 35\)
  - Sewing team constraint: \(0.9C + 0.5S \leq 40\)
  - Non-negativity constraints: \(C \geq 0, S \geq 0\) because the number of coats and shirts cannot be negative.

Now, let's convert this into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Clothing_Company")

# Define variables
C = m.addVar(vtype=GRB.CONTINUOUS, name="Coats", lb=0)
S = m.addVar(vtype=GRB.CONTINUOUS, name="Shirts", lb=0)

# Set the objective function
m.setObjective(6*C + 11*S, GRB.MAXIMIZE)

# Add constraints
m.addConstr(0.7*C + 0.2*S <= 50, "Measuring_Team")
m.addConstr(0.5*C + 0.3*S <= 35, "Cutting_Team")
m.addConstr(0.9*C + 0.5*S <= 40, "Sewing_Team")

# Optimize model
m.optimize()

# Print results
for v in m.getVars():
    print(f"{v.varName}: {v.x}")

print("Objective:", m.objVal)
```

This code defines the optimization problem as described and solves it using Gurobi's Python interface, printing out the optimal number of coats and shirts to make, along with the maximum profit achievable.