I’m having a great time this week at agile2011. I am connecting with people. Having good discussions, and it’s just neat to see where the community and practices are headed.

But one thing I worry about is the emphasis and separation I see on roles and titles and the de-emphasis on team.

Let me give you an example. I was in a session yesterday where the presenter asked the room to list the motivations for a developer, UX designer, and product manager.

Developer had things like:
– make the code elegant
– know what needs to be built

Designer
– make the design elegant
– please the end user

Product manager
– make sure we meet our deadline
– make sure we work within our budget

(there more to each of these – just going off the top of my head)

It was a useful exercise to get everyone seeing what the world looked from other people’s perspectives, but it felt like these were things that everyone on the team should care about.

Everyone should want to please the customer – not just designers.
And should want elegant, scalable, tested code – not just developers.
And everyone should be aware of the constraints on the project – not just the PM.

When I shared these thoughts with the presenter his/her response was even more interesting. They agreed while that’s how it should work on an agile team, that’s not how it works on their team. Fair enough.

On his/her team all developers cared about was getting points! Really?

I get that not everyone is going to have the same level of passion as everyone else for certain things on teams.

But it feels like we are doing this:

When we should be emphasizing and striving for more of this:

I am believer in making it easy for people to transition by showing people how traditional roles change when working on an agile project (I don’t believe people will suddenly self organize).

But once they’ve got it, it’s good to remind people to move on and not to stop or be defined solely by their role or title. If they can (and want to) do more they should.

Treat your project like a startup

I’ve got a lot more to say on this, but it’s breakfast time and I am getting hungry (and am eager to discuss this with folks like you today while I am at the conference).

But the model I’d like to see us be pushing more is that of the startup.

Think of your project as a startup.

It’s your project.
It’s your product.
You are responsible.
No one else cares.
You’ve got to ship, and you’ve got to make sure it’s kickass, it works, it’s beautiful, all while working within the constraints of time and money that you’ve got.
There is no customer support – you are it.
There is no QA department – you are it.
Points don’t matter.
Earned value (whatever that is) doesn’t matter.
You shipping and going live matters.
And you are responsible. So make sure it’s ready.

If we just started think more along these lines, and less about “my role”, I think we’d ship better software, grow more personally as software professionals, and have a heck of a lot more fun.

If any of this resonates with you come talk to me today.
I’d love to hear your thoughts.

(and pardon any grammar or spelling – this was a stream of consciousness that I wanted to ship before breakfast)