After coming across the same situation a few times, I decided it’s time to write about an approach to software delivery team structure that we have used with great success at a major government organisation around 2018-2021. Since then I have worked with three other organisations that seem to suffer from the very same problem - they find it difficult or slow to execute delivery of features or product increments where there are multiple teams involved in the end to end implementation. Once you’ve understood the problem you may suggest that the delivery teams in such organisations could have been better aligned to value chains which would enable them to deliver each increment independently, and you might be correct. For one reason or another the structure of teams wasn’t going to change in any of these organisations. I will not go into the details of why in this article so you will have to trust me that there were sufficiently good reasons for that. Consider the following 1000 words in the shape of a diagram and I will explain the boxes and the interactions below. Explanation of terms In this diagram we use several terms that may need a little bit of explanation so I’ll start with that.
Running LLTs This model doesn’t tell you how to run your Long Lived Teams except for the expectation that they will be You-Build-It-You-Run-It type of teams. The fact that all five of our teams in our original implementation used a “Kanban for software” type of process might have helped our approach but we have no reason to believe that other methods would be unsuitable. The only real requirement for your process is to be able to accommodate the running of multiple SLTs alongside your LLT and to be able to make visible progress towards delivery of features. As such a process that forces you to plan a period of time in detail for say two-four weeks might not be very suitable. Running SLTs This is where most of the specifics of this model are concentrated. Creating more teams and asking your engineers to be part of more teams can risk upsetting some people. But in this model, being part of one or more SLTs is nothing too onerous. In fact, this is probably what your engineers already do but are probably much more frustrated due to the lack of structure and the disconnected nature of how work gets done between dependent teams. Think of the SLTs as one way to eliminate the dependencies. Here is how it works
What does this mean for… The DL Delivery leads primarily look after their LLT the way they usually do. Their responsibility related to SLTs are mainly about
The BA Business analysts focus on features and work across delivery teams. Far too often we have seen BAs assigned to teams and having to figure out how to split user stories to fit in with the split of teams. We found it much more logical to have our BAs focus on the entire feature and work across teams. In doing so they often have to collaborate closely with the engineers (or technical leads if you have them) to ensure that the user stories they write are the right shape and will work for the teams both long and short lived. We found that this concept doesn’t work well for every single BA we’ve come across however it worked for most and they found it very satisfying that they can see a feature delivered end to end. The QA The role of the quality assurance engineers is mostly the same as on any other modern Agile software delivery team. The only difference is perhaps the ask to have one of the QA engineers take end to end responsibility for every feature. We didn’t think this would cause any problems because our QAs were already self-organising to do the end to end testing. Making it more formal actually helped ensure the workload is shared appropriately. The E2E QA co-ordinates QA activities, may lead on demonstrating the E2E feature and looks after the feature until it is working correctly in production. The PO Like the BA, the Product Owner looks after a whole feature (or a few features). If you find that you don’t really need both a PO and a BA you can probably run this model with just one of these roles. In big and complicated organisations we found that both roles add value. Our BAs were focused more on the teams and actual implementation and our POs were external facing and did the job of explaining what we’re building to the rest of the organisation and making sure we build the right thing. The engineer This model probably causes the least change for the engineers day to day. In our experience, our engineers saw the SLTs as a positive change that brought some structure to otherwise complex environment, enabling them to communicate easily, rely on a lightweight and clear process and resolve any cross-team issues quickly and efficiently. If you have technical leads they will need to work closely with all BAs that look after features related to their teams’ services. If you don’t have technical leads then engineers will have to share that responsibility so they can advise the BAs about feature implementation. The architect Architects, as alluded to previously, have an advisory role and an enabler role in this model. We have seen them involved in some, more complicated features but mostly not get involved unless asked to in the majority of features. Architects may be part of kick-offs and seek for ways to help the delivery. They may also get involved in conversations with other parts of the organisation or external vendors. Example weekly schedule and sessions explanation To make this a little easier to imagine I will share a sample weekly schedule and some of the sessions that might be happening. This schedule and the sessions are clearly context dependent and you may have different sessions that work in your environment. However it should give you an example of what might be needed to make this model work. As already mentioned the LLTs can run their own process and we won’t try to detail what that might be here. We just added a line for LLT daily stand-ups which we found to be useful when they are open to all other teams should others want to listen to the conversation of a specific team. Feature life-cycle sessions Every SLT is formed because of a feature and the feature begins life in the product world and usually comes from a roadmap or a backlog. Product owners and Business analysts will have confirmed with relevant stakeholders what the business and user needs are before bringing the feature to the delivery teams. They would then often have an initial session with relevant tech leads or engineers if the feature is more complicated to make sure that there is an approach to implementation that works for all existing services and LLTs. This session may not happen if the feature is already well understood. Equally, further architectural sessions may be necessary when the feature implementation is very complicated. Every feature will start its implementation journey with a feature kick off session which will usually involve the lead BA and/or PO, the relevant engineers from every team that has involvement in the delivery of the feature, one or more QA engineers and an architect if needed. In this session the BA will ensure all necessary user stories (or work items if you like) are created and stored in the same list which the SLT members can then refer to when they need to pick up more work. When the feature is complete and ready to demo, the e2e QA will organise a feature demo with any BAs, POs and other interested parties involved. If the demo is successful the feature will typically be deployed to production ideally via the existing deployment pipelines as part of the continuous deployment process. This doesn't mean that early feedback is not sought during the development of the feature. Quite the opposite, typically every work item that is completed is demoed to the BA unless deemed unnecessary (e.g. for changes that don't impact the user experience). Sometimes as a result of the demos, more work or changes are identified, in which case new user stories (or work items) will be added to the list and the SLT will continue work until it completes the new work items. In some cases the e2e QA may organise a demo earlier intentionally to get initial feedback or in expectation that there will be changes necessary. The features progress review This is a weekly session that involves all Delivery leads, all Product owners, all Business analysts, all Architects as well as any senior stake holders and people involved in feature adoption (e.g. training, change management, etc). We would suggest that this session moves quickly through features making sure actions are being actioned and does not take more then 30 minutes. In this session, we would walk through all features that are in progress, typically in a priority order or starting from the features that have been recently completed, then those closest to completion and so on. We would then provide a brief update for how the feature is going and highlight any delays or blockers. Further action may need to be taken when there are blockers. The facilitator will prompt action owners for updates on their actions, will take notes and record as part of the feature update and will make sure new actions have owners. Towards the end of the session we will have a look at upcoming features and may then use this information to plan for feature kick-offs. How about User research and UI design? After some initial struggles we found that integrating these roles in the model can work well with some flexibility on how and when activities are done. Depending on your available people, when we refer to UX we may include the following roles: user researchers, UI designers, content designers. Some things to bear in mind
Final words If you made it to here then well done! I know I probably wouldn’t have read as much. I need your help. Do you think this would work in your organisation? If no then why not? If you are experiencing dependency problems and insufficient cross team collaboration then how do you handle it? Is there anything in this article that doesn’t make sense? I’d love to hear from you. |
Welcome to our blog!About the authorPlamen is a LeanStack coach and an experienced Software Delivery consultant helping organisations around the world identify their path to success and follow it. Archives
December 2024
Categories
All
|