3 ms·
I used to work on a product where the three major teams were Client, Server and Ops. Tens of millions of customers used our stuff. Client and Server folks were
by kabdib 10y ago
I used to work on a product where the three major teams were Client, Server and Ops. Tens of millions of customers used our stuff.
Client and Server folks were on separate floors of the same building. We didn't interact much at all, except by trading bugs back and forth. The management chains met at a VP. Three or four times a year we tried to coordinate a release, and it always took at least a month. Getting a feature out the door might take a year, with all the paperwork and pipelining of release schedules.
Ops was in another building. The only things that both Client and Server teams were sure of was (a) they did a bunch of customization of our stuff so that it would work, and (b) they hated us.
Support was in another state. We were not allowed to talk to customers. Maybe once a year Support would fly in to talk to the teams about pain points. I think we did an okay job addressing these, but it took a long time, and customers suffered a lot.
I won't talk about the disaster that ensued when Scrum was thrust upon us, or the splinter projects that spun off to try to fix things (but wound up being lots worse).
You have to be close to the customer or you won't know if you're succeeding, or even on the same page. You have to know what your software is doing in production or you're just sitting in an ivory tower pontificating about angels-on-the-head-of-a-pin nonsense. You have to spend time in the trenches measuring and fixing stuff or you're hatching an unmanageable disaster. The good news is that most of this is actually kind of fun. The bad news is that, when managed badly, this can turn into a horrible and soulless grind of pager duty and making legacy code even more legacy to fix wee-hours downtime.
I still get a rush when I get feedback from a real, live customer, and I think that isolating your teams from customers is one of the worst things you can do to a team and to a product. Getting teams to work on ops and support aren't bad ways to improve this.