Story Points, Velocity and How we treat it

People keep asking me about story points, velocity. Can we use it for performance measurement or so? One and half year ago, I would definitly say yes. And today, I will definitly say no. Then why we need story points  and velocity. Most people will ask.

Story points will tell us the complexity of problem. Not actually time that we gona spend to finish it. And complexity of problem can depend on solutions team gona to implement. But please note, we won't be able to give "accurate" estimate because:

1. Story gona to have a change or more which will impact time consumed
2. There will be other distraction can make time consumed one or two times longer
3. We didn't spend time to find every detail of "requirement". there will be 40-70% variance there

Then hey what is planning session for? Story planning's purpose is to

1. Encourage discussion between team members. When there are difference in story points, they are encouraged to have more discussion. (But I normally skip one or 0.5 point difference, if you have different opnion, please let me know)
2. Ensure team to have enough stories to work in next 1 sprint (I normally groom and estimated 1.5 x average velocity load) - that is major reason that we should have velocity, not performance measurement

And in the same time, velocity has been used by me for estimation of project/product delivery with release burndown. I constantly find out that the result is in-constant and not really useful at beginning of project. If you have different experience, please let me know how you have done that.

What bring me to agile world

What bring me to agile world and what keep me doing these? After listening Mike Lee's talk at YOW 2012, it is true inspirint topic. The question keep poping up at my head. I feel myself lost recently with Agile.

What bring me to Agile?

First thing that I was into agile because it will bring maximum benefits to developers and cut lots of waste. At that time, I don't scrum yet. All I do is to let developer to be as everything from projet manager, architect, software engineer and tester. I started trying the concepts at my own business around 2003. I find out that developer meet customers will deliver product into customer hand in much shorter cycle time and much  higher quality (I mean mostly customer won't send any complain about product delivered).  Customer is very satified. Developers feel achievement too. And every developers in my business can do that at that time. 

Second thing is that bring maximum value to customer. When developer communicate directly with customer,   putting what and how together can fit solutions into budget and quickly deliver solutions. And mostly importantly, mentality of customers and developers are always in the same line. 

Third thing is minimizing waste. I personally believe different roles in software development have bring lots of waste into the industry. Everything changed needs to communicate. My experiements before prove that we can deliver a project a minimum time expected if we can leave all decision to developers. 

I find myself lost in words recently like continuous deployment, velocity, cycle time and so on. As complexity of system, using that to measure performance is non-sense and counter productive. 

I believe that I will continue my support of agile and lean and shall never forget about why I love agile.