A recent discussion on the ScrumDevelopment list shed light on the ways in which agile development practices directly benefit the individuals involved. The consensus was that an environment ideal for individual growth can be created by the implementation of agile practices such as inspect-and-adapt, pair programming, test driven development, and constant collaboration and communication.
Arturo Perez started the discussion by asking: "What does Scrum (or other Agile umbrella method) offer to an individual seeking improvement?" It didn't take long for the responses to start coming in. Roy Morien got things going:
Scrum, and other agile approaches, put great store in collaboration, communication and knowledge sharing. So every day you can learn a little more from the experience of others, as well as your own. At the end of every sprint there is an opportunity for reflection and review.
Angela Druckman wrote that working on a team that relentlessly inspects and adapts gives one the ability to see things as they really are and then make plans for the future based on this truth. She notes that people tell themselves lies all the time, about why they didn't get promoted, their level of skill, or perhaps the security of their current position. The real trouble starts when people then use these lies as the assumptions upon which they base their future actions. Contrast this with a person who has learned to inspect their current situation looking for the reality, and then making plans to adapt based on that reality.
Brian Bozzuto wrote about the value to the individual of working in an environment that values learning. The agile ideals 'fail early', 'inspect and adapt', and 'spike solutions' are all focused on learning. In such an environment, an individual is much more likely to learn and grow themselves. Not only that, but Brian feels that such a work environment will be healthier and happier, which certainly benefits the individual.
Alan Atlas commented on the expanded opportunities for mentoring that agile development provides:
For the less experienced or less expert folks on the team, interactions with the more experienced and more expert people will happen much more often than they would on a more traditional team. The benefit can and should be enormous for those that want to or need to learn a lot....
...Added to that is the general scrum imperative of spreading knowledge and reducing specialization and you have what seems to me to be an ideal learning environment at work.
In a related post on his blog, Theodore Nguyen-Cao pointed to the first of the four values in the Agile Manifesto "Individuals and interactions over processes and tools", and said:
While being exposed to version control, bug tracking, and continuous integration systems is great for a resume, working with other human beings is much more rewarding and fun. You develop strong relationships and you are able to learn so much from other people's experiences and perspectives. Pair programming has helped me develop a better understanding of what I don’t know and an even stronger understanding of what I already know...
...Most importantly, I still feel I’m growing as a developer. I honestly believe the best thing a developer can do in their career is to always be learning. Everything else will follow.
Theodore compared his experience working in an agile environment to one that was more traditional, and found that he learned much more when he worked in an agile way.
What work environments have fostered or inhibited your own growth and development? Have you found agile to beneficial? Leave a comment and share your experience.