Activity: Clarifying Ownership
In Discord > Team Channels
PM leads
As we discussed in the reading, the socio-technical theory of coordination suggests that the best process is the one that designs your communication and coordination around the technical dependencies in your architecture.
Using your progress on your architecture, try to determine:
- Who will own each component
- Who they will have to coordinate with to get it built
To figure these things out, I expect you to make statements like these:
Jane's going to build the WidgetFactory. It depends pretty heavily on the existence of WidgetA and WidgetB, which Joe is building, so Jane will have to nag Joe about his progress, or devise some way to stub both widgets. Joe's committed to having the widget interfaces done by April 4th, so Jane isn't blocked.
There's an easy way to test when you're done:
- For each person in your team
- Have that person say what components they own and who they have to talk to
- Check if everyone agrees with them
- Ensure that every component has an owner
If everyone agrees and every component has an owner, then you have a good plan! If not, then you have more architecting and planning to do.
If you're building a client/server architecture, there are some common components and dependencies to think about:
- Whoever owns the database schema probably needs to talk to everyone, since all components will likely depend on the structure and content of the data stored.
- The client and the server have to talk somehow; deciding precisely what they say to each other is a huge dependency to work out.
Aside from those two, most of the other components will be specific to your project.
Instructor/TA meetings
Ask us questions about the reading, about components, and about ownership. Reflect on what was hard about forming an ownership plan.