The Agile Manifesto
Individuals and interactions … over processes and tools.
Working software … over comprehensive documentation.
Customer collaboration … over contract negotiation.
Responding to change … over following a plan.
I’m reading a book called
Agile and Iterative Development: A Manager’s Guide by Craig Larman
I kept hearing this buzz word, I’m sure you’ve heard it. “Agile”! What does it really mean? If you scour Monster or Workopolis and search for .NET development jobs, just about everyone is asking for some sort of experience working with an Agile methodology. So what does this really mean to be Agile? The first thing that I have learned is this simple rule…
“You are not doing Agile, You are AGILE!”
I did a quick “define:agile” in Google and came across this definition:
“moving quickly and lightly;”
So what does this mean? Well… that I couldn’t find a good definition on Google. What I’m learning is that there are many different processes that you can follow that are under this umbrella call the “Agile Methodology”. Some of the most popular ones are “Scrum” and “XP”.
“Scrum’s distinctive emphasis among the methods is its strong promotion of self-organizing teams, daily team measurement, and avoidance of following predefined steps. Some key practices include a daily stand-up meeting (the Scrum meeting) with special questions, 30-day calendar iterations, and a demo to external stakeholders at the end of each iteration.” - Agile and Iterative Development: A Manager’s Guide
I think a lot of company’s take some of the processes they like and mash them up together. I think stand-up meetings would work better, but I have never experienced one. (Try and convince a group of developers that you should stand up for the meeting, instead of sit like they have been… oh boy! ) I think that people tend to get comfortable in their seats and get off topic and a short meeting turns into a un productive time. Now if that happens every day, I wonder how much time is actually lost in a year.
“XP is probably the most well known agile method; it emphasizes collaboration, quick and early software creation, and skillful development practices. It is founded on four values: communication, simplicity, feedback, and courage. It includes 12 core practices, including the whole team working together in a common room, pair programming, constant refactoring, and test-driven development.” - Agile and Iterative Development: A Manager’s Guide
I instantly became a fan of the “XP” methodology after reading the above statement. I have begun to start trying to develop in a test-driven style and cannot turn back now. The ability to refactor, refactor and refactor without breaking changes and feel confident in my changes makes me a happy, productive programmer. When you win X number of little battles every day with test driven, or just state driven testing it makes you feel good every night that you go home. You can say… yes the code I’ve written is working, and working pretty darn well. So what if it’s only a small component of the big picture.
So far this is my take on Agile… I have more to read, and learn.