My last few workplaces have sacrificed building a team for "individual responsibility". My experience is that it is just another name for "cowboy coder". Granted, it is possible that it just wasn’t implemented correctly. I have certainly seen my share of mismanaged "agile" adoptions. But, all I have is my experience, because neither one provided a single resource that indicated how this was supposed to work. There was no list of values, principles, and related practices. No experience reports. We repeatedly watched production crawl along until days of crazy, heroic effort were required. That sure sounds like cowboy coding to me.
The Downward Spiral
First, they stopped having conversations with the team about new stories. It became the “responsibility" of the lone developer to gather the requirements. To identify the technical pitfalls. To architect the new changes. To decide what tradeoffs are most effective. I stand corrected, it is the responsibility of the sole developer to manage the Epic, we don't mess with mere Stories any more. So, the developer does all this. The lone developer.
Pairing slowed, then stopped. There is no healthy buzz about the work place. Just keyboards tapping. The white board remains blank 90% of the time. We work in close proximity, but in isolation. Why would anyone ask someone for help? We don't have the faintest idea what they are working on, what their problem domain is, or what decisions have led them to this point. Our ability to assist is minimal, at best.
Standups devolved into a status meeting for the manager. The iteration meeting is simply a time for the manager to spend a few moments with each individual, either confirming that the Story (Epic) will indeed be carrying over, again, or assigning us our new Epic. There was little discussion. And little interest for the rest of the team. It's not their responsibility, why should they care?
What happens to the production cycle? It's not pretty. Delays stretch out. Developers can disappear for weeks and not a single line is commited to master. Stories are carried over from iteration to iteration, sometimes for months. See what I said about Epics?
Can It Work?
I try to imagine where this model might work. I think it might work for "The Rockstar". The completely self-sufficient, never makes any mistakes, knows exactly what to do without discussion, egotistical, ninja. The type of developer who thinks the only role of the manager is to keep everyone else out of their hair. I have yet to meet someone like that who is truly productive. I have heard about them. My teammates have not been that.
There are always a few developers who have requested this world. I have yet to see satisfactory output from them, before or after the shift.
We aren't rockstars. We're just damn fine developers. Proud of our work. This new world has left us behind.
Like most, our team is a mix, comprised of Rails developers, interns, and seasoned developers coming up to speed on Rails. We have varied skills and experience. We have developers acting as System Administrators. We have a silos of information that must be disseminated. Quickly. Continuously. As we all learn more about our domain, our code base, and our tool sets, we need to share this knowledge efficiently, not hoard it.
Even a team comprised of the fabled 10xer, will be hobbled without the interaction needed to learn and grow together. Their disjointed group would be a shadow of what they could accomplish as a focused team.
Insights into a Better World
Interestingly, it seems that every single time someone has a discussion, they receive helpful input from the developers around them, and yet, discussions rarely happen.
We've had a couple times where the entire team focuses on a single issue and we have obvious, in-your-face, productivity. Exactly what agile predicts. Yet, once the crisis is over, we are instructed to revert to the separate and conquer mode. It's baffling.
Do I sound bitter? There is some bitterness. I gave up pay, and more, to come here and help them build an agile team. Instead, I get this. I tried sharing practices, then principles. I tried patience, letting them feel the pain, so they could identify what wasn't working. I tried showing how it could work, proving it by producing good results, against adversity. I switched to sharing visions of what it could be like. I tried shining a flashlight into the dark corners.
I kept hoping that they would see the issues. That I could show them what was lacking. Show them how wonderful it could be. Once I did that, I hoped they could not help but make real changes. I was met with apathy. Towards the subject. Not to me, personally. I was confused how they could separate the two. This was about how I was tied into the whole.
My “Place" In This?
I miss XP. Where the human was taken into account. The social creature. The fallible creature. The capable of amazing things (sometimes) creature. I miss working to create a super team, where every developer feels a part of something bigger.
I have struggled to find my "place" in this new world. I am coming to the conclusion that it's because there is no "place". There is simply "you".