One of the frustrations I've experienced with offshoring projects is the diminished sense of ownership. We're still responsible for the software put in front of the end users, and yet we're not allowed to put our hands on the code. Instead, we draw UML diagrams, we enter tickets, we send emails back and forth. In short, we do everything except the only work that actually produces a software product: writing code.
This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2005/02/you-gotta-own-it.html
It is one of the hardest things to change.
So true. And the sad, sad reality is that for a lot of software projects it just doesn’t matter either way-- quality is irrelevant. Because what you’re working on isn’t strategic.
I recently worked on a project to create a website for a group that was recently laid off from the company almost in toto. So I created an application that nobody will ever use. Does it matter? Sure, I’d prefer that people use the things I build. But I still learned a lot on the project and built it with a high level of quality. I’m harvesting some common tools I built for that website to use in future projects.
Ultimately, it’s about the craftsmanship. The only person you need to satisfy is yourself. But without ownership, you can’t even do that!
There is a problem with owning the code: If you have an emotional investment in what you do (and let’s face it, the good people do), the effect of a layoff is a lot worse on you than on the wage slave in the next cube. I can say from hard experience (I’ve had 3 different companies go bust or move out from under me) that when you get into the project and really try to make it work, only to have it ripped out from under you due to bad financial decisions that have nothing to do with you, it has serious emotional effects.
I’ve gotten to the point where the phrase ‘Like a dog that’s been beat too much’ keeps popping into my head. I love doing software, but I’ve owned the code before, only to have it ripped away from me. And let me tell you, it hurts.
Also, if you truly own a project, it can’t be taken away. You may just need a different source of funding.
If you don’t own it, you certainly won’t care about it. The net result is that the quality will reflect your lack of interest. I’ve seen if happen again and again. It is one of the hardest things to change.
“Better to have loved and lost…”
Sappy, I know, but it’s a universal truth. Is the idea of working on something you care nothing for really better? Your point is well taken, though. Good code (or anything worthwhile) requires some level of emotional attachment, but the emotional attachment has consequences beyond the daily production of code. It’s something companies and we developers are going to have to start anticipating.
Jeff’s comment above summarizes my feelings. Often it seems that only myself and maybe one other team member are concerned about quality but I can’t dumb myself down to the masses. I don’t want to work at a low quality level, although compromises are inevitably made for reasons of budget, scheduling or lack of quality testing by business analysts. Also important are the lessons learned, the new skills gained, etc.
At the same time if we are too invested emotionally, we will be hurt. That’s just the way it is. I think the goal is a balanced approach. We need to cultivate the ability to detach ourselves when decisions are made beyond our control and at the same time we should relish the opporunity to dive into portions of the project that we do own.
Thanks for that important information, it really helpful…Interesting article
I just wanted to take a moment to thank you for your great blog and this post in particular. I moved 1000 miles for this position precisely because I would own it and that has turned out not to be so.
Anyway, thanks for echoing my thoughts in a more succinct manner than I could myself.
Amen to that! I moved recently from a project where I felt no involvement to one where I do. I’m more stressed (responsibility!) but more fulfilled because the project’s mine!