How do you embrace all of the great work that a community is doing, and also share strong opinions on the health of an ecosystem and guide developers away from the paradox of choice?
We often struggle with this at Google. I have seen a trend occur, which is the title of this post: Embrace and Opine.
We want to be part of the community, understand it’s needs, and help foster the creativity abundant in it. We are reluctant to be kingmakers (or queenmakers etc!) and thus have to be delicate not to squish anything in the ecosystem. We can’t allow this to paralyze us though, so we have worked to detail the outcomes that we feel are important and we invite the community to offer solutions.
For example, the Web isn’t widely experienced in a way that highlights what it is capable of. Web DevRel works to not solely offer guidance, but also share tools such as Lighthouse, which can help you walk the path to a good experience. This isn’t just about performance, but helps share best practices across security, a11y, PWA, and more. Lighthouse has been written to be extensible, so you and the community can write audits.
There are also great examples across our other developer platforms:
- Android has become much more inclusive of the community. The most obvious example is the embrace of Kotlin, and how we are collectively working to make it as great as possible on Android (it’s got a great starting point, but we can always do better…. and we will). There are many other efforts here too, where we are talking about how to best solve problems, and being inclusive of how great open source and community libraries can be part of the solution.
- The Assistant team acquired API.AI, which thinks developer-first by recognizing that you don’t necessarily want to build things differently for every platform out there
- Firebase has a vibrant third party ecosystem that the team fosters. We open sourced much of the Firebase SDKs at the recent Google I/O (and this was just the start).
Setting guidelines on the outcomes that are important and embracing the community is great, but it isn’t sufficient.
We often hear from developers that they want to understand our opinions. To that end, we are trying to delicately walk that line without closing down options, and being humble when we don’t know.
Building on some of the examples, you can see how this works as the other side of the coin via:
- The fact that we have highlighted Kotlin, when there are plenty of other choices on the Android platform. Our high order bit is helping you build fantastic experiences for your users. This can be done in a variety of ways. With Kotlin we felt that we could join forces to deliver more. We are also sharing more opinionated positions and libraries for how to best build your apps via the Android Architecture Components (side note: I am really enjoying Florina’s series on exploring Room)
- Firebase is obviously very opinionated itself. The Firebase team has a high bar for developer experience, and thinks about how the sum of the parts result in more value for developers. The notion of being *part* of Firebase it an opinion in of itself. Hopefully developers are learning that if they use Firebase, they are getting a high quality developer experience across platforms.
I am growing to like this balance. I don’t like the extremes of “heres the one true path from the ivory tower”, even though it is so tempting (because of the paradox of choice again). By setting the rules of the game clearly and allowing many to compete we allow for unexpected outcomes and developer choice. By strongly sharing our opinion you can understand what we care about and our direction, and we can share proof, with real world numbers, on why we feel a certain way.
I look forward to doing much more of this. Of us being more involved in the community, and also sharing more of our opinions and products.
A deep thank you to the communities that fight to make a better craft to deliver a better world.