RFCs are a way for Atlassian to share what we’re working on with our valued developer community.
This RFC is will be a bit unique. Not only are we sharing our plans about the technical solution for the future of the Developer Canary Program, we are also making an appeal and building awareness. The most important aspect of this RFC is providing your feedback on the existing program and using the Developer Assistant Apps.
Please respect our community guidelines: keep it welcoming and safe by commenting on the idea not the people (especially the author); keep it tidy by keeping on topic; empower the community by keeping comments constructive. Thanks!
Summary
We’re making changes to the Developer Canary Program (DCP) and the Developer Assistant App that manages enrollment. We’re also seeking wider participation, your advocacy, and your feedback to help us continue to expand and evolve the program and the app.
- Publish: 25 April 2024
- Discuss: 14 May 2024
- Resolve: 20 May 2024
Context
DCP empowers developers to “go to the front of the line” for Atlassian’s latest APIs & newest features. The Developer Assistant App is a self-service tool giving developers control & visibility for their site’s enrollment in a “feature flag segment” intended to receive all feature flags before wide-scale roll-out. We provide this program via an app so that developers can test how their own apps perform on a consistent set of features. You can learn more about DCP at: Developer Canary Program
Problem
The proximal cause is internal changes to our feature flag systems that require us to make an update to the Developer Assistant App.
We’re taking the opportunity to rethink how the DCP fits within Atlassian. Looking to onboard more products & push more changes through the DCP. Alas, low participation via the app creates a “chicken and egg” problem where it’s hard to convince Atlassian teams they should participate.
- ~200 installs vs ~500 enrollments. DCP was already a reboot of the earlier “Cloud First Releases initiative”, where sites were enrolled manually after requesting access in a Google Form. The Dev Asst App made it completely self-service and self-observable.
- ~200 installs vs nearly that number of new developers in the community every month.
- ~200 installs vs over 2000 developers using Forge every month. Using this as our metric, we’ll characterize this as 10% participation. Even as we use Forge developers as our benchmark, we know there are many non-overlapping Connect developers. And with individual developer sites, plus team environments, we estimate the actual participation is below 5%.
For us, this low participation is not sufficient to justify the continued investment in this program & the app, let alone meaningful improvements. We’re setting a long-term goal that every Forge developer would also use the Developer Assistant App. In the next quarter, we’re targeting an increase in participation to 25% and target 50% by end of the year.
We’re also setting new targets for Atlassian participation. We believe the value of a Canary program is only as good as the features that flow through it. We need a high % of features rolled-out through DCP so that external developers see most of the features before customers do. We know that more than 60% of features are flowing through DCP now but noise in our current use of feature flags makes it hard to know if the remaining flags are really for progressive deployments or other configuration purposes. You wouldn’t see our efforts here as they would involve internal education and refinement in our instrumentation.
Furthermore, we’re taking the opportunity to rethink what DCP should mean for the community. A common problem we see in community posts & developer support tickets is how feature roll-outs can make app troubleshooting confusing. We want DCP to become the standard support baseline to help isolate the effect of Atlassian feature flags on developer apps.
Proposed Solution
We’ve already spent a few weeks in refreshing this initiative, both understanding the program and app requirements so that we disrupt existing users as little as possible. We are building API first with a GraphQL endpoint that developers could access, if they had needs for “bulk enrollment”. Please let us know if this would be interesting to you. We are also “dogfooding” on Forge to learn with you about what it means to build & operate a real-world Forge app. We’ve already reported a number of new observations to our Forge team.
Following are what you can expect in a sequence that would complete over the next 2-6 weeks, depending on what we learn from this RFC and as we build.
Phase 1: Minor version update to the Developer Assistant App with built-in timebomb
We’ll release one more version of the Developer Assistant App that prompts developers to upgrade to the latest major version. Please “pardon the construction” if the new major version takes some hours before it is available. We’re working on parallel branches but release through Marketplace may not be perfectly coordinated.
Phase 2: Major version update to the Developer Assistant App with dual-state
We’ll be switching between “state management strategies”. In the current version, the source of truth for enrollment in DCP is a 3rd party feature flag management tool. We’ll be moving enrollment & integration with our feature flag tooling into a back-end service. Our new architecture will isolate the app from such back-end changes in future. The change may require a change of scopes that will bump the major version number. We’re working on mitigating this.
Phase 3: Timebomb for the legacy DCP state management
Timebomb: 1 December 2024
On this day, both versions of the app will cease to interact with the legacy DCP state management strategy.
Developers who have the old version of the app will see a prompt to upgrade to the latest version. The DCP toggle will no longer appear.
Developers who have the new version of the app will be fine.
At this time, anyone who installs the app may enroll, or return to their enrolled state by toggling the DCP state.
Phase 4: Remove the legacy DCP state management
At some point, we will update the app to remove the dead code paths that handled the legacy DCP state management. We would expect this to be a minor version and have no impact.
Asks
- Do you value the ability to see & manage your enrollment in DCP? If so, please tell us why this is valuable to you. In the event that we had to invest in a different solution, your input about the value will help us keep what matters.
- If you had not installed the Developer Assistant App & activated DCP, why not? Even if this is the first time hearing about Developer Assistant App & DCP, can you please try out the overall solution and let us know if it solves your problem. Is the app a good fit?
- What can we do to help improve the solution to make it more compelling and help reach our participation goals?
- As stated in the pre-amble, this RFC is a bit different. It’s as much asking for feedback as participation. Please share this RFC widely and help us drive awareness. With the safe transition we’ve planned, anyone can join at anytime: Developer Canary Program