Applying Agile methodologies outside of software
There has been a lot of debates lately on whether or not Agile techniques could be used outside of software development. I think it can. But yet again, I leave it up to you to decide.
For those who don’t know what Agile is: it is a set of principles that offer an alternative to classical waterfall project management. Agile teams spend less time documenting and more time experimenting. Agile is said to be an “iterative” approach because of what is learned from these experiments, which is quickly turned into data that influences the next iteration. So the ultimate output of an Agile process is a result of all these iterations instead of being the result of a pre-panned series of tasks.
For more information, one should seek and read the Agile Manifesto thoroughly.
Finding out about Agile
I initially learned Agile techniques developing video games at Electronic Arts but now I use it in a wide variety of business applications.
In my experience, using Agile is useful not only because of the complexity of coding but also because of the (much higher) complexity of satisfying user desires. Capturing user requirements is really hard mostly because most users don’t know exactly what they want. By developing code in smaller chunks and iterating with the user, software developers forge a straighter path to quality as perceived by the user.
So the lesson is that it’s mainly the human aspect that makes Agile useful for software development, not the technical considerations of project managers.
And guess what… the business world is filled with humans. Humans don’t always react logically and are mostly unable to articulate what will work for them in a change setting (what would it take for you to modify your behavior).
Applying Agile to your everyday life: a few hints
Our startup is mostly involved in projects having to do with transformation towards a collaborative culture. Here are some examples of Agile techniques we use:
• Agile Poker to define risk/impact/effort of new ideas.
• Perform cheap-quick iterations to test ideas (then scale on success)
• As a team, we commit to creating specific (non code) deliverables every 2 weeks in a Sprint format.
• Also as a team, we improve the collaborative framework iteratively as new information surfaces.
We do have a high level Waterfall-ish plan but it’s related to the maturity model of the project as a whole and to be honest, it's mainly useful to support discussions with the executive team.
Bottom line: if you are trying to satisfy needs or influence behavior in any way, I would strongly suggest that you start poking around with some Agile techniques.