At the InfoQ Dev Summit in Boston, Jennifer Davis, an engineering manager at Google and author of "Effective DevOps" and "Modern System Administration," discussed strategies for enhancing developer productivity through intentional evolution of platforms. She emphasized the importance of effective documentation and code samples in fostering a thriving developer community.
Every day, teams come up with new ways to optimize their processes using the tools and tech they have. And a platform emerges. These platforms can adjust to what the team needs. But at some point, you need to scale up. And that's when the real questions start: how should the team handle it? Making things easy for developers is tough, and guess what? Not everything can be automated. - Jennifer Davis
Davis began her presentation by debunking common misconceptions about what constitutes developer productivity. “For the first part of this, I want to talk about developer productivity. What is it? It's totally about lines of code. And the number of artifacts you make; it's getting into that flow, right? It is? No, not at all,” she joked. Instead, she argued that it is more complex than that; it involves streamlining processes to build value faster while focusing on team performance rather than individual achievements.
She also highlighted how crucial it is to consider developers' experiences when designing platforms. According to Davis, these experiences are dictated by capabilities such as ease of writing and maintaining code, speediness of feedback loops, and autonomy in problem-solving approaches. She then shared some challenges she has faced in her role at Google due to fractured workflows resulting from rapid growth. Based upon Davis's description, developer relations involves advocating for developers' interests, providing hands-on support through writing sample code and troubleshooting coding problems.
To address this issue, Davis explained their approach: they started thinking about what they were actually trying to do to increase value to their users. This led them to establish principles aimed at minimizing unnecessary workloads while maximizing learning from past mistakes.
One of the deliverables of the Develper Relations team is code samples, such as the PubSub Quick Start sample found below:
func main() {
ctx := context.Background()
// Sets your Google Cloud Platform project ID.
projectID := "YOUR_PROJECT_ID"
// Creates a client.
client, err := pubsub.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
// Sets the id for the new topic.
topicID := "my-topic"
// Creates the new topic.
topic, err := client.CreateTopic(ctx, topicID)
if err != nil {
log.Fatalf("Failed to create topic: %v", err)
}
fmt.Printf("Topic %v created.\n", topic)
}
One major idea she touched upon was friction logging - documenting difficulties encountered during software usage - which helps identify areas needing improvement both internally for contributors and externally for customers. Davis also emphasized culture and fostering a positive environment where team members feel safe to share their thoughts and ideas, which is crucial for high performance. She concluded by emphasizing the importance of establishing an active communication plan connecting efforts to value celebrating wins and continuously questioning assumptions.
Developers interested in learning more about the InfoQ Dev Summit series can visit the website and stay tuned to InfoQ for the release of the talk recording in the coming months. Examples of Davis's work may be found in Google Cloud Samples or on GitHub.