I work at a startup where I began as the only developer 3 years ago, and now I run the dev team. There's 15 employees total, 8 of whom are engineers:
- 5 iOS devs
- 3 Backend devs
We're currently just building an iOS application.
We're starting to grow up a bit and now have a UX Designer, a Head of Product, a Head of Marketing and so forth. After a long period of figuring out the product and some very long release cycles, we want to start iterating more quickly.
My goals are:
to be able to have the team work on 2 or 3 vertical slices of features, in parallel.
to be able to release those features each sprint
to increase responsibility and and accountability within the team
Issues I'm seeing:
Feels 'top-down' -- a lot of the team communication seems to come through me. ie. if a backend dev has an issue with some ios component, they might ask me, and then i'll talk to the iOS dev, and then relay information back
Standups feel unfocused -- because we have 8 devs all working on different "bits" of things, standups don't seem terribly useful because there isn't really a unified effort amongst the team as whole.
Throwing it over the fence -- After Sprint Planning, everyone tends to go into their silos. We discussed what needs to be completed, but the devs tend to go into their own worlds and, for example, not take initiative to discuss interfaces between front and backend, throwing things over all the wall for QA (which usually comes to me our product owner), etc.
Question: I'm wondering if it makes sense at this point to split the team into two cross-functional groups? I'm hoping this will accomplish the following:
- Each "team" will have a sprint goal which may consistent of 1 or 2 vertical feature slices to accomplish. I think it may be easier to self-organize in the context of a smaller group and figure out what needs to happen to meet the goals. Moreover, I think this could help aid in accountability since the team will have very specific goals.
- Standups can happen within each team, and therefore, will be focused on unblocking and moving progress forward as it relates to their specific sprint goals.
- Because each team has specific goals and accountability, they will be more responsible for things like QA, mockups accuracy, functional edge cases, etc before delivering to the product owner for final acceptance testing.
I suppose the above can be accomplished within the context of a single larger team, but I haven't been able to find a good way to make that happen yet.