Development methodologies one more time

Hello everybody,

Today I want to write a few words regarding different development methodologies in plain English. 

1. Lean. Lean is methodology of entering on the market. If you ever heard term MVP ( minimal viable product ), then it's origin is from Lean. It says that you don't need to create some huge product and jump on the market with such a huge product. Because if you'll write it for three years, market will say: uhhh, it's second hand outdated product. And even if you'll spend 10 million $ on that, market will say: I don't care. Throw it. Also it say that it is close to useless to quiz your customers. Because you quiz your users/customers, and they tell you some kind of crazy staff. There is famous story of company Sony, which wanted to make famous player. They surveyed their focus group which color they prefer. Members of group said we want red, green, purple. While near the exit everybody from focus group took black players. Why? Also nobody named black color. 

2. Kanban. Kanban speaks that we need to move tasks in visible manner. There is a ribbon on what we have in plan, what we are currently working on, what was delivered. Also Kanban says that we move tasks from one point to the other. This is actually all essence of Kanban. Please keep in mind that I give oversimplified version, mentioning only outside attributes. 

3. Scrum. Scrum says that you need to split your torrent of tasks into iterations. You need to group your tasks into something, that after it's completion will provide some value. And iteration after iteration you move to your goal. It is not very convenient ( as usually ) for developers, because as usually developers don't like to have their code tested. But that is good from business prospective. Business sees that each time you have incremental increase of functionality. And it's stable and works constantly. As additional bonus business will not loose much if market suddenly will change. 

4. Extreme programing. In it's pure form ( as proposed by Kent Beck ) it almost never used. For example extreme programming teaches that all code is written in two heads and four hands. Code is 100% covered by five types of tests. And so on. Name speaks of itself: extreme programming. I never seen such a think. As a developer I want to admit that physically it is hard to work with someone always. It is also hard to cover everything with 100% testing.