Agile

"My company gave me a laptop and told me to work from home. Its agile." , told one of my friend. And I listened to him without much of a protest :)

Well, people think that if they are comfortable with an work environment, then the work is agile. And some companies mess up with agile, they call whatever process they have agile so that they can feel good about it.

Agile simply means you can change fast and respond to changes. Nothing more. To be so, people have put forward a thing called The Agile Manifesto, which can be read here http://www.agilemanifesto.org/

If you are a programmer, you would realize quickly that it frees you from stupid stuff like documentation and lets you concentrate on writing code, and thats good. A programmer insulated from corporate processes and stupid manager will always be productive.

Scrum

Scrum on the other hand is the identification of who can do what the best and to let them do it. For example a front end Javascript coder may not be good at Hardware Design. Often people at the top view workforce as work force. They just assign some people to  a task and feel that any one can do anything.

Mostly people who rise to the top are people who are not intelligent, but are people who are influential and communicative. they either have no trench experience or would like to forget them if they had. So they are not really good at selecting who should do what.

Scrum gives power to people in trenches. It tells them to hold meetings, discuss about things that needs to be tackled and urges them to take decisions based on their best possible strengths.

Kanban

Kanban stresses on how work to be done. While Agile tells not to put programmers under needless work and to be responding to change. Scrum tells to give power to the team in trenches to take decisions, Kanban tells how stuff to be run / done.

It tells us to have visual radiators so that things can be tracked, its position known. This is called the Kanban board https://en.wikipedia.org/wiki/Kanban_board . It also tells one to have very less work in progress  for a team member so that time wasted in context switching is avoided.

Well, thats it. Rather than paying huge bucks to a consultant, just read this. You would have almost mastered every stuff under 20 minutes :D