Monday, May 13, 2013

Integrating non-agile thinkers into an agile team: Part 2

In part one, we talked about what I sometimes refer to as Power Coders, those amazingly talented developers many of us have worked with that are not always interested in the agile way of doing things, but have a lot to offer nonetheless. Part two covers some ideas for how to incorporate these powerhouses into our teams.





So how do we make the most of these guys? Do we have a manager babysit them and micromanage? That's not at all in line with agile principles, and will be sure to alienate the developer and frustrate the manager. Perhaps pairing might be a solution. So lets talk about types of pairing.



In traditional pairing, both pairs have a similar level of skill, so in the case of power coders this doesn't seem like the right fit, as it could lead to a lot of head-butting, and probably won't do much to pull either party out of their cave and into the agile workspace, so lets consider other options.



Vertical pairing is essentially a mentor relationship. both parties have a similar skill set, but different levels of experience. This is also a less ideal set up, as power coders can get frustrated working with those who are less skilled than they are.


Then we have horizontal pairing, where each party has a different skill set and background. They take turns working in each others domain, and have the opportunity to learn from each other, and gain broader insight on the project . Now we are getting somewhere.

Now who to pair our power coder with...I have found that people with a background in QA tend to be very agile in their thinking. Which makes sense, testing is all about, experimentation, exploration, and communication. Precisely the things power coders may need help with.




So horizontally pairing power coders with testers seems like a good match. The tester is able to pull tasks for the power coder, shield him from distraction, and provide transparency for the team, allowing both pairs to think how they think best, and add their full potential to the team.

With some creative pairing, you can make the most of the team you actually have, and still achieve a lot of agility. This will help you to fill in gaps, encourage cross functionality, and get the most bang for your buck.


 So stop worrying about how agile each member of your team is, or trying to squeeze them into the agile mold, and instead focus on your people, and on finding creative solutions to accommodate all kinds of brains, so that you can build one super effective team.


Monday, May 6, 2013

A guide to integrating non-agile thinkers into an agile team: Part 1

        As the adoption of agile methodolgies continues to speed up, I have noticed a pattern emerging that has been sticking in my craw a bit. I had the opportunity to present an Ignite talk on the subject at LKNA2013 inChicago this past week, and I wanted to present that talk here for those who may have missed it.



This is what many of us imagine when we think about the ideal team. Every member is a highly agile, fully cross functional generalist, with essentially the same capabilities and skills. They are the ultimate  empowered team.



But we don't always have the option to hire perfect agile generalists, and when we're dealing with existing teams, most people don’t have a handy port we can jack into to upload them a brain full of agile process anyway.




Real teams tend to look more like this. Made up of people, with their own quirks, and personalities. They tend to be specialists, each very good at what they do best, with varying degrees of agility. Lets talk for a moment about what I mean by agile



 For most of us in this business, the agile manifesto clearly illustrates a better way to work, but to a certain extent I feel that its authors took for granted that we all have brains like theirs, which I don't think is completely accurate



My theory is that Agile thinkers have a knack for jumping back and forth from right brain to left brain thinking, and we tend to live somewhere in between. This balance leads to a talent for communication, and cooperation.


Environments like this stimulate the agile thinker. They provide multiple streams of information while maintaining a focus on the big picture, and they encourage collaboration. But some people prefer a different kind of workspace...


Some people's brains require an environment that filters out extraneous information and minimizes distractions, allowing for a much more narrow and intense focus on the task at hand. While objectively less “Agile” these people can nevertheless be highly effective.

Indeed, there are some amazing software engineers out there who seem to excel at what they do precisely because they are able to turn off distractions, tune out the big picture, and focus all their attention on the problem at hand.



I am going to call these guys power coders, and they are incredible. They are left brain power houses, able to focus all their mental muscle on solving the really hard problems, but often consider the rest of the process to be a distraction. They often just want to be told what task to smash next.



But Have heart! These guys absolutely have a place on your team. Stay tuned for part two where I will go into some ideas to make that work.



Click here for part two.