Ran across Fred George’s blog (he works at ThoughtWorks), he writes some very interesting posts.Â Â He has a wealth of knowledge and is very much into agile development.
I found his series on Apprentice, Journeyman, Master to be interesting.
My interest in his latest post, entitled Ideal Agile Team Structures discusses a team formed with the above roles (Apprentice, Journeyman, Master):
“I will be exploring many aspects of pods in a series of posts. Let me quickly summarize where this is going:
- There is a particular mix of developer skills in a pod (a mix of Masters, Journeymen, and Apprentices;
- There is a particular mix of team skills (analysts, developers, testers, management);
- The team is self contained and collocated;
- The team is empowered, making decisions in its areas of competence;
- The team is self-managing (including self-apprasing);
- Team metrics provide insight into the effectiveness and composition of the team; and
- The team is semi-permanent, spanning project life cycles.
Much of this is common sense. Much of this is obvious to practioners of Agile. But much like the practices of XP, the total is greater than the sum of the parts. I still strive to create the perfect pod for projects on which I work, but I haven’t yet achieved it.
Do you have specific characteristics for your ideal Agile team?”
Unfortunately in my current role and assignment there is not much combination of the above skillsets.Â Career building, peer programming, etc… aren’t on the menu.Â The result I have seen is that my growth stagnates.Â Working with more experienced developers and seeing how they solve problems using design patterns, OO technique’s, etc… is invaluable.
I learned 10x more about programming in my last gig than I ever have in my career.Â Two of my SDS colleagues would spend time structuring and designing solutions, implementing patterns, interfaces, testing, etc…Â One of the guys on the team, Rob Keefer, gave me the chance to do some peer to peer development.Â Watching him sit and start coding, with the test, the interface, etc.. was very educational.Â More so than any book I could read.
I think this is why lately I’m struggling in that as I gain more experience, my company treats me as more of the journeyman where at times, I am still learning the trade and need to be surrounded by other journeyman/masters.Â My company tends to place people by ‘language skills’ vs. experience levels.Â ie. Just because I write in C#, doesn’t mean I should be excluded from java projects.Â Actually, it should be the reverse.Â The language shouldn’t dictate the assignment.Â Personally, we have a few guys that I would want to work under to learn and grow.
I think success will come out of that.Â You can’t worship the almighty dollar in business, you must grow your assets, and the money will follow.