Back to Flutter Inner Source homepage
inner source

Choosing Inner Source

Choosing to use inner source for your product should be a deliberate and conscious decision based on its benefits as other options are available. Flutter is a group of independent divisions so from a group perspective there are three patterns for product development:

  1. Independent : designed, built/bought and operated independently within a division by their teams with no cross-divisional collaboration.
  2. Delegated : designed, built/bought and operated by one division on behalf of all other divisions.
  3. Inner Source : designed and built collaboratively by several divisions, with each division operating their own deployment.

Comparing these approaches from the perspective of a division:

Independent Delegated Inner Source
Predictability Velocity and priorities fully controlled. Projects depend on an external prioritisation process with other divisions. Velocity and priorities controlled, but intent must be agreed with other divisions and cycle time expectation adjusted.
Efficiency Start from scratch. Need to implement all features. All features are implemented by another division, just need to use. Need to implement specific priorities and deployment, get most features from other divisions.
Quality Aligned with our standards, and can trade-off quality for velocity as desired. Aligned with another division's standards and treated as a service dependency. Aligned with cross-divisionally agreed standards, limited ability to trade-off quality for velocity.
Stability Operational concerns fully controlled. Must be managed as an external service dependency. Operational concerns fully controlled.

Examples

Independent development is the default choice, and is optimum when:

Delegated development is optimum when:

Inner Source development is optimum when:

Inner Source Pyramid

Inner source at Flutter is described as a pyramid with 3 stages: Readable Source, Guest Contributions and Maintainers in Multiple Teams. This reflects the reality that there is no single inner source operating model – it depends on the capability needs & teams. Similarly, Independent and Delegated patterns are families of operating models and the boundaries between the development patterns are blurred.

Both the inner source pyramid and the 3 development patterns are a simplification: but they provide a powerful language with which to discuss, inform and make decisions about the best way forward within the group for a specific capability.

The Inner Source Pyramid
← Previous
Stage 1 - Readable Source