Introducing the Developer Experience Working Group
10 Apr 2017

The Developer Experience Working Group

* Introducing the Developer Experience Working Group

Over the last several years, Go's audience has shifted from early
adopters to mainstream users. Today, our users come from a wide
variety of backgrounds, experiences, and expectations. The needs
of users are growing faster than the Go project can currently address
them. To streamline the experience for first-time Go users,
we've created the Developer eXperience Working Group (DXWG).

For the next three months, this group will work together on delivering:

- improvements to the Go installation experience
- better guidelines to help new users
- guides on tooling and developer environments (editors and IDEs)
- running user studies to systematically analyze and measure friction points
- improvements to the [[https://tour.golang.org/][Go Tour]] and [[https://play.golang.org/][Go Playground]]

A secondary goal of the working group is to better understand how to
involve the Go community in charting Go’s future. We hope that working
groups – Go team members working alongside community members – will
help Go scale its leadership and address user needs.  We’ll learn
from this experience and iterate.

The initial members of the working group are:
Carmen Andoh, Chris Broadfoot, Francesc Campoy, Jaana Burcu Dogan,
Steve Francia, Jess Frazelle, Bill Kennedy, Katrina Owen, Natalie
Pistunovich, Mat Ryer, Dmitri Shuralyov.

We are looking for additional people to help with contributing
code, writing documentation, sharing feedback and experiences
(user stories), reviewing contributions, and more. If you are
interested in any of our current areas of focus, please subscribe to the
[[https://groups.google.com/forum/#!forum/golang-devexp][golang-devexp]]
mailing list.
