Monday, February 13, 2006
Drawing Parallels
Recently I've been reading a bit about Neuro Linguistic Programming (NLP). I haven't got too deeply into it, but it's generally a set of theories about the way that people think, communicate, learn and perceive the world around them. For example, some people think about things mostly in a visual way, whereas others prefer to use sounds or feelings to represent their thoughts internally. The idea is that by learning about the different representation systems, and how to tell which ones people favour, you can tailor your words and actions to communicate with them more effectively.
The particular book I am reading wraps this up in a self-help, being a more effective person, achieve your life goals type of way, but one thing struck me. The book describes the essence of NLP, and being an "effective person", as 1) know what you want; have a clear idea of your outcome in any situation, 2) be alert and keep your senses open so that you know what you are getting, 3) have the flexibility to keep changing what you do until you get what you want.
This seems a lot like what the agile development philosophy says. We have a set of stories that define where we want to get to; during development we monitor progress with daily standups, regular integration, or more empirically with techniques like Scrum; and we change the stories, the solutions, the code, the team etc, etc, until we get where we want to be.
The particular book I am reading wraps this up in a self-help, being a more effective person, achieve your life goals type of way, but one thing struck me. The book describes the essence of NLP, and being an "effective person", as 1) know what you want; have a clear idea of your outcome in any situation, 2) be alert and keep your senses open so that you know what you are getting, 3) have the flexibility to keep changing what you do until you get what you want.
This seems a lot like what the agile development philosophy says. We have a set of stories that define where we want to get to; during development we monitor progress with daily standups, regular integration, or more empirically with techniques like Scrum; and we change the stories, the solutions, the code, the team etc, etc, until we get where we want to be.