Should a team share all its code?
This is a slightly loaded question, but I'll explain the motivation.
I'm currently in a team where we have 3 subsystems:
- customer front end app
- customer back end / api
- business back end / api
As the full stack dev for both "customer" systems, I'm responsible for architecting the database, models, validation, and front end app (which is just as, if not more, complex), but eventually all the data gets pushed through to the "business" system which is responsible for pricing, additional business logic, and talking to 3rd party APIs.
We're currently looking to align both systems' taxonomy / field names for sanity's sake, but the "business" team are refusing to show, or share any code whatsoever, even though both systems are built using the same framework, and deal with / share many common entities.
Everything has to be done on spreadsheets or Postman, and I can see even at this early stage that there are subtle differences in about 20% of the fields (we have a lot of fields) even when they say there aren't, that without any tests whatsoever at this early stage, are going to trip us up.
I could abstract this all away by using transformers (which I'll probably do) but from a cultural POV, it doesn't make sense. They are constantly late on things, stuff often breaks, and this just seems to be a symptom of that. Going forward, I don't see how the two teams can "be on the same team" with this barrier.
So really, the question is about visibility, culture, and to some extent accountability.
Any advice to get a better outcome or improve attitude (mine or theirs) is welcome.