View allAll Photos Tagged microservices
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2018 - The Microservices Conference. Monday, 5th - Tuesday, 6th November at CodeNode, London. skillsmatter.com/conferences/10336-mucon-london-2018-the-.... Images Copyright www.tellingphotography.com
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com
µCon London 2018 - The Microservices Conference. Monday, 5th - Tuesday, 6th November at CodeNode, London. skillsmatter.com/conferences/10336-mucon-london-2018-the-.... Images Copyright www.tellingphotography.com
Zag - bit.ly/2tNv7rz Two practices for managing a program in product-mode orgs
Why are programs so hard?
Organizations operating in product-mode use durable, ideate-build-run teams working on a persistent business issue to continuously deliver value to customers. Over time, through the process of removing waste in their value stream, these organizations structure themselves in a way that decreases the need for coordination across multiple teams often resulting in a microservices systems architecture. It is common for organizations operating in this way to have an organizational structure that mirrors their architecture; small teams with their own backlogs of work, owning and operating the systems that provide their product feature or business capability.
Occasionally however, opportunities present themselves that require new features and capabilities to be built in multiple areas of the organization, resulting in the need for cross-team coordination to deliver the value. The coordination effort involved in these initiatives is what we call programs.
Programs — where delivering customer value demands orchestration across multiple teams — are a real challenge for product-mode organizations. That’s because :
It is hard to identify the change in operating model required to deliver the value of a program;
they can challenge the autonomous culture that is common within product teams as programs benefit by standardizing the delivery process across multiple streams of work;
leadership styles suitable for single product teams may not translate to the program level where multiple teams with different priorities need to be aligned and kept accountable.
In our experience, we’ve observed both successful and unsuccessful programs in product-mode organizations. What follows is a fictional example of the difficulties of coordinating cross-team efforts in one such organization inspired by real issues that we’ve encountered.
An example: a digital-first bank wants to enter a new customer segment
A modern fintech company in South America has built a successful digital-first bank for everyday transactional consumers. Being a startup, it seeded its business with agile principles and have scaled the culture along with its architecture as it has grown.
It now employs around 200 people in its product division and the organizational structure is similar to the widely publicized Spotify model with squads and tribes aligned to the underlying modularized product architecture.
After a few months of user research, the bank realized it was in a solid position to offer its services to a new customer segment; business customers. As a result of this insight, the organization decided to put a team together to with the intention of releasing the new offering within a few months.
Figure 1: The anticipated program timeline for the MVP delivery of the business banking product
The Spotify model
Back in 2012 Henrik Kniberg wrote about how Spotify had scaled agile product development across over 30 autonomous product teams within its organization. The highly matrixed structure that he observed came to be known colloquially as the Spotify model.
At the time, Spotify had been using a taxonomy of tribes, guilds, chapters and squads to describe the different organizations of its product teams at various levels of abstraction.
Tribe
Tribes are the highest level of organization in the Spotify model and represent a group of product teams all working towards the same mission. Tribes may have their own revenue targets.
Guild
Guilds are organic groups that evolve around a common interest within the company and therefore can contain people from across different tribes, chapters and squads. There may a testing guid for example that contains anyone with an interest in testing.
Chapter
Chapters are more like the traditional silos of related skills that are common in functional organizations. Unlike functional organizations, a chapter does not represent an individuals day-to-day team but a working group that they are a member of to facilitate knowledge sharing and provide economies of scale for the organization. Examples of chapters may be the frontend chapter, the backend chapter or the product manager chapter.
Squad
Finally we have squads. These are autonomous cross-functional product teams with their own backlogs of work. It is common to see squads aligned to a tribe mission by way of a framework such as objectives and key results.
Three leaders from existing product teams within the organization were identified to orchestrate the effort: a design lead, a technical lead and a product manager. Over some months the trio worked on a discovery and built a plan to establish the specifics for the first phase of delivery resulting in a definition of the MVP user journey and a high level story map.
Sign up for business banking
Add business banking product to product catalog
Login to homepage
Create business bank homepage
Create business bank login
Add business banking capability to customer api
Add business banking capability to auth api
View recent transactions
Create business bank transaction history page
Add business banking capability to transaction api
The MVP of the program consisted of a new business account product, the ability to log in as a business customer and view business account transactions. After establishing the MVP user journey, the trio identified the existing product teams who would be required to deliver the scope.
Customer
Customer CRM, api and database
Transactions
Transactions api and database
Auth
Authentication and authorization platform
Catalog
Product catalog api and database
The teams were typical of product teams at the organization: autonomous and self-managing. Each of the teams involved already had a specific delivery process that worked for them; some used a structured agile process working from a product roadmap, leading to epics and stories with estimates. Whereas others were more comfortable working with loosely defined goals broken down into small tasks.
In the interest of preserving the culture of self-organization, the trio chose to present the product vision to each of the product teams separately and allow them to figure out what changes they would need to deliver in order to accommodate the new customer segment. This, coupled with the inconsistent delivery methodologies between the teams, meant that the trio couldn’t foresee the number of dependencies hidden in each high-level user story.
Add business banking product to product catalog
Create business bank login
Create business bank transaction history page
Web UI
log in page
view transactions page
Customer
support for new constituents
support for new constituents
support for new constituents
Transactions
support for new constituents
support for new constituents
Auth
support for new constituents
support for new constituents
Catalog
new business banking product
Table highlighting the contribution each team needed to make to a piece of user value
In order to learn from the experience, at the end of the program the team conducted a retrospective to discover the root causes of the challenges they faced. This is what they discovered:
the operating model wasn’t changed to reflect the change in the value stream and due to the trio’s desire to not challenge the culture of self-organization, the delivery teams optimized locally rather than holistically for the flow of value to the customer;
the organization’s leaders weren’t empowered to use their influence to help the program as information on the status of the program was difficult to acquire;
progress updates focused on individual delivery team updates as opposed to the broader overall working solution addressing the customer needs, which was a missed opportunity for alignment and focus, the teams weren’t aware of their contribution to the program;
risk management was left as an implicit task assumed to be managed within the delivery teams, but not as an explicit program-level effort. This meant there were many surprises along the way impacting the delivery date;
unmanaged dependencies between teams and a lack of cross-team collaboration led to tensions forming between the delivery teams which degraded the working environment and impacted individual’s morale;
program leadership team didn’t change their communication style to suit the situation, the context and the program goals weren’t fully shared by the teams and leadership. There's a false sense of understanding, based on the assumption that everyone has the information needed to do their jobs;
overall team motivation and accountability was compromised due to the other problems above.
Best practices for managing programs in product-mode organizations
While hypothetical, the example above describes what we’ve seen to be common challenges for product-mode organizations when responding to cross-team coordination, program-like opportunities. We’ll use the rest of this article to explain some strategies, practices and principles that we’ve used successfully when working with programs similar to the one described above.
Invest time at the beginning to set the program up for success
The beginning of the program provides a natural pause point in which to run focused workshops that set the teams and the program up for success. By the end of the program kickoff, business stakeholders and team members should be aware of the initiative and its significance, their role in it, how it’ll be delivered and the high-level scope of the first release. Investing time upfront in a project kickoff like this is proper risk mitigation for a multi-month missed delivery date. We advise setting aside time to run a set of workshops that provide the following outcomes:
align all stakeholders on what needs to be done and why (including any changes to the current operating model);
define consistent ways of working, ceremonies and best practices;
socialize the business, technical and customer context with all teams involved;
build trust across the teams by making explicit the roles, responsibilities and motivations of individuals;
lay a foundation for building empathy and understanding within the team;
shine a light on the risks, dependencies, assumptions and complexity that exists in the delivery.
An example schedule for a kickoff intending to address these outcomes might look like this:
Mon
Tue
Wed
Thu
Fri
Morning
Context setting (all stakeholders)
Target architecture)
Non-functional requirements
Ways of working
Showcase (all stakeholders)
Afternoon
User journey mapping
RAIDs (risks, assumptions, issues, dependencies)
Trade off sliders
Story mapping & release planning
Team outing (all stakeholders)
Choose a leadership style that’s appropriate for the program
Depending on the organization, the current culture in the product division may not be receptive to the urgency and level of process standardization that the delivery of a program requires. Therefore, program leaders, acting like solution-champions, may find that they need to adapt their leadership style to the demands of the initiative.
Involving
Team leaders involve the teams in setting their own goals and direction. Communication is multiway, with the team leaders acting as an active member.
Clarifying
Team leaders clarify team activities, fine-tuning roles and responsibilities. Communication is becoming more multiway between the team leaders and team members.
Empowering
Team leaders empower the teams to be self-managing, letting the teams establish and modify their own work processes. The team leaders serve as a communication channel to the rest of the organization.
Defining
Team leaders concentrate on focusing the teams: defining goals, roles and responsibilities. Communication is primarily one way from the team leaders to the team members.
As an example, the situational leadership model provides a useful description of some common communication styles in various states of leadership (see sidebar). In the ideal state, leaders of self-organizing product teams will be involving and empowering their teams. However, as the program may require a change in operating model that challenges the self-organizing nature of the product teams involved, leaders may need to adapt their style and spend more time clarifying and defining than they’re used to.
In addition to changing their communication style, program leaders will need to keep teams accountable for those changes required to support the new operating model. A commonly used tool to communicate responsibility and accountability is a responsibility assignment matrix (see RACI matrix sidebar). Something like this can be used to help team members understand what’s expected from them with regards to upholding process standards and attending critical program meetings.
We're releasing this article in installments. Future installments will continue discussing practices we've learned to help allow this kind of coordination to work effectively..
To find out when we publish the next installment subscribe to the site's RSS feed, or Martin's twitter stream
Stuff to remember
development
via martinfowler bit.ly/36t3Vvj
January 14, 2020 at 09:15AM
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
Chris Richardson is a developer and architect. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with frameworks such as Spring and Hibernate.
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2018 - The Microservices Conference. Monday, 5th - Tuesday, 6th November at CodeNode, London. skillsmatter.com/conferences/10336-mucon-london-2018-the-.... Images Copyright www.tellingphotography.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
µCon London 2017: The Microservices Conference. Monday, 6th - Tuesday, 7th November at CodeNode, London. skillsmatter.com/conferences/8549-con-2017-the-microservi.... Images Copyright www.edtelling.com
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
Chris Richardson is a developer and architect. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with frameworks such as Spring and Hibernate.
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
µCon 2016: The Microservices Conference. skillsmatter.com/conferences/7412-con-2016-the-microservi.... Images copyright www.edtelling.com
This photo was captured at the 2018 edition of Great Indian Developer Summit (#gids18), April 24-28, Bangalore, India.
3 DAY CONFERENCE
µCon London 2019 - The Conference on Microservices, DDD & Software Architecture. skillsmatter.com/conferences/11982-con-london-2019-the-co.... Images Copyright www.tellingphotography.com