4 ms·
I'm at Amazon now and my team is often the target of away team work as our system is seen as "critical" to other business unit growth. it's a farce. Interestin
by cjhowarddev 3y ago
I'm at Amazon now and my team is often the target of away team work as our system is seen as "critical" to other business unit growth.
it's a farce. Interesting idea in theory, terrible in practice. The away team incentive is "launch as fast as possible at all costs" and that goes about as well as you'd expect.
We constantly deal with shit code and loose rules. Given that many away teams work in different time zones AND Amazon gives them carte blanche to get their work done, the host team can't manage them effectively.
So yeah. On one hand management is like "push back! Make them follow your standards!" while also saying "Don't dedicate time to away teams, you have your own deliverables."
It's a major drain on the home team and can cause a lot of unnecessary stress.
These opinions are my own, obviously, lol.
- deleted 3y ago[deleted]
- billllll 3y agoI think it really depends on the leadership. The worse case scenario is when the scenario you given: the "pet project," where a team goes nuts on a codebase they aren't maintaining, in which case it's effectively out-sourcing maintenance and tech debt. Ideally, the home team leadership has a lot of leverage to push back on work by the away team, which means away team work is slow but at least it gets done.
- angarg12 3y agoFellow amazonian here. I have been on both sides of away teams and I agree that it sucks for everyone involved. You explains how it looks as the host teams. It also sucks for the guest team. * You have to work with an, at best, passive team, at worst, actively hostile team. * You need to work against very tight deadlines and a lot of pressure in a codebase that you know nothing about, and need to ramp up in quickly. * You spent weeks (months?) developing expertise in a system you will probably never work again. It is a terrible idea, but to be honest I can't think of another way to deal with the problem that it is trying to solve (mismatch between agendas of different teams).
- SoftTalker 3y agoBubble the issue up the hierarchy until someone with authority over both teams can tell them what is more important?
- angarg12 3y agoWe resort to away teaming when what you describe doesn't work, usually by telling both teams that both goals are important, and they need to figure out how to deliver. Since away teaming is an accepted technique, it's usually considered as a way to solve these issues. I guess we would need to completely give away the concept, and just accept that some thing won't get done unless they are important enough to keep two distant teams aligned (in other words, they are important enough for someone high in the hierarchy).
- hoodedmongoose 3y agoThe open source model? If the away team can't get the home team to fulfill their requirements, they fork home teams code and take full ownership of it for their purposes. If they want to take updates from home team, they do so but have to handle the merging. If they want to, they can try to get home team to take their changes, but that's at home teams full discretion.
- Others 3y agoHow does that work when the thing you want to change is a complex micro-service with a public API? Do you want to spin up your own version of that service and own it forever? Even if you’re okay with that, you’ll not have the clients the older version has Open-source model works for libraries, or small changes in service code (where the maintenance burden is trivial). But it doesn’t work for complex services with high maintenance burdens
- hoodedmongoose 3y agoSpin up your own and own it forever would be my thought, yes. This is definitely a high cost to pay - my thought is that the bias should be much more towards modifying the existing service, but leaving the engineers that own the code to be empowered to figure out how to do this. Rather than having management say you have to review this away teams code, deal with it
- bluedevilzn 3y agoHaving worked at both amazon and Google, IMO Google does this significantly better by having OWNERS, away team member plus readability approver. This comes at the cost of much slower progress.
- fluoride1002 3y agoBefore Away Teams became a thing there we had people "loaned" to teams to update our code for team projects. I remember during one of the code reviews I did for someone "loaned" to us involved him commenting out validation checks in critical systems that had legal and financial ramifications. When I asked him why he commented it out he said "Oh, my code didn't work with those checks in there so I removed them." I get that the code is complex and he doesn't have the full domain knowledge, but he didn't even ask why they were there and why certain use cases were not allowed for that part of the code.
- ramraj07 3y agoThis model only works if the away teams are the most competent people you have. Generally the “loaning” business is a cowardly way for teams to trade the worst engineers you have (bonus point if that engineer is someone who everyone praises but is secretly shit and only the manager knows that reality).
- 8note 3y agoI've only gotten completely new hires as loans, where you also have to train them up to being useful
- hiyer 3y agoI don't see how having Away Teams fixes this issue. The Away Team member is still free to write shitty code (or un-write good code, as in this case), and it is still the responsibility of the home team to catch that in code reviews.