# Introducing the Developer Experience Working Group
10 Apr 2017
Summary: Announcing the Developer eXperience Working Group (DXWG).

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 [Go Tour](https://tour.golang.org/) and [Go Playground](https://play.golang.org/)

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
[golang-devexp](https://groups.google.com/forum/#!forum/golang-devexp)
mailing list.
