Since I think the word “architect” in a software context has taken on all sorts of horrible connotations (it conjures up images of people who draw boxes and arrows but don’t actually write any code themselves), I tend not to use it personally. Instead, I tend to think of my role on the team as being the guy who should be blamed when things don’t work. Not the guy who should be blamed when something he did doesn’t work, but just the guy to blame, period.
from Taking Responsibility by Alan Keefer on the Guidewire DevBlog
I was glad to see this article get some links from people like Kent Beck on twitter. I read it because Guidewire is a company I've worked with very closely (as one of our vendors at my job) for the past 2 years but I'm happy to see it getting read outside the circle of Guidewire customers. I've really admired what I know of the technical group at Guidewire and have angled numerous times for a job there. I've never met Alan and we don't use the product he's the architect on, but I liked this post a lot.
I've always thought the job of a manager is to take responsibility for their team, whatever that means. If somebody needs help, the manager needs to help. If there's political corporatey nonsense going on, the manager is responsible for protecting their people from that. If something doesn't get done, the manager should be the one taking responsibility for it with the higher-ups. Then if somebody on the team screwed up, it's the manager's responsibility to take care of it with that person. Managers that don't take responsibility are not only not doing their job, they're actively harmful to their team.
Of course, non-managers should be responsible to themselves and their team as well. I take care of my own stuff at work, but I also try to take care of things the team needs if they aren't getting done. I'm not a manager but sometimes people just need to take over and get things done. We're about to start a new project and we have some infrastructure projects that need to do. I could just wait for somebody else to do them or complain that we weren't given time for them, but I got a whiteboard and started making a list, as well as scheduling a meeting with the parties involved to get a plan for putting these things together. I take that responsibility for my team because I know they would (and have) taken on things for me when I couldn't. We're all in this together and if any of us can take on things for the good of the team, we do.